一、目录结构
1.基本介绍
Linux的文件系统是采用级层式的树状目录结构,此结构最上层的是根目录"/",然后在此目录下创建其他的目录
2.具体的目录结构
①/bin Binary的缩写,存放着最经常使用的命令

②/sbin Super User,这里存放着系统管理员使用的系统管理程序

③/home 存放着普通用户的主目录

④/root 该目录为系统管理员,即超级用户的用户主目录
⑤/lib 系统开机所需要的最基本的动态链接共享库、

⑥/lost+found 当系统非法关机后,会保存一些数据
⑦/etc 系统管理所需要的配置文件和子目录

⑧/user 重要的目录,用户的很多应用程序和文件都放在这个目录下

⑨/boot 启动Linux时使用的一些核心文件

⑩/proc【勿动】是一个虚拟的目录,系统内存的映射,访问这个目录获取系统信息

二、关机重启
1.常用指令:
shutdown -h now 立刻关机
shutdown -h 1 "hello,1分钟后会关机"
shutdown -r now 立即重启计算机
halt 关机
reboot 重启
sync 把数据从内存同步到磁盘
2.注意细节
1.不论重启系统或者关闭系统时,先sync将数据存到磁盘,防止丢失
三、登录注销
1.登录
注:登录系统时避免用root登录,因为root是系统管理员,权限极高,执行指令错误对系统危害大
2.注销
基本语法:
logout
注:logout注销指令在图形运行级别无效,在运行级别3才有效

四、用户管理
Linux是一个多用户多任务的操作系统,任何一个想要使用资源的人,都需要向系统管理员申请一个账户,以这个账号登录系统。
1、添加用户
基本语法:
useradd 用户名
useradd -d 指定目录 用户名
(注:1.当创建用户成功时,会在/home下创建用户名同名的目录,叫做该用户的家目录
2.-d给新创建的用户创建指定的家目录)
示例1:创建一个anna的用户

当创建用户并且不指定目录时,默认在/home下创建与用户名同名的目录

示例2:创建一个jacky用户,并指定家目录为/home/JackyHome

2、删除用户
基本语法:
userdel 用户名
userdel -r 用户名
(注:删除用户时注意仅删除用户还是同时删除用户及其家目录,-r参数删除用户及家目录)
示例1:删除anna用户但保留家目录

示例2:删除用户及其家目录

3.指定/修改密码
基本语法:
passwd 用户名
(如果使用passwd时未指定用户名,则默认为当前登录使用的用户修改密码)
示例:

4.查询用户信息指令
基本语法:
id 用户名
示例:查询root用户信息

- uid :用户 ID(User ID) 即用户的"身份证号",Linux 系统只认数字 ID,不认用户名。
- gid :主组 ID(Primary Group ID) GID 是默认主组的编号。
- groups :该用户属于哪些组(所有组 ID)
细节说明
当用户不存在时,会返回无此用户
5.切换用户
介绍:在操作Linux时,若遇到权限不够,可使用su - 指令,切换到更高权限用户进行操作
基本语法
su - 切换的用户名
示例:
创建一个jack用户,指定密码,并切换到jack

细节说明:
1)从高权限->低权限 ,不需要密码,反之需要。
2)当需要返回原来用户,使用exit/logout指令
示例:root->jack->root->退出

6.查看当前用户/登录用户
基本语法
1. whoami
作用:打印当前有效操作身份
su 普通用户、su - 普通用户、sudo -i- 只要切过去了,
whoami就变成新用户
2. who / w
作用:打印【原始登录终端的用户】 你是root 原始登录机器,哪怕切一万次 su:
who、w依然会显示:root- 记录的是:谁最开始登录了这个终端
whoami= 我现在是谁(干活的身份)who= 谁最早登的这台机器(原始登录身份)
Last login: Wed Apr 22 23:27:07 2026
root@iZuf6ba7plevoziooe3s2pZ \~\]# whoami root \[root@iZuf6ba7plevoziooe3s2pZ \~\]# who root pts/0 2026-04-22 23:18 (112.23.98.56) root pts/1 2026-04-22 23:19 (112.23.98.56) root pts/2 2026-04-22 23:28 (112.23.98.56) \[root@iZuf6ba7plevoziooe3s2pZ \~\]# su - jack Last login: Wed Apr 22 23:27:36 CST 2026 on pts/2 \[jack@iZuf6ba7plevoziooe3s2pZ \~\]$ whoami jack \[jack@iZuf6ba7plevoziooe3s2pZ \~\]$ who root pts/0 2026-04-22 23:18 (112.23.98.56) root pts/1 2026-04-22 23:19 (112.23.98.56) root pts/2 2026-04-22 23:28 (112.23.98.56) \[jack@iZuf6ba7plevoziooe3s2pZ \~\]$ su - cyh Password: Last login: Wed Apr 22 23:27:45 CST 2026 on pts/2 \[cyh@iZuf6ba7plevoziooe3s2pZ \~\]$ whoami cyh \[cyh@iZuf6ba7plevoziooe3s2pZ \~\]$ who root pts/0 2026-04-22 23:18 (112.23.98.56) root pts/1 2026-04-22 23:19 (112.23.98.56) root pts/2 2026-04-22 23:28 (112.23.98.56)
7.用户组
介绍:可以对有共性的一类用户进行统一的管理

基本指令
①新增组
指令:groupadd 组名
示例:

②删除组
指令:groupdel 组名
示例:

③创建用户时直接指定所属组
指令:useradd -g 用户组 用户名
示例:新增一个用户zwj,指定到wudang

使用cat /etc/group查看系统中的group

GID 组 ID &group是干嘛的?
GID 是默认主组的编号。
Linux 里:每个用户必须属于至少一个组,这个组就是主组。
作用:
- 新建文件 / 目录时,所属组默认就是这个 GID
- 方便给同一组的人统一开权限比如开发组都能读写项目目录,其他人不行
示例:
1.创建zsf用户到wudang
2.zwj创建武功秘籍目录
此时wudang群组的人(zsf),对这个目录的权限为r-x,可通过修改此目录用户所属组的权限来让群组的人有更多操作。
④修改用户的组
基本语法
usermod -g 用户组 用户名
示例:
把zwj转移到mingjiao
用户和组相关文件
/etc/passwd文件
用户的配置文件,保存用户信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
/etc/shadow文件
口令的配置文件
每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:警告时间:不活动时间:失效时间:标志
这里zwj和zsf的加密口令为!,是因为未设置密码。现在我们为zwj设置密码:
结果:
/etc/group文件
组的配置文件,记录Linux内所有组的信息
每行含义:组名:口令:组标识号:组内用户列表
五、实用指令
1.运行级别
运行级别=系统预设的不同工作模式(不同的级别决定:开始启动的服务、有无图形界面、是否允许远程登录、单用户模式/多用户模式)
1.1基本介绍:
常用运行级别是3和5,也可以指定默认运行级别
|---------------|------------------------------------|
| 级别 | 作用 |
| 0:关机 | 系统直接关机,不能设为默认 |
| 1:单用户(找回丢失密码) | 式只允许 root 登录,无网络、无图形,改密码、修复系统用 |
| 2:多用户状态没有网络服务 | 多用户登录,无网络、无 NFS,几乎不用 |
| 3:多用户状态有网络服务 | 生产服务器默认,纯命令行、有网络、完整多用户 |
| 4:系统未使用保留给用户 | 自定义预留,官方不用 |
| 5:图形界面 | 桌面版默认,带桌面、窗口、图形界面 |
| 6:系统重启 | 系统重启,不能设为默认 |
命令:init + 运行级别
作用:临时切换运行级别
示例:通过init来切换不同的运行级别,然后关机
1.2.制定运行级别
老式 init 运行级别 已经被 systemd 目标 (target) 替代,但兼容旧命令:
- 对应级别 3 →
multi-user.target多用户字符 - 对应级别 5 →
graphical.target图形
查看当前运行级别:
systemctl get-default

设置默认运行级别:
systemctl set-default TARGET.target
1.3 找回root密码
1.首先启动系统,进入开机界面,在界面中按"e"进入编辑界面,如图
2.进入编辑界面,将光标下移,找到以"Linux16"开头内容所在的行,在行的最后面输入init=/bin/sh
3.输入完成后,按快捷键,Ctrl+x 进入单用户模式
4.接着在光标闪烁的位置中输入:mount -o remount,rw/,完成后按键盘的回车键
5.在新的一行最后输入:passwd,完成后按键盘的回车键,输入密码并再次确认密码。密码修改成功后,会显示passwd.....的样式,说明修改成功。
6.touch /.autorelabel # CentOS 必须,防止开机卡死 exec /sbin/init
六、文件目录类
1.pwd指令
基本语法: pwd (功能描述:显示当前工作目录的绝对路径)
应用实例:

2.ls指令
基本语法:ls [选项] [目录/文件]
功能描述:
ls [文件] 若文件存在,打印文件名;若文件不存在,提示No such file or directory==》本质:判断文件是否存在
ls [目录] 列出目录中所有内容
常用选项:
-a:显示当前目录下所有的文件和目录
-l:以列表形式显示信息
应用实例:



3.cd指令
基本语法:cd [路径] (功能描述:切换到指定目录)
注:路径可使用绝对路径/相对路径
特殊用法:
cd ~/cd =》回到自己的家目录
cd.. =》回到当前目录的上一级目录
应用实例:
eg1:使用绝对路径切换到root

eg2:使用相对路径切换到root


eg3:回到当前目录的上一级目录

eg4:回到家目录
root用户家目录-》/root

普通用户cyh家目录-》/home/cyh

eg5:由/home/cyh一步步切换至/下


4.mkdir指令
基本语法:mkdir [选项] [要创建的目录名] (功能描述:创建指定目录)
常用选项:
-p:创建多级目录
应用实例
eg1:创建一个目录/home/gim(只创建一级目录)


eg2:创建一个目录/home/jack/library(一次创建多级目录)


5.rmdir指令
基本语法: rmdir [选项] 要删除的空目录 功能描述:删除空目录
注:rmdir只能删除空目录,若目录非空则无法删除;
使用rm -rf删除非空目录
应用实例:删除一个空目录
6.touch指令
基本语法:touch 文件名称 功能描述:创建一个新文件
应用实例:
创建test.txt文件

7.cp指令
基本语法:cp [选项] source dest 功能描述:拷贝文件/文件夹到指定目录
常用选项:
-r:递归的复制整个文件夹
应用实例:
eg1:将/home/hello.txt 拷贝到 /home/cyh/python_test

eg2:递归复制整个文件夹

8.rm指令
基本语法:rm [选项] 要删除的文件/文件夹 功能描述:移除文件或目录
常用选项:
-r:递归的删除整个文件夹
-f:强制删除不提醒
应用实例:
eg1:删除/home/hello.txt

eg2:递归的删除整个文件夹
9.mv指令
基本语法:
mv source_file dest_file 功能描述:重命名/移动文件
mv source_dir dest_dir 功能描述:重命名/移动目录
对于文件/目录,目标存在则移动进去;目标不存在则重命名。结合应用实例:
for file
eg1:将/home/cat.txt 重名为dog.txt

eg2:将home/dog.txt 移动到/home/cyh

for dir
eg3:将/home/annals/mydir目录 重命名为mydir_new

eg4:将/home/annals/mydir目录 移动到/home/jack/library下

10.cat指令
基本语法:
cat [选项] 要查看的文件 功能描述:查看文件内容
常用选项
-n:显示行号
应用实例:
eg1:显示/etc/profile文件内容,并显示行号

11.less指令
less指令用来分屏查看文件内容,在显示文件内容时,并不是一次将整个文件加载后在显示,而是根据显示需要加载内容,对于显示大型文件有较高的效率
基本语法:
less 要查看的文件
常用交互操作:
注: / -> 向下搜索 ? -> 向上搜索 n -> 顺着搜索方向寻找 N->逆着搜索方向寻找
应用实例:使用less查看一个/etc/profile文件内的a字符,从光标行一直向下找

点击n字符顺着搜索方向寻找,即向下找

12.echo指令
基本语法: echo [选项] [输出内容] 功能描述:输出内容到控制台
应用实例:
eg1:使用echo命令输出环境变量PATH

eg2:使用echo输出字符

13.head指令
head用于显示文件的开头部分内容,默认情况下head显示文件前10行
基本语法:head 文件名 功能描述:查看文件前10行文件
head -n x 文件名 功能描述:查看文件前x行文件
应用实例:
eg1:查看/etc/profile前8行

14.>指令和>>指令(输出重定向和追加重定向)
基本语法:
内容 > 文件 功能描述:将内容写入指定文件(覆盖写)
内容 >> 文件 功能描述:将内容写入指定文件(追加写)
应用实例:
eg1:将当前列表内容写入文件a.txt(覆盖写)

eg2:将列表所有内容追加到a.txt末尾

eg3:将文件1内容覆盖到文件2

eg4:将"hello Linux"字符串追加到a.txt

eg5:将/home目录下的文件列表写入/home/info中

eg6:将当前日历信息写入/home/cyh/mycal

15.ln指令
软连接也称为符号链接,类似于windows的快捷方式,里面存储其他文件的路径

基本语法:
ln -s [目标文件/目录] 软连接 功能描述:给目标文件/目录创建软连接
应用实例:
eg1:在/home下创建一个软连接myroot,连接到/root

eg2:删除软连接myroot

七、时间日期类
1、data指令
1.1 显示日期
基本语法:
date 功能描述:显示当前时间
data "+%Y/%m/%d/H/%M/%S" 功能描述:显示当前年/月/日/时/分/秒
应用实例:
eg1:显示当前时间信息

eg2:显示当前年月日

eg3:显示当前年月日时分秒

1.2 设置日期
基本语法:
date -s 字符串时间
eg1:将当前系统时间设置为2026/5/9
2.cal
基本语法:
cal [选项] 功能描述:查看日志。不加选项,默认显示本月日历
应用实例:
eg1:显示当前日历

eg2:显示2026年日历

eg3:显示2021年5月

八、搜索查找类
1、find
基本语法:
find [搜索范围] [选项] 功能描述:从指定目录开始,向下递归遍历各个子目录,将满足条件的文件/目录显示在终端
选项说明
应用实例:
eg1:按文件名:根据名称查找/home目录下的hello.txt文件

eg2:按拥有者:查找/opt目录下,用户名称为root的文件

eg3:按大小:查找整个Linux系统下大于200M的文件 (+n 大于 -n 小于 n 等于)

2.locate
locate可以快速定位文件路径,从事先建立的保存系统中所有文件名及路径的locate数据库实现快速定位给定的文件。无需遍历整个系统,查询速度快;为保证结果,需定期更新locate时刻
基本语法:
locate 搜索文件
注:由于locate指令基于数据库进行查询,因此在第一次运行前,必须使用updatedb指令创建locate数据库
应用实例:
eg1:使用locate快速定位hello.txt所在文件夹

eg2:查看locate数据库中所存储的文件及其路径

3.grep指令和管道符号
grep:过滤查找;管道符"|":将前一个命令的输出结果传递给后面的命令处理
基本语法:
grep [选项] 查找内容 源文件
常用选项:

应用实例:
eg1:在hello.txt文件中,查找"yes"所在行,并显示行号
hello.txt

写法一 cat | grep

写法二 grep

九、压缩和解压类
1、gzip/gunzip指令
gzip:压缩文件;gunzip:解压文件
基本语法:
gzip 文件 功能描述:压缩文件,将文件压缩为*.gz文件
gunzip 压缩包(文件.gz) 功能描述:解压缩文件
应用实例:
eg1:gzip压缩,将/home下的hello.txt文件进行压缩

eg2:gunzip解压缩,将/home下的hello.txt.gz文件进行解压缩

2.zip/unzip指令
zip:打包压缩文件;unzip:解压文件
基本语法:
zip [选项] XXX.zip 将要压缩的文件 功能描述:压缩文件和目录的命令
unzip [选项] XXX.zip 功能描述:解压缩文件
zip常用选项
-r:递归压缩(在压缩目录时使用)
unzip常用选项
-d 目录:指定解压后文件的存放位置
应用实例:
eg1:将/home/jack下的所有文件进行压缩成jack.zip

eg2:将annals.zip解压到/opt/tmp目录下

zip打包路径规则
一、从哪个目录下执行zip,就从这个目录开始记录路径
当前目录:/home 你打包的目录:annals → 压缩包里存的是:annals/
二、只有你打包的路径包含上层目录,才会带上层目录
当前目录:/ 你打包:home/annals → 压缩包里存的是:home/annals/
eg:
在/home下压缩annals

在/下压缩

zip/unzip与gzip/gunzip异同
|---------------|-------------------|--------------|
| 特性 | zip/unzip | gzip/gunzip |
| 能否打包多个文件 | 可以,打包压缩整个文件夹/多个文件 | 不可以,只能压缩单个文件 |
| 压缩后源文件还在不在 | 保留 | 默认删除 |
| 是不是打包+压缩 | 自带打包+压缩 | 只负责压缩,不打包 |
| Window能不能直接打开 | 可以 | 不可以 |
| 常用后缀 | .zip | .gz |
| 解压命令 | unzip | gunzip |
注:
打包-》将多个文件捆在一个大文件内,不减少体积
压缩-》将文件内容减小,减少体积
3.tar指令
tar指令是打包指令,最后打包出来.tar.gz文件
基本语法:
tar [选项] XXX.tar.gz 打包的内容 功能描述:打包目录,压缩后的文件格式.tar.gz
选项说明:

应用实例:
eg1:压缩多个文件,将/home/pig.txt 和 /home/cat.txt压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home.pig.txt /home/cat.txt

eg2:将/home文件夹压缩成myhome.tar.gz


eg3:将pc.tar.gz解压到当前目录

eg4:将myhome.tar.gz解压到/opt/tmp2目录下


DOE:
eg1:使用tar打包时 调用gzip -zcvf和不调用-cvf
tar -zcvf # 打包 + gzip 压缩(体积变小)

tar -cvf # 只打包,不压缩(体积不变)

总结:
在使用tar命令打包时
-z作用-》调用gzip程序做压缩
·不加
-z:只执行tar打包,只捆文件、不缩小体积 ,生成.tar·加
-z:打包完自动调用 gzip 压缩瘦身,生成.tar.gz
eg2:
总结:
在使用tar命令解压时
-z作用-》
-z只是告诉 tar:这个包是 gzip 压缩过的 tar 包(.tar.gz),不是纯.tar包·纯tar包(只打包没压缩)
后缀:.tar
-》解压不用-z tar -xvf 文件名.tar
**·**tar+gzip (双重打包压缩)
后缀:
.tar.gz/.tgz-
》里面文件被 gzip 压小了必须加-z,让 tar 先调用 gzip 解压缩,再解包 tar -zxvf 文件名.tar.gz









