阶段二:Linux基础_目录与文件操作
1. Linux的目录结构
Linux的目录结构是一个树型结构,没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面,而不像Windows可以拥有多个盘符, 如 C盘、D盘、E盘

- Linux常见目录结构(高亮部分的要格外注意)
| 目录 | 作用 |
|---|---|
| /bin | 二进制命令所在的目录(普通命令 => 普通用户和超级管理员root) |
| /boot | 系统引导程序所需要的文件目录,相当于Windows中的C盘 |
| /dev | /device缩写,设备文件目录,磁盘,光驱 => /dev/sr0 |
| /etc | 系统配置文件目录,启动程序,几乎所有的软件都会把自己的配置文件安装在/etc中 |
| /home | 普通用户的家目录,默认用户数据存放目录,itheima账号 => /home/itheima文件夹 |
| /lib | 共享库文件和内核模块存放目录,软件安装、运行依赖库文件.a、.so文件 |
| /mnt | 临时挂载储存设备的挂载点,插入u盘、移动硬盘 => 先挂载 => /mnt中访问 |
| /opt | 额外的应用软件包, 安装qq、游戏、wps办公软件 |
| /proc | process进程目录,操作系统运行时,进程信息和内核信息存放在这里 |
| /root | Linux超级权限用户root的家目录,超级管理员root => /root |
| /sbin | 和管理系统相关的命令,【超级管理员用】,s = super超级 |
| /tmp | 临时文件目录,这个目录被当作回收站使用 |
| /usr | 用户或系统软件应用程序目录,类似Windows中的Program files |
总结说明:
家目录:
/home: 普通用户的家目录, 默认会在此目录下, 根据用户名构建一个子目录, 作为该用户家目录
/root: 超级管理员root用户的家目录
用于放置Linux命令的目录:
/bin : 用于放置操作Linux系统的普通命令 例如 创建文件 创建文件夹 查看文件 ....
/sbin: 用于放置管理Linux系统的命令 例如: 重启服务器 关闭服务器
用于安装软件的位置:
/opt: 一般在安装第三方软件的时候, 通常放置到/opt目录下
/usr: 一般是软件默认安装的位置
Linux系统各种配置文件目录: /etc
设备信息放置的目录: /dev
临时存储文件的目录: /tmp
注意: 在Linux中目录结构是一个树形结构, 没有盘符的概念, 最顶级的为 / 表示根目录注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
2. Linux与目录相关命令
Linux目录的相关命令主要包括有pwd、ls、mkdir、cd、rmdir等, 如果把Linux的目录结构比作一个“文件柜”:
pwd= 当前在文件柜的哪一层抽屉(显示当前位置)
ls= 打开抽屉看看里面有什么(列出内容)
mkdir= 增加了一个新的抽屉(创建目录)
cd= 走进某个抽屉或文件夹(切换位置)
rmdir= 扔掉一个空文件夹(删除空目录)
2.1 终端说明

2.2 基本导航命令
2.2.1 定位与查看(pwd、ls)
pwd(print working directory):
- 格式: pwd
- 作用: 查看当前所在位置

ls(list show):
- 格式: ls [选项][路径]
- 作用 :ls 是英文单词list show的简写, 其功能为列出目录的内容,是用户最常用的命令之一
ls常用选项
| 选项 | 含义 |
|---|---|
| -a | all所有, 显示指定目录下所有子目录与文件, 包含隐藏文件 |
| -l | list,以列表方式显示文件的详细信息 |
| -h | 配合 -l 以人性化的方式显示文件大小(文件大小 + 单位) |
ls -l与ll显示信息说明:

2.2.2 切换与目录结构(cd、tree)
cd(change directory):
- 作用:更改当前的工作目录
- 格式:
| 命令 | 含义 |
|---|---|
| cd | 切换到用户主目录(root用户主目录是/root,其他用户是/home/用户名)等价于 cd \~ |
| cd 目录 | 切换到指定目录下 => cd /etc |
| cd .. | 切换到上级目录 |
普及:路径有两种写法
绝对路径 :从根目录一级一级向下移动,不能越级。如/home/itheima
例如:访问根目录下的usr目录下local目录下的nginx文件夹
cd /usr/local/nginx => 路径不需要记忆,用到的时候,直接按Tab键(自动补全)
相对路径 :顾名思义,有一个参考点 => 以当前位置作为参考注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
dnf -y install tree
# 查看目录结构
tree game_saves注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
2.3 目录管理命令
2.3.1 创建目录(mkdir)
mkdir(make directory):
- 作用:mkdir 命令用于创建目录
- 格式:
mkdir [-p] dirName
参数:
-p:一次创建多级目录注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
2.3.2 删除空目录(rmdir)【了解】
作用:rmdir命令用于删除空目录
rmdir dirName清屏命令: ctrl + l
3. Linux与文件相关命令
3.1 文件操作命令
3.1.1 创建文件(touch)
作用:touch命令创建新文件
格式:touch 文件名
案例演示:
需求一: 在家目录下,创建一个hello.java
cd
touch hello.java
需求二: 在家目录下,创建一个a.txt
cd
touch a.txt注:touch命令不仅可以创建.txt文本文档,还可以创建python/java/go等脚本程序。如touch main.py
3.1.2 复制 cp
作用:cp(copy)命令用来实现文件或者目录的复制
格式:cp [-r] 源文件位置... 目标路径
| 参数 | 说明 |
|---|---|
| -r | 递归,复制文件夹必须添加 |
需求一: 分别将家目录下的hello.java 和 a.txt 拷贝到 /usr/local
cd
cp hello.java /usr/local
cp a.txt /usr/local
或者
cp hello.java a.txt /usr/local
需求二: 将/usr/local 这个目录 拷贝到家目录下
cd /usr
cp -r local /root
cp -r local ~注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
3.1.3 移动 mv
作用:mv(move)命令用于文件、目录的移动和重命名
格式:mv 源文件路径... 目标路径
注意:mv没有任何选项,移动文件和文件夹都可以
案例演示:
需求一: 将 /root目录下的anaconda-ks.cfg文件,移动到 /export/data 目录下
mkdir -p /export/data
cd ~
mv anaconda-ks.cfg /export/data
需求二: 将 /export目录移动到 /root目录下
cd /
mv export ~命令作用:
- 创建目录
/export/data;-p会同时创建缺失的父目录,并且目录已存在时不报错。
执行结果:
- 成功后目标目录会存在;可用
ls -ld 目录名查看目录权限和属主。
关键参数:
注意事项:
当我们通过vi/vim命令打开文件时,默认就处于命令模式
| 命令 | 功能 |
|---|
如何进入编辑模式呢?
答:
i:在当前光标的前面插入内容
a:在当前光标的后面插入内容
o:在光标的后一行插入内容
O:在光标的前一行插入内容
问题:如何从编辑模式回到命令模式
答:按Esc键
在Linux操作系统中,文件必须先保存后退出!
!叹号代表强制,强制保存、强制退出、强制保存并退出!
| 命令 | 功能 |
|---|---|
| :w | 保存(ctrl + s) |
| :q | 退出, 如果没有保存,不允许退出 |
| :q! | 强行退出, 不保存退出 |
| :wq | 保存并退出 |
| :x | 保存并退出 【建议运维选择】 |
| :%s/旧关键词/新关键词/g | 文本替换 |
| :noh | 取消高亮 |
| /关键词 | 搜索某一关键词 |
:wq和:x区别?

如果在打开某个文件时,弹出以上提示,那代表你这个文件之前没有保存就强制退出了,触发了Vim的备份机制,产生了一个.文件名称.swp交换文件。
以后每次打开之前的文件就会产生上面的提示,解决方案:
案例说明:
**注意事项:**
语法:
进入文件后,可使用的相关操作:
空格键:向下滚动一页。
Enter键:向下滚动一行。
b:向上翻页(可能不支持所有系统)。
q:退出查看
案例: 注意事项:
进入文件后,可使用的相关操作:
空格键:向下翻页。 b:向上翻页。 q:退出查看。 n:跳到下一个匹配的搜索结果。 h:查看帮助信息
案例演示:
**注意事项:**
注意事项:
案例说明:
**注意事项:**
例如:
注意事项:
示例: 含义:在boot.log文件中,查找包含network的行
含义:在/var/log目录下的所有文件中,查找包含network的行
扩充点: | 如何打印|: shift + 反斜杠按键 (英文模式下)
| 表示管道符号
例如:
对cat执行结果,通过grep查询包含linux的行内容
并不是所有的命令都支持管道符的
**注意事项:**
日志文件分析案例:
答案:
注意事项:
| 选项 | 说明 |
|---|---|
| -c | 创建一个新的归档文件; |
这个选项表示将指定的文件或目录打包成一个新的归档文件。 | | -x | 解压缩归档文件 ; 使用该选项从归档文件中提取文件。 | | -f | 指定归档文件的名称; 该选项必须紧跟着归档文件名,指定要创建或提取的归档文件。 | | -z | 使用 gzip 压缩或解压归档文件; | -v | 在创建或解压归档时显示详细过程信息(列出文件名); 这个选项会显示每个文件在归档过程中的详细信息,通常用于调试或跟踪进度。 | | -j | 使用 bzip2 压缩或解压归档文件; | -J | -J (xz) 使用 xz 压缩或解压归档文件; | -C | 用于指向新的解压的目录 C是大写的C |
| 参数组合 | 说明 |
|---|---|
| -cvf | 创建归档文件,俗称 "打包",打包后的文件后缀名为.tar |
| -xvf | 解压归档文件, 俗称 "拆包" |
| -czvf | 创建归档文件,并采用gzip进行压缩, 压缩后的文件后缀名为.tar.gz |
| -xzvf | 解压被gzip压缩的归档文件 |
| -cjvf | 创建归档文件,并采用bzip2进行压缩, 压缩后的文件后缀名为.tar.bz2 |
| -xjvf | 解压被bzip2压缩的归档文件 |
案例: 或者
**注意事项:**
首先:
接着:
注意事项: