Linux-实用操作(黑马学习笔记)

news2025/1/8 12:26:18

各类小技巧(快捷键)

ctrl + c 强制停止

● Linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl + c

● 命令输入错误,也可以通过快捷键ctrl + c,退出当前输入,重新输入

ctrl + d 退出或登出

● 可以通过快捷键:ctrl + d,退出账户的登录

● 或者退出某些特定程序的专属页面

ps:不能用于退出vi/vim

历史命令搜索

● 可以通过history命令,查看历史输入过的命令

● 可以通过:!命令前缀,自动执行上一次匹配前缀的命令

● 可以通过快捷键:ctrl + r,输入内容去匹配历史命令

如果搜索到的内容是你需要的,那么:

● 回车键可以直接执行

● 键盘左右键,可以得到此命令(不执行)

光标移动快捷键

● ctrl + a,跳到命令开头

● ctrl + e,跳到命令结尾

● ctrl + 键盘左键,向左跳一个单词

● ctrl + 键盘右键,向右跳一个单词

清屏

● 通过快捷键ctrl + l,可以清空终端内容

● 或通过命令clear得到同样效果

软件安装

Linux系统的应用商店

操作系统安装软件有许多种方式,一般分为:

● 下载安装包自行安装

    ● 如win系统使用exe文件、msi文件等

    ● 如mac系统使用dmg文件、pkg文件等

● 系统的应用商店内安装

    ● 如win系统有Microsoft Store商店

    ● 如mac系统有AppStore商店

Linux系统同样支持这两种方式,我们首先,先来学习使用:Linux命令行内的”应用商店”,yum命令安装软件

yum命令

yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。

语法:

● 选项:-y,自动确认,无需手动确认安装或卸载过程

● install:安装

● remove:卸载

● search:搜索

yum命令需要root权限哦,可以su切换到root,或使用sudo提权。

yum命令需要联网。

● yum [-y] install wget,通过yum命令安装wget程序

● yum [-y] remove wget,通过yum命令卸载wget命令

● yum search wget,通过yum命令,搜索是否有wget安装包

apt命令 - 扩展

前面学习的各类Linux命令,都是通用的。但是软件安装,Centos系统和Ubuntu是使用不同的包管理器。

Centos使用yum管理器,Ubuntu使用apt管理器

通过前面学习的WSL环境,我们可以得到Ubuntu运行环境。

语法:

用法和yum一致,同样需要root权限

● apt install wget,安装wget

● apt remove wget,移除wget

● apt search wget,搜索wget

systemctl

systemctl命令

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启

能够被systemctl管理的软件,一般也称之为:服务

语法:

● start 启动

● stop 关闭

● status 查看状态

● enable 开启开机自启

● disable 关闭开机自启

系统内置的服务比较多,比如:

● NetworkManager,主网络服务

● network,副网络服务

● firewalld,防火墙服务

● sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)

除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制。

● yum install -y ntp,安装ntp软件

可以通过ntpd服务名,配合systemctl进行控制

● yum install -y httpd,安装apache服务器软件

可以通过httpd服务名,配合systemctl进行控制

部分软件安装后没有自动集成到systemctl中,我们可以手动添加。

软连接

ln命令创建软连接

在系统中创建软链接,可以将文件、文件夹链接到其它位置。

类似Windows系统中的《快捷方式》

语法:

● -s选项,创建软连接

● 参数1:被链接的文件或文件夹

● 参数2:要链接去的目的地

实例:

● ln -s /etc/yum.conf ~/yum.conf

● ln -s /etc/yum ~/yum

日期、时区

date命令

通过date命令可以在命令行中查看系统的时间

语法:

● -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命令本体,无选项,直接查看时间

可以看到这个格式非常的不习惯。我们可以通过格式化字符串自定义显示格式

● 按照2022-01-01的格式显示日期

● 按照2022-01-01 10:00:00的格式显示日期

如上,由于中间带有空格,所以使用双引号包围格式化字符串,作为整体。

date命令进行日期加减

● -d选项,可以按照给定的字符串显示日期,一般用于日期计算

● 其中支持的时间标记为:

    ● year年

    ● month月

    ● day天

    ● hour小时

    ● minute分钟

    ● second秒

● -d选项可以和格式化字符串配合一起使用哦

修改Linux时区

通过date查看的日期时间是不准确的,这是因为:系统默认时区非中国的东八区。

使用root权限,执行如下命令,修改时区为东八区时区

将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可

ntp程序

我们可以通过ntp程序自动校准系统时间

安装ntp:yum -y install ntp

启动并设置开机自启:

● systemctl start ntpd

● systemctl enable ntpd

当ntpd启动后会定期的帮助我们联网校准系统的时间

● 也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com

通过阿里云提供的服务网址配合ntpdate(安装ntp后会附带这个命令)命令自动校准

IP和主机名

IP地址

每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯

IP地址主要有2个版本,V4版本和V6版本

IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址

可以通过命令:ifconfig,查看本机的ip地址,如无法使用ifconfig命令,可以安装:yum -y install net-tools

特殊IP地址

出了标准的IP地址以外,还有几个特殊的IP地址需要我们了解:

● 127.0.0.1,这个IP地址用于指代本机

● 0.0.0.0,特殊IP地址

    ● 可以用于指代本机

    ● 可以在端口绑定中用来确定绑定关系

    ● 在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问

主机名

每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名

无论是Windows或Linux系统,都可以给系统设置主机名

● Windows系统主机名

● Linux系统主机名

在Linux中修改主机名

可以使用命令:hostname查看主机名

● 可以使用命令:hostnamectl set-hostname 主机名,修改主机名(需root)

● 重新登录FinalShell即可看到主机名已经正确显示

域名解析

IP地址实在是难以记忆,有没有什么办法可以通过主机名或替代的字符地址去代替数字化的IP地址呢?

实际上,我们一直都是通过字符化的地址去访问服务器,很少指定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等)询问

配置主机名映射

比如,我们FinalShell是通过IP地址连接到的Linux服务器,那有没有可能通过域名(主机名)链接呢?

可以,我们只需要在Windows系统的:C:\Windows\System32\drivers\etc\hosts文件中配置记录即可

虚拟机配置固定IP

为什么需要固定IP

当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。

DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更

原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统,如果IP地址经常变化我们就要频繁修改适配很麻烦

原因2:在刚刚我们配置了虚拟机IP地址和主机名映射,如果IP频繁更改,我们也需要频繁更新映射关系

综上所述,我们需要IP地址固定下来,不要变化了。

在VMware Workstation中配置固定IP

配置固定IP需要2个大步骤:

1.在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)

2.在Linux系统中手动修改配置文件,固定IP

首先让我们,先进行第一步,跟随图片进行操作

现在进行第二步,在Linux系统中修改固定IP

● 使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入如下内容

● 执行:systemctl restart network 重启网卡,执行ifconfig即可看到ip地址固定为192.168.88.130了

在Vmware Fusion中配置固定IP

步骤一:先修改VMware Fusion的网络设置

1. 打开Mac系统的终端程序,并执行如下命令:

2. 在终端内执行:sudo su - 并输入个人系统密码切换到root用户

3. 先备份一下文件:cp /Library/Preferences/VMware\ Fusion/networking /Library/Preferences/VMware\ Fusion/networking.bakcup

通过vim编辑器修改文件:vim /Library/Preferences/VMware\ Fusion/networking

修改第11行为如图内容:192.168.88.0,并保存退出

4. 备份文件:cp /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf.backup

修改文件:vim /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf

如图所示在 NAT gateway address下修改:ip为:192.168.88.2(这是网关的IP),并保存退出

5. 启动VMware Fusion,进入Linux虚拟机

步骤2:在Linux中修改固定IP

● 在虚拟机的图形化页面中,打开终端,使用su - 切换到root用户

● 使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入如下内容

● 执行:systemctl restart network 重启网卡,执行ifconfig即可看到ip地址固定为192.168.88.130了

下载和网络请求

ping命令

可以通过ping命令,检查指定的网络服务器是否是可联通状态

语法:

● 选项:-c,检查的次数,不使用-c选项,将无限次数持续检查

● 参数:ip或主机名,被检查的服务器的ip地址或主机名地址

示例:

● 检查到baidu.com是否联通

结果表示联通,延迟8ms左右

● 检查到39.156.66.10是否联通,并检查3次

wget命令

wget是非交互式的文件下载器,可以在命令行内下载网络文件

语法:

● 选项:-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

● 在后台下载:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

● 通过tail命令可以监控后台下载进度:tail -f wget-log

注意:无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。

curl命令

curl可以发送http网络请求,可用于:下载文件、获取信息等

语法:

● 选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件

● 参数:url,要发起请求的网络地址

示例:

● 向cip.cc发起网络请求:curl cip.cc

● 向python.itheima.com发起网络请求:curl python.itheima.com

● 通过curl下载hadoop-3.3.0安装包:curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

端口

端口

端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类

● 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等

● 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的

端口(虚拟)

物理端口我们日常生活中经常见到,也能知晓它的作用。

但是虚拟端口,有什么用?为什么需要它呢?

通过IP地址即可

计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。

通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通

IP地址相当于小区地址,在小区内可以有许多住户(程序),而门牌号(端口)就是各个住户(程序)的联系地址

Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:

● 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口

非特殊需要,不要占用这个范围的端口

● 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务

● 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。

如图中,计算机A的微信连接计算机B的微信,A使用的50001即动态端口,临时找一个端口作为出口

计算机B的微信使用端口5678,即注册端口,长期绑定此端口等待别人连接

PS:上述微信的端口仅为演示,具体微信的端口使用非图中示意

查看端口占用

可以通过Linux命令去查看端口的占用情况

● 使用nmap命令,安装nmap:yum -y install nmap

语法:nmap 被查看的IP地址

可以看到,本机(127.0.0.1)上有5个端口现在被程序占用了。

其中:

● 22端口,一般是SSH服务使用,即FinalShell远程连接Linux所使用的端口

● 可以通过netstat命令,查看指定端口的占用情况

语法:netstat -anp | grep 端口号,安装netstat:yum -y install net-tools

如图,可以看到当前系统6000端口被程序(进程号7174)占用了

其中,0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问

可以看到,当前系统12345端口,无人使用哦。

进程管理

进程

程序运行在操作系统中,是被操作系统所管理的。

为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程

并会为每一个进程都分配一个独有的:进程ID(进程号)

Windows系统任务管理器

Linux系统查看进程

查看进程

可以通过ps命令查看Linux系统中的进程信息

语法:

选项:-e,显示出全部的进程

选项:-f,以完全格式化的形式展示信息(展示全部信息)

一般来说,固定用法就是:ps -ef 列出全部进程的全部信息

从左到右分别是:

● UID:进程所属的用户ID

● PID:进程的进程号ID

● PPID:进程的父ID

● C:此进程的CPU占有率(百分比)

● STIME:进程的启动时间

● TTY:启动此进程的终端序号,如显示?,表示非终端启动

● TIME:进程占用CPU的时间

● CMD:进程对应的名称或启动路径或启动命令

查看指定进程

● 在FinalShell中,执行命令:tail,可以看到,此命令一直阻塞在那里

● 在FinalShell中,复制一个标签页,执行:ps-ef找出tail这个程序的进程信息

● 问题:是否会发现,列出的信息太多,无法准确的找到或很麻烦怎么办?

我们可以使用管道符配合grep来进行过滤,如:

ps -ef | grep tail,既可精准的找到tail命令的信息

● 过滤不仅仅过滤名称,进程号,用户ID等等,都可以被grep过滤哦

● 如:ps -ef | grep 30001,过滤带有30001关键字的进程信息(一般指代过滤30001进程号)

关闭进程

在Windows系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。

同样,在Linux中,可以通过kill命令关闭进程。

语法:

选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。

主机状态

查看系统资源占用

● 可以通过top命令查看CPU、内存使用情况,类似Windows的任务管理器

默认每5秒刷新一次,语法:直接输入top即可,按q或ctrl + c退出

top命令内容详解

● 第一行:

top:命令名称,14:39:58:当前系统时间,up 6 min:启动了6分钟,2users:2个用户登录,load:1,5,15分钟负载

● 第二行:

Tasks:175个进程,1 running:1个进程子在运行,174个进程睡眠,0个停止进程,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:使用,buff/cache:buff和cache占用

● PID:进程id

● USER:进程所属用户

● PR:进程优先级,越小越高

● NI:负值表示高优先级,正表示低优先级

● VIRT:进程使用虚拟内存,单位KB

● RES:进程使用物理内存,单位KB

● SHR:进程使用共享内存,单位KB

● S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)

● %CPU:进程占用CPU率

● %MEM:进程占用内存率

● TIME+:进程使用CPU时间总计,单位10毫秒

● COMMAND:进程的命令或名称或程序文件路径

top命令选项

top命令也支持选项:

top交互式选项

当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制

磁盘信息监控

● 使用df命令,可以查看硬件的使用情况

语法:df [-h]

选项:-h,以更加人性化的单位显示

● 可以使用iostat查看CPU、磁盘的相关信息

语法:iostat [-x] [num1] [num2]

● 选项:-x,显示更多信息

● num1:数字,刷新间隔,num2:数字,刷新几次

tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。

● 使用iostat的-x选项,可以显示更多信息

rrqm/s:    每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge, 提高IO利用率, 避免重复调用);

wrqm/s:    每秒这个设备相关的写入请求有多少被Merge了。

rsec/s:    每秒读取的扇区数;sectors

wsec/:    每秒写入的扇区数。

rKB/s:    每秒发送到设备的读取请求数

wKB/s:    每秒发送到设备的写入请求数

avgrq-sz     平均请求扇区的大小

avgqu-sz     平均请求队列的长度。毫无疑问,队列长度越短越好。    

await:      每一个IO请求的处理的平均时间(单位是微秒毫秒)。

svctm        表示平均每次设备I/O操作的服务时间(以毫秒为单位)

%util:     磁盘利用率

网络状态监控

● 可以使用sar命令查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)

语法:sar -n DEV num1 num2

选项:-n,查看网络,DEV表示查看网络接口

num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

如图,查看2次,隔3秒刷新一次,并最终汇总平均记录

信息解读:

IFACE 本地网卡接口的名称

rxpck/s 每秒钟接受的数据包

txpck/s 每秒钟发送的数据包

rxKB/S 每秒钟接受的数据包大小,单位为KB

txKB/S 每秒钟发送的数据包大小,单位为KB

rxcmp/s 每秒钟接受的压缩数据包

txcmp/s 每秒钟发送的压缩包

rxmcst/s 每秒钟接收的多播数据包

环境变量

环境变量

在讲解witch命令的时候,我们知道使用的一系列命令其实本质上就是一个个的可执行程序。

比如:cd命令的本体就是:/usr/bin/cd这个程序文件。

我们是否会有疑问,为何无论当前工作目录在哪里,都能执行:/usr/bin/cd这个程序呢?

这就是环境变量的作用啦。

环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。

在Linux系统中执行:env命令即可查看当前系统中记录的环境变量

环境变量是一种KeyValue型结构,即名称和值,如下图:

如图,图中记录了:

● HOME:/home/itheima,用户的HOME路径

● USER:itheima,当前的操作用户

● PWD:当前工作路径

● ......

等等一系列信息,用于辅助系统在运行的时候 从环境变量中获取关键信息

环境变量:PATH

在前面提出的问题中,我们说无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,这个就是借助环境变量中:

PATH这个项目的值来做到的。

PATH记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以:隔开):

● /usr/local/bin

● /usr/bin

● /usr/local/sbin

● /usr/sbin

● /home/itheima/.local/bin

● /home/itheima/bin

当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体

比如执行cd命令,就从第二个目录/usr/bin中搜索到了cd命令,并执行

$符号

在Linux系统中,$符号被用于取”变量”的值。

环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。

取得环境变量的值就可以通过语法:$环境变量名  来取得

比如: echo $PATH

就可以取得PATH这个环境变量的值,并通过echo语句输出出来。

又或者:echo ${PATH}ABC

当和其它内容混合在一起的时候,可以通过{}来标注取的变量是谁

自行设置环境变量

Linux环境变量可以用户自行设置,其中分为:

● 临时设置,语法:export 变量名=变量值

● 永久生效

    ● 针对当前用户生效,配置在当前用户的:    ~/.bashrc文件中

    ● 针对所有用户生效,配置在系统的:    /etc/profile文件中

    ● 并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效

自定义环境变量PATH

环境变量PATH这个项目里面记录了系统执行命令的搜索路径。

这些搜索路径我们也可以自行添加到PATH中去。

测试:

● 在当前HOME目录内创建文件夹,myenv,在文件夹内创建文件mkhaha

● 通过vim编辑器,在mkhaha文件内填入:echo 哈哈哈哈哈

完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行

● 修改PATH的值

临时修改PATH:export PATH=$PATH:/home/itheima/myenv,再次执行mkhaha,无论在哪里都能执行了

或将export PATH=$PATH:/home/itheima/myenv,填入用户环境变量文件或系统环境变量文件中去

上传、下载

上传、下载

我们可以通过FinalShell工具,方便的和虚拟机进行数据交换。

在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:

● 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑

● 浏览文件系统,找到合适的目录,将本地电脑的文件拓展进入,即可方便的上传数据到Linux中

rz、sz命令

当然,除了通过FinalShell的下方窗体进行文件的传输以外,也可以通过rz、sz命令进行文件传输。

rz、sz命令需要安装,可以通过:yum -y install lrzsz,即可安装。

● rz命令,进行上传,语法:直接输入rz即可

● sz命令进行下载,语法:sz 要下载的文件

文件会自动下载到桌面的:fsdownload文件夹中。

注意,rz、sz命令需要终端软件支持才可正常运行

FinalShell、SecureCRT、XShell等常用终端软件均支持此操作

压缩、解压

压缩格式

市面上有非常多的压缩格式

zip格式:Linux、Windows、MacOS,常用

7zip:Windows系统常用

rar:Windows系统常用

tar:Linux、MacOS常用

gzip:Linux、MacOS常用

在Windows系统中常用的软件如:winrar、bandizip等软件,都支持各类常见的压缩格式,这里不多做讨论。

在Windows系统中常用的软件如:winrar、bandizip等软件,都支持各类常见的压缩格式,这里不多做讨论。

完成文件的压缩、解压操作。

tar命令

Linux和Mac系统常用有2种压缩格式,后缀名分别是:

.tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装

.gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积

针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作

语法:

-c,创建压缩文件,用于压缩模式

-v,显示压缩、解压过程,用于查看进度

-x,解压模式

-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个

-z,gzip模式,不使用-z就是普通的tarball格式

-C,选择解压的目的地,用于解压模式

tar命令压缩

tar的常用组合为:

● 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模式

注意:

● -z选项如果使用的话,一般处于选项位第一个

● -f选项,必须在选项位最后一个

tar解压

常用的tar解压组合有

● tar -xvf test.tar

解压test.tar,将文件解压至当前目录

● tar -xvf test.tar -C /home/itheima

解压test.tar,将文件解压至指定目录(/home/itheima)

● tar -zxvf test.tar.gz -C /home/itheima

以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/itheima)

注意:

● -f选项,必须在选项组合体的最后一位

● -z选项,建议在开头位置

● -C选项单独使用,和解压所需的其它参数分开

zip命令压缩文件

可以使用zip命令,压缩文件为zip压缩包

语法:

● -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致

示例:

● zip test.zip a.txt b.txt c.txt

将a.txt b.txt c.txt 压缩到test.zip文件内

● zip -r test.zip test itheima a.txt

将test、itheima两个文件夹和a.txt文件,压缩到test.zip文件内

unzip命令解压文件

使用unzip命令,可以方便的解压zip压缩包

语法:

● -d,指定要解压去的位置,同tar的-C选项

● 参数,被解压的zip压缩包文件

示例:

● unzip test.zip,将test.zip解压到当前目录

● unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内(/home/itheima)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1471891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python实现创建十二星座数据分析图表

下面小编提供的代码中,您已经将pie.render()注释掉,并使用了pie.render_to_file(十二星座.svg)来将饼状图渲染到一个名为十二星座.svg的文件中。这是一个正确的做法,如果您想在文件中保存图表而不是在浏览器中显示它。 成功创建图表&#xf…

本地部署ChatGPT

发布一下我之前做的一个本地大模型部署,不需要API key,但要有自己的账号 利用Docker 的Pandora做本地ChatGPT模型部署 先下载安装Docker,设置好运行如下 会要求升级核心,cmd运行如下命令就OK 安装Pandora 再管理员cmd中输入如下命令拉取Pandora镜像 docker pull pengzhi…

索引学习以及索引原理

有时候,建索引并不一定会加快查询效率。但是,有时候,表的数据量是大数据量的话,还是要看下是否能使用索引优化查询效率。 1、建索引的几大原则: 1.1、最左前缀匹配原则非常重要的原则,mysql会一直向右匹配…

3分钟快速实现串口PLC远程下载程序操作说明

3分钟快速实现串口PLC远程下载程序操作说明 搜索蓝蜂物联网官网,即可免费领取样机使用!!先到先得!!! 一. 适用产品型号 其余型号网关此功能正在开发中,敬请期待。 二. 远程下载功能使用流程 …

HTTP/HTTPS协议

什么是HTTP协议 HTTP被称为超文本传输协议(里面不仅仅可以是字符串,还可以是图片,特殊字符等),这是一种应用非常广泛的应用层协议. HTTP协议诞生于1991年,现在是最主流使用的一种应用层协议.它从诞生到现在为止迭代了多个版本. 但目前最主流使用的还是HTTP1.1和HTTP2.0. HTTP协…

图像处理ASIC设计方法 笔记3 跨时钟域处理思想

P43第二章 数据路径并行策略 全并行、全串行、半并行 P47 第三章 时序问题和解决方法 锁存器的时序分析,工具做不到,需要设计者手工分析 存储器中SRAM可以直接做到ASIC里面(CMOS工艺)而DRAM不行 P55 作者是不是把sensor翻译成 成像器 成像器向ASIC输入被处理数据 片外…

【ECharts】调用接口获取后端数据的四种方法

使用eacharts做大屏,需要使用后端数据,下面的方法是自己试过有效的,有什么不对的,望各位大佬指点。 目录 方法一:在mounted中使用定时器调用eacharts方法(定时器可以获取到data中的数据) 方法…

MySQL的SQL语句

1.MySQL连接 连接命令一般是这样写的 mysql -h$ip -P$port -u$user -p比如:mysql -h127.0.0.1 -P3306 -uroot -p -h 指定连接的主机地址;-P 指定连接端口号;-u 指定用户名 -p指定用户名密码 2.SQL分类 DDL(Data Definition Language) 数据定义语言&…

STM32F103学习笔记(六) RTC实时时钟(应用篇)

目录 1. RTC 实时时钟的应用场景 2. RTC 的配置与初始化 2.1 设置 RTC 时钟源 2.2 初始化 RTC 寄存器 2.3 中断配置 2.4 备份寄存器配置 2.5 校准 RTC 3. 实例演示代码 4. 总结 1. RTC 实时时钟的应用场景 实时时钟(RTC)在嵌入式系统中具有广泛…

(二十三)Flask之高频面试点

目录: 每篇前言:Q1:为什么把request和session放在一起?Q2:Local对象的作用?Q3::LocalStack对象的作用?Q4:一个运行中的Flask应用程序分别包括几个Local/LocalStack&#…

msvcr110.dll找不到怎么修复?多种解决msvcr110.dll缺失方法分析

面对如“程序无法启动,因为电脑中缺失msvcr110.dll”这样的错误提示时,你的日常工作或游戏娱乐很可能会被迫暂停。这种问题在Windows用户中相当普遍,它们来源于某些共享的系统文件缺失。不过,好消息是解决此类错误通常并非困难任务…

springboot集成quartz定时任务并接入后台管理系统(copy即用)

说明:项目启动后会根据设置的时间进行执行,业务代码根据自己的需求更改,数据库文件在最后(记得清空数据库哦~)这里需要注意的一点就是className字段表示的是下面的对应的DynamicTask的路径如:com.example.demo.quartz.task.DynamicTask,如有多个定时任务copy并更改Dynam…

Oracle ADG相关介绍

文章目录 一、ADG原理1、ADG介绍2、ADG搭建流程 二、ADG相关参数三、增量修复 一、ADG原理 1、ADG介绍 Oracle ADG(Advanced Data Guard)是Oracle数据库的一项高可用和灾难恢复技术,它通过将数据保持在物理备库中来提供数据保护和容灾能力。…

FariyGUI × Cocos Creator 3.x 弹窗制作

在fgui里制作一个弹窗 新建一个按钮,作为返回按钮 新建一个标签 做成这个样子 其中包含两个节点,名称分别为title和closeButton 可以阅读fgui的源码window.js得到,closeButton按钮只需要输入名称即可在contentPane设置时自动绑定。 且会…

Wagtail安装运行并结合内网穿透实现公网访问本地网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&#xf…

nginx高级配置详解

目录 一、网页的状态页 1、状态页的基本配置 2、搭配验证模块使用 3、结合白名单使用 二、nginx 第三方模块 1、echo模块 1.1 编译安装echo模块 1.2 配置echo模块 三、nginx变量 1、内置变量 2、自定义变量 四、自定义图标 五、自定义访问日志 1、自定义日志格式…

Java根据excel模版导出Excel(easyexcel、poi)——含项目测试例子拿来即用

Java根据excel模版导出Excel(easyexcel、poi)——含项目测试例子拿来即用 1. 前言1.1 关于Excel的一般导出2.2 关于easyexcel的根据模版导出 2. 先看效果2.1 模版2.2 效果 3. 代码实现(核心代码)3.1 项目代码结构3.2 静态填充例子…

数学建模【GM(1, 1)灰色预测】

一、GM(1, 1)灰色预测简介 乍一看,这个名字好奇怪,其实是有含义的 G:Grey(灰色)M:Model(模型)(1, 1):只含有一个变量的一阶微分方程模型 提到灰色,就得先说…

【已解决】解决Win11忘记开机密码(不用重装系统)

问题起因 因为在实验室的电脑从过年就没有用过,也不知道为什么记性这么差,就把电脑密码忘了,但是又不想用系统盘重装电脑。于是从网上整理一些文章,最后写了下面一篇解决方法 解决方法 1.首先在登录界面(输入密码那…

深入探索 JS 的提升机制、函数与块作用域以及函数表达式和声明(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…