Linux 文件与目录基本操作命令

一、显示文件内容命令

01 cat

  • 英文全称:concatenate
  • 命令格式:cat [option] filename
  • 命令作用:读取文件内容并打印到标准输出设备
  • 命令选项(option):
    • -n :由 1 开始对所有输出的行数编号
    • -b :由 1 开始对所有输出的行数编号,但对空白行不编号
    • -s :当遇到有连续两行以上的空白行,就代换为一行的空白行
    • -v :用一种特殊形式显示控制字符,LFD 与 TAB 除外
    • -T :将 TAB 字符显示为 “^I”,需要搭配-v 一起使用,单独使用该选项将被忽略
    • -E :在每行的末尾显示一个 “$”
    • -u :输出不经过缓冲区
    • -A :等价于-vET ,即显示控制字符(LFD 与 TAB 除外),将 TAB 字符显示为 “^I”,并在每行的末尾显示一个 “$”
    • -t :等价于-vT ,即显示控制字符(LFD 与 TAB 除外),将 TAB 字符显示为 “^I”
    • -e :等价于-vE ,即显示控制字符(LFD 与 TAB 除外),并在每行的末尾显示一个 “$”

02 more

  • 英文全称:more
  • 命令格式:more [option] filename
  • 命令作用:逐页显示文件内容
  • 查看文件的过程中,因为某些文本过于庞大,导致文本在屏幕上快速地闪过,用户来不及看清内容。该命令可以一次显示一屏文本,并在终端底部打印出 “–more–”,系统还将同时显示出已显示文本占全部文本的百分比。若要继续显示,按回车或空格键即可。
  • more 只能一直向后翻页,无法向前翻页
  • 命令选项(option):
    • -num :一次显示num指定的行数
    • -p :先清屏再显示下一屏内容
    • -c :先显示内容再清除其他旧资料,但在感官上的感知类似 -p
    • -d :提示使用者,在每屏的底部显示更友好的提示信息:“ --more–(XX%)[Press space to continue, ‘q’ to quit.] ”;如果使用者按错键,则会显示 “ [Press ‘h’ for instructions.] ” 而不是 ’ 哔 ’ 声
    • -s :当遇到有连续两行以上的空白行,就代换为一行的空白行
    • +num : 从第 num 行开始显示
    • +/pattern :在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示

03 less

  • 英文全称:less
  • 命令格式:less [option] filename
  • 命令作用:逐页显示文件内容

less 命令的功能和 more 命令的功能基本相同,也是按页显示文件,但是 less 命令在显示文件的时候,用户既可以向前也可以向后逐行翻阅文件,而 more 命令只能向后翻阅文件,可以将 less 命令看做是 more 命令的加强版

  • 命令参数(option):与 more 命令类似,不再举例

04 head

  • 英文全称:head
  • 命令格式:head -number filename
  • 命令作用:只显示文件或标准输入的头几行内容
  • 如果用户希望查看一个文件保存的是什么内容,只需要查看文件的头几行,而不必浏览整个文件,便可以使用该命令
  • 该命令用来显示每个文件的前面指定的 number 行
  • 如果没有给定 number 值,默认设置为 10
  • 如果没有指定 filename,则 head 默认从标准输入读取

05 tail

  • 英文全称:tail
  • 命令格式:tail option filename
  • 命令作用:只显示文件或标准输入的末尾几行内容
  • 如果用户只需要查看文件的尾部,可以使用该命令
  • 该命令用来显示每个文件末尾指定的 number 行
  • 如果没有给定 number 值,默认设置为 10
  • 如果没有指定 filename,则 tail 默认从标准输入读取
  • 命令选项(option):
    • -n<行数> :显示文件的尾部 n 行内容
    • +num :从第 num 行以后开始显示
    • -num :从距文件末尾 num 处开始显示
    • -c :以字节为 num 的计数单位,与 +num-num 一起使用时,num 表示要显示的字符数
      • ⭐ 参数 -c 可以忽略,系统默认值为 1,即按行计

⭐ 小技巧:

  • clear 清屏 (满屏都是命令,头大,clear一键消除烦恼)

二、文件内容查询命令

grep、egrep、fgrep

  • 英文全称:global regular expression print
  • 命令格式:grep/egrep/fgrep [option] [pattern] [file1, file2, …]
  • 命令作用:只显示文件或标准输入的末尾几行内容
  • 如果用户只需要查看文件的尾部,可以使用该命令
  • 该命令用来显示每个文件末尾指定的 number 行
  • 如果没有给定 number 值,默认设置为 10
  • 如果没有指定 filename,则 tail 默认从标准输入读取
  • 命令选项(option):
    • -n<行数> :显示文件的尾部 n 行内容
    • +num :从第 num 行以后开始显示

三、文件查找命令

01 find

  • 英文全称:find
  • 命令格式:find [option] filename
  • 命令作用:在指定的目录开始递归的搜索其各个子目录,查找满足寻找条件的文件,并对其采取相关的操作

find 命令提供的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件,使用如下:

  • and:逻辑与,在命令中用 -a 表示,是系统默认的选项,表示只有当所给的条件都满足时,寻找条件才满足
  • or:逻辑或,在命令中用 -o 表示,表示只要所给的条件有一个满足时,寻找条件就满足
  • not:逻辑非,在命令中用 ! 表示,表示查找不满足所给的条件的文件

find 功能强大但是效率较低

  • 命令选项(option):
    • -name ‘字串’ :查找文件名匹配所给字串的所有文件(字串内可用通配符*?[])
      * 表示一个字符串
      ? 表示一个字符
      它们只能通配文件名或扩展名,不能全都表示
    • -lname ‘字串’ :查找文件名匹配所给字串的所有符号链接文件(字串内可用通配符*?[])
    • -empty :查找大小为 0 的目录或文件
    • -exec cmd{} :对符合条件的文件执行所给的Linux命令(cmd代指),并且不询问用户是否要执行命令
      • {} :表示命令的参数即为所找到的文件
      • ⭐ 命令的末尾必须以 ; 结束
    • -ok cmd{} :对符合条件的文件执行所给的Linux命令(cmd代指),并且询问用户是否要执行命令
      • {} :表示命令的参数即为所找到的文件
      • ⭐ 命令的末尾必须以 ; 结束
    • -ls :详细列出所找到的所有文件
    • -print :在标准输出设备上显示查找出的文件名
    • -gid n :查找属于ID号为n的用户组的所有文件
    • -uid n :查找属于ID号为n的用户的所有文件
    • -group string :查找属于用户组名为所给字串的所有文件
    • -user string :查找属于用户名为所给字串的所有文件
    • -size n[bckw] :查找指定文件大小的文件(n 后面的字符表示单位,默认为 b,代表512字节的块)
    • -path string :查找路径名与所给字符串相匹配的所有文件(字串内可用通配符*?[])
    • -perm permission :查找具有指定权限的文件和目录

02 locate

  • 英文全称:locate
  • 命令格式:locate [option] filename
  • 命令作用:查找文件

locate 比 find 的搜索速度快

03 where is

  • 英文全称:whereis
  • 命令格式:whereis cmd
  • 命令作用:查找命令,可以知道命令文件在哪

04 which

  • 英文全称:which
  • 命令格式:which cmd
  • 命令作用:查看命令的位置

四、文件处理命令

01 sort

  • 英文全称:sort
  • 命令格式:sort [option] filename
  • 命令作用:对文件中的各行进行排序
  • sort 排序是根据从输入行抽取的一个或多个关键字进行比较来完成的
  • 排序关键字定义了用来排序的最小的字符序列
  • sort 排序在默认情况下,以整行为关键字按ASCII字符顺序进行排序
  • 如果没有给定 number 值,默认设置为 10
  • 如果没有指定 filename,则 tail 默认从标准输入读取
  • 字段编号从 0 开始计算
  • 命令选项(option):
    • -c :检查给定文件是否已排好序,如果它们都没有排好序,则打印一个出错信息,并以状态值1退出
    • -u :对排序后认为相同的行只保留其中一行,起到去重的作用
    • -d :按字典顺序排序,比较时仅字母、数字、空格和制表符有意义
    • -r :按逆序(即降序)输出排序结果(默认是升序)
    • -n :按照数字大小排序
    • +pos1 -pos2 :指定一个或几个字段作为排序关键字,字段位置从 pos1 开始,到 pos2 为止(包括 pos1,不包括 pos2);如不指定 pos2,则关键字为从 pos1 到行尾; 字段和字符的位置从 0 开始
    • -t separator :指定字符 separator 作为字段分隔符
    • -f :将小写字母与大写字母同等对待
    • -I :忽略非打印字符
    • -M :作为月份比较,“JAN” < “FEB” < ? < “DEC”
    • -b :在每行中寻找排序关键字时忽略前导的空白(空格和制表符)
    • -o :输出文件将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort 便将该文件的内容写入一个临时文件,然后再排序和写输出结果

02 uniq

  • 英文全称:unique
  • 命令格式:uniq [option] filename
  • 命令作用:只显示文件或标准输入的末尾几行内容
  • 如果用户只需要查看文件的尾部,可以使用该命令
  • 该命令用来显示每个文件末尾指定的 number 行
  • 如果没有给定 number 值,默认设置为 10
  • 如果没有指定 filename,则 tail 默认从标准输入读取
  • 命令选项(option):
    • -d :只显示重复的行
    • -u :只显示文件中不重复的行
    • -c :显示输出中,在每行行首加上本行在文件中出现的次数;可用来取代-d-u
    • -n :前n个字段与每个字段前的空白一起被忽略;一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从 0 开始编号)
    • +n :前n个字符被忽略,之前的字符被跳过(字符从0开始编号)
    • -f n :与-n相同,这里 n 是字段数
    • -s n :与-n相同,这里 n 是字符数

五、文件内容统计命令

01 wc

  • 英文全称:word count
  • 命令格式:wc [option] filename
  • 命令作用:统计给定文件中的字节数、字数、行数
  • 如果没有给定文件名,则从标准输入中读取
  • wc 同时也给出所有指定文件的总统计数
  • 字是由空格字符区分开的最大字符串
  • 命令选项(option):
    • -c :统计字节数
    • -l :统计行数
    • -w :统计字数
    • -L :统计最长行的长度

六、文件比较命令

01 comm

  • 英文全称:common
  • 命令格式:common [option] filename
  • 命令作用:对两个已经排好序的文件进行比较
  • 如果文件没有排好序,则先用 sort 对文件进行排序
  • comm 读取已经排序好的两个文件file1和file2,然后生成3列输出:仅在 file1 中出现的行;仅在 file2 中出现的行;在两个文件中都存在的行
  • 如果文件名用 “-”,则表示从标准输入中读取
  • 命令选项(option):
    • -1/2/3 :控制comm显示的相应的3列是否显示

02 diff

  • 英文全称:different
  • 命令格式:diff [option] file1 file2 diff [option] dir1 dir2
  • 命令作用:逐行比较两个文本文件,列出其不同之处

diff 对给出的文件进行系统地检查,并显示出两个文件中所有不同的行,且不要求事先对文件进行排序

  • 命令选项(option):
    • -b :忽略行尾的空格,对字符串中的一个或多个空格符都视为相等
    • -c :采用上下文输出格式(提供 3 行上下文)
    • -C n :采用上下文输出格式(提供 n 行上下文)
    • -e :产生一个合法的ed脚本作为输出
    • -r :当 file1 和 file2 是目录时,递归作用到各文件和目录上

七、文件的复制、移动和删除命令

01 cp

  • 英文全称:copy
  • 命令格式:cp [option] [src_file|src_dir] [dst_file|dst_dir]
  • 命令作用:将给出的文件或目录复制到另一文件或目录中
  • 命令选项(option):
    • -a :复制目录时使用,保留链接、文件属性,并递归地复制目录
    • -d :复制时保留链接
    • -f :删除已经存在的目标文件而不提示(类似 ctrl+X)
    • -i :交互式复制文件,在覆盖目标文件之前将给出提示要求用户确认,回答 “ y ” 时目标文件将被覆盖

    ⭐ 有时,用户在不经意的情况下用 cp 命令破坏另一个文件,比如,用户指定的目标文件名是一个已存在的文件名,用 cp 命令复制文件后,这个文件就会被新复制的源文件覆盖。因此,建议用户在使用 cp 命令复制文件时,最好使用参数-i

    • -r :若给出的源文件是一个目录文件,此时 cp 将递归复制该目录下所有的子目录和文件,此时目标文件必须为一个目录名
    • -p :此时 cp 除复制源文件的内容外,还将其修改时间和访问权限也复制到新文件中
    • -l :不做复制,只是链接文件

02 mv

  • 英文全称:move
  • 命令格式:mv [option] [src_file|src_dir] [dst_file|dst_dir]
  • 命令作用:为文件或目录改名或将文件由一个目录移入另一个目录
  • 命令选项(option):
    • -i :以交互方式进行操作,如果 mv 操作将导致对已存在的目标文件的覆盖,此时系统进行提示要求用户确认,回答 “ y ” 或 “ n ”,避免误覆盖文件

    ⭐ 为防止用户在不经意的情况下用 mv 命令破坏另一个文件,建议用户在使用 mv 命令移动文件时,最好使用参数-i

    • -f :禁止交互操作,在 mv 操作要覆盖某已有的目标文件时将不给任何提示,参数 -i 不再起作用;如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖

03 rm

  • 英文全称:remove
  • 命令格式:rm [option] [files | dirs]
  • 命令作用:删除文件
  • rm 命令可以删除一个目录中的一个或多个文件,也可以将某个目录及其下的所有文件及子目录均删除
  • 对于链接文件,rm 命令只是删除链接,原有文件均保持不变
  • ⭐ 使用 rm 命令要格外小心,因为一旦文件被删除,恢复起来相当麻烦。为了避免发生这种情况,可以使用参数-i来确认是否删除文件。当用户输入“y”,文件将被删除,如果输入其他东西,文件将被保留
  • 命令选项(option):
    • -f :忽略不存在的文件,从不给出提示
    • -i :进行交互式删除
    • -r :指示 rm 将参数中列出的全部目录和子目录均递归地删除,如果没有使用该参数,则 rm 不会删除目录

八、文件链接命令

01 ln

  • 英文全称:link
  • 命令格式:ln [option] file link
  • 命令作用:在文件之间创建链接
  • 链接类型:
    • 硬链接(Hard Link)
      • 建立硬链接时,链接文件和被链接文纪念必须位于同一个文件系统中,并且不能建立指向目录的硬链接
    • 符号链接(Symbolic Link),也称为软链接
  • 默认情况下,ln 产生硬链接
  • 命令选项:
    • -s :建立符号链接

九、目录的创建与删除命令

01 mkdir

  • 英文全称:make directory
  • 命令格式:mkdir [option] [dirname]
  • 命令作用:创建名为 dirname 的目录

mkdir 要求创建目录的用户在当前目录(即 dirname 的父目录)中具有写权限,并且 dirname 不能是当前目录中已有的目录或文件名称

  • 命令选项:
    • -m :对新建目录设置存取权限(也可用 chmod 命令设置)
    • -p :可以一次建立多个目录,使用-p后 dirname 可以是一个路径名称,此时若路径中的某些目录尚未创建,系统将自动创建好这些尚未创建的目录

02 rmdir

  • 英文全称:remove directory
  • 命令格式:rmdir [option] [dirname]
  • 命令作用:删除名为 dirname 的目录
  • rmdir 可以从一个目录中删除一个或多个子目录项,需要注意的是一个目录被删除之前必须是空的
  • rmdir 在删除目录时要求必须具有对父目录的写权限
  • rm -r dir命令可代替rmdir,但是有很大的危险性
  • 命令选项:
    • -p :递归删除目录 dirname,当子目录删除后其父目录为空时,也一同被删除,如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息

十、改变工作目录、显示路径及显示目录内容命令

01 cd

  • 英文全称:change directory
  • 命令格式:cd [directory]
  • 命令作用:改变当前工作目录为 directory 所指定的目录
  • 注意:
    • 若没有指定 directory,则回到用户的主目录。

02 pwd

  • 英文全称:print working directory
  • 命令格式:pwd
  • 命令作用:显示当前工作目录的路径

pwd 命令显示当前工作目录的绝对路径,不是相对路径

03 ls

  • 英文全称:list

  • 命令格式:ls [option] [dirname | filename]

  • 命令作用:列出目录的内容

  • 命令选项:

    • -a :显示指定目录下所有的子目录与文件,包括隐藏文件
    • -A :显示指定目录下所有的子目录与文件,包括隐藏文件,但不列出 “.” 和 “..
    • -d :如果参数是目录,只显示其名称而不显示其下的各个文件,常与-l选项一起使用,以得到目录的详细信息
    • -l :以长格式来显示文件的详细信息
    • 每行列出的信息依次是:文件类型与权限链接数文件属主文件属组文件大小文件建立或最近修改的时间文件名字
    • 对于符号链接文件,显示的文件名之后有 “— >”和引用的文件路径名
    • 对于设备文件,其“文件大小”字段显示主、次设备号
    • 目录中的总块数显示在长格式列表的开头,其中包含间接块
    • ls -l 命令可用 ll 来代替,二者等价
    • -n :以长格式来显示文件的详细信息,但在输出中文件属主和属组是用相应的UID号和GID号来表示,而不是实际的名称
    • -R :递归式地显示指定目录的各个子目录中的文件

ls -l 命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文件类型,有以下几种:

  • - :普通文件
  • d :目录
  • l :符号链接
  • b :块设备文件
  • c :字符设备文件

后面的9个字符表示文件的访问权限,分为3组,每组3位:

  • 第一组表示文件属主的权限
  • 第二组表示同组用户的权限
  • 第三组表示其他用户的权限
    每一组的3个字符分别表示对文件的读、写和执行权限,具体如下所示:
字 符文件权限目录权限
r可读取可读取
w可写入可写入
x可执行可执行
s当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组ID)当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组ID)
t设置标志位(留在内存,不被换出)。如果该文件是目录,在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果是可执行文件,在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件设置标志位(留在内存,不被换出)。如果该文件是目录,在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果是可执行文件,在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件
-没有设置权限没有设置权限
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爪喵喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值