rm 指令
语法:rm [选项] [文件名/目录名]
适用对象:具有当前目录操作权限的所有使用者;
功能:删除文件或目录;
常用选项
- -f 不进行确认直接删除文件,即使文件属性为只读(即写保护);
- -r 删除目录及其下所有文件 (递归删除);
- -i 删除前逐一询问确认;
拓展知识
在计算机行业中有一个梗 – 删库跑路,其实指的就是 rm 指令;因为 rm 能够删除目录及目录下的所有文件,而 Linux 中的所有文件都是在根目录 / 下的,所以当我们执行 “rm -rf /” 这条指令时,一个普通用户的所有数据包括 Linux 这个系统都会被全部删除;而 Linux 和 Windows 不同,在 Windows 中我们可以到回收站中恢复我们删除的数据,但是在 Linux 中想要恢复删除的数据十分困难;
同时,Linux 分为普通用户和root用户,普通用户是由root用户创建的,root的权限最高,所以当我们拥有 root 密码时,如果执行 “sudo rm -rf /” ,那么不仅仅是我们这一个用户,其他所有用户的数据也会被删空,这是非常严重的情况。
指令演示
rm 删除普通文件:
rm 递归强制删除目录:
man 指令
语法: man [num] 命令;
功能:Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助;访问Linux手册页的命令是 man;
手册章节
普通命令 |
|
2 | 系统调用 |
3 | C语言库函数 |
4 | 设备或特殊文件 |
5 | 文件格式和规则 |
6 | 游戏及其他 |
7 | 宏、包及其他杂项 |
8 | 系统管理员相关的命令 |
拓展知识
1、man 指令需要安装后才能使用,安装命令是 “yum install -y man-pages”,且此命名只能由 root 用户来安装或者使用 sudo;
2、man 如果不指定具体章节就会默认从一号手册开始找,直到找到才停下;如果指定了章节,就只会在该章节里面去找;
3、由于Linux是用C语言实现的,所以man中默认包含了C语言的函数手册;如果要查看其他语言,如C++/java/python则需要先在Linux中安装,不过这里建议直接到对应语言的官网中去查找;
4、man 手册有汉化版的,不过目前只能汉化一号手册;但是我们作为一个程序员,应该具备基本的阅读英语文档的能力,所以我不建议大家去汉化,而是从现在开始慢慢去养成阅读英语文档的习惯;
5、大家使用 man 指令进行对应文档后,按 q 键即可退出文档。
指令演示
cp 指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能:cp 是 copy 的缩写,其功能是复制文件或目录,相当于 Windows 下的复制粘贴;
常用选项
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在;
-i 或 --interactive 覆盖文件之前先询问用户;
-r递归处理,将指定目录下的文件与子目录一并处理;若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理;
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理;
拓展知识
cp 指令用于复制文件或目录,如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中;若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
指令演示
复制不重名的普通文件:
复制重名文件:当复制重名文件时,如果我们不希望操作系统向我们确认,可以使用 -f 选项来强制复制
复制整个目录及目录下所有的文件:
mv 指令
语法:mv [选项] 源文件或目录 目标文件或目录
功能:mv 是 move 的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的指令,经常用来备份文件或者目录;
常用选项
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖;
拓展知识
1、根据 mv 指令中第二个参数类型的不同(是目标文件还是目标目录),mv 指令会将文件重命名或将其移至一个新的目录中;
2、当第二个参数类型是文件时,mv 命令完成文件重命名,此时源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名;
3、当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中
指令演示
移动文件或目录:
重命名目录或文件:
cat 指令
语法:cat [选项] [文件]
功能:将整个文件的内容从上到下显示到终端上 (屏幕);
常用选项
- -n 对输出的所有行编号;
- -b 对非空输出行编号;
- -s 不输出多行空行;
注:与 cat 指令对应的还有一个指令 – tac,tac 会将文件内容从下到上显示到终端,但是 tac 不能显示行号;
拓展知识
为了方便后面指令的演示,这里我们使用 shell 脚本生成一段简单的具有 1W 行内容的文本,脚本指令如下:
cnt=0; while [ $cnt -le 10000 ] ; do echo "hello linux [$cnt]"; let cnt++; done > test.txt
然后我们可以使用 nano/vim 来查看 test.txt 中的内容 (注意:第一次使用 nano 需要安装 – yum install -y nano):
执行指令之前:
执行指令之后:
然后我们用 nano/vim 在test.txt 中添加几行内容:
指令演示
带行号与不带行号显示: