阶段二:Linux基础_目录与文件操作

1. Linux的目录结构

Linux的目录结构是一个树型结构,没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面,而不像Windows可以拥有多个盘符, 如 C盘、D盘、E盘

image
目录作用
/bin二进制命令所在的目录(普通命令 => 普通用户和超级管理员root)
/boot系统引导程序所需要的文件目录,相当于Windows中的C盘
/dev/device缩写,设备文件目录,磁盘,光驱 => /dev/sr0
/etc系统配置文件目录,启动程序,几乎所有的软件都会把自己的配置文件安装在/etc中
/home普通用户的家目录,默认用户数据存放目录,itheima账号 => /home/itheima文件夹
/lib共享库文件和内核模块存放目录,软件安装、运行依赖库文件.a、.so文件
/mnt临时挂载储存设备的挂载点,插入u盘、移动硬盘 => 先挂载 => /mnt中访问
/opt额外的应用软件包, 安装qq、游戏、wps办公软件
/procprocess进程目录,操作系统运行时,进程信息和内核信息存放在这里
/rootLinux超级权限用户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中目录结构是一个树形结构, 没有盘符的概念, 最顶级的为 / 表示根目录

注意事项:

2. Linux与目录相关命令

Linux目录的相关命令主要包括有pwd、ls、mkdir、cd、rmdir等, 如果把Linux的目录结构比作一个“文件柜”:

2.1 终端说明

image

2.2 基本导航命令

2.2.1 定位与查看(pwd、ls)

pwd(print working directory):

image

ls(list show):

ls常用选项

选项含义
-aall所有, 显示指定目录下所有子目录与文件, 包含隐藏文件
-llist,以列表方式显示文件的详细信息
-h配合 -l 以人性化的方式显示文件大小(文件大小 + 单位)

ls -l与ll显示信息说明:

image

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键(自动补全)

相对路径 :顾名思义,有一个参考点 => 以当前位置作为参考

注意事项:

dnf -y install tree
# 查看目录结构
tree game_saves

注意事项:

2.3 目录管理命令

2.3.1 创建目录(mkdir)

mkdir(make directory):

mkdir [-p] dirName

参数:
-p:一次创建多级目录

注意事项:

2.3.2 删除空目录(rmdir)【了解】

作用:rmdir命令用于删除空目录

rmdir dirName

清屏命令: ctrl + l

2.4 综合练习

2.4.1 搭建一个【游戏存档】目录

任务

1. 在根目录创建 game_saves 目录,进入它 2. 创建子目录 level1level2backup 3. 在 backup 中创建 20232024 目录 4. 删除 backup/2023,再尝试删除整个 game_saves(观察错误)

2.4.2 搭建一个family目录

结构要求:

image

要求:用 tree 命令验证结构,最后删除整个目录(只用已学命令)。

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 ~

注意事项:

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 ~

命令作用:

执行结果:

关键参数:

参数说明
-p核心递归创建目录;父目录不存在时一并创建,目录已经存在也不报错。

注意事项:

或者



![](/assets/feishu-images/7414c29f4fcbcecc0b787c9d.png)



| **选项** | **说明** |
|---|---|
| -r | 是否启动递归删除方案(适用于删除目录的时候)  |
| -f | 是否需要强制删除,如果不添加, 会有一个询问的操作 |




选项说明
-name按照文档名称进行搜索(支持模糊搜索)
-type按照文档的类型进行搜索,文档类型的值,f(file)表示文件,d(directory)表示文件夹

单位说明:c:字节(默认单位)
k:千字节(KB)
M:兆字节(MB)
G:吉字节(GB)
b:512字节块(不常用)







注意事项:


**注意事项:**



注意事项:

#尝试校验:





写法:   

注意事项:


**注意事项:**





vi的特点:


关键参数:

参数说明
是从vi发展出来的文本编辑器,普通是从vi发展出来的文本编辑器, 是当前 vim 命令使用的参数或操作对象,作用是为当前动作指定目标或具体取值。
支持代码补全、编译及显示效果等方面编程的功能提别丰富,普通支持代码补全、编译及显示效果等方面编程的功能提别丰富, 是当前 vim 命令使用的参数或操作对象,作用是为当前动作指定目标或具体取值。
在程序员中被广泛使用,普通在程序员中被广泛使用, 是当前 vim 命令使用的参数或操作对象,作用是为当前动作指定目标或具体取值。
被称为编辑器之神。普通被称为编辑器之神。 是当前 vim 命令使用的参数或操作对象,作用是为当前动作指定目标或具体取值。

注意事项:

关键参数:

参数说明
命令功能
------

如何进入编辑模式呢?

答:

i:在当前光标的前面插入内容

a:在当前光标的后面插入内容

o:在光标的后一行插入内容

O:在光标的前一行插入内容

问题:如何从编辑模式回到命令模式

答:按Esc

在Linux操作系统中,文件必须先保存后退出!

!叹号代表强制,强制保存、强制退出、强制保存并退出!

命令功能
:w保存(ctrl + s)
:q退出, 如果没有保存,不允许退出
:q!强行退出, 不保存退出
:wq保存并退出
:x保存并退出 【建议运维选择】
:%s/旧关键词/新关键词/g文本替换
:noh取消高亮
/关键词搜索某一关键词

:wq和:x区别?

image

如果在打开某个文件时,弹出以上提示,那代表你这个文件之前没有保存就强制退出了,触发了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压缩的归档文件

案例: 或者


**注意事项:**

首先: 
接着: 

注意事项:

image

需求一:

结果: /opt/web_project/

校验: 查看是否有对应的文件产生


**注意事项:**



使用find命令完成以下操作:


统计信息:


使用find命令完成以下操作:
校验:


统计信息:

注意事项:

本文由飞书云文档同步生成。涉及命令、SQL、配置示例时,请以飞书源文档和实际环境执行结果为准。