40+个常用的Linux指令——上
文章目录
- 基础指令
基础指令
1. ls指令
ls指令是 Linux 中最常用的基础命令之一,用于列出目录内容。
语法:ls [选项] [目录或文件]
基本功能
默认行为:直接输入 ls 会列出当前目录下的文件和子目录(非隐藏文件)
常用选项
-l:长格式显示(权限、所有者、大小、修改时间等)
-a:显示所有文件(包括隐藏文件,以 . 开头的文件)
-h:人类可读的文件大小(如 KB、MB)
-t:按修改时间排序(最新的在前)
-r:反向排序
-s:按文件大小排序
-i:显示文件的 inode 号
-R:列出所有子目录下的文件(递归)
-1:一行只输出一个文件
-F:在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示
目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-d:将目录像文件⼀样显示,而不是显示其下的文件。如:ls ‒d 指定目录
举例:
[lll@hcss-ecs-647d test]$ ls
dir1 file1.txt file2.txt
[lll@hcss-ecs-647d test]$ ls -l
total 4
drwxrwxr-x 2 lll lll 4096 Jul 18 12:39 dir1
-rw-rw-r-- 1 lll lll 0 Jul 18 12:26 file1.txt
-rw-rw-r-- 1 lll lll 0 Jul 18 12:39 file2.txt
[lll@hcss-ecs-647d test]$ ls -a
. .. dir1 file1.txt file2.txt
[lll@hcss-ecs-647d test]$ ls -h
dir1 file1.txt file2.txt
[lll@hcss-ecs-647d test]$ ls -al
total 12
drwxrwxr-x 3 lll lll 4096 Jul 18 12:39 .
drwx------ 12 lll lll 4096 Jul 18 12:25 ..
drwxrwxr-x 2 lll lll 4096 Jul 18 12:39 dir1
-rw-rw-r-- 1 lll lll 0 Jul 18 12:26 file1.txt
-rw-rw-r-- 1 lll lll 0 Jul 18 12:39 file2.txt
[lll@hcss-ecs-647d test]$ ls -t
dir1 file2.txt file1.txt
[lll@hcss-ecs-647d test]$ ls -r
file2.txt file1.txt dir1
[lll@hcss-ecs-647d test]$ ls -s
total 4
4 dir1 0 file1.txt 0 file2.txt
[lll@hcss-ecs-647d test]$ ls -R
.:
dir1 file1.txt file2.txt./dir1:
test.txt
[lll@hcss-ecs-647d test]$ ls -1
dir1
file1.txt
file2.txt
[lll@hcss-ecs-647d test]$ ls -F
dir1/ file1.txt file2.txt
[lll@hcss-ecs-647d test]$ ls -d dir1
dir1
知识点补充:
以"."开头的文件或目录为隐藏文件或隐藏目录
[lll@hcss-ecs-647d test]$ ls -l
total 4
drwxrwxr-x 2 lll lll 4096 Jul 18 12:39 dir1
-rw-rw-r-- 1 lll lll 0 Jul 18 12:26 file1.txt
-rw-rw-r-- 1 lll lll 0 Jul 18 12:39 file2.txt
[lll@hcss-ecs-647d test]$ ls -al
total 16
drwxrwxr-x 4 lll lll 4096 Jul 18 12:52 .
drwx------ 12 lll lll 4096 Jul 18 12:25 ..
drwxrwxr-x 2 lll lll 4096 Jul 18 12:39 dir1
drwxrwxr-x 2 lll lll 4096 Jul 18 12:52 .dir2
-rw-rw-r-- 1 lll lll 0 Jul 18 12:26 file1.txt
-rw-rw-r-- 1 lll lll 0 Jul 18 12:39 file2.txt
-rw-rw-r-- 1 lll lll 0 Jul 18 12:52 .file3.txt
文件!= 文件内容、文件=内容+属性
以d开头的为目录,以-开头的为普通文件
“.”代表当前路径,“. .”代表上级路径,任何一个目录,都存在".“和”. ."
2. pwd指令
pwd是 Linux 中用于显示当前工作目录路径的基础命令。
基本用法
[lll@hcss-ecs-647d test]$ pwd
/home/lll/test
(显示当前所在的绝对路径)
在输出的路径中,“/”是路径分隔符,两个路径分隔符之间的,一定是一个目录;末端文件可能是一个目录或者是普通文件
3. cd指令
cd是 Linux 中最常用的命令之一,用于切换当前工作目录。
语法:ls [目标路径]
基本功能
将终端的当前工作目录切换到指定路径
[lll@hcss-ecs-647d ~]$ cd test/dir1
[lll@hcss-ecs-647d dir1]$ pwd
/home/lll/test/dir1
常见用法示例:
- 切换到绝对路径
[lll@hcss-ecs-647d dir1]$ cd /home/lll/Linux_test/
[lll@hcss-ecs-647d Linux_test]$ pwd
/home/lll/Linux_test
绝对路径就是从根目录 / 开始,直接定位到目标路径,路径中出现的第一个“/”代表根目录。
- 切换到相对路径
[lll@hcss-ecs-647d Linux_test]$ pwd
/home/lll/Linux_test
[lll@hcss-ecs-647d Linux_test]$ cd ../test/
[lll@hcss-ecs-647d test]$ pwd
/home/lll/test
[lll@hcss-ecs-647d test]$ cd ./dir1
[lll@hcss-ecs-647d dir1]$ pwd
/home/lll/test/dir1
[lll@hcss-ecs-647d dir1]$
相对路径就是从当前目录开始,定位到目标路径
- 快速返回家目录
[lll@hcss-ecs-647d dir1]$ cd ~
[lll@hcss-ecs-647d ~]$ pwd
/home/lll
- 切换到上一次目录
[lll@hcss-ecs-647d ~]$ pwd
/home/lll
[lll@hcss-ecs-647d ~]$ cd -
/home/lll/test/dir1
[lll@hcss-ecs-647d dir1]$ cd -
/home/lll
通过上述的指令,我们对路径有了一定的认识:
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
其中普通文件一定是目录树的叶子节点
目录可能是叶子(空目录),也可能是路上节点
树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性
证明Linux中目录和文件组成的是一个多叉树结构:
[lll@hcss-ecs-647d dir1]$ mkdir -p a/b/c/d
[lll@hcss-ecs-647d dir1]$ touch a/b/c/d/log.txt
[lll@hcss-ecs-647d dir1]$ ls
a test.txt
[lll@hcss-ecs-647d dir1]$ tree .
.
├── a
│ └── b
│ └── c
│ └── d
│ └── log.txt
└── test.txt4 directories, 2 files
4. touch指令
touch 是 Linux 中用于管理文件时间戳或创建空文件的常用命令。
基本功能
创建空文件:若文件不存在,则创建指定名称的空文件。
更新时间戳:若文件已存在,则更新其访问时间(atime)和修改时间(mtime)为当前时间。
控制时间戳:通过选项可精确设置文件的访问、修改或状态变更时间。
基本用法:创建一个或多个文件
[lll@hcss-ecs-647d dir2]$ touch log.txt
[lll@hcss-ecs-647d dir2]$ ls
log.txt
[lll@hcss-ecs-647d dir2]$ touch file1.txt file2.txt file3.txt
[lll@hcss-ecs-647d dir2]$ ls
file1.txt file2.txt file3.txt log.txt
常用选项
-a:仅更新访问时间(atime)
-m:仅更新修改时间(mtime)
-c:不创建新文件(仅更新已存在文件的时间戳)
补充:stat [目标文件/目录] 可用于查看文件/目录的详细信息(AMC时间等)
(更新访问时间)
[lll@hcss-ecs-647d dir2]$ stat log.txtFile: ‘log.txt’Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 792523 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ lll) Gid: ( 1000/ lll)
Access: 2025-07-18 14:26:18.216304240 +0800
Modify: 2025-07-18 14:26:18.216304240 +0800
Change: 2025-07-18 14:26:18.216304240 +0800Birth: -
[lll@hcss-ecs-647d dir2]$ touch -a log.txt
[lll@hcss-ecs-647d dir2]$ stat log.txtFile: ‘log.txt’Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 792523 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ lll) Gid: ( 1000/ lll)
Access: 2025-07-18 14:32:09.056121000 +0800
Modify: 2025-07-18 14:26:18.216304240 +0800
Change: 2025-07-18 14:32:09.056121000 +0800Birth: -
(更新修改时间)
[lll@hcss-ecs-647d dir2]$ touch -m log.txt
[lll@hcss-ecs-647d dir2]$ stat log.txtFile: ‘log.txt’Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 792523 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ lll) Gid: ( 1000/ lll)
Access: 2025-07-18 14:32:09.056121000 +0800
Modify: 2025-07-18 14:33:10.376874182 +0800
Change: 2025-07-18 14:33:10.376874182 +0800Birth: -
touch 是轻量级文件管理工具,核心功能是时间戳控制和空文件创建。在脚本中常用于初始化文件、触发事件或标记文件状态。
5. mkdir指令
mkdir是 Linux 中用于创建目录(文件夹)的核心命令,支持单级或多级目录创建,并可通过选项控制行为。
基本功能
作用:在当前路径或指定路径下创建新目录
语法:mkdir [选项] 目录名…
举例:创建一个目录
[lll@hcss-ecs-647d dir2]$ mkdir mydir
[lll@hcss-ecs-647d dir2]$ ls
mydir
常用选项
-p:一次可建立多个目录
[lll@hcss-ecs-647d mydir]$ mkdir -p x/y/z
[lll@hcss-ecs-647d mydir]$ ls
x
[lll@hcss-ecs-647d mydir]$ tree .
.
└── x└── y└── z3 directories, 0 files
6. rmdir指令&&rm指令
rmdir是 Linux 中用于删除空目录的命令,与 rm 不同,它仅能删除没有子文件或子目录的空文件夹,安全性更高。
基本功能
语法:rmdir [空目录名]
[lll@hcss-ecs-647d mydir]$ tree .
.
└── dir1 directory, 0 files
[lll@hcss-ecs-647d mydir]$ rmdir dir
[lll@hcss-ecs-647d mydir]$ tree .
.0 directories, 0 files
常用选项
-p:当子目录被删除后如果父目录也变成空目录的话,就连带父目录⼀起删除
[lll@hcss-ecs-647d mydir]$ tree .
.
└── x└── y└── z3 directories, 0 files
[lll@hcss-ecs-647d mydir]$ rmdir -p x/y/z
[lll@hcss-ecs-647d mydir]$ tree .
.0 directories, 0 files
-pv:可递归删除嵌套空目录并显示过程,便于调试
[lll@hcss-ecs-647d mydir]$ mkdir -p x/y/z
[lll@hcss-ecs-647d mydir]$ rmdir -pv x/y/z
rmdir: removing directory, ‘x/y/z’
rmdir: removing directory, ‘x/y’
rmdir: removing directory, ‘x’
rm 是 Linux 中用于删除文件或目录的核心命令
基本功能
删除文件语法:rm [文件名]
[lll@hcss-ecs-647d mydir]$ ls
test.txt
[lll@hcss-ecs-647d mydir]$ rm test.txt
[lll@hcss-ecs-647d mydir]$ ls
删除目录常用选项
-d:删除空目录
-f:即使文件属性为只读(即写保护),亦直接删除(删除前不必再次确认,直接删除)
-i:删除前逐一询问确认
-r:删除目录及其下所有文件
举例
(删除空目录)
[lll@hcss-ecs-647d mydir]$ ls
dir
[lll@hcss-ecs-647d mydir]$ rm -d dir
[lll@hcss-ecs-647d mydir]$ ls
(-ri 组合:删除非空目录前逐一询问确认)
[lll@hcss-ecs-647d mydir]$ tree .
.
└── x└── y└── z3 directories, 0 files
[lll@hcss-ecs-647d mydir]$ rm -ri x
rm: descend into directory ‘x’? y
rm: descend into directory ‘x/y’? y
rm: remove directory ‘x/y/z’? y
rm: remove directory ‘x/y’? y
rm: remove directory ‘x’? y
[lll@hcss-ecs-647d mydir]$ tree .
.0 directories, 0 files
图片中询问用户是否要删除目录,用户回答y/n即可
(-rf 组合:不必询问直接删除非空目录)
[lll@hcss-ecs-647d mydir]$ tree .
.
└── x└── y└── z3 directories, 0 files
[lll@hcss-ecs-647d mydir]$ rm -rf x
[lll@hcss-ecs-647d mydir]$ tree .
.0 directories, 0 files
7. man指令
man 是 Linux 系统中用于查看命令、函数、配置文件等官方文档的核心工具,全称 manual(手册)。
基本用法
语法:man [命令名]
作用:查看命令的详细说明
[lll@hcss-ecs-647d mydir]$ man ls
即可查看关于ls命令的说明,即ls的使用和可搭配的选项,按q即可退出手册
常用选项
-k:搜索关键词相关手册
num:只在第num章节查找
-a:将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,用a选项,当按下q退出,它会继续往后面搜索,直到所有章节都搜索完毕
举例
该命令会出现,与printf相关的手册的信息
[lll@hcss-ecs-647d mydir]$ man -k printf
只在手册的第一章中查找与 printf 有关的信息
[lll@hcss-ecs-647d mydir]$ man 1 printf
关于手册的补充,man手册分为9章(当然不同系统可能会存在差别)
- 第一章,普通命令的说明
- 第二章,系统调用
- 第三章,库函数
- 第四章,设备文件的说明
- 第五章,文件格式和约定
- 第六章,游戏和娱乐相关命令
- 第七章,一些变量的说明
- 第八章,系统管理命令
- 第九章,内核相关文档
8. cp指令
在 Linux 中,cp 是 copy(复制) 的缩写,用于复制文件或目录,是日常系统管理和文件操作的核心命令。
基本功能
语法:cp [选项] 源文件/目录 目标文件/目录
说明:如同时指定两个以上的源文件或目录,且最后的目的地是一个已经存在的目标目录,则它会把指定的所有源文件或目录复制到此目标目录中
举例
(cp普通文件)
[lll@hcss-ecs-647d mydir]$ tree .
.
├── testdir
└── test.txt1 directory, 1 file
[lll@hcss-ecs-647d mydir]$ cp test.txt testdir
[lll@hcss-ecs-647d mydir]$ tree .
.
├── testdir
│ └── test.txt
└── test.txt1 directory, 2 files
(将多个文件拷贝到指定路径下)
[lll@hcss-ecs-647d mydir]$ tree testdir
testdir0 directories, 0 files
[lll@hcss-ecs-647d mydir]$ ls
file.txt testdir test.txt
[lll@hcss-ecs-647d mydir]$ cp *.txt testdir
[lll@hcss-ecs-647d mydir]$ tree testdir
testdir
├── file.txt
└── test.txt0 directories, 2 files
补充:“*”代表通配符,匹配所有“.txt”的文件
常用选项
-i:覆盖前提示确认(交互模式)
-r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-f:强行复制文件或目录,不论目标文件或目录是否已经存在
举例
(当目标目录中已存在一份与源文件/目录相同的名字,则拷贝前询问)
[lll@hcss-ecs-647d mydir]$ ls
file.txt testdir test.txt
[lll@hcss-ecs-647d mydir]$ cat file.txt
hello world!
[lll@hcss-ecs-647d mydir]$ cat testdir/file.txt
hello!
[lll@hcss-ecs-647d mydir]$ cp -i file.txt testdir
cp: overwrite ‘testdir/file.txt’? y
[lll@hcss-ecs-647d mydir]$ cat testdir/file.txt
hello world!
补充说明cat指令:查看文件的内容,-n,打印内容时带序号;-s,合并空行;tac,逆向打印
(递归强制拷贝整个目录,包括目录中的子目录与文件)
[lll@hcss-ecs-647d dir2]$ ls
cp_test mydir
[lll@hcss-ecs-647d dir2]$ tree mydir
mydir
├── file.txt
├── testdir
│ └── file.txt
└── test.txt1 directory, 3 files
[lll@hcss-ecs-647d dir2]$ cp -rf mydir cp_test
[lll@hcss-ecs-647d dir2]$ tree cp_test/
cp_test/
└── mydir├── file.txt├── testdir│ └── file.txt└── test.txt2 directories, 3 files
9. mv指令
在 Linux 中,mv是用于移动或重命名文件/目录的核心命令,通俗说法就是人们常用的剪切功能。
基本功能
语法:mv [选项] 源文件/目录 目标文件/目录
功能:
- 若源和目标在同一目录:执行重命名操作
- 若源和目标在不同目录:执行移动操作
- 多源处理:可同时移动多个文件/目录,此时目标必须是目录(所有源会被移动到该目录下)
举例
(重命名)
[lll@hcss-ecs-647d testdir]$ ls
file.txt
[lll@hcss-ecs-647d testdir]$ mv file.txt test.txt
[lll@hcss-ecs-647d testdir]$ ls
test.txt
(移动)
[lll@hcss-ecs-647d mydir]$ ls
file.txt testdir
[lll@hcss-ecs-647d mydir]$ tree testdir/
testdir/0 directories, 0 files
[lll@hcss-ecs-647d mydir]$ mv file.txt testdir/
[lll@hcss-ecs-647d mydir]$ ls
testdir
[lll@hcss-ecs-647d mydir]$ tree testdir/
testdir/
└── file.txt0 directories, 1 file
(多源处理)
[lll@hcss-ecs-647d mydir]$ ls
testdir
[lll@hcss-ecs-647d mydir]$ cd testdir/
[lll@hcss-ecs-647d testdir]$ ls
file.txt myfile.txt
[lll@hcss-ecs-647d testdir]$ mv file.txt myfile.txt ../
[lll@hcss-ecs-647d testdir]$ ls
[lll@hcss-ecs-647d testdir]$ tree ..
..
├── file.txt
├── myfile.txt
└── testdir1 directory, 2 files
(剪切+重命名)
[lll@hcss-ecs-647d mydir]$ ls
file.txt myfile.txt testdir
[lll@hcss-ecs-647d mydir]$ tree testdir/
testdir/0 directories, 0 files
[lll@hcss-ecs-647d mydir]$ mv myfile.txt testdir/yourfile.txt
[lll@hcss-ecs-647d mydir]$ ls
file.txt testdir
[lll@hcss-ecs-647d mydir]$ tree testdir/
testdir/
└── yourfile.txt0 directories, 1 file
常用选项
-f:强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i:若⽬标文件(destination)已经存在时,就会询问是否覆盖!
(该选项用法与cp指令类似,就不举例了)
以上指令基本上都是对文件进行访问修改等操作的核心命令,在Linux中都是比较常用的