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 指定目录

举例:

bash 复制代码
[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

知识点补充:
以"."开头的文件或目录为隐藏文件或隐藏目录

bash 复制代码
[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 中用于显示当前工作目录路径的基础命令。
基本用法

bash 复制代码
[lll@hcss-ecs-647d test]$ pwd
/home/lll/test

(显示当前所在的绝对路径)

在输出的路径中,"/"是路径分隔符,两个路径分隔符之间的,一定是一个目录;末端文件可能是一个目录或者是普通文件

3. cd指令

cd是 Linux 中最常用的命令之一,用于切换当前工作目录。

语法:ls [目标路径]
基本功能

将终端的当前工作目录切换到指定路径

bash 复制代码
[lll@hcss-ecs-647d ~]$ cd test/dir1
[lll@hcss-ecs-647d dir1]$ pwd
/home/lll/test/dir1

常见用法示例:

  • 切换到绝对路径
bash 复制代码
[lll@hcss-ecs-647d dir1]$ cd /home/lll/Linux_test/
[lll@hcss-ecs-647d Linux_test]$ pwd
/home/lll/Linux_test

绝对路径就是从根目录 / 开始,直接定位到目标路径,路径中出现的第一个"/"代表根目录。

  • 切换到相对路径
bash 复制代码
[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]$ 

相对路径就是从当前目录开始,定位到目标路径

  • 快速返回家目录
bash 复制代码
[lll@hcss-ecs-647d dir1]$ cd ~
[lll@hcss-ecs-647d ~]$ pwd
/home/lll
  • 切换到上一次目录
bash 复制代码
[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中目录和文件组成的是一个多叉树结构:

bash 复制代码
[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.txt

4 directories, 2 files

4. touch指令

touch 是 Linux 中用于管理文件时间戳或创建空文件的常用命令。
基本功能

创建空文件:若文件不存在,则创建指定名称的空文件。

更新时间戳:若文件已存在,则更新其访问时间(atime)和修改时间(mtime)为当前时间。

控制时间戳:通过选项可精确设置文件的访问、修改或状态变更时间。

基本用法:创建一个或多个文件

bash 复制代码
[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时间等)

(更新访问时间)

bash 复制代码
[lll@hcss-ecs-647d dir2]$ stat log.txt
  File: '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 +0800
 Birth: -
[lll@hcss-ecs-647d dir2]$ touch -a log.txt
[lll@hcss-ecs-647d dir2]$ stat log.txt
  File: '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 +0800
 Birth: -

(更新修改时间)

bash 复制代码
[lll@hcss-ecs-647d dir2]$ touch -m log.txt
[lll@hcss-ecs-647d dir2]$ stat log.txt
  File: '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 +0800
 Birth: -

touch 是轻量级文件管理工具,核心功能是时间戳控制和空文件创建。在脚本中常用于初始化文件、触发事件或标记文件状态。

5. mkdir指令

mkdir是 Linux 中用于创建目录(文件夹)的核心命令,支持单级或多级目录创建,并可通过选项控制行为。
基本功能

作用:在当前路径或指定路径下创建新目录

语法:mkdir [选项] 目录名...
举例:创建一个目录

bash 复制代码
[lll@hcss-ecs-647d dir2]$ mkdir mydir
[lll@hcss-ecs-647d dir2]$ ls
mydir

常用选项

-p:一次可建立多个目录

bash 复制代码
[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
        └── z

3 directories, 0 files

6. rmdir指令&&rm指令
rmdir 是 Linux 中用于删除空目录的命令,与 rm 不同,它仅能删除没有子文件或子目录的空文件夹,安全性更高。
基本功能

语法:rmdir [空目录名]

bash 复制代码
[lll@hcss-ecs-647d mydir]$ tree .
.
└── dir

1 directory, 0 files
[lll@hcss-ecs-647d mydir]$ rmdir dir
[lll@hcss-ecs-647d mydir]$ tree .
.

0 directories, 0 files

常用选项

-p:当子目录被删除后如果父目录也变成空目录的话,就连带父目录⼀起删除

bash 复制代码
[lll@hcss-ecs-647d mydir]$ tree .
.
└── x
    └── y
        └── z

3 directories, 0 files
[lll@hcss-ecs-647d mydir]$ rmdir -p x/y/z
[lll@hcss-ecs-647d mydir]$ tree .
.

0 directories, 0 files

-pv:可递归删除嵌套空目录并显示过程,便于调试

bash 复制代码
[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 [文件名]

bash 复制代码
[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:删除目录及其下所有文件
举例

(删除空目录)

bash 复制代码
[lll@hcss-ecs-647d mydir]$ ls
dir
[lll@hcss-ecs-647d mydir]$ rm -d dir
[lll@hcss-ecs-647d mydir]$ ls

(-ri 组合:删除非空目录前逐一询问确认)

bash 复制代码
[lll@hcss-ecs-647d mydir]$ tree .
.
└── x
    └── y
        └── z

3 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 组合:不必询问直接删除非空目录)

bash 复制代码
[lll@hcss-ecs-647d mydir]$ tree .
.
└── x
    └── y
        └── z

3 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 [命令名]

作用:查看命令的详细说明

bash 复制代码
[lll@hcss-ecs-647d mydir]$ man ls

即可查看关于ls命令的说明,即ls的使用和可搭配的选项,按q即可退出手册

常用选项

-k:搜索关键词相关手册

num:只在第num章节查找

-a:将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,用a选项,当按下q退出,它会继续往后面搜索,直到所有章节都搜索完毕
举例

该命令会出现,与printf相关的手册的信息

bash 复制代码
[lll@hcss-ecs-647d mydir]$ man -k printf

只在手册的第一章中查找与 printf 有关的信息

cpp 复制代码
[lll@hcss-ecs-647d mydir]$ man 1 printf

关于手册的补充,man手册分为9章(当然不同系统可能会存在差别)

  • 第一章,普通命令的说明
  • 第二章,系统调用
  • 第三章,库函数
  • 第四章,设备文件的说明
  • 第五章,文件格式和约定
  • 第六章,游戏和娱乐相关命令
  • 第七章,一些变量的说明
  • 第八章,系统管理命令
  • 第九章,内核相关文档

8. cp指令

在 Linux 中,cp 是 copy(复制) 的缩写,用于复制文件或目录 ,是日常系统管理和文件操作的核心命令。
基本功能

语法:cp [选项] 源文件/目录 目标文件/目录

说明:如同时指定两个以上的源文件或目录,且最后的目的地是一个已经存在的目标目录,则它会把指定的所有源文件或目录复制到此目标目录中
举例

(cp普通文件)

bash 复制代码
[lll@hcss-ecs-647d mydir]$ tree .
.
├── testdir
└── test.txt

1 directory, 1 file
[lll@hcss-ecs-647d mydir]$ cp test.txt testdir
[lll@hcss-ecs-647d mydir]$ tree .
.
├── testdir
│   └── test.txt
└── test.txt

1 directory, 2 files

(将多个文件拷贝到指定路径下)

bash 复制代码
[lll@hcss-ecs-647d mydir]$ tree testdir
testdir

0 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.txt

0 directories, 2 files

补充:"*"代表通配符,匹配所有".txt"的文件

常用选项

-i:覆盖前提示确认(交互模式)

-r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

-f:强行复制文件或目录,不论目标文件或目录是否已经存在
举例

(当目标目录中已存在一份与源文件/目录相同的名字,则拷贝前询问)

bash 复制代码
[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,逆向打印

(递归强制拷贝整个目录,包括目录中的子目录与文件)

bash 复制代码
[lll@hcss-ecs-647d dir2]$ ls
cp_test  mydir
[lll@hcss-ecs-647d dir2]$ tree mydir
mydir
├── file.txt
├── testdir
│   └── file.txt
└── test.txt

1 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.txt

2 directories, 3 files

9. mv指令

在 Linux 中,mv是用于移动或重命名文件/目录的核心命令,通俗说法就是人们常用的剪切功能。
基本功能

语法:mv [选项] 源文件/目录 目标文件/目录

功能:

  • 若源和目标在同一目录:执行重命名操作
  • 若源和目标在不同目录:执行移动操作
  • 多源处理:可同时移动多个文件/目录,此时目标必须是目录(所有源会被移动到该目录下)

举例

(重命名)

bash 复制代码
[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

(移动)

bash 复制代码
[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.txt

0 directories, 1 file

(多源处理)

bash 复制代码
[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
└── testdir

1 directory, 2 files

(剪切+重命名)

bash 复制代码
[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.txt

0 directories, 1 file

常用选项

-f:强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i:若⽬标文件(destination)已经存在时,就会询问是否覆盖!

(该选项用法与cp指令类似,就不举例了)

以上指令基本上都是对文件进行访问修改等操作的核心命令,在Linux中都是比较常用的

相关推荐
乌萨奇也要立志学C++1 小时前
【Linux】基本指令详解(三) 指令本质、三个查找指令、打包压缩、重要热键、linux体系结构、命令行解释器
linux
令狐少侠20116 小时前
centos7安装MySQL8.4手册
linux·mysql
程序员JerrySUN7 小时前
深度理解 KVM:Linux 内核系统学习的重要角度
java·linux·学习
大母猴啃编程8 小时前
Linux权限
linux·运维·服务器
weixin_457665398 小时前
基于可变参模板的线程池
linux·c++
麟城Lincoln8 小时前
【Linux-云原生-笔记】LVS(Linux virual server)相关
linux·笔记·云原生·lvs·nat·dr·ipvsadm
为什么要内卷,摆烂不香吗8 小时前
LVS部署DR模式集群
服务器·数据库·lvs
菜菜why8 小时前
linux制作镜像、压缩镜像、烧录的方法
linux·镜像·香橙派
cpsvps10 小时前
香港服务器SSH安全加固方案与密钥认证实践
服务器·安全·ssh
运维开发王义杰10 小时前
告别手动迁移:使用 PowerShell 一键导出 IIS 配置,让服务器迁移更轻松
运维·服务器·windows