Linux学习
Linux的目录结构
Linux的目录结构是一个树形结构,没有盘符这个概念,只有一个根目录/,所有文件都在它之下。
常见的目录结构
-
/bin二进制命令所在的目录(普通命令=>普通用户和超级管理员root) -
/home 与/root 家目录,/home表示普通用户的目录,/root表示超级用户的家目录
-
/opt额外的应用软件包,如qq,游戏等 -
/sbin和管理系统相关的命令,【超级管理员用】,s = super超级 -
/tmp临时文件目录,这个目录被当作回收站使用 -
/usr用户或系统软件应用程序目录 -
/dev/device缩写,设置文件目录,磁盘,光驱 => /dev/sr0 -
/etc系统配置文件目录,启动程序,几乎所有的软件都会把自己的配置文件安装在/etc中
基础命令
目录相关命令
[root@localhost /]# 其中root是当前用户,@是分隔符,localhost是主机名, /是当前目录,#代表超级用户,$代表普通用户。
基本导航命令
- 定位与查看
| 命令 | 作用 | 语法格式 | 参数 | 案例 |
|---|---|---|---|---|
| pwd print Work directory |
显示当前所在目录的绝对路径 | pwd |
无 | 显示当前路径:pwd |
| ls List Show |
列出目录的内容 | ls [选项] [路径] |
-a:all所有,显示指定目录下所有子目录与文件,包含隐藏文件 -l:list以列表方式显示文件的详细信息,可简写为ll -h:配合 -l以人性化的方式显示文件大小 |
显示当前所有目录:ls -a 以列表的形式展示根目录:ls -l /或者ll / |
- 切换与目录结构:
| 命令 | 作用 | 语法格式 | 参数 | 案例 |
|---|---|---|---|---|
| cd change directory |
更改当前工作目录 | cd [目标路径] | ..:两个点表示上一级.:一个点表示当前-:减号表示跳转到上一次所在目录[注]:不设置目标路径表示直接返回用户的家目录,与 cd ~等同 |
cd ~:切换到家目录cd ../bin:切换当前目录的上一级下的bin子目录cd /sbin:切换到根目录下sbin目录 |
| tree | 以树状图形式递归列出目录结构,显示目录及其子目录和文件的分层视图 | tree [选项] [目录] | -d:仅显示目录,不显示文件-L n:限制显示层级深度(n为数字)-a:显示隐藏文件(以.开头的文件)-f:显示完整路径[注]:如果未指定目录,默认显示当前目录的树状结构 |
tree:显示当前目录结构tree /root:显示/root目录下的整体目录结构 |
目录管理命令
- 创建/删除目录:
| 命令 | 语法格式 | 参数 | 案例 |
|---|---|---|---|
| mkdir | mkdir [-p] 目录名称 |
-p:一次创建多级目录,如果不带仅能创建单极目录 |
mkdir -p /export/software:创建多级目录mkdir aaa:在当前目录下创建aaa目录 |
| rmdir | rmdir 目录名称 | -p:递归删除父目录(如果子目录删除后父目录为空) |
rmdir /export/software:删除software目录 |
文件操作命令
| 命令 | 作用 | 语法格式 | 参数 | 案例 |
|---|---|---|---|---|
| touch | 创建文件 | touch 文件名 | -d YYYY-MM-DD hh:mm:ss(年月日格式):手动指定时间戳 |
touch file1.txt :在当前目录下创建file.txt touch file1.txt file2.txt file3.txt :创建多个文件 touch -t 202501011230.45 file.txt :指定时间戳 |
| cp copy |
文件或者目录的复制 | cp [-r] 源文件位置... 目标路径 | -r: 递归,复制文件夹必须添加 | cp a.txt /usr/local: 复制当前a.txt文件到/usr/local下 cp -r local /root :复制local目录到 /root下 |
| mv move |
文件,目录的移动和重命名 | mv 源文件路径... 目标路径 | 无 | mv aa-ks.cfg /export/data :将某文件移动到某路径下 mv export~ :将export目录移动到家目录下 mv a.txt text.txt :将a.txt移动到当前目录的text.txt中(重命名) |
| rm | 删除文件 | rm [选项] 文件 /目标路径 | -r: 是否启动递归删除防方案(适用于删除目录的时候) -f : 是否需要强制删除,如不添加,会有询问操作 |
rm -rf /export: 不提示强制删除/export目录 |
文件查询命令
find 命令: 文件查询命令
格式: find 路径范围 选项1 选项1的值 [选项2 选项2的值...]
选项说明:
| 选项 | 说明 |
|---|---|
| -name | 按照文档名称进行搜索(支持模糊搜索) * :通配符,匹配任意字符 |
| -type | 按照文档的类型进行搜索,文档类型的值,f(file)表示文件;d(directory)表示文件夹 |
| -mtime | 用于根据文件的修改时间(modification time)来筛选文件,参数值是一个整数,表示天数: -mtime +n:查找修改时间超过n天前的文件 -mtime -n:查找修时间在n天以内的文件 -mtime n:查找修改时间正好是n天前的文件 |
| -exec | 用于对find查找到的文件执行指定的命令,它的语法比较特殊,需要使用{}表示查找到的文件,并用;结束命令 例如: 查找所有.log文件并删除 find /var/log -name "*.log " -exec rm -f {} ; |
| -size | 用于根据文件大小查找文件。格式为[+/-]n【单位】 +和-前缀: +n:表示大于n的文件。 -n:查找小于n的文件 单位说明: c:字节(默认单位) k:千字节(KB) M:兆字节(MB) G:吉字节(GB) b:512字节块(不常用) |
文件相关命令
vi:经典的文本编辑器,功能基础,适用于简单编辑任务。
vim:vi的升级版,支持更多高级功能如:
- 语法高亮
- 多级撤销
- 代码折叠
- 插件支持
- 更好的跨平台兼容性
在RHEL9中,vi通常时vim的符号链接,即运行vi实际是启动vim的兼容模式
- 打开文件
- vi a.txt #直接打开文件
- vim a.txt #vim是vi的增强版
- vim +10 a.txt #直接打开文件,并定位到第十行
vi/vim三种工作模式:命令模式,插入模式(编辑模式),末行模式(底行模式)
- 命令模式:复制,粘贴,移动光标,撤销与恢复
- 插入模式:智能编辑文件内容
- 第行模式:保存文件,推出文件,显示行号,搜索关键词

命令模式下的快捷键:
| 命令 | 功能 |
|---|---|
| o | 在当前行后面插入一空行 |
| O | 在当前行前面插入一空行 |
| dd | 剪辑或删除光标所在行 |
| ndd | 从光标位置向下连续剪切或删除n行 |
| yy | 复制光标所在行 |
| nyy | 从光标位置向下连续复制n行 |
| Ctrl + R | 恢复,与u对应 |
| p | 粘贴 |
| u | 撤销上一次命令 |
| gg | 回到文件顶部 |
| G | 回到文件末尾 |
底行模式:
常用快捷键:
| 命令 | 功能 |
|---|---|
| :w 文件 | 另存为 |
| :w | 保存 |
| :q | 退出,如果没有保存,不允许退出 |
| :q! | 强行退出,不保存 |
| :wq | 保存并退出 |
| :x | 保存并推出 |
| :set nu | 设置行号,取消行号使用:set nonu |
| :%s/旧关键词/新关键词/g | 文本替换 |
| :noh | 取消高亮 |
| /关键词 | 搜索某一关键词 |
:wq和:x的区别:如果文件内容改变,两者效果一样,如果文件内容没有改变,:x不会改变文件的最后修该时间,但是:wq会更新为文件的最后修改时间。运维工程师强烈建议使用:x
文件查看命令
| 命令 | 作用 | 格式参数 | 案例 |
|---|---|---|---|
| cat | 从上往下查看文件内容,一次性加载所有数据,适合小文件查看 | cat 文件 | 查看家目录中anaconda-ks.cfg文件: cat anaconda-ks.cfg |
| more | 用于分页查看文件内容的命令 | more filename 进入文件后,可使用的相关操作: 空格键:向下滚动一页 b:向上翻页(可能不是支持所有系统) Enter键:向下滚动一行 q:退出查看 |
more anaconda-ks.cfg |
| less | less命令与more类似,但功能更强大,它允许用户向前和向后滚动文件,同时提供更多操作选项 | 语法:less filename 进入文件后可使用的相关操作: b:向上翻页 Page Up/Page Down:向上向下滚动【方向键】 q:退出查看 /搜索词:搜索某个关键词,并跳转到该词的位置 n:跳到下一个匹配的搜索结果 h:查看帮助信息 |
less anaconda-ks.cfg |
| head | 查看文件的前N行内容,默认前10行 | head -N 文件 N:表示从前往后看N行 |
查看家目录总anaconda-ks.cfg文件的前20行 head -20 anaconda-ks.cfg |
| tail | 用于从后往前看文件,并支持监控文件变化 | tail -[N] [f]文件 N:表示从后往前看N行 f:是否持续显示文件末尾内容 |
查看某个文件最后100行内容 tail -100 xx.log 查看最后100行,并实时查看输出内容 tail -100f xx.log |
| wc | 用于统计文件或输入中的行数,单词数和字节数 | wc [选项] [文件] -l:统计行数(lines) -w:统计单词数(words) -c:统计字节数(bytes) -m:统计字符数(characters) -L:统计最长行的长度(length) |
统计文件有多少行 wc -l xx.txt 统计文件中有多少单词 wc -w xx.txt 统计有多少字节和字符数 wc -cm xx.txt |
| grep | 在文件中直接找到包含指定信息的那些行,并把这些信息展示出来 | grep 要查找的内容 文件名 | 在boot.log文件中,查找包含network的行 grep network boot.log |
| | | 管道符号,将上一个命令的执行结果,作为下一个命令的输入 | 命令1 | 命令2 | 命令3 |... 并不是所有的命令都支持管道符 |
对cat执行结果,通过grep查询包含Linux的行内容 cat a.txt b.txt |grep linux |
文件解压缩
tar(tape archive)是一个用于打包和压缩文件的命令工具
格式:tar [选项] 文件
| 选项 | 说明 |
|---|---|
| -c | 创建一个新的归类文档,这个选项表示将指定的文件或目录打包成一个新的归档文件 |
| -x | 解压缩归档文件,使用该选项从归档文件中提取文件 |
| -f | 指定归档文件的名称,该选项必须紧跟这归档名,指定要创建或者提取的归档文件 |
| -z | 使用gzip压缩或者解压缩归档文件,该选项表示将归档文件压缩成.tar.gz格式或者解压缩.tar.gz格式的归档文件 |
| -v | 在创建或解压缩归档文件时显示详细过程信息(列出文件名);这个选项会显示每个文件在归档过程中的详细信息,通常用于调试或跟踪进度 |
| -j | 使用bzip2压缩或者解压缩归档文件,该选项表示将归档文件压缩成.tar.bz2格式,或者解压缩.tar.bz2格式的归档文件 |
| -J | -J(xz)使用xz压缩或解压缩归档文件,压缩成.tar.xz格式或者解压缩 |
| -C | 用于指向新的解压目录 |


浙公网安备 33010602011771号