linux操作命令大全-文件目录操作

2021-07-13 06:13:36  晓掌柜  版权声明:本文为站长原创文章,转载请写明出处


一、前言

        最近新项目上线,经常需要进行测试环境的发布、更新以及运行状况的监测。期间很多会涉及到linux的命令操作,甚至有一些命令记得不是太准确还要

    去网上收集。当然秉承着快速易用的原则,做一个自己的内容维护起来是最好的。

        由于内容过长,系列文章先后会按照功能区域划分为8篇,从不同角度罗列常用操作命令。内容多整理自网络,如有错误还请指正,侵删!

二、文件目录操作命令大全

    2.1、ls命令

        ls 命令不仅可以查看 linux 文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。

       命令格式:

        ls [选项][目录名]

       常用参数:

  •         -l :列出长数据串,包含文件的属性与权限数据等
  •         -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
  •         -d :仅列出目录本身,而不是列出目录的文件数据
  •         -h :将文件容量以较易读的方式(GB,kB等)列出来
  •         -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

        使用实例:

        1.列出 home 目录下的所有文件和目录的详细资料。

ls -a -l /home ls -al /home

        2.列出当前目录下所有以"d"开头的文件目录详情内容。

ls -l d*

    2.2.cd命令

        最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。用于切换当前目录至dirName。

       命令格式:

        cd [目录名]

       操作案例:

        1.从当前目录进入系统根目录。

cd /

        2.跳转到 home/Code 目录。

            cd /home/Code

    2.3.pwd命令

        查看"当前工作目录"的完整路径。

       命令格式:

        pwd [选项]

        常用参数:

  •         -P :显示实际物理路径,而非使用连接(link)路径
  •         -L :当目录为连接路径时,显示连接路径

       操作案例:

        1.显示当前所在路径。

pwd

    2.4、mkdir命令

        用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

       命令格式:

        mkdir [选项] 目录

       常用参数:

  •         -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
  •         -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
  •         -v, --verbose 每次创建新目录都显示信息
  •         --help 显示此帮助信息并退出
  •         --version 输出版本信息并退出

       使用实例:

        1.创建一个空目录。

mkdir test

        2.递归创建多个目录。

mkdir test/test1

        3.创建权限为777的目录。

mkdir -m 777 test2

        4.创建目录都显示信息。

            mkdir -v test4

    2.5、rm命令

        删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

       命令格式:

        rm [选项] 文件

        常用参数:

  •         -f, --force 忽略不存在的文件,从不给出提示。
  •         -i, --interactive 进行交互式删除
  •         -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
  •         -v, --verbose 详细显示进行的步骤
  •         --help 显示此帮助信息并退出
  •         --version 输出版本信息并退出

        使用实例:

        1.删除文件 test.txt,系统会提示是否删除。

rm test.txt

        2.强制删除 test.txt,系统不再提示。

rm -f test.txt

        3.将 test 子目录及目录中所有档案删除。

rm -r test

    2.6、rmdir命令

        该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。

       命令格式:

        rmdir [选项] 目录

       常用参数:

  •         p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出
  •         上显示相应的信息。


  •        -v, --verbose 显示指令执行过程

       使用实例:

        1.删除空目录 test1,非空目录无法删除。

rmdir test1

        2.当子目录被删除后使它也成为空目录的话,则顺便一并删除

rmdir -p test2 # test 目录下仅有 test2

    2.7、mv命令

        可以用来移动文件或者将文件改名(move (rename) files)。当第二个参数类型是文件时,mv命令完成文件重命名。当第二个参数是已存在的目录名称时,

        源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

       命令格式:

        mv [选项] 源文件或目录 目标文件或目录

       常用参数:

  •         -b :若需覆盖文件,则覆盖前先行备份
  •         -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  •         -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
  •         -u :若目标文件已经存在,且 source 比较新,才会更新(update)
  •         -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个
  •             目录的情况,此时目标目录在前,源文件在后

       使用实例:

        1.将 test1.txt 重命名为 test2.txt。

mv test1.txt test2.txt

        2.移动文件 test1.txt 到目录 test2

mv test1.txt test2

        3.将文件 test1.txt、test2.txt、test3.txt 移动到目录 test3。

mv test1.txt test2.txt test3.txt test3

    2.8、cp命令

        将源文件复制至目标文件,或将多个源文件复制至目标目录。

       命令格式:

        cp [选项] 源文件 目录 或 cp [选项] -t 目录 源文件

       常用参数:

  •         -t --target-directory 指定目标目录
  •         -i --interactive 覆盖前询问(使前面的 -n 选项失效)
  •         -n --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
  •         -f --force 强行复制文件或目录,不论目的文件或目录是否已经存在
  •         -u --update 使用这项参数之后,只会在源文件的修改时间较目的文件更新时,或是对应的目的文件并不存在,才复制文件

       使用实例:

        1.复制文件 test1.txt 到 test1 目录

cp test1.txt test1 # 若文件存在,会提示是否覆盖。若不存在直接完成复制

        2.复制test1整个目录到test2

cp -a test1 test2

    2.9、touch命令

        touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。

       命令格式:

        touch [选项] 文件

       常用参数:

  •         -a 或--time=atime或--time=access或--time=use  只更改存取时间
  •         -c 或--no-create  不建立任何文档
  •         -d  使用指定的日期时间,而非现在的时间
  •         -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
  •         -m 或--time=mtime或--time=modify  只更改变动时间
  •         -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同 -t  使用指定的日期时间,而非现在的时间

       使用实例:

        1.创建不存在的文件test.txt

touch test.txt

        2.更新 test.txt 的实践和 test1.txt 时间戳相同

            touch -r test.txt test1.txt    

    2.10、cat命令

        用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

       命令格式:

        cat [选项] [文件]

       常用参数:

  •         -A, --show-all 等价于 -vET
  •         -b, --number-nonblank 对非空输出行编号
  •         -e 等价于 -vE
  •         -E, --show-ends 在每行结束处显示 $
  •         -n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
  •         -s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
  •         -t 与 -vT 等价
  •         -T, --show-tabs 将跳格字符显示为 ^I
  •         -u (被忽略)
  •         -v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

       使用实例:

        1.把 test.log 的文件内容加上行号后输入 test1.log 这个文件里。

cat -n test.log test1.log

        2.将test.log的文件内容反向显示

tac test.log

    2.11、nl命令

        输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动

        补齐 0 等等的功能。

       命令格式:

        nl [选项] [文件]

       常用参数:

  •         -b :指定行号指定的方式,主要有两种:
    •         -b a :表示不论是否为空行,也同样列出行号(类似 cat -n)
    •         -b t :如果有空行,空的那一行不要列出行号(默认值)


  •         -n :列出行号表示的方法,主要有三种:
    •         -n ln :行号在萤幕的最左方显示
    •         -n rn :行号在自己栏位的最右方显示,且不加 0
    •         -n rz :行号在自己栏位的最右方显示,且加 0


  •         -w :行号栏位的占用的位数

        使用实例:

        1.用 nl 列出 test.log 的内容。

nl test.log

        2.用ml列出test.loc的内容,空本行也加上行号

nl -b a test.log

    2.12、more命令

        more 命令和 cat 的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

       命令格式:

        more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]

       常用参数:

  •         +n 从笫n行开始显示
  •         -n 定义屏幕大小为n行
  •         +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
  •         -c 从顶部清屏,然后显示
  •         -d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
  •         -l 忽略Ctrl+l(换页)字符
  •         -p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
  •         -s 把连续的多个空行显示为一行
  •         -u 把文件内容中的下画线去掉

       操作指令:

  •         Enter:向下n行,需要定义。默认为1行
  •         Ctrl+F:向下滚动一屏
  •         空格键:向下滚动一屏
  •         Ctrl+B:返回上一屏
  •         = :输出当前行的行号
  •         :f :输出文件名和当前行的行号
  •         V :调用vi编辑器
  •         !命令 :调用Shell,并执行命令
  •         q :退出more

       使用实例:

        1.显示文件 test.log 第3行起内容。

more +3 test.log

        2.从文件 test.log 查找第一个出现“day3”字符串的行,并从该处前2行开始显示输出。

more +/day3 test.log

        3.设置每屏显示行数

more -5 test.log

    2.13、less命令

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

       命令格式:

        less [参数] 文件

       常用参数:

  •         -b <缓冲区大小> 设置缓冲区的大小
  •         -e 当文件显示结束后,自动离开
  •         -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  •         -g 只标志最后搜索的关键词
  •         -i 忽略搜索时的大小写
  •         -m 显示类似more命令的百分比
  •         -N 显示每行的行号
  •         -o <文件名> 将less 输出的内容在指定文件中保存起来
  •         -Q 不使用警告音
  •         -s 显示连续空行为一行
  •         -S 行过长时间将超出部分舍弃
  •         -x <数字> 将“tab”键显示为规定的数字空格

       操作命令:

  •         /字符串:向下搜索“字符串”的功能
  •         ?字符串:向上搜索“字符串”的功能
  •         n:重复前一个搜索(与 / 或 ? 有关)
  •         N:反向重复前一个搜索(与 / 或 ? 有关)
  •         b 向后翻一页
  •         d 向后翻半页
  •         h 显示帮助界面
  •         Q 退出less 命令
  •         u 向前滚动半页
  •         y 向前滚动一行
  •         空格键 滚动一行
  •         回车键 滚动一页
  •         [pagedown]: 向下翻动一页
  •         [pageup]: 向上翻动一页

       使用实例:

        1.查看文件 test.log。

less test.log

    2.14、head命令

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

       命令格式:

        head [参数] [文件]

       常用参数

  •         -q 隐藏文件名
  •         -v 显示文件名
  •         -c<字节> 显示字节数
  •         -n<行数> 显示的行数

       使用实例:

        1.显示文件 test.log 的前 5 行

head -n 5 test.log

        2.显示文件 test.log 前 20 个字节

head -c 20 test.log

    2.15、tail命令

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

       命令格式:

        tail [必要参数] [选择参数] [文件]

       常用参数:

  •         -f 循环读取
  •         -q 不显示处理信息
  •         -v 显示详细的处理信息
  •         -c<数目> 显示的字节数
  •         -n<行数> 显示行数
  •         --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
  •         -q, --quiet, --silent 从不输出给出文件名的首部
  •         -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

       使用实例:

        1.显示文件 test.log 最后 5 行内容。

tail -n 5 test.log

        2.循环查看文件内容

tail -f test.log


三、后记

    后面会持续输出其他方面的linux相关命令,更多精彩请持续关注:guangmuhua.com



最新评论: