美文网首页
Linux常用命令

Linux常用命令

作者: 神乐g | 来源:发表于2019-05-14 08:58 被阅读0次

    > cd命令

    (change Directory) 说明:切换当前目录。这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。

    • 格式:cd [目录名]
    • 实例:
    命令 说明
    cd / 切换到根目录
    cd ~ 切换到"Home"目录
    cd 切换到"Home"目录
    cd - 切换到上一次工作路径
    cd. 切换到当前目录 .表示当前一级目录
    cd.. 切换到上一级目录 ..表示上一级目录

    > ls命令

    就是list的缩写,查看文件与目录的命令

    • 格式:ls [参数] [文件名]
    • 常用参数搭配:
    命令 说明
    -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
    -h 将文件容量以较易读的方式(GB,kB等)列出来
    -a 列出目录所有文件,包含以.开始的隐藏文件
    -A 列出除.及..的其它文件
    -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
    -t 以文件修改时间排序
    -s 在每个文件的前面打印出文件大小
    -S 以文件大小排序
    -r 反序排列
    -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
    -d 仅列出目录本身,而不是列出目录的文件数据

    > cat命令

    该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据

    cat主要有三大功能:

    1. 一次显示整个文件 cat filename
    2. 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
    3. 将几个文件合并为一个文件:cat file1 file2 > file 不存在新建,存在则覆盖
    4. 附加文档:cat file1 file3 >> file3

    • 格式:cat [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -b 对非空输出行号,从1开始
    -n 输出所有行号,从1开始
    -s 遇到连续两行以上的空白行,则替换成一行
    -E 每行结束处显示$
    -T 将TAB字符显示为^l
    • 例:
    1. 把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
      cat -n log2012.log > log2013.log
    2. 把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
      cat -b log2012.log log2013.log >> log.log
    3. 清空 /etc/test.txt 文档内容
      cat /dev/null > /etc/test.txt

    > grep命令

    该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等

    • 格式:grep [参数] pattern [文件名]
    • 常用参数搭配:
    参数 说明
    -i 忽略大小写
    -v 显示不包含匹配文本的所有行
    -n 显示匹配行及行号
    -a 将binary文件以text文件的方式查找数据
    -c 计算找到'pattern'的次数

    > find命令

    find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多,所以在这里将给把它们分类列出

    • 格式:find [路径] [参数] [动作]
    • 常用参数搭配:

    与时间有关的参数:

    参数 说明
    -mtime n 在n天之前的当天内被更改过的文件
    -mtime +n 在n天之前(不含n天本身)被更改过的文件
    -mtime -n 在n天之内(含n天本身)被更改过的文件
    • 例如:

    find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件

    与用户或用户组名有关的参数:

    参数 说明
    -user name 列出文件所有者为name的文件
    -group name 列出文件所属用户组为name的文件
    -uid n 列出文件所有者为用户ID为n的文件
    -gid n 列出文件所属用户组为用户组ID为n的文件
    • 例如:
    1. 在目录/home/ljianhui中找出所有者为ljianhui的文件
      find /home/ljianhui -user ljianhui

    与文件权限及名称有关的参数:

    参数 说明
    -name filename 找出文件名为filename的文件
    -size [+-]SIZE 找出比SIZE还要大(+)或小(-)的文件
    -perm mode 查找文件权限刚好等于mode的文件,mode用数字表示,如0755
    -perm -mode 查找文件权限必须要全部包括mode权限的文件,mode用数字表示
    -perm +mode 查找文件权限包含任一mode的权限的文件,mode用数字表示
    • 例如:
    1. 查找文件名为passwd的文件
      find / -name passwd
    2. 查找当前目录中文件权限的0755的文件
      find . -perm 0755
    3. 查找当前目录中大于12KB的文件,注意c表示byte
      find . -size +12k

    > cp命令

    该命令用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下

    • 注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖!
    • 格式:cp [参数] 源目录 目标目录
    • 常用参数搭配:
    参数 说明
    -i 若目标文件已经存在时,在覆盖时会先询问
    -r 递归持续复制,用于目录的复制行为
    -u 目标文件与源文件有差异时才会复制
    -a 将文件的特性一起复制
    -p 连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
    -l 不复制文件,只是生成链接文件
    -f 覆盖已经存在的目标文件而不给出提示
    • 例:
    1. 连同文件的所有特性把文件file1复制成文件file2
      cp -a file1 file2
    2. 把文件file1、file2、file3复制到目录dir中
      cp file1 file2 file3 dir

    > mv命令

    移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)

    • 格式:mv [参数] 源目录 目标目录
    • 常用参数搭配:
    参数 说明
    -i 若存在同名文件,则先询问是否覆盖旧文件
    -f force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    -u 若目标文件已经存在,且比目标文件新,才会更新
    • 例:
    1. 将文件test.log重命名为test1.txt
      mv test.log test1.txt
    2. 将文件log1.txt,log2.txt,log3.txt移动到根的test3目录中
      mv llog1.txt log2.txt log3.txt /test3
    3. 移动当前文件夹下的所有文件到上一级目录
      mv * ../

    > rm命令

    该命令用于删除文件或目录,remove之意,如果没有使用 -r 选项,则rm不会删除目录。如果使用 rm 来删除文件, 则无法恢复

    • 格式:rm [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -r 递归删除目录下的所有内容
    -f 忽视不存在的文件,不给予提示
    • 例:
    1. 删除任何.log文件;删除前逐一询问确认
      rm -i *.log
    2. 删除test子目录及子目录中所有档案删除,并且不用一一确认
      rm -rf test

    > rmdir命令

    从一个目录中删除一个或多个子目录项

    注意:不能删除非空目录

    • 格式:rmdir [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除
    • 例:
    1. 当Test子目录被删除后使parent也成为空目录的话,则顺便一并删除
      rmdir -p parent/Test

    > mkdir命令

    创建文件夹

    • 格式:mkdir [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -m 对新建目录设置存取权限,也可以用chmod命令设置
    -p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录
    • 例:
    1. 当前工作目录下创建名为t的文件夹
      mkdir t
    2. 在tmp目录下创建路径为a/b/c的目录,若不存在,则创建
      mkdir -p /tmp/a/b/c

    > pwd命令

    该命令用于删除文件或目录,remove之意,如果没有使用 -r 选项,则rm不会删除目录。如果使用 rm 来删除文件, 则无法恢复

    • 格式:pwd

    • 例:

    1. 查看当前路径
      pwd
    2. 查看软链接的实际路径
      pwd -P

    > less命令

    less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

    • 格式:less [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -i 忽略搜索时的大小写
    -N 显示每行的行号
    -o <文件名> 将less 输出的内容在指定文件中保存起来
    -s 显示连续空行为一行
    -x <数字> 将“tab”键显示为规定的数字空格
    /字符串 向下搜索“字符串”的功能
    ?字符串 向上搜索“字符串”的功能
    • 常用操作命令:
    命令 说明
    n 向下n行,需要定义。默认为1行
    N 向下滚动一屏
    b 向下滚动一屏
    d 返回上一屏
    h 输出当前行的行号
    Q 输出文件名和当前行的行号
    u 调用vi编辑器
    y 退出more
    空格键 输出当前行的行号
    回车键 输出文件名和当前行的行号
    [pagedown] 向下翻动一页
    [pageup] 向上翻动一页
    • 例:
    1. ps查看进程信息并通过less分页显示
      ps -aux | less -N
    2. 查看多个文件
      less 1.log 2.log
      可以使用n查看下一个,使用p查看前一个

    > more命令

    功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示

    • 格式:more [参数] 文件名
    • 常用参数搭配:
    参数 说明
    +n 从第n行开始
    -n 定义屏幕大小为n行
    +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
    -c 从顶部清屏,然后显示
    -s 把连续的多个空行显示为一行
    • 常用操作命令:
    命令 说明
    Enter 向下n行,需要定义。默认为1行
    空格键 向下滚动一屏
    Ctrl+F 向下滚动一屏
    Ctrl+B 返回上一屏
    = 输出当前行的行号
    :f 输出文件名和当前行的行号
    v 调用vi编辑器
    q 退出more
    • 例:
    1. 显示文件中从第3行起的内容
      more +3 text.txt
    2. 在所列出文件目录详细信息,借助管道使每次显示5行,按空格显示下5行
      ls -l | more -5

    > head命令

    head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

    • 格式:head [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -n <行数> 显示的行数(行数为负数表示从最后向前数)
    -c <行数> 显示前n个字节内容
    • 例:
    1. 显示1.log文件中前20行
      head 1.log -n 20
    2. 显示1.log文件前20字节
      head -c 20 log2014.log
    3. 显示t.log最后10行
      head -n -10 t.log

    > tail命令

    用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

    • 格式:tail [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -f 循环读取(常用于查看递增的日志文件)
    -n <行数> 显示行数(从后向前)
    -c <数目> 显示的字节数
    -q 不显示处理信息
    -v 显示详细的处理信息
    --pid==PID 与-f合用,表示在进程ID,PID死掉之后结束
    • 例:
    1. 循环读取逐渐增加的文件内容
      ping 127.0.0.1 > ping.log &(后台运行:可使用jobs -l查看,也可使用fg将其移到前台运行)tail -f ping.log

    > which命令

    Linux which命令用于查找文件。
    which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

    • 格式:which [参数] 文件名

    • 例:

    1. 查看ls命令是否存在,执行哪个
      which ls
    2. 查看which
      which which
    3. 查看cd
      which cd (显示不存在,因为cd是内建命令,而which查找显示是PATH中的命令)

    查看当前PATH配置:echo $PATH;或使用env查看所有环境变量及对应值

    > wc命令

    wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出

    • 格式:wc [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -c 统计字节数
    -l 统计行数
    -m 统计字符数
    -w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串
    • 例:
    1. 查找文件的 行数 单词数 字节数 文件名
      wc text.txt 结果:7 8 70 test.txt
    2. 统计输出结果的行数
      cat test.txt | wc -l

    > tar命令

    该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压

    弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件

    tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

    • 格式:tar [参数] 打包文件名.tar 要打包的文件
    • 常用参数搭配:
    参数 说明
    -c 建立新的压缩文件
    -x 从压缩包中抽取文件
    -f 指定压缩文件,必选
    -r 添加文件到已经压缩文件包中
    -u 添加改了和现有的文件到压缩包中
    -t 显示压缩文件中的内容
    -z 支持gzip压缩
    -j 支持bzip2压缩
    -Z 支持compress解压文件
    -v 显示操作过程
    • 例:
    1. 将文件全部打包成tar包
      tar -cvf log.tar 1.log,2.log 或tar -cvf log.*
    2. 将/etc下的所有文件及目录打包到指定目录,并使用gz压缩
      tar -zcvf /tmp/etc.tar.gz /etc
    3. 查看刚打包的文件内容(一定加z,因为是使用gzip压缩的)
      tar -ztvf /tmp/etc.tar.gz
    4. 将指定文件解压到指定/etc目录下
      tar -zxvf /tmp/etc.tar.gz -C /etc

    注:文件名并不定要以后缀tar.gz结尾,这里主要是为了说明使用的压缩程序为gzip

    > time命令

    该命令用于测算一个命令(即程序)的执行时间。它的使用非常简单,就像平时输入命令一样,不过在命令的前面加入一个time即可

    在程序或命令运行结束后,在最后输出了三个时间,它们分别是:
    user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;
    system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;
    real:实际时间,从command命令行开始执行到运行终止的消逝时间;

    注:用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务。另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。


    • 格式:time 命令/程序名

    • 例:

    1. 查看程序运行时间
      time ./process
    2. 查看命令运行时间
      time ps aux

    > chgrp命令

    该命令用于改变文件所属用户组

    • 格式:chgrp groupname [-R] 文件名
    • 常用参数搭配:
    参数 说明
    -R 进行递归的持续对所有文件和子目录更改
    • 例:
    1. 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users
      chgrp users -R ./dir

    > chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符

    • 格式:chown [参数] user[:group] 文件名
    • 常用参数搭配:
    参数 说明
    -c 显示更改的部分的信息
    -R 进行递归的持续对所有文件和子目录更改
    -f 忽略错误信息
    -v 显示详细的处理信息
    • 例:
    1. 改变拥有者和群组 并显示改变信息
      chown -c mail:mail log2012.log
    2. 改变文件群组
      chown -c :mail t.log
    3. 改变文件夹及子文件目录属主及属组为mail
      chown -cR :mail test/

    > chmod命令

    用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

    每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用ls -l test.txt查找

    以文件log2012.log为例:

    -rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

    第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。


    • 格式:chown [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -R 进行递归的持续对所有文件和子目录更改
    -c 当发生改变时,报告处理信息
    • 权限范围:
    u 目录或者文件的当前的用户
    g 目录或者文件的当前的群组
    o 除了目录或者文件的当前用户或群组之外的用户或者群组
    a 所有的用户及群组
    • 权限代号:
    r 读权限,用数字4表示
    w 写权限,用数字2表示
    x 执行权限,用数字1表示
    s 特殊权限
    + 表示增加权限
    - 删除权限,用数字0表示
    = 表示唯一设定权限
    • 例:
    1. 增加文件t.log所有用户可执行权限
      chmod a+x t.log
    2. 撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息
      chmod u=r t.log -c
    3. 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
      chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)
    4. 将test目录及其子目录所有文件添加可读权限
      chmod u+r,g+r,o+r -R text/ -c

    > ps命令

    ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用top
    linux上进程有5种状态:

    • 运行(正在运行或在运行队列中等待)
    • 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
    • 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
    • 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
    • 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

    ps工具标识进程的5种状态码:

    • D 不可中断 uninterruptible sleep (usually IO)
    • R 运行 runnable (on run queue)
    • S 中断 sleeping
    • T 停止 traced or stopped
    • Z 僵死 a defunct (”zombie”) process

    • 格式:ps [参数]
    • 常用参数:
    参数 说明
    -A 所有的进程均显示出来
    -a 不与terminal有关的所有进程
    -u 有效用户的相关进程
    -x 一般与a参数一起使用,可列出较完整的信息
    -l 较长,较详细地将PID的信息列出
    f 显示进程间的关系
    r 显示当前终端运行的进程
    e 显示环境变量
    • 命令参数搭配:
    参数 说明
    aux 查看系统所有的进程数据
    ax 查看不与terminal有关的所有进程
    --lA 查看系统所有的进程数据
    axjf 查看连同一部分进程树状态
    • 例:
    1. 显示当前所有进程环境变量及进程间关系
      ps -ef
    2. 与grep联用查找某进程
      ps -aux | grep apache

    > top命令

    该命令用于删除文件或目录,remove之意,如果没有使用 -r 选项,则rm不会删除目录。如果使用 rm 来删除文件, 则无法恢复

    • 格式:rm [参数] 文件名
    • 常用参数搭配:
    参数 说明
    -c 显示完整的进程命令
    -s 保密模式, 将交谈式指令取消,避免潜在的危机
    -p <进程号> 指定进程显示
    -n <次数> 循环显示次数
    -d 改变显示的更新速度
    -i 不显示任何闲置 (idle) 或无用 (zombie) 的行程
    -b 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
    • 例:
    1. 设置信息更新次数
      top -n 2
    2. 显示指定的进程信息
      top -p 139
    3. 将更新显示二次的结果输入到名称为 top.log 的档案里
      top -n 2 -b > top.log

    > kill命令

    发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

    • 格式:kill [参数] PID
    • 常用参数搭配:
    参数 说明
    -l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
    -u 指定用户

    signal的常用参数如下:

    信号 说明
    1 SIGHUP,启动被终止的进程
    2 SIGINT,相当于输入ctrl+c,中断一个程序的进行
    9 SIGKILL,强制中断一个进程的进行
    15 SIGTERM,以正常的结束进程方式来终止进程
    17 SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
    • 例:
    1. 杀死进程
      kill 12345
    2. 强制杀死进程
      kill -KILL 12345
    3. 彻底杀死进程
      kill -9 12345
    4. 杀死指定用户所有进程
      kill -9 $(ps -ef | grep shenle) //方法一 过滤出shenle用户进程
      kill -u shenle //方法二

    > file命令

    该命令用于判断接在file命令后的文件的基本数据,因为在Linux下文件的类型并不是以后缀为分的,所以这个命令对我们来说就很有用了

    • 格式:file 文件名
    • 例:
    1. 查看文件类型
      file ./test.c

    相关文章

      网友评论

          本文标题:Linux常用命令

          本文链接:https://www.haomeiwen.com/subject/qcjraqtx.html