目录
- 1、各类小技巧(快捷键/命令)
- 2、软件安装 ( yum / apt )
- 3、控制系统服务 ( systemctl )
- 4、软链接 ( ln )
- 5、日期 ( date )、时区 ( ln 续 )、同步系统时间 ( ntp )
- 6、IP地址 ( ifconfig )、主机名 ( hostname )
- 7、配置固定IP
- 8、网络传输( ping、wget、curl、nmap、netstat )
- 9、进程管理 ( ps、kill )
- 10、主机状态 ( top、df、iostat、sar )
- 11、环境变量 ( env、$、export )
- 12、上传 ( rz )、下载 ( sz )
- 13、压缩解压 ( tar、zip、unzip )
1、各类小技巧(快捷键/命令)
1.1、ctrl + c 强制停止
- Linux某些程序的运行,如果想要强制停止它,可以使用快捷键 ctrl + c
- 命令输入错误,也可以通过快捷键 ctrl + c,退出当前输入,重新输入
1.2、ctrl + d 退出或登出
- 可以通过快捷键:ctrl + d,退出账户的登录
- 或者退出某些特定程序的专属页面
ps:不能用于退出 vi / vim
1.3、history 历史命令搜索
- 可以通过
history
命令,查看历史输入过的命令 - 可以通过:
!命令前缀
,自动执行上一次匹配前缀的命令 - 可以通过快捷键 ctrl + r,输入内容去匹配历史命令
- 如果搜索到的内容是你需要的,那么:
- 回车 键可以直接执行
- 键盘 ← 或 → 键,可以得到此命令(不执行)
- 如果搜索到的内容是你需要的,那么:
1.4、光标移动快捷键
- ctrl + a 跳到命令开头
- ctrl + e 跳到命令结尾
- ctrl + ← 向左跳一个单词
- ctrl + → 向右跳一个单词
1.5、清屏
- 通过快捷键 ctrl + l,可以清空终端内容
- 或通过命令
clear
得到同样效果
2、软件安装 ( yum / apt )
yum 和 apt 均需要root权限
2.1、CentOS - yum
- yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题
- 语法:
yum [-y] [install remove search] 软件名称
-y
:自动确认,无需手动确认安装或卸载过程install
:安装remove
:卸载search
:搜索
2.2、Ubuntu - apt
- 语法:
apt [-y] [install remove search] 软件名称
-y
:自动确认,无需手动确认安装或卸载过程install
:安装remove
:卸载search
:搜索
3、控制系统服务 ( systemctl )
- 功能:控制系统服务的启动、关闭等
- 系统内置服务均可被systemctl控制
- 第三方软件,如果自动注册了可以被systemctl控制
- 第三方软件,如果没有自动注册,可以手动注册
- 后续补充(如果我之后想起来的话[dog])
- 语法:
systemctl start | stop | restart | disable | enable | status 服务名
start
:启动stop
:停止status
:查看状态disable
:关闭开机自启enable
:开启开机自启restart
:重启
–
4、软链接 ( ln )
- 功能:创建文件、文件夹软链接(类似Windows的快捷方式)
- 语法:
ln -s 参数1 参数2
-s
:创建软连接参数1
:被链接的文件或文件夹参数2
:要链接去的目的地(快捷方式的存放位置和名称)
- 示例:
ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum
5、日期 ( date )、时区 ( ln 续 )、同步系统时间 ( ntp )
5.1、日期 ( date )
- 功能:通过 date 命令可以在命令行中查看系统的时间
- 语法:
date [-d] [+格式化字符串]
-d
:按照给定的字符串显示日期,一般用于日期计算格式化字符串
:通过特定的字符串标记,来控制显示的日期格式%Y
:年%y
:年份后面两位数(00~99)%m
:月份(01~12)%d
:日(01~31)%H
:小时(00~23)%M
:分钟(00~59)%S
:秒(00~60)%s
:自1970-01-01 00:00:00 UTC 到现在的秒数
● 使用date命令本体,无选项,直接查看时间:
● 按格式显示日期:
● 日期计算
支持的时间标记为:
- year 年
- month 月
- day 天
- hour 小时
- minute 分钟
- second 秒
-d
可以和格式化字符串
配合一起使用
▼示例:
5.2、时区 ( ln 续 )
有的时候,通过date查看的日期时间是不准确的,这是因为:系统默认时区非中国的东八区。
- 使用root权限,执行如下命令,修改时区为东八区:
将系统自带的localtime文件删除,并将
/usr/share/zoneinfo/Asia/Shanghai
文件链接为localtime
文件即可.
5.3、同步系统时间 ( ntp )
- 安装 npt :
yum install -y ntp
- 启动并设置开机自启:
systemctl start ntpd
systemctl enable ntpd
- 手动校准时间:
ntpdate -u ntp.aliyun.com
- 需root权限
- 通过阿里云提供的服务网址配合
ntpdate
(安装 ntp 后会附带 这个命令)命令自动校准
当ntpd启动后会定期的帮助我们联网校准系统的时间。
6、IP地址 ( ifconfig )、主机名 ( hostname )
6.1、ip地址 ( ifconfig )
每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯。
IP地址主要有2个版本,V4版本和V6版本(V6目前很少用,暂不涉及)。
IPv4 版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址
- 特殊IP:
- 127.0.0.1,表示本机
- 0.0.0.0
- 可以表示本机
- 可以在端口绑定中用来确定绑定关系
- 在一些IP地址限制中,表示所有IP的意思,如放行规则设置为 0.0.0.0,表示允许任意IP访问
- 查看ip命令:
ifconfig
- 如无法使用该命令,可以安装:
yum -y install net-tools
- 如无法使用该命令,可以安装:
6.2、主机名 ( hostname、hostnamectl )
每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名。
无论是Windows或Linux系统,都可以给系统设置主机名。
- 功能:Linux系统的名称
- 查看主机名:
hostname
- 修改主机名:
hostnamectl set-hostname 主机名
- 需root权限
- 重新登录FinalShell即可看到主机名已经正确显示
6.3、域名解析
由于IP地址难以记忆,所以我们一直都是通过字符化(域名)的地址去访问服务器。
比如,我们在浏览器内打开:www.baidu.com,会打开百度的网址,其中,www.baidu.com,是百度的网址,我们称之为:域名。
▼ 访问www.baidu.com的流程如下:
- 先查看本机的记录(私人地址本)
- Windows看:C:\Windows\System32\drivers\etc\hosts
- Linux看:
/etc/hosts
- 再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人们更方便地访问互联网。
6.4、配置主机名映射
通常我们FinalShell是通过IP地址连接到的Linux服务器,当然我们也可以通过域名(主机名)来连接,只需要在Windows系统的:C:\Windows\System32\drivers\etc\hosts
文件中配置记录即可。
7、配置固定IP
7.1、为什么需要固定IP
当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。
DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更
- 原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统,如果IP地址经常变化我们就要频繁修改适配很麻烦
- 原因2:在上面我们配置了虚拟机IP地址和主机名的映射,如果IP频繁更改,我们也需要频繁更新映射关系
7.2、在 VMware 中配置固定IP
- 配置固定IP需要2个大步骤:
- 在VMware Workstation(或Fusion)中配置IP地址、网关和网段(IP地址的范围)
- 在Linux系统中手动修改配置文件,固定IP
7.2.1、第一步:在VMware配置IP网关网段
- 编辑 --> 虚拟网络编辑器
- 更改设置
- VMnet8 --> 设置子网IP、子网掩码 --> NAT设置
- 修改网关IP
7.2.2、第二步:在Linux系统中修改固定IP
需要 root权限
- 使用 vi / vim 修改文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp" # 改为static(dhcp:动态分配ip static:静态)
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="8c52cc3e-c40c-4597-83b3-65705768aede"
DEVICE="ens33"
ONBOOT="yes" # 改为yes 【注:以下的内容都是新增的】
IPADDR="192.168.115.128" # ip地址,自己设置,要匹配网段
NETMASK="255.255.255.0" # 子网掩码,固定写法 255.255.255.0
GATEWAY="192.168.115.2" # 网关,要和VMware中配置的一致
DNS1="114.114.114.114" # 域名解析器1
DNS2="8.8.8.8" # 域名解析器2(写不写都可)
- 执行
systemctl restart network
命令重启网卡,执行ifconfig
命令即可看到 IP地址固定为 192.168.115.128 了
8、网络传输( ping、wget、curl、nmap、netstat )
8.1、下载和网络传输 ( ping、wget、curl )
8.1.1、ping
- 功能:测试网络是否联通
- 语法:
ping [-c num] ip或主机名
-c
:检查次数,不使用-c
则会无限次持续检查num
:数字,次数ip或主机名
:被检查的服务器的ip地址或主机名地址
▼ 例子1:检测到百度是否联通,结果显示联通,延迟是25ms左右
▼例子2:检测到10.0.0.34是否联通,并检查3次
8.1.2、wget
wget 是非交互式的文件下载器,可以在命令行内下载网络文件。
- 语法:
wget [-b] url
-b
:后台下载,会将日志写入到当前工作目录的 wget-log 文件url
:下载链接
▼ 示例
- 下载apache-hadoop 3.3.0:
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
- 在后台下载apache-hadoop 3.3.0:
wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
- 通过
tail
命令可以监控后台下载进度:tail -f wget-log
注意:无论下载是否完成,都会生成下载文件,如果下载未完成请及时清理未完成的不可用文件。
8.1.3、curl
curl 可以发送 http网络请求,可用于:下载文件、获取信息等。
- 语法:
curl [-O] url
-
-O
:用于下载文件,当url是下载链接时,可以使用此选项保存文件url
:要发起请求的网络地址
- 示例:
- 下载Hadoop-3.3.0安装包:
curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
- 向cip.cc发起无网络请求:
curl cip.cc
- 下载Hadoop-3.3.0安装包:
8.2、端口
端口是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类。
- 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
- 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
8.2.1、为什么需要虚拟端口
计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。
通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通。
IP地址相当于小区地址,在小区内可以有许多住户(程序),而门牌号(端口)就是各个住户(程序)的联系地址。
8.2.2、Linux 端口
Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口(非特殊需要,不要占用这个范围的端口)
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序、服务
- 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用
- 如上图中:
- 计算机A 的 微信 连接 计算机B 的 微信,A使用的 50001 即动态端口,临时找一个端口作为出口。
- 计算机B 的 微信 使用 端口 5678,即注册端口,长期绑定此端口等待别人连接。
PS:上述微信的端口仅为演示,具体微信的端口使用非图中示意
8.2.3、查看端口占用 ( nmap )
可以通过Linux命令去查看端口占用情况。
- 安装 nmap:
yum -y install nmap
- 语法:
nmap 被查看的IP地址
- 示例:
从图上可以看出本机(127.0.0.1)上有5个端口现在被程序占用了,其中: - 22端口,一般是SSH服务器在使用,即FinalShell远程连接Linux所使用的端口
8.2.4、查看指定端口的占用情况 ( netstat )
- 功能:打印网络连接、路由表、接口统计信息、伪装连接和多播成员,使用最多的是打印网络连接信息。
- 安装netstat:
yum -y install net-tools
- 常用参数
-a
:显示所有连接-l
:显示监听端口的链接-n
:禁止将端口号转换成别名显示-p
:显示监听端口对应的程序-t
:显示tcp连接-u
:显示udp连接
- 示例(查看端口占用):
netstat -anp | grep xxx
▼ 例子1:查看当前系统 6000 端口被谁(进程号7174)占了
其中,0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问
▼ 例子2:查看 127.0.0.1 上占用的端口有哪些
▼ 例子3:查看当前系统12345端口被谁占用了(无人占用)
9、进程管理 ( ps、kill )
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程。并会为每一个进程都分配一个独有的:进程ID(进程号)。
9.1、查看进程 ( ps )
- 语法:
ps [-e -f]
-e
:显示出全部的进程-f
:以完全格式化的形式展示信息(展示全部信息)
- 一般来说,固定用法就是:
ps -ef
列出全部进程的全部信息 - 查看全部进程信息,可以搭配
grep
做过滤:ps -ef | grep xxx
▲从左到右分别是:
- UID:进程所属的用户ID
- PID:进程的进程号ID
- PPID:进程的父ID(启动此进程的其它进程)
- C:此进程的CPU占用率(百分比)
- STIME:进程的启动时间
- TTY:启动此进程的终端序号,如显示?,表示非终端启动
- TIME:进程占用CPU的时间
- CMD:进程对应的名称或启动路径或启动命令
9.2、关闭进程 ( kill )
- 语法:
kill [-9] 进程ID
-9
:表示强制关闭进程。不使用此选项会向进程发送信号请求其关闭,但是否关闭看进程自身的处理机制
10、主机状态 ( top、df、iostat、sar )
10.1、查看系统资源占用 ( top )
- 功能:查看主机运行状态(CPU、内存使用情况)
- 类似Windows的任务管理器
- 语法:
top
,查看基础信息- 默认 每5秒刷新 一次,按 q 或 ctrl + c 退出
- 可用选项:
-b
:以||交互||全屏模式运行,以批次的方式执行top,一般配合-n
指定输出几次统计信息,将输出重定向到指定文件,比如top -b -n 3 > /tmp/top.tmp
-c
:显示产生进程的完整命令,默认是进程名-d
:设置刷新时间,默认是5s-i
:不显示任何闲置(idle)或无用(zombie)的进程-n
:指定刷新次数,比如top -n 3
,刷新输出3次后退出-p
:只显示某个进程的信息-u
:查找特定用户启动的进程
- 交互模式中可用的快捷键:
- c:按下c键,会显示产生进程的完整命令,等同于
-c
参数,再次按下c键,变为默认显示 - e:按下e键,切换进程内存显示单位
- E:按下E键,切换顶部内存显示单位
- f:按下f键,可以选择需要展示的项目
- h:按下h键,会显示帮助画面
- i:按下i键,不显示闲置或无用进程,等同于
-i
参数,再次按下,变为默认显示 - l:按下l键,切换显示平均负载和启动时间信息
- m:按下m键,切换显示内存信息
- M:按下M键,柑橘驻留内存大小(RES)排序
- P:按下P键,根据CPU使用百分不大小进行排序
- t:按下t键,切换显示CPU状态信息
- T:按下T键,根据时间/累计时间进行排序
- c:按下c键,会显示产生进程的完整命令,等同于
▼ top命令内容详解:
-
第一行:
top:命令名称,12:29:28:当前系统时间,up 1 day:启动了6分钟,4 users:4个用户登录,load:1、5、15分钟负载
- 第二行
Tasks:221个进程,1 running:1个进程子在运行,220 sleeping:220个进程睡眠,0 stopped:0个停止进程,0 zombie:0个僵尸进程
- 第三行
%Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率
- 第四、五行:
KiB Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
KiBSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,avail Mem:在不交换的情况下,对启动新应用程序可用内存的估计
-
第六行为空
-
第七行是各个进程的监控
-
- PID:进程id
- USER:进程所有者
- PR:进程优先级
- NI:nice值
- 负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存总量
- 单位kb,VIRT=SWAP+RES
- RES:进程使用的、未被换出的物理内存大小
- 单位kb,RES=CODE+DATA
- SHR:共享内存大小(单位kb)
- S:进程状态
- D:不可中断的睡眠状态
- R:运行
- S:睡眠
- T:跟踪/停止
- Z:僵尸进程)
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程使用的CPU时间总计(单位1/100秒)
- COMMAND:进程名称(命令名/命令行)
10.2、磁盘信息监控 ( df )
- 功能:查看磁盘使用情况
- 语法:
df [-h]
-h
:以更加人性化的单位显示
10.3、磁盘I/O活动监控 ( iostat )
- 功能:查看CPU、磁盘的相关信息
- 语法:
iostat [-x] [num1] [num2]
-x
:显示更多信息num1
:刷新间隔num2
:刷新次数
tps:该设备每秒的传输次数。
“一次传输” 的意思是 “一次I/O请求”。多个逻辑请求可能会被合并为 “一次I/O请求”。“一次传输” 请求的大小是未知的。
- 使用
iostat
的-x
选项,可以显示更多信息
- 具体列信息如下:
rrqm/s
:每秒这个谁被相关的读取请求有多少被Merge了(当前系统调用需要读取数据的时候,VFS将请求发送到各个FS,如果FS发现不同的读取请求读取的是相同的Block的数据,FS会将这个请求合并Merge,提高IO利用率,避免重复调用)wrqm/s
:每秒这个设备相关的写入请求有多少被Merge了r/s
:每秒读取的扇区数(sectors)w/s
:每秒写书的扇区数rKB/s
:每秒发送到设备的读取请求数wKB/s
:每秒发送到设备的写入请求数avgrq-sz
:平均请求扇区的大小avgqu-sz
:平均请求队列的长度(毫无疑问,队列长度越短越好)await
:每个IO请求处理所花费的平均时间(单位微秒毫秒)svctm
:表示平均每次设备I/O操作的服务时间(以毫秒为单位)%util
:磁盘利用率
10.4、网络状态监控 ( sar )
- 功能:查看网络的相关统计
- sar 命令非常复杂,这里仅简单用于统计网络
- 语法:
sar -n DEV num1 num2
-n
:查看网络DEV
:查看网络接口num1
:刷新间隔(不填就查看一次结束)num2
:查看次数(不填就是无限次数)
▼ 例子示例:如图,每隔3s刷新一次,查看2次并最终汇总平均激记录
- 信息解读:
IFACE
:本地网卡接口名称rxpck/s
:每秒接收的数据包txpck/s
:每秒发送的数据包rxKB/s
:每秒接收的数据包大小,单位KBtxKB/s
:每秒发送的数据包大小,单位KBrxcmp/s
:每秒接收的压缩数据包txcmp/s
:每秒发送的压缩数据包rxmcst/s
:每秒接收的多播数据包
11、环境变量 ( env、$、export )
Linux使用的一系列命令其实本质上就是一个个的可执行程序。
- 比如,cd命令的本体就是:/usr/bin/cd 这个程序文件。
那为何无论当前工作目录在哪里,都能执行:/usr/bin/cd这个程序呢?
这就是环境变量的作用了。
11.1、查看环境变量 ( env )
- 功能:查看系统全部的环境变量
- 语法:
env
- 环境变量是一种 key-value 型结构,即名称和值
11.2、环境变量:PATH
环境变量 PATH 这个项目里面记录了系统执行命令的搜索路径。
▲ 上面提到的问题:
- 无论当前工作目录在哪里,都能执行:/usr/bin/cd这个程序
这个就是借助环境变量中:PATH这个项目的值来做到的。
▼ PATH 记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以:隔开):
- /usr/local/bin
- /usr/bin
- /usr/local/sbin
- /usr/sbin
- /home/wxp/.local/bin
- /home/wxp/bin
当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体。
比如执行 cd 命令,就从第二个目录 /usr/bin 中搜索到了 cd 命令,并执行。
◆ 这些搜索路径我们也可以自行添加到 PATH 中去。
测试:
- 在当前HOME目录内创建文件夹
myenv
,在文件夹内创建文件mkhaha
- 通过vim编辑器,在mkhaha文件内填入:
echo "Hello Linux"
- 完成上述操作后,随意切换工作目录,执行
mkhaha
命令尝试一下,会发现无法执行
修改PATH的值:
- 临时修改PATH:
export PATH=$PATH:/home/wxp/myenv
,再次执行mkhaha
,无论在哪里都能执行了 - 或将
export PATH=$PATH:/home/wxp/myenv
,填入用户环境变量文件或系统环境变量文件中去
11.3、$
- 功能:可以取出指定的环境变量的值。
- 语法:
$变量名
- 示例:
echo $PATH
:输出PATH环境变量的值echo ${PATH}ABC
:输出PATH环境变量的值以及ABC- 如果变量名和其它内容混淆在一起,可以使用
{}
- 如果变量名和其它内容混淆在一起,可以使用
11.4、自行设置环境变量 ( export )
- 临时设置:
export 变量名=变量值
- 永久设置:
- 针对当前用户生效:配置在当前用户的:
~/.bashrc
文件中 - 针对所有用户生效:配置在系统的:
/etc/profile
文件 - 并通过语法:
source 配置文件
,进行立刻生效,或重新登录FinalShell生效
- 针对当前用户生效:配置在当前用户的:
12、上传 ( rz )、下载 ( sz )
12.1、通过FinalShell
我们可以通过FinalShell工具,方便的和虚拟机进行数据交换。
在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:
- 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑
- 浏览文件系统,找到合适的目录,将本地电脑的文件拓展进入,即可方便的上传数据到Linux中
12.2、通过命令 ( rz、sz )
rz、sz命令需要安装,可以通过:
yum -y install lrzsz
,即可安装。
rz
:上传;语法:rz
sz
:下载;语法:sz 要下载的文件
注意,rz、sz命令需要终端软件支持才可正常运行。
FinalShell、SecureCRT、XShell等常用终端软件均支持此操作。
13、压缩解压 ( tar、zip、unzip )
- 市面上有非常多的压缩格式:
- zip格式:Linux、Windows、MacOS,常用
- 7zip:Windows系统常用
- rar:Windows系统常用
- tar:Linux、MacOS常用
- gzip:Linux、MacOS常用
接下来我们要研究如何在Linux系统中操作:tar、gzip、zip 这三种压缩格式,完成文件的压缩、解压操作。
13.1、压缩 ( tar、zip )
13.1.1、tar 压缩
▼ tar可解析的格式:
- .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
- .gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
▼ 语法:tar [-c -v -x -f -z -C] 压缩包 被压缩1...被压缩2...被压缩N
-c
:创建压缩文件,用于压缩模式-v
:显示压缩、解压过程,用于查看进度-x
:解压模式-f
:要创建的文件,或要解压的文件- 注意:-f 选项必须在所有选项中位置处于最后一个
-z
:gzip模式,不使用-z就是普通的 .tar 格式- 注意: -z 选项如果使用的话,一般处于选项位第一个
-C
:选择解压的目的地,用于解压模式
▼ 示例:
tar -cvf test.tar 1.txt 2.txt 3.txt
- 将 1.txt、2.txt、3.txt 压缩到 test.tar 文件内
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
- 将 1.txt、2.txt、3.txt 压缩到 test.tar.gz 文件内,使用 gzip 模式
13.1.2、zip
可以使用zip命令,压缩文件为zip压缩包。
- 语法:
zip [-r] 压缩包 被压缩文件1 ... 被压缩文件N
-r
:被压缩的内容包含文件夹的时候,需要使用-r
选项,和rm
、cp
等命令的-r
效果一致
- 示例:
zip test.zip a.txt b.txt c.txt
:将a.txt、b.txt、c.txt压缩到text.zip文件内zip -r test.zip test itheima a.txt
:将text、itheima两个文件夹和a.txt文件压缩到test.zip文件内
13.2、解压 ( tar、unzip )
13.2.1、tar 解压
- 常用的tar解压组合有:
- 解压至当前目录:
tar -xvf 被解压的文件
- 解压至指定目录:
tar -zxvf 被解压的文件 -C 指定目录
- 以Gzip模式解压到指定目录:
tar -zxvf 被解压的文件 -C 指定目录
- 解压至当前目录:
- 语法:
注意:
-f
选项必须在选项组合体的最后一位-z
选项建议在开头位置-C
选项需要单独使用,和解压所需的其它参数分开
13.2.2、unzip
使用unzip命令,可以方便的解压zip压缩包。
- 语法:
unzip 压缩包 [-d 指定目录]
-d
:指定要解压去的位置,同tar
的-C
选项
- 示例:
unzip test.zip
:将test.zip解压到当前目录unzip test.zip -d /home/wxp
:将test.zip解压到 /home/wxp 文件夹内