目录
前言:
一、前置知识:先搞懂 Linux 终端与命令格式
二、必学基础指令
2.1 定位当前位置:pwd 指令
2.2 浏览目录内容:ls 指令
2.3 切换工作目录:cd 指令
2.4 创建空文件:touch 指令
2.5 创建目录:mkdir 指令
2.6 删除文件 / 目录:rmdir & rm 指令
2.7 查看命令帮助:man 指令
2.8 复制文件 / 目录:cp 指令
前言:
Linux 指令是操作服务器、开发环境的 “基本功”,比图形界面更高效、更通用。如果你是刚接触 Linux 的运维 / 开发新手,想要快速掌握日常操作,那本文覆盖 8 个高频基础指令,附实操示例,学完就能上手常用操作。
一、前置知识:先搞懂 Linux 终端与命令格式
我们要先了解两个概念:
- 终端 / Shell:是用户与 Linux 系统交互的文本界面(如 XShell、系统自带终端)
- 命令基本格式:命令 【选项】 【参数/选项】(比如:ls -l /home,ls是命令,-l是选项,/home是参数)
二、必学基础指令
2.1 定位当前位置:pwd 指令
- 功能:显示用户当前所在的工作目录路径;
- 常用场景:不确定自己在哪个目录时,快速查看位置;
实操实例:
[root@VM-0-12-centos ~]# pwd /rootLinux下的路径认识:
Linux的文件系统很像我们之前在数据结构中学习过的树状结构,根目录(/)是树根(父节点)。这里有两个重要的概念,绝对路径和相对路径。绝对路径就是从树根到你当前位置的完整路线。相对路径是以一个位置为参考位置,来定位一个文件。
2.2 浏览目录内容:ls 指令
- 功能:对于目录,该命令列出该目录下的所有子目录与问件。对于文件,将列出文件名以及其他信息。
- 常用选项:
- a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- d 将目录像文件一样显示,而不是显示其下的文件。如:ls -d 指定目录
- i 输出文件的 i 节点的索引信息。如 ls -ai 指定文件
- k 以 k 字节的形式表示文件的大小。ls -alk 指定文件
- l 列出文件的详细信息
- n 用数字的 UID,GID 代替名称。(介绍 UID,GID)
- F 在每个文件名后附上一个字符以说明该文件的类型,“*” 表示可执行的普通文件;“/” 表示目录;“@” 表示符号链接;“|” 表示 FIFOs;“=” 表示套接字(sockets)。(目录类型识别)
- r 对目录反向排序
- t 以时间排序
- s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- R 列出所有子目录下的文件。(递归)
- 1 一行只输出一个文件。
实操实例:
[root@VM-0-12-centos ~]# ls mian.c mydir test.c [root@VM-0-12-centos ~]# ls -l total 8 drwxr-xr-x 3 root root 4096 Dec 16 10:25 mian.c drwxr-xr-x 2 root root 4096 Dec 15 20:45 mydir -rw-r--r-- 1 root root 0 Dec 15 21:01 test.c [root@VM-0-12-centos ~]# ls -la total 68 dr-xr-x---. 8 root root 4096 Dec 16 10:33 . dr-xr-xr-x. 20 root root 4096 Dec 16 16:26 .. -rw------- 1 root root 1570 Dec 16 16:26 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc drwxr-xr-x 4 root root 4096 Dec 8 05:08 .cache drwxr-xr-x 3 root root 4096 Mar 7 2019 .config -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc drwxr-xr-x 3 root root 4096 Dec 16 10:25 mian.c drwxr-xr-x 2 root root 4096 Dec 15 20:45 mydir -rw-r--r-- 1 root root 44 Nov 28 22:54 .npmrc drwxr-xr-x 2 root root 4096 Nov 28 22:53 .pip -rw-r--r-- 1 root root 73 Nov 28 22:53 .pydistutils.cfg drwx------ 2 root root 4096 Nov 5 2019 .ssh -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc -rw-r--r-- 1 root root 0 Dec 15 21:01 test.c -rw------- 1 root root 771 Dec 16 10:33 .viminfo我们注意,在Linux中就上述的实例中,以d开头的都是目录,以-开头的是普通文件,而且以 . 开头的文件是隐藏文件,就我们对于电脑的常识可以知道目录就是一个文件夹。然后对于任意一个目录而言,即使是空目录,系统都默认自带 . 和 .. 目录,. 目录是当前目录, .. 目录是上级目录。
2.3 切换工作目录:cd 指令
- 功能:改变工作目录,将当前工作目录改变到指定目录下;
- 常用场景:
cd (目录路径):切换到指定目录(绝对路径 / 相对路径均可)
cd ~:快速回到当前用户的家目录
cd ..:回到上级目录
cd -:回到上一次所在的目录
实操实例:
[root@VM-0-12-centos ~]# cd mydir [root@VM-0-12-centos mydir]# cd a [root@VM-0-12-centos a]# pwd /root/mydir/a [root@VM-0-12-centos a]# cd .. [root@VM-0-12-centos mydir]# pwd /root/mydir [root@VM-0-12-centos mydir]# cd - /root/mydir/a [root@VM-0-12-centos a]# cd ~ [root@VM-0-12-centos ~]# pwd /root2.4 创建空文件:touch 指令
- 功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
实操实例:
[root@VM-0-12-centos mytest]# touch test1 [root@VM-0-12-centos mytest]# cd test1 -bash: cd: test1: Not a directory [root@VM-0-12-centos mytest]# stat test1 File: ‘test1’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 786464 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2025-12-16 17:58:11.828371058 +0800 Modify: 2025-12-16 17:58:11.828371058 +0800 Change: 2025-12-16 17:58:11.828371058 +0800 Birth: -这些信息我们可以用stat命令查看到,
1.Access(访问时间)
- 含义:文件最后一次被读取 / 访问的时间(仅读取内容,不修改)。
- 触发场景:用
cat/less查看文件、执行可执行文件、播放音视频等。 - 查看方式:
ls -lu或stat 文件名。
2.Modify(修改时间)
- 含义:文件内容最后一次被修改的时间(仅针对内容变化)。
- 触发场景:用
vim编辑并保存、echo 内容 >> 文件追加数据等。 - 注意:修改内容会同时更新
Access和Change时间。 - 查看方式:
ls -l或stat 文件名。
3.Change(改变时间)
- 含义:文件元数据(属性)最后一次被修改的时间(如权限、所有者、文件名等)。
- 触发场景:
chmod改权限、chown改所有者、mv重命名等。 - 注意:修改内容也会间接更新此时间(因为文件大小等元数据会变化)。
- 查看方式:
ls -lc或stat 文件名。
2.5 创建目录:mkdir 指令
- 功能:创建新目录
- 常用参数:-p:递归创建多级目录
实操实例:
[root@VM-0-12-centos ~]# mkdir mytest [root@VM-0-12-centos ~]# cd mytest [root@VM-0-12-centos mytest]# pwd /root/mytest [root@VM-0-12-centos mytest]# mkdir a/b/c/d mkdir: cannot create directory ‘a/b/c/d’: No such file or directory [root@VM-0-12-centos mytest]# mkdir -p a/b/c/d [root@VM-0-12-centos mytest]# ls -l total 4 drwxr-xr-x 3 root root 4096 Dec 16 17:49 a [root@VM-0-12-centos mytest]# ls -la total 12 drwxr-xr-x 3 root root 4096 Dec 16 17:49 . dr-xr-x---. 9 root root 4096 Dec 16 17:48 .. drwxr-xr-x 3 root root 4096 Dec 16 17:49 a [root@VM-0-12-centos mytest]# tree a a `-- b `-- c `-- d 3 directories, 0 files我们也要注意,tree命令是一个递归以树状结构显示指定目录的命令,可能需要安装才能使用,安装命令如果是root用户使用yum install -y tree进行安装。
2.6 删除文件 / 目录:rmdir & rm 指令
- rmdir:仅能删除空目录;
- rm:功能更强大,可删除文件 / 非空目录(注意:Linux 中
rm删除的内容无法恢复) - 常用参数:-f:强制删除(不提示);-r:递归删除(用于删除目录,包含目录内的所有内容)
谨慎使用删除!!!
实操实例:
这里是用别人的代码直接给大家演示了。
# 删除普通⽂件 [whb@bite-alicloud test]$ ll total 8 drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir -rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt -rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1 [whb@bite-alicloud test]$ rm file.txt [whb@bite-alicloud test]$ ll total 8 drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir -rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1 # 删除⽬录⽂件 [whb@bite-alicloud test]$ ll total 8 drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir -rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1 [whb@bite-alicloud test]$ rm dir rm: cannot remove ‘dir’: Is a directory [whb@bite-alicloud test]$ rm -r dir [whb@bite-alicloud test]$ ll total 4 -rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1 # 删除普通⽂件前询问 [whb@bite-alicloud test]$ ll total 4 -rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1 [whb@bite-alicloud test]$ rm -i newFile.txt rm: remove regular empty file ‘newFile.txt’? y [whb@bite-alicloud test]$ ll total 4 drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1 [whb@bite-alicloud test]$ ll total 4 drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1 # 删除⽬录前询问 [whb@bite-alicloud test]$ mkdir -p d/d/d/d [whb@bite-alicloud test]$ tree d d └── d └── d └── d 3 directories, 0 files [whb@bite-alicloud test]$ rm -ri d rm: descend into directory ‘d’? y rm: descend into directory ‘d/d’? y rm: descend into directory ‘d/d/d’? y rm: remove directory ‘d/d/d/d’? y rm: remove directory ‘d/d/d’? y rm: remove directory ‘d/d’? y rm: remove directory ‘d’? y [whb@bite-alicloud test]$ ll total 0 # 递归强制删除⾮空⽬录 [whb@bite-alicloud test]$ tree path1/ path1/ ├── myfile.txt └── path2 └── myfile.txt 1 directory, 2 files [whb@bite-alicloud test]$ rm -f path1 rm: cannot remove ‘path1’: Is a directory [whb@bite-alicloud test]$ rm -rf path1 [whb@bite-alicloud test]$ ll total 02.7 查看命令帮助:man 指令
- 功能:查看(Manual)命令的官方帮助文档(包含功能、参数、示例);
- 常用场景:忘记指令参数时,快速查询;
提示:按q键退出帮助文档
实操实例:
[root@VM-0-12-centos mytest]# man man [root@VM-0-12-centos mytest]# man ls2.8 复制文件 / 目录:cp 指令
- 功能:复制文件或目录;
- 常用选项:
- f 或 -force:强行复制文件或目录,不管目标文件/目录是否已存在
-i或 -interactive:覆盖文件前先询问用户
-r:递归处理,把指定目录下的文件和子目录一起处理;若源不是目录或符号链接,就当作普通文件处理
实操实例:
[root@VM-0-12-centos mytest]# pwd /root/mytest [root@VM-0-12-centos mytest]# ls -la total 12 drwxr-xr-x 3 root root 4096 Dec 16 17:58 . dr-xr-x---. 9 root root 4096 Dec 16 19:08 .. drwxr-xr-x 3 root root 4096 Dec 16 17:49 a -rw-r--r-- 1 root root 0 Dec 16 17:58 test1 [root@VM-0-12-centos mytest]# cp test1 test2 [root@VM-0-12-centos mytest]# ls -la total 12 drwxr-xr-x 3 root root 4096 Dec 16 19:15 . dr-xr-x---. 9 root root 4096 Dec 16 19:08 .. drwxr-xr-x 3 root root 4096 Dec 16 17:49 a -rw-r--r-- 1 root root 0 Dec 16 17:58 test1 -rw-r--r-- 1 root root 0 Dec 16 19:15 test2