一、Linux打包压缩——搞定文件“瘦身”和传输
不管是存文件还是传文件,打包压缩都是Linux里最常用的操作。先搞懂核心逻辑,再记命令,上手很快!
1.1 先明白:打包压缩是啥?为啥要用?
- 是什么:用算法把文件“变小”(压缩),或把多个文件合并成一个(打包),通常“打包+压缩”一起做,比如把10个文件压成1个
.tgz文件。 - 为啥用:
① 省空间:文件变小,能存更多东西;
② 好传输:多个文件变一个,传的时候不容易漏,还能减少带宽消耗。
1.2 两种常用格式:.zip 和 .tgz(附命令+效果图)
① .zip格式:跨系统通用(Windows也能解)
- 压缩文件/文件夹:用
zip命令,加-r参数表示“递归压缩”(比如压缩文件夹时,把里面的子文件也一起压)
命令:zip 目标压缩包名.zip 要压缩的文件/文件夹
例:把test文件夹压成test.zip:zip -r test.zip test/ - 解压.zip文件:用
unzip命令
命令:unzip 压缩包名.zip
例:解压test.zip:
效果如图,能看到压缩/解压的文件列表:unzip test.zip
② .tgz格式:Linux专用(压缩率更高)
用tar命令处理,参数多但好记,核心就几个:
c:创建压缩包(打包)z:用gzip算法压缩v:显示操作过程(能看到压了哪些文件)f:指定压缩包文件名x:解压压缩包打包压缩:
tar -cvzf 目标压缩包名.tgz 要压缩的文件/文件夹
例:把test文件夹压成test.tgz:tar -cvzf test.tgz test/- 解压:
tar -xvzf 压缩包名.tgz
例:解压test.tgz到当前目录:tar -xvzf test.tgz - 指定解压路径:加
-C(大写),后面跟目标路径
例:把test.tgz解压到/home目录:
解压效果如图,能看到详细过程和路径:tar -xvzf test.tgz -C /home/
1.3 跨系统/跨服务器传文件:3种实用方法
① Windows ↔ Linux:用lrzsz工具
先装工具(CentOS用yum,Ubuntu用apt):
yum install -y lrzsz
- 从Linux传文件到Windows:输
sz 文件名,会弹出保存窗口
例:传test.tgz到Windows:sz test.tgz - 从Windows传文件到Linux:输
rz,会弹出选择文件窗口,选了就传 - 更简单的:在Xshell里直接把Windows文件“拖”到终端,自动上传!
② Linux ↔ Linux:远程拷贝(scp)
比如从“服务器A”把文件传到“服务器B”,命令格式:
scp 本地文件 目标服务器用户名@目标服务器IP:目标路径
例:把本地的test.tgz传到192.168.1.100服务器的/home目录(用户名是root):
scp test.tgz root@192.168.1.100:/home/
远程拷贝的效果如图,会显示传输进度:
解压远程传过来的文件,效果如图:
1.4 两个小工具:bc(算浮点)、uname(看系统)
① bc:算带小数点的运算
Linux默认计算器(calc)不能算小数,bc可以!直接输bc进入计算模式,输完表达式按回车出结果,输quit退出:
bc
# 进入后算:2.5 + 3.8 = 6.3
2.5+3.8
6.3
quit
效果如图,能轻松算浮点:
② uname -r:看Linux内核版本
想知道系统内核是多少,输:
uname -r
还能看系统版本(CentOS为例):
cat /etc/redhat-release
效果如图,能看到内核和系统信息:

二、Linux常用热键——效率翻倍的小技巧
记几个热键,比手动敲命令快10倍!
| 热键/命令 | 作用 |
|---|---|
| TAB键 | 自动补全命令/文件名(按一下就好) |
| Ctrl + C | 停止当前运行的命令(比如命令卡住时) |
| 上下方向键 | 翻阅历史命令(不用重新敲之前输过的) |
| Ctrl + R | 搜索历史命令(输关键词就能找) |
| shutdown | 关机(加选项,比如shutdown -h now立即关) |
- TAB键补全效果如图,输
te按TAB,会自动补全成test:
- 关机命令示例:
关机命令的选项说明如图:shutdown -h now # 立即关机 shutdown -h 23:00 # 23点关机
三、Shell命令的运行原理——谁在帮你“翻译”命令?
你输的ls、zip这些命令,不是直接让Linux内核执行的,中间有个“翻译官”——Shell。
核心逻辑:Shell是“用户和内核的中间人”
- Linux内核是系统的“核心大脑”,但它听不懂人类的命令;
- Shell是外层的“外壳程序”,先接收你的命令(比如
ls),解析成内核能懂的语言; - 内核执行后,把结果通过Shell显示给你(比如显示当前目录的文件列表)。
原理如图,一看就懂:
Bash和Shell的关系:“具体的翻译官”和“翻译官群体”
- Shell是“翻译官群体”的统称(类似“媒婆”);
- Bash是Linux里最常用的“具体翻译官”(类似“王婆”),你平时输命令,默认就是Bash在解析。
Bash会用“创建子程序”的方式处理命令,确保内核稳定(就算子程序出错,内核也不会崩)。
四、Linux权限管理——谁能操作哪个文件?
Linux是多用户系统,权限就是“限制:哪个用户能对哪个文件做什么事”。
4.1 权限的核心:角色 + 操作
① 3种角色(谁能操作)
- 拥有者(u):文件的创建者(比如你建的文件,你就是拥有者);
- 所属组(g):文件归属的用户组(比如把多个用户拉进“test组”,组里的人都有组权限);
- 其他人(o):既不是拥有者,也不在所属组的用户(比如其他普通用户)。
角色划分如图:

② 3种操作(能做什么)
用r、w、x表示, -表示没有这个权限:
- r(read):可读(能看文件内容,比如
cat命令); - w(write):可写(能改文件内容,比如
vim编辑); - x(execute):可执行(如果是脚本/程序,能运行,比如
./test.sh)。
比如文件权限显示rw-r--r--,意思是:
- 拥有者(u):
rw-(可读可写,不能执行); - 所属组(g):
r--(只能读); - 其他人(o):
r--(只能读)。
权限标识如图:
4.2 用户管理:加用户、切换用户
① 加普通用户:adduser
root(超级管理员)才能加用户,命令:
adduser 用户名
# 例:加一个叫whb的用户
adduser whb
加用户效果如图:
② 切换用户:su
- 普通用户切root:输
su root,然后输root密码(密码不显示,输完回车); - root切普通用户:输
su 用户名,不用输密码(比如su whb); - 重新登录用户:输
su - 用户名(会加载该用户的环境变量,更彻底的切换)。
切换用户效果如图:


4.3 提权:sudo——普通用户也能执行高权限命令
比如安装软件需要root权限,普通用户不用切root,加sudo就能提权:
# 普通用户安装lrzsz,加sudo提权
sudo yum install -y lrzsz
- 输什么密码?:输普通用户自己的密码(不是root密码);
- 为什么能提权?:该用户要在
sudo白名单里(root可以通过visudo添加)。
sudo提权效果如图:
4.4 修改文件权限:chmod
用chmod命令,格式:chmod 角色+/-权限 文件名
- 角色:
u(拥有者)、g(所属组)、o(其他人)、a(所有人); +:加权限,-:减权限。
例:
# 给test.txt的拥有者(u)去掉读权限(r)
chmod u-r test.txt
# 给test.txt的所属组(g)加写权限(w)
chmod g+w test.txt
# 给所有人(a)加执行权限(x)
chmod a+x test.sh
修改权限效果如图:
权限管理总结如图:
4.5 补充:apt和yum类似,yum冲突用killall
Ubuntu系统用
apt管理软件,和yum用法差不多,比如搜索软件:apt search 软件名apt搜索效果如图:

如果yum命令卡住(提示“yum正在运行”),用
killall yum关掉进程:killall yum