一、Linux系统目录结构
目录 | 说明 |
---|---|
bin | 存放用户可执行命令和二进制文件 |
boot | 系统引导程序及内核文件存储目录 |
dev | 设备文件目录(如硬盘、光驱等) |
etc | 系统和服务的配置文件存储目录 |
home | 普通用户的家目录(每个用户拥有独立子目录) |
lib | 32位系统库文件存放目录 |
lib64 | 64位系统库文件存放目录 |
lost+found | 文件系统修复时存放临时文件的目录 |
mnt | 临时挂载点目录(如U盘、光盘等) |
opt | 第三方软件安装目录 |
proc | 虚拟目录,实时显示系统硬件和内核信息 |
root | 超级用户(root)的家目录 |
sbin | 系统管理员专用的二进制命令文件 |
/etc/selinux | SELinux安全策略配置文件存放目录 |
sys | 虚拟目录,包含内核配置和硬件信息 |
tmp | 临时文件目录(所有用户可读写) |
usr | 用户程序存放目录(包含应用程序、库文件等) |
var | 可变数据目录(log存放系统日志,spool/mail存放邮件) |
1、查看目录结构命令
tree目标目录
2、目录结构操作使用方法
-
采用绝对路径方式进行操作管理
-
采用相对路径方式进行操作管理
-
采用设备挂载方式进行操作管理
2.1、绝对路径
表示从根路径开始,进入指定的路径中或子目录中,获取指定的数据资源信息。
cd /etc/sysconfig/network-scripts/
2.2、相对路径
表示从当前路径开始,进入指定的路径中或子目录中,获取指定的数据资源信息。
cd /etc/sysconfig/
cd network-scripts/
3、目录结构中重要文件数据
3.1、网卡地址信息配置文件
/etc/sysconfig/network-scripts/(Linux9之前的系统指令)
cd /etc/NetworkManager/system-connections/(Linux9之后的系统指令)
3.2、网络域名服务配置文件
cat /etc/resolv.conf
3.3、网络本地解析配置文件
cat /etc/resolve.conf
3.4、开机自动运行脚本或命令文件
/etc/rc.local(Linux7之前的操纵指令)
3.5、系统运行状况日志文件
cat /var/log/messages
二、文件与目录操作命令
1、打印工作目录命令
选项 | 作用 |
---|---|
pwd | 查看当前工作目录的完整路径 |
-P | 显示出实际路径,而非使用连接。 |
2、目录切换命令
cd
命令 | 作用 |
---|---|
cd | 返回当前登录用户的家目录 |
cd .. | 返回上级目录 |
cd ~ | 返回当前登录用户的家目录 |
cd - | 返回上次跳转到当前目录的目录 |
cd /path | 切换到指定目录 |
3、目录内容查看命令
命令选项 | 作用 |
---|---|
-a, --all | 显示所有文件(包括以 . 开头的隐藏文件) |
-l | 使用详细列表格式显示文件或目录的详细信息 |
-h, --human-readable | 使用人类可读的格式显示文件大小(例如 1K、2M) |
-r, --reverse | 以相反的顺序列出文件 |
-t | 按照修改时间(最新的文件在前)排序 |
-S | 按照文件大小排序 |
-d, --directory | 显示目录本身,而非目录下的文件列表 |
-i, --inode | 显示每个文件的 inode 号 |
--color=auto | 自动根据文件类型显示不同的颜色 |
-R, --recursive | 递归列出目录及其子目录中的文件 |
ls | [OPTION]... [FILE]... |
使用案例
4、文件查看命令
4.1、cat命令
命令选项 | 作用 |
---|---|
cat | 连接文件或标准输入并打印 |
语法
cat
[选项] [文件]...
功能
-
一次显示整个文件:cat filename
-
从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
-
将几个文件合并为一个文件:cat file1 file2 > file3
-
追加内容到指定文件
-
修改终止指令“CTRL+c”修改成“e”
cat <<e >> 3.txt
123456
e
重定向符号
标准输出重定向
-
覆盖重定向
>
-
追加重定向
>>
错误输出重定向
-
覆盖重定向
2>
-
追加重定向
2>>
混合输出重定向
-
覆盖重定向
&>
-
追加重定向
&>>
选项 作用 -n 显示行号。 -v 显示不可打印的字符。 -e 在输出的行尾添加制表符和换行符。 -b 在输出的行尾添加空格而不是制表符和换行符。 -A 类似于 -v 和 -e,但只显示不可打印的字符和行尾的空格。 -t 仅显示每行的第一个非空格字符。 -f 按行分割文件,并将每一行分别发送到标准输出。 -l 仅显示当前行的行号。 -r 在输出的行尾添加回车符和换行符。 -s 在连续的空白字符中输出一个空格。 使用案例
4.2、more命令
语法
-
-
more [选项] [文件名]
操作
操作 作用 空格键 向下翻动一页。 Enter键 向下翻动一行。 q 退出 more 命令。 /pattern 在文件中搜索指定的模式(pattern)。 :n 跳转到第 n 行。 :f 显示文件名和当前行号。
4.3、less命令
语法
less [选项] [文件名]
操作
操作 | 作用 |
---|---|
空格键 | 向下滚动一屏。 |
Page Up 或 b | 向上滚动一屏。 |
Page Down 或 空格键 | 向下滚动一屏。 |
/pattern | 在文件中搜索指定模式(pattern)。 |
n | 找到下一个匹配的搜索结果。 |
N | 找到上一个匹配的搜索结果。 |
g | 跳转到文件的起始处。 |
G | 跳转到文件的末尾。 |
q | 退出 less 命令。 |
4.4、head命令
语法
head [选项] [文件名]
管道符
cat -n anaconda-ks.cfg | head -1
选项
选项 | 作用 |
---|---|
-q | 隐藏文件名 |
-v | 显示文件名 |
-c<字节> | 显示字节数 |
-n<行数> | 显示的行数 |
使用案例
|hesd 查看开头前10项
查看开头前3项
4.5、tail命令
语法
tail [选项] [文件名]
选项
选项 | 作用 |
---|---|
-f | 循环读取,实时监控文件内容的变化 |
-q | 不显示处理信息 |
-v | 显示详细的处理信息 |
-c<数目> | 显示的字节数 |
-n<行数> | 显示行数 |
实时监控文件变化
实时监控日志变化 
使用案例
|tail 查看最后10项内容
4.6、nl命令
语法
nl [options] [file]
选项
选项 | 作用 |
---|---|
-b | 指定要将行号添加到的行。 |
-b a | 添加行号到非空行。 |
-b t | 添加行号到所有行。 |
-b n | 不添加行号到任何行。 |
-n | 设置行号的开始值。 |
-w | 指定行号字段的宽度。 |
-s | 设置行号与文本之间的分隔符 |
使用案例
一般显示文件
案例
-
将行号添加到文件中的所有行,并将行号输出到标准输出:nl file.txt
-
将行号添加到文件中的非空行,并使用制表符作为分隔符:nl -b a -s $'\t' file.txt
-
将行号添加到文件中的所有行,从指定的行号开始:nl -n 100 file.txt
-
设置行号字段的宽度为 3 个字符,并将行号添加到所有行:nl -w 3 file.txt
5、创建目录命令
语法
mkdir [选项] 目录名
选项
选项 | 作用 |
---|---|
-p | 递归创建目录,如果父目录不存在也会创建。 |
-m | 设置新目录的权限。 |
-v | 显示详细信息,包括正在创建的目录和已使用的文件系统类型。 |
使用案例
创建一个练习目录
mkdir example
创建目录时发现上级目录不存在,直接一起创建
mkdir -p dir1/dir2
6、创建文件命令
重定向符号
>:覆盖重定向
>>:追加重定向
查看文件的时间戳: stat 文件名称
stat f1.txt
6.1、touch命令
语法
touch [选项]... 文件...
选项
选项 | 作用 |
---|---|
-a 或 --time=access | 如果文件不存在,创建一个新文件。同时更新访问时间和修改时间。 |
-m 或 --time=modify | 仅更新文件的修改时间。 |
-t 或 --time=date | 使用指定的日期和时间更新文件的访问和修改时间。 |
使用案例
创建空文件
6.2、echo命令
语法
echo [选项] 文本内容
选项
选项 | 作用 |
---|---|
-n | 在输出内容后不换行。 |
-e | 启用转义字符的解析。“\"转义符号;\n:换行;\r:回车;\t:水平制表符(tab) |
使用案例
创建文件夹并将信息输入到新创的文件夹
通过echo创建非空文件夹
实行换行
水平制表符(Tab)
不换行
7、文件或目录复制命令
语法
cp [options] source destination
选项
选项 | 作用 |
---|---|
-i(交互式) | 如果在目标位置存在一个文件且该文件会 被覆盖时,cp命令会询问用户是否继续。 |
-n(不覆盖) | 在目标位置存在文件时,不会覆盖该文件,即不会进行复制操作。 |
-r或-R(递归) | 用于复制目录以及目录内所有子目录和文件。 |
-p(保留属性) | 复制文件的同时保留源文件的属性如权限和时间戳。 |
-v(详细模式) | 显示详细的复制过程信息。 |
使用案例
-r 操作案例
-p 操作案例
8、文件或目录移动命令
语法
mv [options] source destination
选项
选项 | 作用 |
---|---|
-i(交互式) | 如果移动或重命名目标位置已存在且会覆盖时,mv 命令会询问用户是否继续。 |
-n(不覆盖) | 在目标位置存在文件时,不会覆盖该文件,即不会进行移动或重命名操作。 |
-v(详细模式) | 显示详细的移动或重命名过程信息。 |
使用案例
9、文件或目录删除命令
语法
rm [options] file ...
选项
选项 | 作用 |
---|---|
-i 或 --interactive | 在删除之前,显示每个文件是否确认删除。 |
-f 或 --force | 强制删除,即使文件正在被使用,或者存在打开的文件描述符。 |
-r 或 --recursive | 递归地删除目录及其内容。 |
-v 或 --verbose | 详细模式,显示删除的每个文件。 |
10、别名命令
语法
alias [options] name=command
选项
选项 | 作用 |
---|---|
-p | 显示当前目录下的所有已定义的别名列表。 |
11、文件属性查看命令
语法
stat [options] file
选项
选项 | 作用 |
---|---|
-c 或 --format | 指定输出信息的格式。 |
-f 或 --file-system | 显示文件系统级别的。 |
-t 或 --terse | 以更紧凑的方式显示输出信息。 |
--all 或 -a | 显示所有可用的信息。 |
--dereference | 跟随符号链接。 |
使用案例
最近访问:2025-08-01 15:06:54.680583478 +0800 #看了文件
最近更改:2025-08-01 15:06:57.283581961 +0800 #内容变化
最近改动:2025-08-01 15:06:57.283581961 +0800 #属性变化和内容变化
创建时间:2025-08-01 15:06:54.680583478 +0800 #不会动
12、目录结构查看命令
语法
tree [options] [directory]
选项
选项 | 作用 |
---|---|
-L | 指定要显示的层级深度。 |
-d | 只显示目录,不显示文件。 |
-f | 显示完整路径。 |
-a | 显示所有文件和目录,包括隐藏的。 |
-I | 排除符合模式的文件或目录。 |
13、dd命令
功能
-
生成块文件
-
复制文件内容
-
测试磁盘I/O性能
语法
dd [选项] [输出选项] [输入选项]
选项
选项 | 作用 |
---|---|
if=filename | 指定输入文件。 |
of=filename | 指定输出文件。 |
bs=size | 指定块大小。 |
count=num | 指定要复制的块数。 |
conv=参数 | 进行数据转换,例如tec进行techeus格式转换,auto允许尽可能多的转换(这对于大量数据是安全的)。 |
skip=num | 跳过第一个num块。 |
status=progress | 显示进度信息。 |
使用案例
14、链接命令
硬链接(hard link):(目录不允许创建硬链接)
-
硬链接是文件系统中的一个目录条目,它指向另一个文件的数据块。
-
硬链接和原始文件共享同一个 inode,因此对文件的修改会影响到所有硬链接。
-
硬链接不能跨越文件系统边界。
符号(软)链接(symbolic link):
-
符号链接是一个特殊的文件,其内容是指向另一个文件的路径。
-
符号链接和原始文件不共享 inode,因此删除原始文件后,符号链接仍然存在,但无法访问。
-
符号链接可以跨越文件系统边界。
语法
ln [options] source destination
选项
选项 | 作用 |
---|---|
-s 或 --symbolic | 创建符号链接而不是硬链接。 |
-f 或 --force | 如果目标文件已存在,则覆盖它。 |
-i 或 --interactive | 在覆盖目标文件之前询问用户。 |
-p 或 --preserve | 保留源文件的属性,如权限和时间戳。 |
15、file命令
语法
file [选项] 文件名
选项
选项 | 作用 |
---|---|
-b | 以二进制形式输出文件类型信息。 |
-f | 仅显示文件类型,不显示其他信息。 |
-i | 以人类可读的格式显示文件类型。 |
-L | 对符号链接进行特殊处理,查看链接指向的真实文件。 |
三、VIM编辑器
1、VIM操作模式
1.1、命令模式
操作 | 作用 |
---|---|
G | 跳转到文件末尾 |
gg | 返回文件首行 |
home键或者^ | 跳到首字符 |
end键或者$ | 跳到尾字符 |
yy | 单行复制 |
nyy | n行复制 |
P | 将光标移动到想要粘贴位置的上一行 |
p | 将光标移动到想要粘贴位置的下一行 |
u | 撤销操作,注意:进行保存且退出后无效 |
dd | 单行删除 |
ndd | n行删除 |
D或者d$ | 从所在行的光标处删除到末尾 |
d^ | 从所在行的光标处删除到行首 |
r | 替换某一个字符 |
del键 | 光标所在字符的后一个字符 |
/关键字 | 根据关键字查找,n:上翻;N:下翻 |
ZZ | 保存且退出 |
1.2、插入模式
作用:进行文件内容编辑
操作 | 作用 |
---|---|
a | 进入插入模式,在当前光标的后一个字符插入 |
o | 在当前光标的下一行插入 |
i | 在当前光标所在字符插入,返回命令模式时会将光标迁移一个字符 |
A | 在光标所在行的尾字符后插入 |
I(大写i) | 在光标所在行的首字符插入 |
O | 在当前光标的上一行插入 |
ESC(按键) | 返回命令模式 |
1.3、末行模式
作用:保存、退出及字符串替换
操作 | 作用 |
---|---|
:w | 保存 |
:q | 不保存退出 |
:wq或:x | 保存退出 |
! | 强制 |
:X->输入密码->:wq | 设置密码并保存退出 |
:X->回车两次->:wq<br>或者 :set key=""->:wq | 取消密码 |
:set nu | 设置行号 |
:set nonu | 取消行号 |
:nohl | 取消高亮 |
:行号 | 跳转到指定行 |
:%s/keyword/neword/ | 全文替换,首个匹配替换,当包含路径时,#替换/作为匹配符号 |
:%s/keyword/neword/g | 全文替换,所有匹配替换,当包含路径时,#替换/作为匹配符号 |
:指定行号s/keyword/neword/ | 指定行替换,首个匹配替换,当包含路径时,#替换/作为匹配符号 |
:指定行号s/keyword/neword/g | 指定行替换,所有匹配替换,当包含路径时,#替换/作为匹配符号 |
:起始行号,结束行号s/keyword/neword/ | 范围替换,首个匹配替换,当包含路径时,#替换/作为匹配符号 |
:起始行号,结束行号s/keyword/neword/g | 范围替换,所有匹配替换,当包含路径时,#替换/作为匹配符号 |
1.4、视图模式
操作 | 作用 |
---|---|
v | 进行行选中 |
1.5、视图快模式
操作 | 作用 |
---|---|
ctrl + v | 进行列选中 |
选中要删除的“#”,按del | 批量删除注释 |
选中要添加的列,输入 大写i ,输入#,按两次ESC | 批量增加注释 |
2、vim高级用法
操作 | 作用 |
---|---|
:r!command | 将命令结果插入文件,command命令的结果插入光标下一行 |
:nr! command | 将命令结果插入文件,command命令的结果插入n行后 |
:m,n! command | 使用页面内容作为输入,command以m,n之间的行作为标准输入,<br>标准输出会代替m,n之间的行. 注意这个操作似乎是不可用ctrl+r撤销的。要谨慎使用。 |
:! /bin/bash | 暂时离开vim来执行命令,使用完sh后exit又可以返回vim |