Linux学习笔记
虚拟机部署
1. Linux内核
应用程序
Shell、文件系统、系统程序库
系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等。
操作系统内核:调用CPU、调度内存、调度文件系统、调度网络通讯、调度IO等
硬件
2. 虚拟机安装
下载镜像文件
自定义安装
3. Windows配置WSL(Ubuntu)
启用或关闭Windows功能
勾选:适用于Linux的Windows子系统
Windows应用商店搜索下载Ubuntu
推荐终端工具(Windows Terminal)win11自带
4. VMware快照
关机状态快照很快
做快照保存状态
Linux基础命令
1. 目录结构
路径之间的层级关系
- Windows使用: \
- Linux使用 :/
目录结构
**根目录(/):**根目录是整个文件系统中最重要的一个目录,位于Linux文件系统目录结构的顶层。因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与操作系统的开机、还原、系统修复等行为有关。
系统开机所需要的特定文件数据有:核心文件、开机程序、 函数库等等。如果系统出现错误,根目录也必须要包含有能够修复文件系统的程序才行。
因此FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和Windows的C盘一个样。因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载行为。因此根目录下与开机过程有关的目录, 就应该与根目录放在同一个分区里。这些目录分别是:/etc,/bin,/dev,/lib,/sbin。
目录树介绍:
- /:根目录,位于Linux文件系统目录结构的顶层。通常根目录下只存放目录,不存放文件,/etc,/bin,/dev,/lib,/sbin应该和根目录放置在一个分区中。
- /bin,/usr/bin:该目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等。
- /boot: 该目录中存放系统的内核文件和引导装载程序文件,/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可。
- /dev: 设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备(终端、磁盘驱动器、光驱及网卡等,包括字符设备和块设备)等,常用的是挂载光驱mount /dev/cdrom/mnt。
- /etc: 系统配置文件目录,该目录存放系统的大部分配置文件和子目录,不建议在此目录下存放可执行文件。该目录下的文件由系统管理员来使用,普通用户对大部分文件有只读权限。
- /home: 系统默认的用户宿主目录,新增用户账号时,用户的宿主目录都存放在此目录下,~表示当前用户的宿主目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据。
- /lib,/usr/lib,/usr/local/lib:系统最基本的动态连接资源库,内核模块文件目录。几乎所有的应用程序都用到此资源库。/lib目录存放了所有重要的库文件,其他的库文件则大部分存放在/usr/lib目录下。
- /lost+fount: 在EXT2或EXT3文件系统中,系统意外崩溃或意外关机时,产生的一些文件碎片放在这里。当系统重新启动时,fsck工具会检查这里,并修复已经损坏的文件系统。
- /mnt,/media: mnt目录主要用来临时挂载文件系统,为某些设备提供默认挂载点。
- /opt: 给主机额外安装软件所摆放的目录。
- /proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间。
- /root:系统管理员root的宿主目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
- /sbin,/usr/sbin,/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
- /tmp: 存放系统产生的临时文件,因此重要文件不要放在此目录下。
- /srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。
- /usr: 应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,/usr/local 存放软件升级包,/usr/share/doc 系统说明文件存放目录。
- /usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容。建议单独分区,设置较大的磁盘空间。
/var: 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log。- /sys:这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。 这个目录同样不占硬盘容量。
2. 命令入门
命令格式
command [-options] [parameter]
- command:命令本身
- -options:命令的选项,控制命令的行为细节
- parameter:命令的参数,多数用于命令的指向目标等
cp -r test1 test2
// cp是命令本身,-r是选项,test1和test2是参数
// 意思是:复制文件夹test1成为test2
ls命令
ls [-a -l -h] [Linux路径]
ls:以平铺的形式,列出当前工作目录下的内容
- -a:表示all,列出全部文件(包括隐藏文件/文件夹)
- -l:以列表的形式展示内容,并展示跟多内容
- -h:以易于阅读的实现展示文件大小K、M、G
//混合使用
ls -a -l
ls -al
ls -la
//以上等价 以此类推
用户目录:~
home目录:相应用户目录
root目录:root用户目录
3. 目录切换相关命令(cd/pwd)
cd [Linux路径]
- cd:表示Change Directory,更改当前目录
pwd
- pwd:表示Print Work Directory,验证当前工作目录
4. 创建目录
mkdir [-p] Linux路径
mkdir:表示Make Directory,创建文件夹
- -p:一次性创建多个层级的目录,表示递归
5. 文件操作命令(touch、cat、more、cp、mv)
touch Linux路径
- touch:创建文件
cat Linux路径
- cat:查看文件内容
more Linux路径
- more:翻页显示文件内容,空格翻页,q退出
cp [-r] 参数1 参数2
- cp:复制文件/文件夹
- 参数1:Linux路径,被复制文件/文件夹
- 参数2:Linux路径,要复制去的地方
- -r:复制文件夹,表示递归
mv 参数1 参数2
- mv:移动文件/文件夹
- 参数1:Linux路径,表示被移动的文件/文件夹
- 参数2:Linux路径,表示要移动去的地方,如果目标不存在则进行改名
rm [-r -f] 参数1 参数2 …… 参数N
rm:删除文件/文件夹
参数1 参数2 …… 参数N:表示要删除的文件/文件夹
-r:删除文件夹,表示递归
-f:表示force,强制删除,用于管理员不弹出提示
支持通配符
test* 表示匹配任何以test开头的内容 *test 表示匹配任何以test结尾的内容 *test* 表示匹配任何以包含test的内容
6. 查找命令(which、find)
which 要查找的命令
- which:查找命令程序文件的位置
find 起始路径 -name "被查找文件"
- find:查找文件或文件夹
- 支持模糊匹配
find 起始路径 -size +|-n[kMG]
- +、-:表示大于或小于
- n:表示大小数字
- KMG:表示大小单位k(小写)
find / -size -10k find / -size +100M
7. grep、wc和管道符
grep [-n] 关键字 文件路径
grep:在文件中,通过关键字过滤文件行
-n:在结果中显示匹配行的行号
关键字:过滤的关键字,建议使用“ ”包围
文件路径:要过滤内容的文件路径
grep -n "hello world" test.txt // 显示test.txt中含有hello world的行 // -n 可选,是否显示行号
wc [-c -m -l -w]
- wc:统计文件的行数、单词数量等
- -c:统计bytes数量
- -m:统计字符数量
- -l:统计行数
- -w 统计单词数量
管道符
cat test.txt | grep hello
- 含义:将管道符左边命令的结果,作为右边命令的输入
8. echo、tail和重定向符
echo 输出内容
echo:在命令行内输出指定内容
要执行的命令
:使用``包裹要执行的命令>、>>:重定向符 // 将左侧命令的结果,“覆盖”写入符号右侧指定的文件中 // 将左侧命令的结果,“追加”写入符号右侧指定的文件中
tail [-f -num] Linux路径
- tail:查看文件尾部内容,跟踪文件的最新更改
- -f:表示持续跟踪
- -num:表示查看尾部多少行,不填默认10行
9. vi/vim编辑器
三种工作模式
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 底线命令模式(Last line mode)
以**:**开始,通常用于文件的保存、退出
命令模式快捷键(进入输入模式)
- i:在当前光标位置,进入输入模式
- a:在当前光标位置之后,进入输入模式
- I:在当行开头,进入输入模式
- A:在当行结尾,进入输入模式
- o:在当前光标下一行,进入输入模式
- O:在当前光标上一行,进入输入模式
- esc:返回命令模式
命令模式快捷键(移动)
- k:上
- j:下
- h:左
- l:右
- 0:移动到当行开头
- $:移动到当行结尾
- gg:跳到首行
- G:跳到尾行
- pageup(PgUp):向上翻页
- pagedown(PgDn):向下翻页
命令模式快捷键(搜索)
- /:进入搜索模式
- n:向下继续搜索
- N:向上继续搜索
命令模式快捷键(基本命令)
- dd:删除当前行
- ndd:向下删除n行
- yy:复制当前行
- nyy:向下复制n行
- p:粘贴
- u:撤销
- ctrl + r:反向撤销
- dG:向下删除尾行(向下的所有)
- dgg:向上删除到首行(向上的所有)
- d0:删除到本行开头
- d$:删除到本行结尾
底线命令模式快捷键
:wq
保存并退出:q
仅退出:q!
强制退出:w
仅保存:set nu
显示行号set paste
设置粘贴模式
Linux权限管理
1. 认知root用户
切换用户
su [-] [用户名]
- -:表示是否在切换用户后加载环境变量,建议带上
- 用户名:表示要切换的用户,省略表示root
- 切换用户后,可通过exit返回上一个用户也可以Ctrl + d
sudo命令
sudo 其他命令
为一条命令临时赋予root权限
并不是所有用户都有权利使用sudo,需要为普通用户配置sudo认知
# 在vi编辑器中打开:/etc/sudoers visudo # 在文件最后添加: jq ALL=(ALL) NOPASSWD:ALL # 其中NOPASSWD:ALL表示sudo命令无需输入密码
2. 用户、用户组管理
用户、用户组
Linux系统中可以:
- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组中
Linux中权限管控有2个级别:
- 针对用户的权限控制
- 针对用户组的权限控制
用户组管理
创建用户组
groupadd 用户组名
删除用户组
groupdel 用户组名
用户管理
添加用户
useradd [-g -d] 用户名
- -g:指定用户的组,不指定-g会创建同名组并自动加入,若已存在同名组必须使用-g
- -d:指定用户HOME目录,不指定,HOME目录默认为:/home/用户名
删除用户
userdel [-r] 用户名
- -r:删除用户的HOME目录,不使用-r,删除用户是HOME目录保留
查看用户所属组
id [用户名]
- 若省略用户名,则查看用户本身
修改用户所属组
usermod -aG 用户组 用户名
- 将指定用户加入指定用户组
查看当前系统中的用户
getent passwd
- 共有七份信息:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)查看系统中的组
getent group
- 包含3份信息:
组名称:组认证(显示为x):组ID
3. 查看权限控制
权限信息
# 例如: drwxr-xr-x 所属用户 所属组 # 拆分: d rwx r-x r-x 所属用户 所属组 1 2 3 4 # r表示read、w表示write、x表示execute
- 1:表示类型,-表示文件、d表示文件夹、l表示软连接
- 2:所属用户的权限
- 3:所属用户组的权限
- 4:其他用户的权限
4. 修改权限控制
修改权限信息
chmod [-R] 权限 文件或文件夹
-R:对文件夹内的全部内容应用同样的操作
# 示例: chmod u=rwx,g=rx,o=x test.txt # 结果为:rwxr-x--x chmod 741 test.txt # 结果为:rwxr----x、二进制表示
修改所属用户、所属用户组
chown [-R] [用户][:][用户组] 文件或文件夹
普通用户无法修改,只适用root用户
-R:对文件夹内的全部内容应用同样的操作
# 示例: chown root test.txt # 修改所属用户 chown :jq test.txt # 修改所属用户组 chown root:jq test.txt # 修改所属用户和所属用户组
实用操作
1. 常用快捷键
- ctrl + c :强制停止、取消当前输入命令
- ctrl + d:退出或登出
- history:查看历史输入过的命令
- !+ 命令前缀:自动执行上一次匹配前缀的命令
- ctrl + r:输入内容去匹配历史命令
- 回车可以直接执行
- 键盘左右键,可以的到命令(不执行)
- ctrl + a:跳到命令开头
- ctrl + e:跳到命令结尾
- ctrl + 键盘左键:向左跳一个单词
- ctrl + 键盘有键:向右跳一个单词
- ctrl + l:清屏,等效clear
2. 软件安装
Centos软件安装
yum:RPM包软件管理器,用于自动化安装Linux软件,并可以自动解决依赖问题
yum [-y] [install | remove | search] 软件名称
- -y:自动确认
- install:安装
- remove:移除
- search:搜索
- yum命令需要root权限并且联网
Ubuntu软件安装
软件安装,Centos系统和Ubuntu是使用不同的包管理器
apt [-y] [install | remove | search] 软件名称
- -y:自动确认
3. systemctl
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启能够被systemctl管理的软件,一般也称为:服务
systemctl start | stop | status | enable | disable 服务名
- enable | disable:开机自启动
系统内置的服务比较多,比如:
- NetworkManager,主网络服务
- network,副网络服务
- firewalld,防火墙服务
- sshd,ssh服务
4. 软连接
将文件、文件夹链接到其他位置,类似Windows中的快捷方式
ln -s 参数1 参数2
-s:创建软链接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
# 示例: ln -s /etc/nginx/nginx.conf ~/nginx.conf 为/etc/nginx/nginx.conf在~目录下创建软连接nginx.conf
5. 日期、时区
查看系统时间
date [-d] [+格式化字符串]
-d:按照给定的字符串显示日期,一般用于日期计算
格式化字符串:通过字符串控制显示的日期格式
- %Y:年
- %y:年份后两位数字【00,99】
- %m:月份【01,12】
- %d:日【01,31】
- %H:小时【00,24】
- %M:分钟【00,59】
- %S:秒【00,60】
- %s:自1970-01-01 00:00:00 UTC 到现在的秒数
# 示例: date -d "+1 day" # 明天的日期 date +%Y-%m-%d # 显示2023-01-26 date -d "+1 day" +%Y-%m-%d # 显示2026-01-27
修改时区
rm -f /etc/localtime
删除现有日期软链接sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
重新创建需要时区的日期软链接
校准时间
yum install ntp
安装ntp自动联网校准时间程序systemctl start ntpd & systemctl enable ntpd
启动服务ntpdate -u ntp.aliyun.com
手动校准
6. IP地址、主机名
查看IP地址
ifconfig
- 如果命令不存在,
yum install net-tools
查看主机名
hostname
修改主机名
hostnamectl set-hostname jqStrong
Linux配置固定IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
- BOOTPROTO=static
- IPADDR=“192.168.88.130” # IP地址
- NETMASK=“255.255.255.0” # 子网掩码
- GATEWAY=“192.168.88.2” # 网关
- DNS1=“192.168.88.2” # 指定DNS服务器
systemctl restart network
重启网卡服务
7. 网络传输
下载和网络请求
ping [-c num] IP/域名
-c num:测试次数
检测是否连通
wget [-b] url
- -b:后台下载,将日志写入当前工作目录的wget-log文件
- url:下载链接
curl [-O] url
- 发送http网络请求
- -O:用于下载文件,当url是下载链接是,可保存文件
- url:要发起请求的网络地址
curl cip.cc
查看当前公网IP地址
端口:设备与外界交流的出入口
- 物理端口:可称之为接口,可见,如USB,HDMI,TYPC,网口等
- 虚拟端口:计算机内部的端口,不可见,用于操作系统和外部交流
计算机程序之间的通讯
- 通过IP锁定计算机
- 通过端口锁定程序
查看端口占用
nmap 被查看的IP地址
查看指定端口占用
netstat -anp | grep 端口号
netstat -tunlp
lsof -i:端口号
8. 进程管理
查看进程
ps [-e -f]
- -e:显示出全部的进程
- -f:以完全格式化的形式展示信息
- UID:进程所属的用户ID
- PID:进程的进程号ID
- PPID:进程的父ID(启动此进程的其他进程)
- C:此进程的CPU占用率(百分比)
- STIME:进程的启动时间
- TTY:启动此进程的终端序号,如显示?,表示非终端启动
- TIME:进程占用CPU时间
- CMD:进程对应的名称或启动路径或启动命令
关闭进程
kill [-9] 进程ID
- -9:表示强制关闭进程,不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程本身的处理机制
9. 主机状态
查看系统资源占用
top
- -p:只显示某个进程的信息
- -d:设置刷新时间,默认是5s
- -c:显示产生进程的完整命令,默认是进程名
- -n:指定刷新次数,比如 top -n 3,刷新输出3次后退出
- -b:以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如:top -b -n 3 > /tmp/top.tmp
- -i:不显示任何限制(idle)或无用(zombie)的进程
- -u 查找特定用户启动的进程
第一行:top - 22:53:06 up 1:06, 2 users, load average: 0.00, 0.01, 0.05 top:命令名称、22:53:06:当前系统时间、up 1:06:启动了1小时6分钟、2 users:两个用户登录,load:1,5,15分钟负载 Tasks: 192 total, 1 running, 191 sleeping, 0 stopped, 0 zombie 进程信息:总数、运行、睡眠、停止、僵尸 %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st cpu使用率:us用户、sy系统、ni高优先级进程占用CPU时间百分比、id空闲、wa IO等待、hi硬件中断、si软件中断、st强制等待 KiB Mem : 4026152 total, 3089632 free, 575752 used, 360768 buff/cache 物理内存: KiB Swap: 4063228 total, 4063228 free, 0 used. 3212280 avail Mem 虚拟内存(交换区):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID:进程ID
- USER:进程所属用户
- PR:进程优先级,越小越高
- NI:负值表示高优先级,正表示低优先级
- VIRT:进程使用虚拟内存,单位KB
- RES:进程使用物理内存,单位KB
- SHR:进程使用共享内存,单位KB
- S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
- %CPU:进程占用CPU率
- %MEM:进程占用内存率
- TIME+:进程使用CPU时间总计,单位10毫秒
- COMMAND:进程的命令或程序文件路径
磁盘信息监控
df [-h]
查看硬盘的使用情况
- -h:以更人性化的单位显示
iostat [-x] [num1] [num1]
查看CPU、磁盘相关信息
- -x:显示更多信息
- num1:数字,刷新间隔
- num2:数字,刷新次数
网络状态监控
sar -n DEV num1 num2
查看网络的相关统计,(sar非常复杂,这里简单用于统计网络)
- -n:查看网络,DEV表示查看网络接口
- num1:数字,刷新间隔
- num2:数字,刷新次数
信息解读:
IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
- IFACE:本地网卡接口的名称
- rxpck/s:每秒钟接受的数据包
- txpck/s:每秒钟发送的数据包
- rxkB/s:每秒钟接受的数据包大小,单位KB
- txkB/s:每秒钟发送的数据包大小,单位KB
- rxcmp/s:每秒钟接受的压缩数据包
- txcmp/s:每秒钟发送的压缩数据包
- rxmcst/s:每秒钟接受的多播数据包
10. 环境变量
我们使用的一系列命令,其实本质上就是一个个的可执行程序
比如:cd命令的本体就是:/usr/bin/cd 这个程序文件
env
查看当前系统中记录的环境变量(KeyValue结构)
- PATH:记录一组目录,用来搜索命令,用
:
隔开
$符号
echo $PWD / echo ${PWD}
获取环境变量的value
自行设置环境变量
临时设置
export key=value
永久生效
- 针对当前用户生效,配置:
~/bashrc
- 针对所有用户生效,配置:
/etc/profile
- source 对应配置文件,立刻生效配置
11. 上传、下载
建议使用工具
12. 压缩、解压
压缩格式
zip:Linux、Windows、MasOs,常用
7zip:Windows常用
rar:Windows常用
tar:Linux、MacOS常用
gzip:Linux、MacOS常用
Linux和Mac系统常用的两种压缩格式
- .tar:称之为tarball,归档文件,简单封装,没有很多体积减少
- .gz:也常见为.tar.gz,gzip格式压缩文件,可以极大的减少体积
tar命令
tar [-c -v -x -f -z -C] ,使用gzip模式
- -c:创建压缩文件,用于压缩模式
- -v:显示压缩、解压过程,用于查看进度
- -x:解压模式
- -f:要创建的文件,或要解压的文件,-f选项必须位于最后一个
- -z:gzip模式,不使用-z是普通的tarball格式
- -C:选择解压的目的地,用于解压模式
# 常用组合 # 压缩 tar -cvf test.tar 1.txt 2.txt 3.txt # 将1 2 3压缩到test.tar tar -zcvf test.tar.gz 1.txt 2.txt 3.txt # 将1 2 3压缩到test.tar.gz使用gzip模式 # 解压 tar -xvf test.tar # 将test.tar解压到当前目录 tar -zxvf test.tar.gz # 将test.tar.gz解压到当前目录,使用gzip模式 tar -zxvf test.tar.gz -C /root/test # 将test.tar.gz解压到/root/test,使用gzip模式 """ 注意: -z:必须位于第一个 -f:必须位于最后一个 -C:单独使用,不用默认当前目录 """
zip命令
zip [-r] 参数1 参数2 …… 参数N
- -r:包含文件夹
unzip 压缩包 [-d 解压路径]
# 压缩 zip test.zip a.txt b.txt c.txt # 将a.txt b.txt c.txt压缩到test.zip文件中 zip -r test.zip test_dir a.txt b.txt c.txt # 将test_dir a.txt b.txt c.txt压缩到test.zip文件中 # 解压 unzip test.zip # 将test.zip解压到当前目录 unzip test.zip -d /root/test # 将test.zip解压到/root/test
软件部署
1. MySQL数据库管理系统安装部署
ar.gz 1.txt 2.txt 3.txt
将1 2 3压缩到test.tar.gz使用gzip模式
解压
tar -xvf test.tar
将test.tar解压到当前目录
tar -zxvf test.tar.gz
将test.tar.gz解压到当前目录,使用gzip模式
tar -zxvf test.tar.gz -C /root/test
将test.tar.gz解压到/root/test,使用gzip模式
“”"
注意:
-z:必须位于第一个
-f:必须位于最后一个
-C:单独使用,不用默认当前目录
“”"
zip命令
zip [-r] 参数1 参数2 …… 参数N
- -r:包含文件夹
unzip 压缩包 [-d 解压路径]
# 压缩 zip test.zip a.txt b.txt c.txt # 将a.txt b.txt c.txt压缩到test.zip文件中 zip -r test.zip test_dir a.txt b.txt c.txt # 将test_dir a.txt b.txt c.txt压缩到test.zip文件中 # 解压 unzip test.zip # 将test.zip解压到当前目录 unzip test.zip -d /root/test # 将test.zip解压到/root/test