一.ls指令
功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信息。
语法:ls 选项 目录或文件
这里的三个部分:
① ls命令本身。
② 选项告诉 ls你按照什么方式显示
例如:
1.ls -l
-l 就是选项。
③ 目录或文件告诉 ls我要看哪个目录/文件
例如:
ls /home 查看 /home 目录。
2.ls -a
显示隐藏文件
Linux 中以 . 开头的文件通常是隐藏文件。
例如:
.
..
.bashrc
.config
test.txt
直接:ls
只能看到test.txt
使用ls -a就能看到全部
.表示当前目录
..表示上一级目录
3.ls -t
按照文件修改时间排序
通常最新修改的文件排在前面
4.ls -s
显示文件占用的块大小
它会在文件名前面显示文件占用的磁盘块大小
如果想找最大的文件
可以结合排序:
ls -lS
注意这里是大写 S。
它按照文件大小排序。
例如:
-rw-r--r-- ... 500M movie.mp4
-rw-r--r-- ... 100M test.zip
-rw-r--r-- ... 10M test.txt
5.ls -1
一行显示一个
这里是数字 1,不是字母 l。
正常:a.txt b.txt c.txt d.txt
使用ls -1
变成:
a.txt
b.txt
c.txt
d.txt
也就是一行一个文件
Linux 命令最大的特点之一就是多个选项可以组合起来。
例如:ls -al
就是:
-a → 所有文件
-l → 详细信息
所以ls -al
查看当前目录包括隐藏文件在内的详细信息。
二.pwd 命令
基本语法:pwd
没有选项,也没有参数。
执行pwd
例如得到:/home/whb/test
这就表示:你现在正在 /home/whb/test 这个目录里面。
三.cd 指令
语法: cd ⽬录名
功能:改变⼯作⽬录。将当前⼯作⽬录改变到指定的⽬录下
例如:
执行pwd
显示:/home/whb
假设当前目录下有:
/home/whb
├── test
├── code
└── abc
输入:cd test
就进入了 test。
再输入:pwd
结果:/home/whb/test
cd 后面可以使用相对路径也可以使用绝对路径
cd ..返回上一级目录
例如现在:/home/whb/test
执行:cd ..
再:pwd
得到:/home/whb
cd ../..连续返回两级
假设现在:/home/whb/test/code
执行:cd ../..
第一个 ..:/home/whb/test
第二个 ..:/home/whb
cd .:进入当前目录
. 表示当前目录
cd /:直接回到根目录
cd ~:回到当前用户的家目录
例如你的用户名是 whb:
cd ~就会进入/home/whb
~ 表示:当前用户的家目录
直接输入 cd不加任何目录。
它通常表示:回到当前用户的家目录。
和cd ~通常可以理解成同一个效果。
四.touch 指令
语法: touch 选项... ⽂件...
功能:touch命令参数可更改⽂档或⽬录的⽇期时间,包括存取时间和更改时间,或者新建⼀个不存在的⽂件。
常⽤选项:
• -a : change only the access time
• -c : change only the modification time
例如:touch test.txt
如果当前目录不存在 test.txt
执行后就会创建一个文件:test.txt
touch 创建的是"空文件"
test.txt这个文件中没有任何内容
可以用ls -l test.txt查看:
-rw-r--r-- 1 whb whb 0 Aug 31 17:00 test.txt
0表示文件大小是 0 字节。
如果文件已经存在
不会把原来的文件内容清空,它主要会更新文件的时间属性
Linux文件中有两个时间:
Access Time(访问时间)
简称:atime
表示:文件最近一次被访问/读取的时间。
Modification Time(修改时间)
简称:mtime
表示:文件内容最近一次被修改的时间。
stat test.txt可以查看文件更详细的时间
Access: 2026-08-31 17:20:00
Modify: 2026-08-31 17:20:00
Change: 2026-08-31 17:20:00
touch -a:只修改访问时间
例如:touch -a test.txt
它会更新:Access Time
但是不会主动修改:Modification Time
touch -c:不创建新文件
Linux 中 touch -c 的主要作用是:
如果文件不存在,不创建文件。
如果文件已经存在,更新它的时间属性
touch 一次可以创建多个文件
例如:touch a.txt b.txt c.txt
一次创建三个文件:
a.txt
b.txt
c.txt
touch还可以指定路径
例如当前:/home/whb
下面有:test
你可以:touch test/a.txt
创建:/home/whb/test/a.txt
这里:test/a.txt就是一个相对路径。
也可以直接使用绝对路径:
touch /home/whb/test/b.txt
五.mkdir 指令
语法: mkdir 选项 dirname...
功能:在当前⽬录下创建⼀个名为 "dirname"的⽬录
常⽤选项:• -p/--parents: 可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在,加上此选项后,系统将⾃动建⽴好那些尚不存在的⽬录,即⼀次可以建⽴多个⽬录
六.rmdir 指令 && rm 指令
rmdir是⼀个与mkdir相对应的命令,mkdir是建⽴⽬录,⽽rmdir是删除命令
语法: rmdir -p dirName
适⽤对象:具有当前⽬录操作权限的所有使⽤者功能:删除空⽬录
常⽤选项:-p 当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话,就连带⽗⽬录⼀起删除。
rm 命令可以同时删除⽂件或⽬录
语法: rm -f-i-r-v dirName/dir
适⽤对象:所有使⽤者功能:删除⽂件或⽬录
常⽤选项:
-f 即使⽂件属性为只读(即写保护),亦直接删除
-i 删除前逐⼀询问确认
-r 删除⽬录及其下所有⽂件
七.man 指令
Linux的命令有很多参数,我们不可能全记住,可以通过查看联机⼿册获取帮助
语法: man 选项 命令
常⽤选项:
-k 根据关键字搜索联机帮助
num 只在第num章节查找
-a 将所有章节的都显⽰出来,⽐如 man printf 它缺省从第⼀章开始搜索,知道就停⽌,⽤a选项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕
man 命令
我知道命令叫什么,但是不会用。
man -k 关键词
我连命令叫什么都不知道,只知道它大概是干什么的。
Linux 的 man 手册并不是所有内容都放在一起。
它分成了不同的章节(section)。
常见的章节:
1普通用户命令
2系统调用
3库函数
4特殊文件/设备文件
5配置文件、文件格式
6游戏
7杂项
8系统管理命令
man printf
系统会按照章节顺序寻找。
例如可能先找到:printf(1)
这是一个命令。
但是实际上 Linux 还有一个printf(3)
它是 C 语言相关的库函数。
所以:man printf
可能默认先找到第 1 章的 printf,找到以后就停止。
如果你明确知道我要看命令 printf。
可以:man 1 printf
表示:只在第 1 章寻找 printf。
man -a:查看所有章节
作用:把所有匹配的 man 手册都显示出来。
例如:man -a printf
可能先进入:printf(1)
你看完之后按:q
它不会直接结束,因为还有printf(3)
于是继续进入:printf(3)
你再按:q ,才会结束。
所以:man -a printf
就是:把 printf 在不同章节中的所有手册都查看一遍。
八.cp 指令
语法: cp 选项 源⽂件或⽬录 ⽬标⽂件或⽬录
功能: 复制⽂件或⽬录
说明:
• cp指令⽤于复制⽂件或⽬录
• 如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中
常⽤选项:
-f 或 --force 强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在
-i 或 --interactive 覆盖⽂件之前先询问⽤⼾
-r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符号链接,则⼀律视为普通⽂件处理
例如:cp a.txt b.txt
意思:把 a.txt 复制一份,叫做 b.txt。
原来:a.txt
执行后:
a.txt
b.txt
两个文件都存在。
假设:
/home/whb
├── a.txt
└── test
执行:cp a.txt test
Linux 会把 a.txt 复制到 test 目录里面。
变成:
test
└── a.txt
一次复制多个文件:
例如:
/home/whb
├── a.txt
├── b.txt
├── c.txt
└── test
执行:cp a.txt b.txt c.txt test
结果:
test
├── a.txt
├── b.txt
└── c.txt
注意:
最后一个test必须是已经存在的目录。
如果目标文件已经存在
假设:
a.txt
b.txt
现在:cp a.txt b.txt
如果 b.txt 已经存在,那么默认会覆盖 b.txt 的内容。
所以一定要注意:
源文件 → 目标文件
如果目标已经存在则可能被覆盖。
cp-i:覆盖之前先询问
为了防止误覆盖:
cp -i a.txt b.txt
如果 b.txt 已经存在,Linux 会询问:
cp: overwrite 'b.txt'?
这时候:
y
确认覆盖
n
不覆盖
cp-f:强制复制
cp -f a.txt b.txt
意思是:强制复制,必要时覆盖目标文件。
cp-r:递归复制目录
使用:cp -r test test2
原来:
test
├── a.txt
└── b.txt
执行:cp -r test test2
得到:
test
├── a.txt
└── b.txt
test2
├── a.txt
└── b.txt
九.mv 指令
mv命令是move的缩写,可以⽤来移动⽂件或者将⽂件改名(move (rename) files,经常⽤来备份⽂件或者⽬录
语法: mv 选项 源⽂件或⽬录 ⽬标⽂件或⽬录
功能:
1. 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其移⾄⼀个新的⽬录中。
2. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。
3. 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源⽂件均移⾄⽬标⽬录中。
常⽤选项:
-f :force 强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖
-i :若⽬标⽂件 (destination) 已经存在时,就会询问是否覆盖
十.cat 指令
语法: cat 选项 ⽂件
功能: 查看⽬标⽂件的内容
常⽤选项:
-b 对⾮空输出⾏编号,空⾏不做编号
-n 对输出的所有⾏编号
-s 不输出多⾏空⾏
例如:
cat test.txt
假设 test.txt 里面有:
hello
linux
world
执行:cat test.txt
终端就会显示:
hello
linux
world
也就是说cat 会把文件中的内容读取出来,并显示在屏幕上。
-n:给所有行编号
语法:cat -n test.txt
假设原文件:
hello
linux
world
执行:cat -n test.txt
可能显示:
1 hello
2 linux
3
4 world
注意:空行也会编号。
-b:只给非空行编号
执行:cat -b test.txt
原文件:
hello
linux
world
显示:
1 hello
2 linux
3 world
-s:压缩多余的空行
假设文件里面有很多连续空行:
hello
linux
world
这里可能存在连续的多个空行。
执行:cat -s test.txt
会把连续的多行空行压缩。
显示效果类似:
hello
linux
world
也就是说:
多个连续空行 → 压缩成一个空行。
而且多个选项还可以组合使用
例如:
cat -ns test.txt
意思:-n 给所有行编号,同时 -s 压缩连续空行。