zoukankan      html  css  js  c++  java
  • Linux常用命令

    前面的话

      自以为前端工程师可能用不到Linux命令。但在学习Git时,发现除了Git命令,还有好多是需要Linux命令来配合的。所以,Linux命令需要系统的学习并进行总结,本文将详细介绍Linux常用命令

    特殊字符

      特殊字符对shell具有特殊含义,不要把它们当作普通字符使用。某些特殊字符用于正则表达式匹配

    & ; | * ? ' " ` [ ] ( ) $ < > { } # /  ! ~

    空白符

      尽管RETURN、SPACE、TAB都不是特殊字符,但它们对shell具有特殊含义

      RETURN键通常用于结束命令行并开始命令的执行

      SPACE键和TAB键则用作命令行上的分隔符

    转义字符

      要将特殊字符当作普通字符使用,可对它们转义引用

      [注意]斜杠(/)无法被转义,它总是表示路径名中的分隔符

      在特殊字符前加反斜杠()即可将将、特殊字符转义。要将连续的两个或多个特殊字符转义,必须在每个字符前面加一个反斜杠()

      另一种将特殊字符转义的方法是使用单引号将它们引起来('**'),也可以将特殊字符和普通字符一起用一对单引号引起来

    【echo】

    echo [选项] [输出内容]
    选项:
      -e: 支持反斜线控制的字符转换

    管道符

    【多命令顺序执行】

    【管道符】

    命令1 | 命令2
    #命令1的正确输出作为命令2的操作对象

    通配符

    其他特殊符号

      

    目录相关

    显示目录路径

    【pwd】 显示当前目录

      [注意]如果使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文

    切换目录

    【cd】 切换到另一个工作目录,参数direction为要指定为新工作目录的目录路径名

    cd [options] [direction]

      如果不带任何参数,或使用波浪号(~),切换到主目录

      使用连字符(-)来切换到前一次的工作目录

      使用点(.)表示当前目录

      使用双句点(..)来返回到当前目录下的上一级目录

      [注意]cd和符号之间一定要有空格,否则会提示未找到命令

    创建目录

    【mkdir】创建目录,如果已经存在同名目录,则无法创建成功

    mkdir [option] directory-list

      [注意]如果存在-p命令,则为递归创建

      下面代码中,先创建了test目录,然后在test目录下,创建了abc目录

    mkdir -p test/abc

    删除目录

    【rmdir】删除目录,如果不是空目录,则无法删除成功

    rmdir directory-list

    【rm -rf】删除目录及目录里的文件

      [注意]如果使用"rm -rf /",会删除所有文件

    文件相关

    显示所有文件

    【ls】 类似于dos下的dir命令,用于显示一个或多个文件的相关信息

      默认情况下,ls按照文件名的字母顺序列出文件的信息

    ls [options] [file-list]

      options有很多选项,常用选项如下

    ls –a 显示所有文件,包括隐藏文件
    ls –F 在文件的后面添加表示文件类型的符号。*表示可执行,/表示目录,@表示连结文件
    ls –l 列出每个文件更详细的信息
    ls -ld 查看当前目录属性
    ls -lh 文件大小以K为单位 ls
    -R 递归地列出子目录的内容 ls -t 按最后一次修改时间的顺序显示文件
    ls -i 显示iNode号

      [注意]ls -l命令可以简写成ll命令

      file-list包含目录时,ls将显示该目录的内容

    ls mygit 显示mygit目录下的文件
    ls g* 显示所有以g字母开头的文件

    显示文件内容

    【cat】 显示文本文件的内容,类似于dos下的type命令

    cat [options] [direction]
    cat file1 显示file1文件内容
    cat file1 file2 依次显示file1,file2的内容
    cat file1 file2 > file3 把file1,file2的内容结合起来,再重定向(>)到file3文件中

      ">"是右重定向符,表示将左边命令结果当成右边命令的输入。如果右侧文件是一个已存在文件,其原有内容将会被清空,而变成左侧命令输出内容。如果希望以追加方式写入,请改用">>"重定向符

    重写文件

      如果">"左边没有指定文件,如: cat >file1,将会等用户输入,输入完毕后再按[Ctrl]+[d],就会将用户的输入内容写入file1

    删除文件

    【rm】 删除文件,与dos下的del/erase命令相似

    rm [options] file-list

      options有很多选项,常用选项如下

    rm –i 系统在删除文件之前会先询问确认,用户回复y或Y之后,文件才会真的被删除
    rm –r 递归删除指定目录的内容,包含所有子目录和目录自身
    rm –f 和-i参数相反,-f表示强制删除
    rm -v 显示被删除的每个文件的文件名

    复制文件

    【cp】 复制文件

    cp [options] source-file destination-file
    cp [options] source-file-list destination-directory

      使用cp命令可以生成一个文件的一个副本

      使用cp命令也可以把一个或者多个文件复制到某个目录

      cp -R 递归地复制包含普通文件的目录层次结构

      [注意]如果使用ls -a命令,则不仅文件内容,所有的文件属性也相同,如文件创建时间等

    移动文件或重命名

    【mv】重命名或移动文件

    mv [options] existing-file new-filename
    mv [options] existing-file-list direction
    mv [options] existing-direction new-direction

      使用mv命令可以重命名文件

      使用mv命令可以将一个文件移动到另一个目录

      使用mv命令可以将一个文件移动到另一个目录,并改名

      使用mv命令也可以移动目录

    新建文件

    【touch】 新建文件,或改变文件的访问和修改时间

    touch [options] file-list

      同名文件不存在时,touch用于新建文件

      同名文件存在时,touch用于修改文件的访问和修改时间

    文件链接

      通过ln命令来生成链接文件,-s选项表示生成软链接,没有选项则表示生成硬链接

    ln -s [原文件] [目标文件]

      硬链接包括以下特征:

      1、拥有相同的i节点和存储block块,可以看做是同一个文件

      2、可通过i节点识别

      3、不能跨分区

      4、不能针对目录使用

      软链接包含以下特征:

      1、类似windows快捷方式

      2、软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据

      3、修改任意文件,另一个都改变

      4、删除原文件,软链接不能使用

      5、软链接文件权限都为rwxrwxrwx

      6、软链接的原文件一定要写绝对路径

    文件搜索

    【locate】

      该命令搜索速度非常快,因为其在后台数据库中按文件名搜索,格式如下

    locate 文件名

      后台数据库的地址如下

    /var/lib/mlocate

      后台数据库一般1天更新一次,所以当天新建的文件不会被放到数据库中,但可以通过updatadb命令来强制更新数据库

    updatedb

      locate命令的缺点是只可以按照文件名来搜索

      locate是按照/etc/updatedb.conf配置文件来搜索的

    PRUNE_BIND_MOUNTS = "yes" #开启搜索限制
    PRUNEFS =  #搜索时,不搜索的文件系统
    PRUNENAMES = #搜索时,不搜索的文件类型
    PRUNEPATHS = #搜索时,不搜索的路径

    命令搜索

    【whereis】

      搜索该命令的所在路径及帮助文档所在位置

    -b 只查找可执行文件
    -m 只查找帮助文件

    【which】

      搜索命令的所在路径及可能存在的别名

    【PATH环境变量】

      PATH环境变量定义的是系统搜索命令的路径

    【find】

      在Linux中,最强大的搜索命令是find命令,该命令会把所有文件都搜索一遍

    find [搜索范围] [搜索条件]
    #搜索文件
    
    find / -name install.log
    #避免大范围搜索,会非常耗费系统资源
    #find是在系统之中搜索符合条件的文件名
      如果要模糊匹配,需要使用通配符匹配,通配符是完全匹配
    find /root -iname install.log
    #不区分大小写
    find /root -user root
    #按照所有者搜索
    find /root -nouser
    #查找没有所有者的文件
    find /var/log -mtime +10
    #查找10天前修改的文件
    
    -10 10天内修改的文件
    10 第10天修改的文件
    +10 10天前修改的文件
    
    atime 文件访问时间
    ctime 改变文件属性
    mtime 修改文件内容
    find . -size 25k
    #查找文件大小是25KB的文件
    
    -25K 小于25KB的文件
    25K 等于25KB的文件
    +25K 大于25KB的文件
    
    find . -inum 262422
    #查找i节点是262422的文件
    find /etc -size +20K -a -size -50K
    #查找/etc/目录下,大于20KB并且小于50KB的文件
    -a and 逻辑与,两个条件都满足
    -o or 逻辑或,两个条件满足一个即可
    
    find /etc -size +20K -a -size -50K -exec ls -lh {} ;
    #查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
    #-exec/-ok 命令{} ; 对搜索结果执行操作

     【grep】

      该命令是搜索字符串的命令

    grep [选项] 字符串 文件名
    #在文件当中匹配符合条件的字符串
    -i 忽略大小写
    -v 排除指定字符串

      find命令是在系统当中探索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

      grep命令是在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配

    文件比较

    【cmp】 逐字节地比较两个文件,如果两个文件相同,则cmp不显示任何内容;否则,cmp将显示第1个不同处对应的字节数和行号

    cmp [options] file1 [file2 [skip1 [skip2]]]

    显示不同

    【diff】 按行显示两个文本文件的不同。默认情况下,可以按照diff显示的不同来编辑其中的一个文件,使之与另一个文件相同

    diff [options] file1 file2
    diff [options] file1 directory
    diff [options] directory file2
    diff [options] directory1 directory2

      file1和file2为diff要比较的普通文本文件的路径名。当file2被directory参数替换时,diff将在directory目录下查找与file1同名的文件;类似地,当file1被directory替换,diff将在directory目录下查找与file2同名的文件;当指定两个目录参数时,diff将比较directory1目录下与directory2目录下具有相同的简单文件名的两个文件

      1c1表示更改a.txt的第1行,使之与b.txt的第一行相同

    统计

    【wc】 显示行数、单词数和字节数

    wc [options] [file-list]

    帮助命令

    【man】

    man 命令
    #获取指定命令的帮助
    man ls
    #查看ls的帮助

    man级别

    1:查看命令帮助
    2:查看可被内核调用的函数的邦族
    3:查看函数和函数库的帮助
    4:查看特殊文件的帮助(主要是/dev目录下的文件)
    5:查看配置文件的帮助
    6:查看游戏的帮助
    7:查看其他杂项
    8:查看系统管理员可用的命令帮助
    9:查看和内核相关的文件帮助
    man -f 命令
    相当于
    whatis 命令

    【help】

    命令 --help
    #获取命令选项的帮助
    help shell内部命令
    #获取shell内部命令的帮助
    whereis cd
    #确定是否是shell内部命令
    help cd
    #获取内部命令帮助

    【info】

    info 命令
    -回车 进入子帮助页面(带有*号标记)
    -u 进入上层页面
    -n 进入下一个帮助小节
    -p 进入上一个帮助小节
    -q 退出

    压缩命令

      5种常用的压缩格式: .zip .gz .bz2 .tar.gz .tar.bz2

    【zip】

    zip 压缩文件名 源文件
    #压缩文件
    
    zip -r 压缩文件名 源目录
    #压缩目录

    upzip 压缩文件
    #解压缩.zip文件

    【gz】

      可在windows中解压缩,但是windows中的rar格式不能在Linux中解压

    gzip 源文件
    #压缩为.gz格式的压缩文件,源文件会消失
    gzip
    -c 源文件 > 压缩文件
    #利用>输出重定向,将源文件保留(没有太大的意义)
    gzip -r 目录
    #压缩目录下所有的子文件,但是不能压缩目录
    gzip
    -d 压缩文件
    #解压缩

    gunzip 压缩文件
    #解压缩

    【bz2】

    bzip2 源文件
    #压缩为.bz2格式,不保留源文件
    
    bzip2 -k 源文件
    #压缩之后保留源文件

    bzip2 -d 压缩文件
    #解压缩,-k保留压缩文件

    bunzip2 压缩文件
    #解压缩,-k保留压缩文件

      [注意]bzip2命令不能压缩目录

    【tar】

    tar -cvf 打包文件名 源文件
    选项:
    -c 打包
    -v 显示过程
    -f 指定打包后的文件名
    tar -xvf 打包文件名
    选项:
        -x: 解打包

      其实,.tar.gz格式是先打包为.tar格式,再压缩为.gz格式

    tar -zcvf 压缩包名.tar.gz 源文件
    选项:
        -z: 压缩为.tar.gz格式
    tar -zxvf 压缩包名.tar.gz
    选项:
        -x: 解压缩.tar.gz格式
    tar -jcvf 压缩包名.tar.bz2 源文件
    选项:
        -z: 压缩为.tar.bz2格式
    tar -jxvf 压缩包名.tar.bz2
    选项:
        -x: 解压缩.tar.bz2格式

    【tar.xz】

      对于tar.xz文件来说,解压缩命令如下所示

    $xz -d ***.tar.xz
    $tar -xvf  ***.tar

    【tgz】

      对于taz文件来说,解压缩命令如下所示

    $tar -zxvf  ***.tgz

    挂载命令

      挂载就是指分配盘符

    【查询与自动挂载】

    mount
    #查询系统中已经挂载的设备
    
    mount -a
    #依据配置文件/etc/fstab的内容,自动挂载

    【挂载命令格式】

    mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
    选项:
    -t 文件系统: 加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
    -o 特殊选项: 可以指定挂载的额外选项

    【挂载光盘】

    mkdir /mnt/cdrom/
    #建立挂载点
    
    mount -t iso9660 /dev/cdrom /mnt/cdrom/
    #挂载光盘
    
    mount /dev/sr0 /mnt/cdrom/

     【卸载光盘】

    umount 设备名或挂载点
    
    umount /mnt/cdrom

    【U盘挂载】

    fdist -l
    #查看U盘设备文件名
    
    mount -t vfat /dev/sdb1 /mnt/usb/

      [注意]Linux默认是不支持NTFS文件系统的

    别名

    【alias】

    alias
    #查看系统中所有的命令别名
    
    alias 别名= '原命令'
    #设定命令别名

       一般地,别名在用户注销或重新登录时就会失效。如果在长期使用,则需要将其写入环境变量配置文件中

    vi ~/.bashrc
    #写入环境变量配置文件
    
    unallias 别名
    #删除别名

      [注意]如果要彻底删除别名,需要修改配置文件

    【命令生效顺序】

      1、执行用绝对路径或相对路径执行的命令

      2、执行别名

      3、执行bash的内部命令

      4、执行按照$PASH环境变量定义的目录查找顺序找到的第一个命令

    历史命令

    【history】

    history [选项] [历史命令保存文件]
    选项:
        -c: 清空历史命令
        -w: 把缓存中的历史命令写入历史命令保存文件~/.bash_history

    【历史命令的调用】

      使用上下箭头调用以前的历史命令

      使用"!n"重复执行第n条历史命令

      使用"!!"重复执行上一条命令

      使用"!字串"重复执行最后一条以该字串开头的命令

    快捷键

    ctrl+l 清屏
    ctrl+c 强制终止当前命令
    ctrl+a 光标移动到命令行首
    ctrl+e 光标移动到命令行尾
    ctrl+u 从光标所在位置删除到行首
    ctrl+z 把命令放入后台
    ctrl+r 在历史命令中搜索
    一次tab 补全 两次tab 提示
    shift+pageup 向上翻页
    shift+pagedown 向下翻页
  • 相关阅读:
    【Python】自己写日志功能
    shell 笔记
    python 字典,字典嵌套,字典遍历
    python基础 循环,列表,切片,列表增删改查
    Dva_react使用问题总结
    ts_react_test报错解决方法
    如何写好项目规划和方案设计文档 (转)
    script标签引入react环境三个必须cdn文件
    react点击事件对象( react封装过后事件对象 )
    react简书笔记一 环境, git 和 项目 关联
  • 原文地址:https://www.cnblogs.com/xiaohuochai/p/6657396.html
Copyright © 2011-2022 走看看