Linux 实用技能大合集:打包、传文件、权限与Shell
一、打包压缩:把文件“变小变整”的技巧
不管是存文件还是传文件,打包压缩都是刚需。先搞懂三个核心问题:是什么、为什么、怎么办。
1. 先明白:打包压缩是啥?
- 打包:把多个文件/文件夹合并成一个文件(比如把10个文档合成1个包);
- 压缩:用算法减小文件体积(比如100MB压成20MB);
- 实际用的时候,这俩通常一起做,常见格式是
.zip
和.tgz
(Linux里更常用.tgz
)。
2. 为啥要打包压缩?
- 省空间:压缩后文件变小,省磁盘空间;
- 快传输:体积小了,传文件时省带宽、少等时间;
- 防出错:多个文件合成一个,传的时候不容易漏文件(比如传10个文件可能漏1个,传1个包就不会)。
3. 两种常用格式:zip 和 tgz
(1).zip格式:Windows和Linux通用
- 压缩:用
zip
命令,加-r
表示“递归压缩”(连子文件夹一起压):# 把 folder 文件夹压缩成 folder.zip zip -r folder.zip folder
- 解压:用
unzip
命令:
看这张图,就是压缩后的效果:# 解压 folder.zip 到当前目录 unzip folder.zip
(2).tgz格式:Linux专用,压缩率更高
tgz
是 tar
打包+gzip
压缩的组合,命令里的字母各有含义:
-
c
:创建新包; -
z
:用gzip压缩; -
v
:显示压缩/解压过程(能看到进度); -
f
:指定包的名字; -
x
:解压包。 -
打包压缩:
# 把 folder 文件夹打包压缩成 folder.tgz tar -cvzf folder.tgz folder
-
解压:
# 解压 folder.tgz 到当前目录 tar -xvzf folder.tgz # 解压到指定路径(比如解压到 /home/user 目录) tar -xvzf folder.tgz -C /home/user
看这张图,解压时会显示每个文件的处理过程:
二、文件互传:Linux与Windows、Linux与Linux
传文件分两种场景,方法不一样,记清楚就行。
1. Linux(云服务器)↔ Windows
用 lrzsz
工具,先装工具(CentOS用yum,Ubuntu用apt):
# CentOS 安装 lrzsz
yum install -y lrzsz
# Ubuntu 安装 lrzsz
apt install -y lrzsz
- Windows传文件到Linux:在Xshell里输
rz
,会弹出文件选择框,选要传的文件就行; - Linux传文件到Windows:输
rz
对应的sz
命令:# 把 Linux 里的 file.txt 传到 Windows sz file.txt
- 更简单的方法:Xshell里直接把Windows文件拖拽到终端,自动上传。
2. Linux与Linux互传(远程拷贝)
用 scp
命令,比如把“服务器A的文件”传到“服务器B”:
# 格式:scp 本地文件 目标用户@目标IP:目标路径
# 例:把本地的 folder.tgz 传到 192.168.1.100 的 /home 目录
scp folder.tgz root@192.168.1.100:/home
输完会提示输目标服务器的密码,验证通过就开始传:
传过去后,在目标服务器上解压就行:
三、几个超实用的小命令
1. bc:Linux里的“计算器”
想算浮点运算(比如1.2+3.4),直接输 bc
进入计算器模式,输完表达式按回车出结果,按 ctrl+d
退出:
2. 查内核版本:uname 和 cat
- 快速查内核版本:
uname -r
;
- 查更详细的内核信息:
cat /proc/version
;
3. 关机命令:shutdown
- 立即关机:
shutdown -h now
; - 10分钟后关机:
shutdown -h 10
; - 取消关机:
shutdown -c
;
四、Linux热键:提升效率的“快捷键”
- Tab键:命令/文件名补全(输一半按Tab,能自动补全,少打字);
- Ctrl+C:停止当前命令(比如命令卡住了,按一下就停);
- 上下箭头:翻历史命令(不用重新输之前用过的命令);
- Ctrl+R:搜索历史命令(按Ctrl+R后输关键词,能找到之前用过的命令)。
五、Shell:Linux的“命令翻译官”
你在终端输的命令,不是直接给内核执行的,而是先经过“Shell”处理——Shell就像“翻译官”,把你能懂的命令,翻译成内核能懂的语言。
1. Shell的工作原理
看这张图就懂了:
- 你在终端输命令(比如
ls
); - Shell接收命令,分析解析;
- 把解析后的指令传给内核执行;
- 内核执行完,把结果通过Shell显示在终端上。
我们常用的Shell是 bash
(Linux默认),可以理解为:Shell是一个“大类”,bash是其中最常用的“小类”,就像“媒婆”是大类,“王婆”是其中一个媒婆。
六、Linux权限:谁能做什么,说了算
权限的核心是“限制人对文件的操作”,先搞懂“人”和“权限”的划分。
1. 两种用户:root(超级管理员)和普通用户
- root用户:相当于“系统老板”,能做任何操作(删文件、改配置,几乎不受限制);
- 普通用户:比如
whb
,只能操作自己有权限的文件,不能乱改系统文件。
(1)添加普通用户:adduser
# 添加一个叫 whb 的普通用户
adduser whb
(2)切换用户:su
- 普通用户切root:
su root
(需要输root密码);
- root切普通用户:
su whb
(不用输密码,直接切);
- 更彻底的切换(加载用户环境变量):
su - 用户名
(比如su - root
);
注意:两个普通用户互切,需要输目标用户的密码。
(3)临时提权:sudo
普通用户想执行root才能做的操作(比如装软件),不用切root,用 sudo
临时提权:
# 普通用户用 sudo 装 lrzsz(相当于用root身份装)
sudo yum install -y lrzsz
输完会提示输“当前普通用户的密码”(不是root密码),验证通过就执行。
为什么能提权?因为该用户在“sudo白名单”里(配置文件 /etc/sudoers
里设置):
2. 文件权限:三种角色 + 三种操作
(1)三种角色(谁能操作文件)
- 拥有者(u):文件的创建者(比如你建的文件,你就是拥有者);
- 所属组(g):文件所属的用户组(比如把多个用户拉进“dev组”,组里的人共享权限);
- 其他者(o):既不是拥有者,也不在所属组的人(权限最严格)。
看这张图,能清楚看到文件的角色划分:
(2)三种操作(能做什么)
r
(read):读权限(能看文件内容、列目录文件);w
(write):写权限(能改文件内容、在目录增删文件);x
(execute):执行权限(能运行程序、进入目录)。
比如权限 rw-r--r--
表示:
- 拥有者(u):
rw-
(能读能写,不能执行); - 所属组(g):
r--
(只能读); - 其他者(o):
r--
(只能读)。
(3)修改权限: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.txt
3. 权限总结
一张图看懂权限逻辑:
最后:apt 和 yum 的小区别
- yum:CentOS、RHEL 等系统用的包管理器;
- apt:Ubuntu、Debian 等系统用的包管理器;
用法类似,比如搜索软件:
# yum 搜索软件
yum search lrzsz
# apt 搜索软件
apt search lrzsz
另外,要是 yum 进程卡住了,用 killall yum
强制关掉就行。
- 点赞
- 收藏
- 关注作者
评论(0)