🪐🪐🪐欢迎来到程序员餐厅💫💫💫
主厨:邪王真眼
主厨的主页:Chef‘s blog
所属专栏:青果大战linux
总有光环在陨落,总有新星在闪烁
rmdir指令
语法: rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:
只能删除空目录
- 使用rmdir指令前:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
├── pp
│ └── p
- 使用rmdir指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ rmdir pp/p
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
├── pp
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
- 使用rmdir -p指令前:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
├── pp
│ └── p
- 使用rmdir -p指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ rmdir -p pp/p
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
rm 指令
rm命令可以删除文件和目录
语法:rm [-选项] [文件或目录]
适用对象:所有使用者
功能:
删除文件或目录(删除目录需要加入-r选项)
- 使用rm指令前:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
├── pp
│ └── p.txt
- 使用rm指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ rm pp/p.txt
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
├── pp
常用选项:
-r 删除目录及其下所有文件和子目录
- 使用rm 指令后可以看出删除失败了
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ rm pp
rm: cannot remove ‘pp’: Is a directory
- 使用rm -r指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ rm -r pp
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
-i 删除前逐一询问确认
- 使用rm -i指令前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ rm -r pp
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
- 使用rm -i -r指令前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ mkdir -p pp/p
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ rm -i -r pp
rm: descend into directory ‘pp’? y
rm: remove directory ‘pp/p’? y
rm: remove directory ‘pp’? y
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
-f 即使文件属性为只读(即写保护),亦直接删除
这个就是直接强制删除文件了,一条指令直接带走这个目录下所有子目录和文件以及该目录本身,
而且不会去询问你“是否要删除该文件”
man指令:
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令就是man
语法: man [选项] 命令
功能:
用于显示系统手册页(manual page)中的文档
- 使用man指令查询ls指令介绍

常用选项
man -num :表示只在第num章节找
- 不加该选项时
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ man printf
- 加了该选项时:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ man 3 printf
手册内容:
手册分为8章(我们目前只要知道前三章即可)
- 是普通的命令
- 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
- 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
cp指令:
语法 : cp [ 选项 ] 源文件或目录 目标文件或目录
功能:
复制文件或目录
说明 :
cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
- 基础功能展示
1.复制文件
- 使用指令前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── a.txt
└── b
- 使用指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ cp a.txt c.txt
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── a.txt
├── b
└── c.txt
我们把a.txt文件拷贝了一份,并且命名为c.txt
2.复制目录
- 使用指令前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── a.txt
└── b
- 使用指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ cp -r b c
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── a.txt
├── b
└── c
我们把b文件拷贝了一份,并且命名为c
注意要加入选项 -r,否则会报错
常用选项:
选项-f 或 --force
强行复制文件或目录, 不论目的文件或目录是否已经存在
选项-i 或 --interactive
覆盖文件之前先询问用户
选项-r/-R 或 --recursive
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
mv指令:
mv 命令是 move 的缩写,可以用来移动文件或者将文件改名
语法 : mv [ 选项 ] 源文件或目录 目标文件或目录
功能:
1.重命名
当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 使用指令前:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── a.txt
├── b
├── c
└── d
└── dd
- 使用指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ mv a.txt A.txt
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── A.txt
├── b
├── c
└── d
└── dd
2.剪切
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。
- 使用指令前:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── a.txt
├── b
├── c
└── d
└── dd
- 使用指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ mv A.txt a.txt
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ mv ./d/dd ./DD
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ tree ./
./
├── a.txt
├── b
├── c
├── d
└── DD
常用选项:
选项-f :
force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
选项-i :
若目标文件 (destination) 已经存在时,就会询问是否覆盖!
cat指令:
语法 : cat [ 选项 ][ 文件 ]
功能:
查看目标文件的内容
- 使用该指令:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ cat test2.txt
#include<stdio.h>
int main()
{
printf("Hello,Linux!");
return 0;
}
常用选项:
选项-b
对非空输出行编号
- 使用-b选项前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ cat test2.txt
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
ddddddddd
- 使用-b选项后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ cat -b test2.txt
1 aaaaaaaaaa
2 bbbbbbbbbb
3 cccccccccc
4 ddddddddd
选项-n
对输出的所有行编号
- 使用-n选项前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ cat test2.txt
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
ddddddddd
- 使用-n选项后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ cat -n test2.txt
1 aaaaaaaaaa
2
3 bbbbbbbbbb
4
5
6 cccccccccc
7
8
9
10
11 ddddddddd
选项-s
不输出多行空行
- 使用-s选项前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ cat test2.txt
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
ddddddddd
使用-s指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ cat -s test2.txt
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
ddddddddd
more指令:
语法 : more [ 选项 ][ 文件 ]
功能:
more 命令,功能类似 cat
- 使用more指令
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ more test3.txt

常用选项:
-n 输出指定文件前n行信息
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ more -10 test3.txt
1
2
3
4
5
6
7
8
9
0
指令q
退出more
指令 :/ 内容(在最后一行输入)
找寻带有该内容的一行信息,并从它开始向下展示

22
33
44
55
66
77
88
99
00
less指令:
less 工具也是对文件或其它输出进行分页显示的工具,应该说是 linux 正统查看文件内容的工具,功能极其强大。
在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [ 参数 ] 文件
功能:
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前
不会加载整个文件。
进阶功能:
选项-i
忽略搜索时的大小写
选项-N
显示每行的行号

/ 字符串:向下搜索 “ 字符串 ” 的功能(从前向后找)

? 字符串:向上搜索 “ 字符串 ” 的功能(从后向前找)
head指令:
head 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的开头至标准输出中,不指定文件时,对输入信息进行处理
语法: head [ 参数 ]... [ 文件 ]...
功能:
head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。
选项 :
-n<行数 > 显示的行数
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ head -8 test3.txt
1
2
3
4
5
6
7
8
不指定文件时,作为输入信息进行处理
输入
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project3]$ head
aaa
- 输出
aaa
tail指令:
tail 命令从指定点开始将文件写到标准输出 . 使用 tail 命令的 -f 选项可以方便的查阅正在改变的日志文件 ,tail - f filename会把 filename 里最尾部的内容显示在屏幕上 , 并且不但刷新 , 使你看到最新的文件内容 .
语法: tail[ 必要参数 ][ 选择参数 ][ 文件 ]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项: