此次核心介绍新的指令
1.rm 删文件
2.man查指令使用
3.cp 拷贝文件内容
4.cat 打印文件内容
5.mv 剪切内容
6.less 一页一页的打印文件内容
7.date 查时间
1.rm删文件
rmdir:只能删空目录
ubuntu@VM-0-2-ubuntu:~/lesson3$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 21 17:12 ./
drwxr-x--- 12 ubuntu ubuntu 4096 Mar 21 17:11 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 21 17:12 text/
ubuntu@VM-0-2-ubuntu:~/lesson3$ rmdir text
ubuntu@VM-0-2-ubuntu:~/lesson3$ ll
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 21 17:12 ./
drwxr-x--- 12 ubuntu ubuntu 4096 Mar 21 17:11 ../
rm:默认只能删普通文件
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 21 17:14 ./
drwxr-x--- 12 ubuntu ubuntu 4096 Mar 21 17:11 ../
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 21 17:12 dd
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 21 17:14 text/
ubuntu@VM-0-2-ubuntu:~/lesson3$
ubuntu@VM-0-2-ubuntu:~/lesson3$ rm dd
ubuntu@VM-0-2-ubuntu:~/lesson3$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 21 17:14 ./
drwxr-x--- 12 ubuntu ubuntu 4096 Mar 21 17:11 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 21 17:14 text/
ubuntu@VM-0-2-ubuntu:~/lesson3$ rm text
rm: cannot remove 'text': Is a directory
-f root用户时强制删除文件,不用同意
rm -r r是递归的意思,也就是递归删除所指目录及其后续的所有文件。
*代表所有内容
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls
gal teet test3 test3.dd
ubuntu@VM-0-2-ubuntu:~/lesson3$ rm -r te*
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls
gal
//所有te开头的文件都被删了
ls -*就是ls。
-r是默认不删隐藏文件的
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls -a
. .. .gal .galgame test
ubuntu@VM-0-2-ubuntu:~/lesson3$ rm -r gal*
rm: cannot remove 'gal*': No such file or directory
//正常是找不到的
ubuntu@VM-0-2-ubuntu:~/lesson3$ rm -r .gal*
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls -a
. .. test
//指定了隐藏文件后就可以了
2.man的使用

此处查找printf的用途,可以发现指令中自带printf,但此printf与c语言的printf完全没有关系。(点Q退出查阅)
对man进行man后发现man有9个库,目前只有前三个有点用(第三个是c语言的库)
man会优先从第一个库开始找,然后再到下一个库直到找到或走遍为止。
3.cp拷贝文件内容
只能拷贝普通文件的内容。
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls
love test test.cpp
ubuntu@VM-0-2-ubuntu:~/lesson3$ cp love gal
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls
gal love test test.cpp
//拷贝一个文件的内容到另一个不存在的文件中
//另一个文件在同一个目录中创建
ubuntu@VM-0-2-ubuntu:~/lesson3$ cp love /home/ubuntu/lesson2
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls /home/ubuntu/lesson2
a gal1 gal.love love test.bpp test.cpp test.vpp
//拷贝一个文件的内容到其他目录中,会在其他目录中生成一个与该文件名相同的文件
ubuntu@VM-0-2-ubuntu:~/lesson3$ cp love /home/ubuntu/lesson2/lovegalgame
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls /home/ubuntu/lesson2
a gal1 gal.love love lovegalgame test.bpp test.cpp test.vpp
//如果最后一个文件名不存在,视为新创建文件名的名字,前面的都视为路径。
如果是非空目录的拷贝就加上-r,其他用法都不变。
如果对应的目录下已有同名文件,使用-f就能进行同名覆盖。(同一目录下不允许有两个同名文件)
4.cat打印文件中的内容
echo将后面的数据以字符串的形式打印出来
ubuntu@VM-0-2-ubuntu:~/lesson3$ echo galgame love
galgame love
cat 将文件中的内容打印出来
ubuntu@VM-0-2-ubuntu:~/lesson3$ cat love
int main()
{
int a = 10;
int b = 20;
return 0;
}
tac 反向打印
ubuntu@VM-0-2-ubuntu:~/lesson3$ tac love
}
return 0;
int b = 20;
int a = 10;
{
int main()
5.原则性认识
linux系统下,一切都是文件
如:自己创建的文件,硬盘,显示器,printf,scanf,cout,等,这些的本质都是文件,函数操作的本质就是文件操作。
文件操作前必须要先打开文件,函数是调用时内部打开的,设备是系统帮我们打开的。
程序在启动时就默认帮我们打开了stdin,stdout,stderr三个流。(是通过调用一堆接口打开的)用于方便用户使用。
重定向操作(想显示器打印的本质是向显示器文件写入)
> 转向某个目录(输出重定向)
ubuntu@VM-0-2-ubuntu:~/lesson3$ echo galgame-love > heoo.txt
ubuntu@VM-0-2-ubuntu:~/lesson3$ cat heoo.txt
galgame-love
如上面echo默认是向显示器写入的,>后就变变向heoo.txt写入了。
如过后面的文件不存在,就在同一个目录下创建一个新的在写入,存在就清空再写入。
根据此特性就能用于创建新的文件或清空旧文件了。
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls
gal heoo.txt lesson2 love test test.cpp
ubuntu@VM-0-2-ubuntu:~/lesson3$ > galagme
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls
gal galagme heoo.txt lesson2 love test test.cpp
ubuntu@VM-0-2-ubuntu:~/lesson3$ > heoo.txt
ubuntu@VM-0-2-ubuntu:~/lesson3$ cat heoo.txt
//清空了
< 将目录的内容给出去(输入重定向)
echo 本来是从键盘读入,可以用<来对文件读入
ubuntu@VM-0-2-ubuntu:~/lesson3$ echo < test.cpp
//读了,只是为空
6.设备文件的存放地址
一般存在:/dev/pts
ubuntu@VM-0-2-ubuntu:~/lesson3$ ll /dev/pts
total 0
drwxr-xr-x 2 root root 0 Mar 19 12:27 ./
drwxr-xr-x 19 root root 3960 Mar 19 12:27 ../
crw--w---- 1 ubuntu tty 136, 0 Mar 21 16:13 0
crw--w---- 1 ubuntu tty 136, 1 Mar 21 18:17 1
c--------- 1 root root 5, 2 Mar 19 12:27 ptmx
c是字符文件。0,1是终端,也就是用户和管理员,这里说明了终端的本质也是一个文件。
linux下的文件类型
-:普通文件
a:字符文件(键盘等硬件)(名字原因:输入的数据有顺序性)
b:块设备文件(磁盘)
i:连接文件
p:管道文件
linux系统不关心文件后缀,但在内部调用工具,这个工具在不在乎后缀是不知道的。
7.mv剪切文件
普通文件或目录都可以剪切
ubuntu@VM-0-2-ubuntu:~/lesson3$ mv gal_love /home/ubuntu/lesson2
ubuntu@VM-0-2-ubuntu:~/lesson3$ ls /home/ubuntu/lesson2
a gal1 gal.love gal_love lesson2 love lovegalgame test.bpp test.cpp test.vpp
//gal_love中有文件的
mv还可以用于重命名
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls
a gal1 gal.love gal_love lesson2 love lovegalgame test.bpp test.cpp test.vpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ mv gal_love gal_very_love
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls
a gal1 gal.love gal_very_love lesson2 love lovegalgame test.bpp test.cpp test.vpp
后面的文件不存在时就是重命名,是目录就剪切进去,是普通文件且同目录下没有相同名字是就是重命名,否就error。
8.日志
/var/log/messages就是日志说在的地方
cat 可以打印,more也可以,但他只能用于下翻,less也可以还支持上翻。
| 这个叫管道,两边都是指令,可以将左侧命令的结果给右边的命令(后续细讲)
9.date
查时间的。
ubuntu@VM-0-2-ubuntu:~/lesson2$ date
Sat Mar 21 06:40:58 PM CST 2026
10.查找
which 去指定目录下查找指令。
whereis 在系统指定路径下查找指令的路径。
find 自己定义查找路径的起始点查找文件并打印路径。(不演示因为查找过程也打印了)
find /开始的路径 要找的文件名