【Linux】学习小计

一、目录结构

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:

  • whow 依然会显示: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

相关推荐
老四啊laosi1 小时前
【Linux系统】18. 基础IO(文件管理部分)
linux·文件操作·重定向
mounter6252 小时前
深度解析 dmabuf/devmem:从图形渲染到 AI 与高性能网络的演进之路
linux·网络·人工智能·内存管理·kernel
北山有鸟2 小时前
RK3588利用NPU加速Lens Shading Correction参数生成
linux
酿情师2 小时前
FinalShell 下载与安装指南
linux·服务器·windows·ssh
灵晔君2 小时前
【Linux】进程(二)
linux·运维·服务器
JasonFreeLab2 小时前
DeepSeek TUI 安装配置极速指南(Win / Mac / Linux)
linux·运维·macos·ai·ai编程·ai写作
原来是猿2 小时前
TCP Echo Server 深度解析:从单进程到线程池的演进之路(下)
linux·服务器·数据库
贝锐2 小时前
远程控制如何赋能全平台设备?信创环境下贝锐向日葵的跨平台优势
linux·运维·远程控制
SurpriseDPD2 小时前
Linux 内核 static_branch_likely:零开销条件分支
linux