Linux进阶

认识root用户(超级管理员)

root账号:超级管理员账户,在任何地方都有最高权限
其它账户: 是由root权限创建来的.只能在自己的家目录用更大的权限.

su和exit(切换/退出)

su - 用户名  : 切换到其它用. -加载环境变量
exit 登出当前用户. 可以使用ctrl + d 快捷键

在前面,我们接触过su命令切换到root账户。

su命令就是用于账户切换的系统命令,其来源英文单词:Switch User

语法:

- 符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上

参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root

切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d

使用普通用户,切换到其它用户需要输入密码,如切换到root用户

使用root用户切换到其它用户,无需密码,可以直接切换

切换管理员执行权sudo

sudo 命令   : 用管理员权限执行该命令.
注意: 在获得sudo认证的情况下可以使用.

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

演示:

使用普通用户在根目录下创建文件夹

切换到root用户后,继续尝试

普通用户的权限,一般在其HOME目录内是不受限的

一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers 在文件的最后添加:

oracle      ALL=(ALL)           NOPASSWD: ALL

        其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码

最后通过 wq 保存

切换回普通用户

sudo mkdir /test

执行的命令,均以root运行

用户和组管理

用户管理命令

groupadd 用户组名   创建组
cat /etc/group     查看用户组
getent group       查看用户组
groupdel 用户组名    删除用户组

以下命令需root用户执行

创建用户组

groupadd 用户组名

查看用户组

cat /etc/group

包含3份信息,组名称:组认证(显示为x):组ID

删除用户组

groupdel 用户组名

用户组grouphello已消失

修改用户组

chgrp 用户组名  指定文件或目录

用户组管理命令

以下命令需root用户执行 
创建用户 
useradd [-g -d] 用户名 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名 
删除用户 
userdel [-r] 用户名 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留 
查看用户所属组 
id [用户名] 参数:用户名,被查看的用户,如果不提供则查看自身 
添加用户到指定组 
usermod -aG 用户组 用户名,将指定用户加入指定用户组

getent

使用getent命令,可以查看当前系统中有哪些用户 语法: getent passwd

共有7份信息,

分别是: 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

查看权限控制

通过ls -l 可以以列表形式查看内容,并显示权限细节

序号1,表示文件、文件夹的权限控制信息

序号2,表示文件、文件夹所属用户

序号3,表示文件、文件夹所属用户组

修改文件全新 chmod

字母法:
chmod u=rwx,g=rwx,o=rwx  文件名
chmod -R u=rwx,g=rwx,o=rwx  目录名
chmod u-x,g+x  文件名  用户去掉x权限,用户组添加x权限
------------------------------------------------
数字法:
chmod 777 文件名  7是4+2+1得来的.4表示可读,2表示可以写,1表示可以执行.
数字法底层基于二进制的8421编码(BCD)得来.

我们可以使用chmod命令,修改文件、文件夹的权限信息。

注意,只有文件、文件夹的所属用户或root用户可以修改。

语法:chmod [-R] 权限 文件或文件夹

选项:-R,对文件夹内的全部内容应用同样的操作

示例:

   chmod u=rwx,g=rx,o=x a.txt ,将文件权限修改为:rwxr-x--x

        其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限

   chmod -R u=rwx,g=rx,o=x aaa,将文件夹aaa以及文件夹内全部内容权限设置为:rwxr-x--x

除此之外,还有快捷写法:chmod 751 a.txt

将hello.txt的权限修改为751

那么问题来了,751表示什么意思呢?

权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。 数字的细节如下:r记为4,w记为2,x记为1,可以有:

0:无任何权限,    即 ---

1:仅有x权限,    即 --x

2:仅有w权限    即 -w-

3:有w和x权限    即 -wx

4:仅有r权限    即 r--

5:有r和x权限    即 r-x

6:有r和w权限    即 rw-

7:有全部权限    即 rwx

所以751表示: rwx(7) r-x(5) --x(1)

修改文件所属 chown

chown 用户名:组名  文件名 
chown -R 用户名:组名  目录名选项,-R,同chmod,对文件夹内全部内容应用相同规则选项,用户,修改所属用户选项,用户组,修改所属用户组:用于分隔用户和用户组

使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:chown [-R] [用户] [:] [用户组] 文件或文件夹

        选项,-R,同chmod,对文件夹内全部内容应用相同规则

        选项,用户,修改所属用户

        选项,用户组,修改所属用户组

        :用于分隔用户和用户组

示例:

        chown root a.txt,将hello.txt所属用户修改为root

        chown :root a.txt,将hello.txt所属用户组修改为root

        chown root :grouphello hello.txt,将hello.txt所属用户修改为root,用户组修改为grouphello

        chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

常用小技巧命令

ctrl + c 强制停止

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

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

ctrl + d 退出或登出

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

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

ps:不能用于退出vi/vim

history

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

!命令前缀

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

ctrl + r

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

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

        回车键可以直接执行

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

光标移动快捷键

清屏

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

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

软件安装

配置yum 镜像源:

1.修改原有的yum仓库文件.
进入操作目录: cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.repo.bak
2.下载阿里云的镜像文件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3.情况缓存yum clean all
4.建立新的缓存yum makecache

使用yum下载安装软件

yum -y install 软件   下载软件
yum -y remove 软件     卸载软件
yum serach 软件       查找软件
​
yum -y install wget  安装wget工具 
yum -y install tree  安装tree工具

systemctl系统控制

systemctl start | stop | status | enable | disable 服务名称start 启动stop 关闭status 查看状态enable 开启开机自启disable 关闭开机自启
systemctl stop firewalld     关闭linux的防火墙
systemctl disable firewalld  禁用linux的防火墙
systemctl status firewalld   查看linux的防火墙状态

软连接 ln

语法:ln -s 绝对路径 连接到的目的地路径
-s选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
实例: ln -s /mnt/aaa/bbb/a.txt /a.txt

日期、时区

date -d[操作的时间] [格式化字符串]
date -d"+n day" "+%Y-%m-%d %H:%M:%S"
操作的时间:
    year年
   month月
   day天
   hour小时
   minute分钟
   second秒

格式化时间:
   %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 到现在的秒数

安装时间校准服务器ntp
yum -y install ntp

systemctl start ntpd

systemctl enable ntpd
    在指定时间会自动校准.
    手动校准时间:ntpdate -u ntp.aliyun.com

设置时区:timedatectl set-timezone Asia/Shanghai  utc+8 东八区


使用date命令本体,无选项,直接查看时间

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

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

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

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

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

其中支持的时间标记为:

year年 month月 day天 hour小时 minute分钟 second秒

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

IP地址、主机名和域名

IP地址: IPv4 地址.表示互联网上一个唯一的网络设备.
    查看IP :ifconfig
   特殊IP: 127.0.0.1 表示访问本机地址
每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯 IP地址主要有2个版本,V4版本和V6版本(V6很少用,课程暂不涉及) IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址 可以通过命令:ifconfig,查看本机的ip地址,如无法使用ifconfig命令,可以安装:yum -y install net-tools

​除了标准的IP地址以外,还有几个特殊的IP地址需要我们了解:
        127.0.0.1,这个IP地址用于指代本机

​127.0.0.1,特殊IP地址
        可以用于指代本机
        在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问
主机名: 电脑的唯一标识,表示电脑的硬件名称.
    查看主机名: hostname
   修改主机名: hostnamectl set-hostname 主机名

每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名 无论是Windows或Linux系统,都可以给系统设置主机名

Linux系统主机名

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

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


域名: 表示一个IP地址的名字.可以在本地hosts文件映射.也可以在网上DNS服务器映射.
   特殊域名: localhost  表示访问本机地址 .
   DNS常用解析地址: 114.114.114.114 -- 国内的解析器(移动,电信,联动)
   8.8.8.8         -- 全球解析器(google在维护)

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

实际上,我们一直都是通过字符化的地址去访问服务器,很少指定IP地址

比如,我们在浏览器内打开:www.baidu.com,会打开百度的网址 其中,www.baidu.com,是百度的网址,我们称之为:域名

不是说通过IP地址才能访问服务器吗?

为什么域名这一串好记的字符,也可以呢?

这一切,都是域名解析帮助我们解决的。

访问www.baidu.com的流程如下:

即:

先查看本机的记录(私人地址本)

        Windows看:C:\Windows\System32\drivers\etc\hosts

        Linux看:/etc/hosts

再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问

1. 什么是IP地址,有什么作用?

IP地址是联网计算机的网络地址,用于在网络中进行定位

格式是:a.b.c.d,其中abcd是0~255的数字

特殊IP有:127.0.0.1,本地回环IP,表示本机。 0.0.0.0:也可表示本机,也可以在一些白名单中表示任意IP

2. 什么是主机名?

主机名就是主机的名称,用于标识一个计算机

3. 什么是域名解析(主机名映射)

可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析) 先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器去查找

网络传输ping/wget/curl

可以通过ping命令,检查指定的网络服务器是否是可联通状态 语法: 选项:-c,检查的次数,不使用-c选项,将无限次数持续检查 参数:ip或主机名,被检查的服务器的ip地址或主机名地址
示例:
ping www.baidu.com 检查外网是否通畅 [一直检查可以ctrl+c结束]

ping -c 3 www.baidu.com 检查3次自动结束.

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

语法:wget [-b] url

选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件

参数:url,下载链接

wget 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 url地址:      获取rul地址的内容
curl -O 下载地址:  下载文件

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

语法:curl [-O] url

        选项:-O(大写字母),用于下载文件,当url是下载链接时,可以使用此选项保存文件

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

示例:

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

向www.baidu.com发起网络请求:curl www.baidu.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

1. 使用ping命令可以测试到某服务器是否可联通

语法:ping [-c num] ip或主机名

选项:-c,测试的次数

2. 使用wget命令可以进行网络文件下载

语法:wget [-b] url

选项:-b,后台下载

3. 使用curl命令可以发起网络请求

语法:curl [-O] url

选项:-O,用于下载使用

端口

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

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

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

端口(虚拟)

物理端口我们日常生活中经常见到,也能知晓它的作用。 但是虚拟端口,有什么用?为什么需要它呢?

计算机程序之间的通讯,通过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

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

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

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

1.什么是端口?

端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口

物理端口:USB、HDMI、DP、VGA、RJ45等

虚拟端口:操作系统和外部交互的出入口

IP只能确定计算机,通过端口才能锁定要交互的程序

2. 端口的划分

公认端口:1~1023,用于系统内置或常用知名软件绑定使用

注册端口:1024~49151,用于松散绑定使用(用户自定义)

动态端口:49152~65535,用于临时使用(多用于出口)

3. 查看端口占用

nmap IP地址,查看指定IP的对外暴露端口

netstat -anp | grep 端口号,查看本机指定端口号的占用情况

进程管理ps/kill

ps -ef :  列出当前系统正在运行的进程(一个程序就是一个进程)
如果进程过多可以通过管道交给grep搜索:
ps -ef | grep ssh
-----------------------
kill -9 进程id : 根据进程id杀死该进程(强制关闭程序)

程序运行在操作系统中,是被操作系统所管理的。 为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程 并会为每一个进程都分配一个独有的:进程ID(进程号)

windown的进程

Linux的进程

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

语法:ps [-e -f]

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

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

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

从左到右分别是:

UID:进程所属的用户ID

PID:进程的进程号ID

PPID:进程的父ID(启动此进程的其它进程)

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

STIME:进程的启动时间

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

TIME:进程占用CPU的时间

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

查看指定进程

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

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

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

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

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

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

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

关闭进程

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

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

语法:kill [-9] 进程ID

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

1. 什么是进程?

进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程

ID(进程号)

2. 管理进程的命令

        ps -ef 查看进程信息

        ps -ef | grep 关键字 过滤指定关键字进程信息

        kill [-9] 进程号 关闭指定进程号的进程

主机磁盘状态 df

df -h : 列出磁盘占用情况

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

语法:df [-h]

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

环境变量

获取环境变量: $环境名称  或者  ${环境变量名称} 设置环境变量: 用户环境:~/.bashrc文件中 系统环境:/etc/profile文件中 修改方式: export 变量名=变量值 读取环境变量使其立刻生效: source ~/.bashrc    source /etc/profile

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

比如,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记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以:隔开):

/home/app/oracle/product/11.2.0/db_1/bin

/usr/local/sbin

/usr/local/bin

/usr/sbin

/usr/bin

/usr/java/jdk1.8.0_65/bin

/root/bin

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

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

$符号

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

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

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

比如: echo $PATH

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

又或者:echo ${PATH}ABC

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

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

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

        永久生效

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

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

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

1. 什么是环境变量?

环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息

2. 通过env命令可以查看当前系统配置的环境变量信息

3. 通过$符号,可以取出环境变量的值

4. 什么是PATH,作用是?

环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。 可以通过修改这个项目的值,加入自定义的命令搜索路径

如export PATH=$PATH:自定义路径

5. 如何修改环境变量?

临时生效:export 名称=值

永久生效:

        针对用户:~/.bashrc文件中配置

        针对全部用户:/etc/profile文件中配置

        配置完成,可以通过source命令立刻生效

上传、下载

使用rz(上传)和sz(下载)命令: 先下载lrzsz程序: yum -y install lrzsz 上传: rz 会弹出windows文件选择目录.点击选中后上传到linux当前目录(在哪敲) 下载: sz linux文件名 : 会下载到windows桌面上.

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

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

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

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

rz、sz命令

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

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

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

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

文件会自动下载到用户的:下载文件夹中。

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

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

压缩和解压

tar -cvf 压缩文件名.tar 被压缩的文件1 文件2 文件...        : 打包不压缩   [了解] tar -xvf 压缩文件名.tar [-C 解压到的路径]                 :解压.tar文件 [了解] -------------------------------------------------------------------- tar -zcvf 压缩文件名.tar.gz 被压缩的文件1 文件2 文件...    : 打包又压缩 tar -zxvf 压缩文件名.tar.gz [-C 解压到的路径]             :解压.tar.gz文件 ------------------------------------------------------------------- zip 压缩文件名.zip 被压缩的文件1 文件2 文件...             :压缩 unzip 压缩文件名.zip -d 解压到的路径                     :解压缩

压缩格式

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

Linux、Windows、MacOS,常用

7zip:Windows系统常用

rar:Windows系统常用

tar:Linux、MacOS常用

gzip:Linux、MacOS常用

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

我们现在要学习,如何在Linux系统中操作:tar、gzip、zip这三种压缩格式

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

tar命令

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

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

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

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

语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N

-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/software

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

tar -zxvf test.tar.gz -C /home/software

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

注意:

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

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

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

zip 命令压缩文件

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

语法:zip [-r] 参数1 参数2 .... 参数N

        -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压缩包

语法:unzip [-d] 参数

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

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

示例:

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

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

1. Linux系统常用的压缩格式有:

        tar格式,归档文件,简单的将文件整合到一个文件内,无压缩效果

        gzip格式,gzip压缩文件,不仅能整合到一个文件,同时有体积压缩效果

2. tar命令

        tar [-z -x -v -c -f -C] 参数...

        -c,创建压缩文件、-v,查看压缩\解压过程、-x,解压模式

        -f,指定压缩\解压的文件,-z,gzip模式,-C,指定解压的路径

        -z在选项组建议在开头,-f在选项组内必须在尾部,-C单独使用

3. zip命令

        zip [-r] 压缩名 要压缩的文件名...

        -r,压缩文件夹使用

4. unzip命令

        unzip 压缩文件名 [-d] 解压路径

        -d,指定解压去的目录

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

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

相关文章

单臂路由实现不同VLAN之间设备通信

转载请注明出处 本实验为单臂路由配置,目的为让不同VLAN之间的设备能够互相通信。 1.首先,按照要求配置两个pc的ip地址,以pc0为例子: 2在交换机创建vlan10和vlan20 3.划分vlan,pc0为vlan10的设备,pc1为vla…

AR基础知识:SLAM同时定位和构图

在第一部分中,我们了解了算法如何识别相机帧中的关键点。这些是跟踪和识别环境的基础。 对于增强现实,设备必须知道更多信息:它在世界上的 3D 位置。它通过自身与多个关键点之间的空间关系来计算这一点。这个过程称为“同时定位和地图构建”…

【数据结构-邻项消除】力扣2211. 统计道路上的碰撞次数

在一条无限长的公路上有 n 辆汽车正在行驶。汽车按从左到右的顺序按从 0 到 n - 1 编号,每辆车都在一个 独特的 位置。 给你一个下标从 0 开始的字符串 directions ,长度为 n 。directions[i] 可以是 ‘L’、‘R’ 或 ‘S’ 分别表示第 i 辆车是向 左 、…

[实战-11] FlinkSql 设置时区对TIMESTAMP和TIMESTAMP_LTZ的影响

table.local-time-zone table.local-time-zoneDataStream-to-Table Conversion(拓展知识)代码测试flinksql代码执行结果截图1. Asia/Shanghai 结果如下2. UTC结果如下 table.local-time-zone table.local-time-zone可用于设置flinksql的时区。 flink的内…

通过哪些性能指标来评估微调后的大模型实际业务效果?【大模型行业应用落地系列】

ct) 大模型应用场景探讨 ● 通过哪些性能指标来评估微调后的大模型实际业务效果? **【议题说明】**本议题主要探讨评估微调后大模型在实际业务场景中效果的性能指标,确保模型优化与业务目标一致。探讨该议题对用户企业具有多方面的价值,精确…

12-Docker发布微服务

12-Docker发布微服务 Docker发布微服务 搭建SpringBoot项目 新建一个SpringBoot项目 选择依赖项Spring Web和Spring Boot Actuator 在com.qi.docker_boot下创建controller目录,并在该目录下创建OrderController的java类 OrderControllerjava类的内容如下&#xf…

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块(Knowledge Summarization Module&…

HTML CSS

目录 1. 什么是HTML 2. 什么是CSS ? 3. 基础标签 & 样式 3.1 新浪新闻-标题实现 3.1.1 标题排版 3.1.1.1 分析 3.1.1.2 标签 3.1.1.3 实现 3.1.2 标题样式 3.1.2.1 CSS引入方式 3.1.2.2 颜色表示 3.1.2.3 标题字体颜色 3.1.2.4 CSS选择器 3.1.2.5 发布时间字…

应用在汽车控制系统安全气囊的爱普生可编程晶振SG-8018CG

在汽车安全领域,安全气囊是保护驾乘人员生命安全的关键防线。而作为安全气囊控制系统的关键元件 —— 爱普生可编程晶振 SG - 8018CG,以其卓越的性能成为汽车安全的坚实守护者。 一、高精度频率输出:安全气囊触发的精准之选 在汽车安全气囊控…

第112届全国糖酒会(3月成都)正式官宣!

作为食品饮料行业内备受瞩目的年度盛事,全国糖酒商品交易会(简称“糖酒会”)一直是各大厂商与经销商展现企业风采、寻觅合作伙伴及签署订单的关键舞台。2024年10月31日,第111届全国糖酒商品交易会(秋糖)在深…

【Javaee】网络原理-http协议(二)

前言 上一篇博客初步介绍了抓包工具的安装及使用,介绍了http请求报文与响应报文的格式。​​​​​​【Javaee】网络原理—http协议(一)-CSDN博客 本篇将详细介绍http的方法和http报文中请求头内部键值对的含义与作用,以及常见状…

Python实现摇号系统:详细指南与案例解析

目录 一、摇号系统的基本概念与原理 二、摇号系统的准备工作 三、摇号系统的详细实现步骤 1. 数据读取 2. 随机摇号 3. 结果存储 4. 结果查询 5. 主函数 四、案例解析 五、常见问题与解答 如何确保摇号过程的公平性? 如何处理大量用户数据? …

python将数据集中所有文件名升序制作txt文件(医学影像)

import os import re # 设定图像文件所在的路径 img_path ./2d/images/ #需修改路径 # 获取该路径下的所有文件名 img_list os.listdir(img_path) # 过滤出以.nii结尾的文件名 nii_list [f for f in img_list if f.endswith(.nii)] # 使用正则表达式从文件名中提…

Stable diffusion 3.5本地运行环境配置记录

1.环境配置 创建虚环境 conda create -n sd3.5 python3.10Pytorch(>2.0) conda install pytorch2.2.2 torchvision0.17.2 torchaudio2.2.2 pytorch-cuda12.1 -c pytorch -c nvidiaJupyter能使用Anaconda虚环境 conda install ipykernel python -m ipykernel install --user …

2001-2023年A股上市公司数字化转型数据(MDA报告词频统计)(三种方法)

2001-2023年A股上市公司数字化转型数据(MD&A报告词频统计)(三种方法) 1、时间:2001-2023年 2、来源:上市公司MD&A报告 3、指标:年份、股票代码、股票简称、行业名称、行业代码、MD&a…

【力扣专题栏】字母异词分组,如何利用强大的容器(unordered_map)解决该问题?

题解目录 1、题目描述解释2、算法原理解析3、代码编写 1、题目描述解释 2、算法原理解析 3、代码编写 class Solution { public:vector<vector<string>> groupAnagrams(vector<string>& strs) {//创建哈希表unordered_map<string,vector<string&g…

基于python的语音识别与蓝牙通信的温控系统毕设项目

基于python的语音识别与蓝牙通信的温控系统毕设项目 大家好&#xff0c;我是俊星学长&#xff0c;一名在 Java 圈辛勤劳作的码农。今日&#xff0c;要和大家分享的是一款基于python的语音识别与蓝牙通信的温控系统毕设项目。项目源码以及部署相关事宜&#xff0c;请联系小村学…

MySQL第四次作业

一、题目要求 二、创建相关的数据库和表以及表的处理 1. 修改student 表中年龄(sage)字段属性&#xff0c;数据类型由int 改变为smallint 2.为Course表中Cno 课程号字段设置索引,并查看索引 3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引&#xff0c;索引名为SC_I…

Docker-安装

操作系统&#xff1a;Ubuntu 20.04.6 LTS 更新apt sudo apt update 删除旧版本docker sudo apt-get remove docker docker-engine docker.io 安装docker sudo apt install docker.io 查看docker版本 docker --version 启动docker 启动docker sudo systemctl start docker 启用…

Elasticsearch 安装教程:驾驭数据海洋的星际导航仪

目录 一、准备工作1. ES的下载 二、安装步骤三、注意事项四、启动报错1. org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at l…