Linux学习笔记

一、FinalShell (Connection refused)

查看主机能够ping通虚拟机地址,说明主机和虚拟机的网络是通的,原因在于Ubantu一般会默认安装openssh-client,但是未安装openssh-server。 ​ 首先在虚拟机终端输入命令sudo apt install openssh-server安装ssh服务器,输入命令sudo apt install openssh-client安装ssh客户端。然后输入命令 sudo gedit /etc/ssh/ssh_config配置ssh客户端,去掉PasswordAuthentication yes前面的#号,保存后退出,再输入命令sudo gedit /etc/ssh/sshd_config配置ssh服务器,在PermitRootLogin prohibit-password加一句PermitRootLogin yes(加了这个后在finalshell等可以直接root连接虚拟机,用root连接才可以上传文件),保存退出。此外端口号22前面可能有#,有的去掉。 最后执行sudo /etc/init.d/ssh restart 重启ssh服务

注:参考连接:Final shell远程连接Linux及问题解决 - 知乎 (zhihu.com)

二、Linux基础命令

command [-options] [parameter]

  • command:命令本身

  • -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节

  • parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等

    注:语法中的[],表示可选的意思

Linux系统中,路径之间的层级关系用“/”来表示;

Windows系统中,用“\”表示。

2.1 ls命令

ls [-a -l] [Linux路径] 用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)

  • -a -l 是可选的选项

  • Linux路径是此命令可选的参数

    ls直接平铺(不含隐藏文件):

    ls -a 显示所有文件夹(含隐藏文件):

    注:图中以.开头的,表示linux系统的隐藏文件/文件夹(只要以.开头,就能自动隐藏)

ls -l以列表(竖向列表)的形式展示内容,并展示更多信息

注:以上命令都可以结合,例如ls -al

2.2 cd和pwd命令

cd [linux路径] 更改当前所在的工作目录

  • cd命令直接执行,不写参数,表示回到用户的HOME目录

pwd 用于查看当前所在的工作目录(Print Work Directory)

2.3 相对路径和绝对路径以及特殊路径符

  • 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以 / 开头

  • 相对路径:以当前目录为起点,路径描述无需以 / 开头

特殊路径符:

  • . 表示当前目录,比如 cd ./Desktop

  • .. 表示上一级目录,比如 cd .. 返回上一级目录 cd ../..返回到上两级的目录

  • ~ 表示HOME目录,比如 cd ~

2.4 mkdir命令

Make Directory :创建新的目录(文件夹)

mkdir [-p] Linux路径

  • -p可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录。

    例如: mkdir -p itcast/good/666

    注:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作。涉及到权限问题,HOME外无法成功

2.5 touch、cat、more命令

2.5.1 touch

touch Linux路径 创建文件

例如: touch test.txt

2.5.2 cat

cat Linux路径 查看内容

例如: cat test.txt

2.5.3 more

more Linux路径 同样可以查看文件内容

例如: more test.txt

cat的不同不同点:

  • cat是直接将内容全部显示出来

  • more支持翻页,如果文件内容过多,可以一页页的展示

注:在查看的过程中,通过空格翻页;通过q退出查看

2.6 cp、mv、rm命令

2.6.1 cp

cp [-r] 参数1 参数2 复制文件\文件夹

  • -r选项:可选,用于复制文件夹使用,表示递归

  • 参数1:linux路径,表示被复制的文件或者文件夹

  • 参数2:linux路径,表示要复制去的地方

2.6.2 mv

mv 参数1 参数2 用于移动文件\文件夹

  • 参数1:linux路径,表示被移动的文件或文件夹

  • 参数2:linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

2.6.3 rm

rm [-r -f] 参数1 参数2 .....参数N 用于删除文件、文件夹

  • cp命令一样,-r选项用于删除文件夹

  • -f表示force,强制删除(不会弹出提示确认信息)

    • 普通用户删除内容不会弹出提示,只用root管理员用户删除内容会有提示

  • 参数1、参数2.......表示要删除的文件或文件夹的路径,按照空格隔开

rm命令支持通配符 * ,用于模糊匹配

  • 符号 * 表示通配符,即匹配任意内容(包含空),示例:

    • test* : 表示匹配任何以test开头的内容

    • *test : 表示匹配任何以test结尾的内容

    • *test*: 表示匹配任何包含test的内容

切换root: su - root 临时切换到root用户,通过 exit命令,退回普通用户

注:rm -rf /rm -rf /*等同于在Windows上执行C盘格式化

2.7 which、find命令

2.7.1 which

which 要查找的命令 查看所使用的一系列命令的程序文件存放在哪里

例如: which pwd

2.7.2 find

find 起始路径 -name "被查找文件名" 搜索指定文件

注:find命令同时使用通配符(见2.6节)

find 起始路径 -size +|-n[kMG] 按文件大小查找文件

  • +、- 表示大于和小于

  • n表示大小数字

  • kMG表示大小单位,k(小写)表示kb,M表示MB,G表示GM

示例:

  • 查找小于10kb的文件: find / -size -10k

  • 查找大于100M的文件: find / -size +100M

  • 查找大于1GB的文件: find / -size +1G

2.8 grep、wc和管道符

2.8.1 grep

grep [-n] 关键字 文件路径 从文件中通过关键字过滤文件行

  • 选项-n :可选,表示在结果中显示匹配的行的行号

  • 关键字:表示过滤的关键字,带有空格或其他特殊符号,建议使用 “ ” 将关键字包围起来

  • 文件路径: 表示要过滤内容的文件路径,可作为内容输入端口

2.8.2 wc

wc [-c -m -l -w] 文件路径 统计文件的行数、单词数量等

  • -c : 统计bytes数量

  • -m : 统计字符数量

  • -l : 统计行数

  • -w :统计单词数量

  • 文件路径:被 统计的文件,可作为内容输入端口

2.8.3 管道符 |

| :将管道符左边命令的结果,作为右边命令的输入

例如: cat test.txt | grep itheima : 读取test.txt的文件内容,然后过滤关键字itheima

2.9 echo、tail和重定向符

2.9.1 echo

echo 输出的内容 可以使用echo命令在命令行输出指定内容,复杂内容可以用 “ ” 包围

2.9.2 反引号 `

` ` 包围的内容会被作为命令执行。

例如: echo `pwd` 会输出执行pwd后的内容

2.9.3 重定向符 > 和>>
  • > : 将左侧命令的结果,覆盖写入到符号右侧指定的文件中

  • >> : 将左侧命令的结果,追加写入到符号右侧指定的文件中

    例如:

    echo "hello linux" > itheima.txt

    echo "hello itcast" >> itheima.txt

2.9.4 tail

tail [-f -num] linux路径 可以查看文件尾部内容,跟踪文件的最新更改

  • linux路径 : 表示被跟踪的文件路径

  • -f : 表示持续跟踪

  • -num : 表示查看尾部多少行,不填默认10行

2.10 vi/vim编辑器

编辑器的三种工作模式:

命令模式

该模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。

输入模式

即编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑

底线命令模式

开始,通常用于文件的保存、退出

注:具体指令学习网站:Linux vi/vim | 菜鸟教程 (runoob.com)

三、用户和权限

3.1 用户组管理

以下命令需root用户执行

  • 创建用户组

groupadd 用户组名

  • 删除用户组

groupdel 用户组名

3.2 用户管理

以下命令需root用户执行

1.创建用户

useradd [-g -d] 用户名

  • -g :指定用户的组;不指定 -g,会创建同名组并自动加入,指定-g 需要组已经存在,如已存在同名组,必须使用 -g

  • -d :指定用户HOME路径;不指定,HOME目录默认在: /home/用户名

2.删除用户

userdel [-r] 用户名

  • -r : 删除用户的HOME目录;不使用-r,删除用户时,HOME目录保留

3.查看用户所属组

id [用户名]

4.修改用户所属组

usermod -aG 用户组 用户名

将指定的用户加入指定用户组

3.3 getent命令

getent passwd 查看当前系统中哪些用户

显示的结果为(共7份信息):

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

getent group 查看当前系统中有哪些组

包含3份信息:

组名称:组认证(显示为X):组ID

3.4 查看权限控制

详情请看:www.cnblogs.com/ninnne/p/17609429.html

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

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

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

举例:drwxr-xr-x ,表示:

  1. 这是一个文件夹,首字母d表示

  2. 所属用户的权限是:有r有w有x,rwx

  3. 所属用户组的权限是:有r无w有x,r-x

  4. 其他用户的权限是:有r无w有x,r-x

rwx:

  1. r表示读权限

  2. w表示写权限

  3. x表示执行权限

文件和文件夹,rwx的含义有差别:

  1. r,针对文件可查看文件内容;针对文件夹可以查看文件夹内容,如ls命令

  2. w,针对文件表示可以修改文件;针对文件夹,可以在文件夹内:创建、删除、改名等操作

  3. x,针对文件表示可以将文件作为程序执行;针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

3.5 修改权限控制chmod

chmod [-R] 权限 文件或文件夹

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

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

式例:

chmod u=rwx,g=rx,o=x hello.txt

将文件权限修改为:rwxr-x--x

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

chmod -R u=rwx,g=rx,o=x test

将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x

3.5.1 权限的数字序号

r代表4,w代表2,x代表1

快捷写法:chmod 751 hello.txt,把文件权限修改为751权限

user=7,group=5,other=1

3.6 修改权限控制chown

可以修改文件、文件夹的所属用户和用户组

注意:普通用户无法修改所属为其他用户或用户组,所以只适用于root用户执行

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

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

  • 用户 :修改所属用户

  • 用户组:修改所属用户组

  • : : 用于分隔用户和用户组

示例:

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

四、进阶

4.1小技巧(快捷键)

4.1.1 ctrl+c强制停止
4.1.2 ctrl+d退出或登出

推出账户的登录,或者某些特定程序的专属页面(比如python界面)

注:不能用于vi/vim

4.1.3 history历史命令搜索

查看历史输入过的命令

4.1.3.1 !

!命令前缀 :自动执行上一次匹配前缀的命令

4.1.3.2 ctrl+r

通过ctrl+r,输入内容去匹配历史命令

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

  • 回车键可以直接执行

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

4.1.4 光标移动快捷键
  • ctrl+a : 跳到命令开头

  • ctrl+e : 跳到命令结尾

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

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

4.1.5 清屏
  • ctrl+l : 可以清空终端内容

  • clear

4.2 systemctl 命令

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

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

systemctl start | stop | status | enable | disable 服务名

  • start : 启动

  • stop :关闭

  • status : 查看状态

  • enable :开启开机自启

  • disable : 关闭开机自启

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

  • NetworkManager : 主网络服务

  • network : 副网络服务

  • firewalld : 防火墙服务

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

4.3 软连接

将文件、文件夹链接到其他位置

类似于Windows系统中的 快捷方式

ln -s 参数1 参数2

  • -s : 创建软连接

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

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

示例:

ln -s /etc/yum ~/yum

4.4 日期和时区

4.4.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 +%Y%m%d                   # 显示年月日
date -d "+1 day" +%Y%m%d       # 显示后一天的日期
date -d "-1 day" +%Y%m%d       # 显示前一天的日期
date -d "-1 month" +%Y%m%d     # 显示上一月的日期
date -d "+1 month" +%Y%m%d     # 显示下一月的日期
date -d "-1 year" +%Y%m%d      # 显示前一年的日期
date -d "+1 year" +%Y%m%d      # 显示下一年的日期

设置时间:

date -s                         # 设置当前时间,只有root权限才能设置,其他只能查看
date -s 20120523                # 设置成20120523,这样会把具体时间设置成00:00:00
date -s 01:01:01                # 设置具体时间,不会对日期做更改
date -s "01:01:01 2012-05-23"   # 这样可以设置全部时间
date -s "01:01:01 20120523"     # 这样可以设置全部时间
date -s "2012-05-23 01:01:01"   # 这样可以设置全部时间
date -s "20120523 01:01:01"     # 这样可以设置全部时间
4.4.2 时区修改

需要root权限

rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4.4.2 ntp程序

通过ntp程序自动校准系统时间(需要自己下载安装)

启动并设置开机自启:

  • systemctl start ntpd

  • systemctl enable ntpd

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

也可以手动校准 需root权限

ntpdate -u ntp.aliyun.com

4.5 IP地址、主机名

4.5.1 IP地址

127.0.0.1 : 指代本机

0.0.0.0 : 特殊IP地址

  • 可以用于指代本机

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

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

4.5.2 主机名

hostname :查看主机名

hostnamectl set-hostname 主机名 : 修改主机名 (需root)

4.5.3 域名

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

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

  • linux : /etc/hosts

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

4.5.4 虚拟机配置固定IP
  1. 在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)

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

详情见:虚拟机中Linux系统配置静态IP (详细步骤)_虚拟机配置静态ip-CSDN博客

4.6 网络传输

4.6.1 ping命令

ping [-c num] ip或主机名

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

  • ip或主机名 : 被检查的服务器的IP地址或主机名地址

示例:

ping baidu.com

4.6.2 wget命令

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

wget [-b] url

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

  • url : 下载链接

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

4.6.3 curl命令

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

curl [-O] url

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

  • url : 要发起请求的网络地址

4.6.4 端口
4.6.4.1 端口定义

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

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

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

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

4.6.4.2 端口分类

Linux系统支持65535个端口,这6万多个端口分为3类使用:

  • 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口。(非特殊需要,不要占用这个范围的端口)

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

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

4.6.4.3 查看端口占用

使用nmap命令(需要安装nmap)

nmap 被查看的IP地址

可以通过netstat命令,查看指定端口的占用情况 (需安装net-tools)

netstat -anp | grep 端口号

4.7 进程

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

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

4.7.1 查看进程

ps [-e -f]

  • -e : 显示全部的进程

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

固定用法: ps -ef

  • UID : 进程所属的用户ID

  • PID :进程的进程号ID

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

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

  • STIME :进程的启动时间

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

  • TIME :进程占用CPU的时间

  • CMD:进程的启动路径或启动命令

4.7.2 关闭进程

kill [-9] 进程ID

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

4.8 主机状态

相关资料:TOP命令参数详解---10分钟学会top用法_top详解-CSDN博客

4.8.1 查看系统资源占用

top 命令即可,默认每5秒刷新一次

输入 qctrl +c 退出

4.8.1.1 系统整体的统计信息

  • 第一行

    top - 10:39:58 up 25 min, 2 users, load average: 0.09, 0.14, 0.25

    • top : 命令名称 ;

    • 10:39:58 :当前系统时间;

    • up 25 min :启动了25分钟;

    • 2 users :两个用户登录 ;

    • load : 1、5、15分钟负载

  • 第二行

    Tasks: 302 total, 1 running, 301 sleeping, 0 stopped, 0 zombie

    • Tasks : 302个进程;

    • 1 running :1个在运行 ;

    • 301sleeping :301个进程睡眠 ;

    • 0 stopped : 0个停止进程 ;

    • 0 zombie :0个僵尸进程

  • 第三行

    %Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0si, 0.0 st

    • us:用户CPU使用率

    • sy:系统CPU使用率

    • ni:高优先级进程占用CPU时间百分比

    • id: 空闲CPU率

    • wa: IO等待CPU占用率

    • hi: CPU硬件中断率

    • si:CPU软件中断率

    • st:强制等待占用CPU

  • 第四、五行

    KiB Mem : 1863012 total, 1286408 free, 216532 used, 360072 buff/cache

    KiB Swap: 5242876 total, 7999484 free, 0 used. 1468240 avail Mem

    • KiB Mem : 物理内存

    • KiB Swap :虚拟内存(交换空间)

    • total:内存总量

    • free:空闲内存量

    • used:使用的内存量

    • buffer/cache:用作内核缓存的内存量

4.8.1.2 进程信息

PID     进程id
USER    进程所有者的用户名
PR      优先级,越小越高
NI      nice值,负值表示高优先级,正值表示低优先级
VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR     共享内存大小,单位kb
S       进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 N=负数优先级 I=空闲状态
%CPU    上次更新到现在的CPU时间占用百分比
%MEM    进程使用的物理内存百分比
TIME+   进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行或程序文件路径

4.8.1.3 top命令选项
选项  功能
-p  只显示某个进程的信息
-d  设置刷新时间,默认为5S
-c  显示产生进程的完成命令,默认是进程名
-n  指定刷新次数,比如 top -n 3,刷新输出3次后退出
-b  以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如 top -b -n 3 >       /tem/top.tmp
-i  不显示任何闲置(idle)或无用(zombie)的进程
-u  查找特定用户启动的进程
4.8.1.4 交互式选项
按键  功能
h   显示帮助画面
c   显示产生进程的完整命令,等同于-c参数
f   可以选择需要展示的项目
M   根据驻留内存大小(RES)排序
P   根据CPU使用百分比大小进行排序
T   根据时间/累计时间进行排序
E   切换顶部内存显示单位
e   切换进程内存显示单位
l   切换显示平均负载和启动时间信息
i   不显示闲置或无用的进程,等同于-i参数
t   切换显示CPU状态信息
m   切换显示内存信息
4.8.2 磁盘信息监控

df [-h]

  • -h 以更加人性化的单位显示

4.8.2.1 查看CPU、磁盘相关信息

iostat [-x] [num1] [num2] (需要安装sysstat)

  • -x 显示更多信息

  • num1 : 数字,刷新间隔;

  • num2 : 数字,刷新几次

注:tps : 该设备每秒的传输次数

4.8.3 网络状态监控

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

sar -n DEV num1 num2

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

  • num1 : 刷新间隔(不填就查看一次结束)

  • num2 : 查看次数(不填无线次数)

4.9 环境变量

env命令即可查看当前系统中记录的环境变量

4.9.1 $符号

$符号用于取“变量”的值

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

$环境变量名

例如:

echo $PATH

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

又或者 echo ${PATH}ABC

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

4.9.2 自行设置环境变量

1.临时设置

export 变量名=变量值

2.永久生效

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

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

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

4.9.2.1 自定义环境变量PATH

export PATH=$PATH:文件路径

4.10 上传、下载

需下载安装 lrzsz

4.10.1 rz 命令

输入 rz 就行

或者直接拖进去就行了

4.10.2 sz 命令

sz 命令

4.11 压缩解压

4.11.1 压缩格式
  • zip : linux、windows、macos 常用

  • 7zip : windows常用

  • rar : windows常用

  • tar : linux 、macos 常用

  • gzip : linux 、macos 常用

4.11.2 tar 命令

linux和Mac系统常用 .tar 和 .gz

  • .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 :选择解压的目的地,用于解压模式

4.11.2.1 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 选项, 必须 在选项最后一个

4.11.2.2 tar 解压

tar -xvf test.tar

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

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

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

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

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

注意:

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

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

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

4.11.3 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 文件内

4.11.4 unzip 命令解压

unzip [-d] 参数

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

  • 参数 : 被解压的zip压缩包文件

示例:

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

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

注 : 本文章为作者本人观看"黑马程序员Linux教程"的视频所写的笔记,主要方便作者本人查阅观看

黑马程序员B站视频网址: 黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等哔哩哔哩bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值