深入浅出Linux操作系统指令与目录结构(二)

✍、目录脑图

在这里插入图片描述

  • 文章参考韩顺平老师的Linux2021年度课程:B站链接直达
  • 当前采用 centos 7.6 虚拟机环境搭建,之后进行服务器真实环境记录

深入浅出Linux操作系统指令与目录结构

1、Linux目录结构

  1. Linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录 /,然后在此目录下再创建其他的目录
  2. 在Linux世界里,一切皆文件

1.1、具体目录结构

在这里插入图片描述

[常用的如下]

  • /bin (/usr/bin、/usr/local/bin)

    • 是Binary的缩写,这个目录存放着最经常使用的命令
  • /sbin (/usr/sbin、/usr/local/sbin)

    • Super User 的意思,这里存放的是系统管理员使用的系统管理程序
  • /home

    • 存放普通用户的主目录,在Linux中没个用户都有一个自己的目录,一般该目录名是以用户的账号命名
  • /root

    • 该目录为系统管理员,也称作超级权限者的用户主目录
  • /lib

    • 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
  • /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

  • /etc 所有的系统管理所需要的配置文件和子目录。比如安装 mysql数据库,mysql的配置文件会存放在此

  • /usr 这是一个很重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录

  • /boot 存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件

  • /media Linux系统会自动识别一些设备,例如U盘,光驱等,当识别后,Linux会把识别的设备挂载到这个目录下

  • /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在 /mnt/ 上,然后进入该目录就可以查看内容了。例如我们之前的共享文件夹 D:/myshare

  • /usr/local 这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序


  • /proc 这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息

  • /srv service的缩写,该目录存放一些服务启动之后需要提取的数据

  • /sys 这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs

  • /tmp 这个目录是用来存放临时文件的

  • /dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储

  • /opt 这是给主机额外安装软件所存放的目录。如安装oracle数据库就可以放到该目录下,默认为空

  • /var 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件

  • /selinux[security-enhanced linux] SELinux 是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置

1.2、Linux远程登录

说明:公司开发时候,具体的应用场景是这样的:

  1. Linux服务器是开发小组共享
  2. 正式上线的项目是运行在公网
  3. 因此程序员需要远程登录到Linux进行项目管理或者开发

远程登录客户端有 Xshell6,Xftp6,我们学习使用Xshell和Xftp6

1.2.1、下载Xshell

  1. 打开网站:https://www.netsarang.com/en/free-for-home-school/

    填写名字和邮箱,选择下载Xshell、Xftp、或者两个都下载

在这里插入图片描述

  1. 打开我们的邮箱

在这里插入图片描述

1.2.2、安装Xshell

  • Xshell的安装比较简单,基本无脑下一步即可,这里就不进行记录了

在这里插入图片描述

1.2.3、使用Xshell

  1. 我们在 Linux 系统中打开终端,输入 ifconfig,拿到Linux系统的 ip

在这里插入图片描述

  1. 在 Windows 系统中打开 CMD,我们输入 ping 192.168.160.128 ,测试主机和Linux虚拟机是否网络连通

在这里插入图片描述

  1. 如果成功,基本我们使用Xshell远程连接Linux是没有问题的,如果ping失败,使用Xshell远程连接Linux也必然失败。

在这里插入图片描述

  1. 新建会话,注意主机那里必须要填我们上方 Linux 系统的 ip,协议为SSH

在这里插入图片描述

  1. 双击右侧我们的会话

在这里插入图片描述

  1. 点击接受并保存,登录我们的root账户和密码

在这里插入图片描述

  1. 登录成功,我们可以ls查看列表

在这里插入图片描述

  1. 当然我们也可以调节终端字体大小

在这里插入图片描述

1.2.4、下载Xftp

Xftp是一个基于windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp之后,windows用户能安全的在 UNIX/Linux 和 Windows PC 之间进行文件传输。

在这里插入图片描述

1.2.5、安装Xftp

安装与Xshell相同,一直下一步即可。

1.2.6、使用Xftp

  1. 新建会话

在这里插入图片描述

  1. 连接

在这里插入图片描述

  1. 输入root用户名和密码,进入后如果出现了中文乱码如下图

在这里插入图片描述

  1. 点击设置,选择当前会话,选项,编码改为UTF-8

在这里插入图片描述

在这里插入图片描述

  1. 如下,就不会出现中文乱码了

在这里插入图片描述

2、Linux命令

2.1、vi和vim

Linux系统会内置vi文本编辑器

Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便变成的功能特别丰富。

2.2、vi和vim三种模式

  1. 正常模式

    • 以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用[上下左右]按键来移动光标,你可以使用[删除字符]和[删除整行]来处理档案内容,也可以使用[复制、粘贴]来处理文件数据。
  2. 插入模式

    • 按下 i、I、o、O、a、A、r、R等任何一个字母之后才会进入编辑模式,一般来说按 i 即可
  3. 命令行模式

    • 在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。
    • 先按ESC,再输入冒号: 进入此模式

2.2.1、案例

我们在XShell中使用Vim开发一个 Hello.java 程序并保存。

  1. 使用XShell 连接上我们的Linux系统,输入如下命令回车
vim Hello.java  使用vim工具创建Hello.java文件

在这里插入图片描述

  1. 进入到正常模式

在这里插入图片描述

  1. 输入小写 i,进入插入模式

在这里插入图片描述

  1. 书写代码,写完代码按ESC,然后输入:,再输入wqwq代表写入并退出

在这里插入图片描述

  1. ls 查看列表

在这里插入图片描述

2.3、vim快捷键

在这里插入图片描述

vi和vim快捷键

2.3.1、拷贝

  1. 拷贝当前行 yy,粘贴p

在这里插入图片描述

  1. 输入5yy,表示拷贝当前行向下的 5 行

在这里插入图片描述

  1. 效果如下

在这里插入图片描述

2.3.2、删除

  1. 删除当前行dd

在这里插入图片描述

在这里插入图片描述

  1. 删除当前行向下的 5行:5yy

2.3.3、查找

  1. 在文件中查找某个单词 [命令行下/关键字,回车查找,输入 n 就是查找下一个]

在这里插入图片描述

  1. 输入 /hello ,回车,表示在文件中查找 hello 这个单词

在这里插入图片描述

2.3.4、设置行号

  1. 设置文件的行号 [命令行下:set nu]
  2. 取消文件的行号 [命令行下:set nonu]

在这里插入图片描述

在这里插入图片描述

2.3.5、定位

编辑 /etc/profile 文件,在一般模式下使用快捷键到该文档的最末行[G]和最首行[gg]

  1. 进入 etc 下面的 profile 文件

在这里插入图片描述

  1. 进入文件即是一般模式,此时输入 G ,即可定位至文件末行

在这里插入图片描述

  1. 输入gg 进入文件首行

在这里插入图片描述

  1. 将光标移动到 20 行,在一般模式下输入 20,再输入shift+g

在这里插入图片描述

2.3.6、撤销

  1. 在一个文件中输入 QXL,撤销这个动作。在一般模式下输入u

在这里插入图片描述

  1. 先按ESC由插入模式回到一般模式,然后按u撤销刚才的输入

在这里插入图片描述

在这里插入图片描述

2.4、关机重启

shutdown -h now 立即进行关机
shutdown -h 1 “hello,1分钟后会关机”
shutdown -r now 现在重启计算机
halt 关机
reboott 重启
sync 把内存的数据同步到磁盘

注意:

  1. 不管是重启还是关机,首先要运行sync命令,把内存中的数据写到磁盘中
  2. 目前的 shutdown/reboot/halt 等命令已经在关机前进行了 sync,但是还是建议手动运行sync

在这里插入图片描述

2.5、登录注销

  1. 登录时候尽量少用root账号登录,因为它是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后再使用 su - 用户名 命令来切换成系统管理员身份

在这里插入图片描述

  1. 在提示符下输入 logout 即可注销用户

在这里插入图片描述

使用细节:

  1. logout 注销指令在图形级别下无效(也就是在Linux右键打开终端的窗口中输入无效)

2.6、用户管理

Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

2.6.1、添加用户

基本语法:

useradd 用户名
  1. 我们使用 root 用户进入 home 文件夹,查看当前的用户列表

在这里插入图片描述

  1. 添加一个用户 milan,默认该用户的家目录在 /home/milan

在这里插入图片描述

细节说明:

当创建用户成功后,会自动的创建和用户同名的家目录。

也可以通过 useradd -d 指定目录 指定用户名,给新创建的用户指定家目录。

在这里插入图片描述

2.6.2、指定/修改密码

基本用法:

passwd 用户名
  1. 给 milan 指定密码

在这里插入图片描述

2.6.3、删除用户

基本语法:

userdel 用户名
  1. 删除用户milan,但是要保留家目录userdel milan
  2. 删除用户以及用户主目录userdel -r milan(这个操作一定要谨慎)

2.6.4、查询用户

基本语法:

id 用户名

请查询root信息: id root

2.6.5、切换用户

基本语法:

su - 用户名

切换到milan用户:su - milan

说明:

  • 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
  • 当需要返回到原来用户时,使用 exit/logout指令

2.6.6、查看当前登录用户

基本语法:

whoami/who am I

2.6.7、用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理

1、新增组

指令:groupadd 组名

2、删除组

指令:groupdel 组名

3、增加用户时直接加上组

指令:useradd -g 用户组 用户名

4、修改用户的组

基本语法:usermod -g 用户组 用户名

5、用户和组相关文件

  • /etc/passwd文件:用户(user)的配置文件,记录用户的各种信息
    • 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

在这里插入图片描述

  • /etc/shadow文件:口令的配置文件
    • 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group文件:组的配置文件,记录Linux包含的组的信息
    • 每行含义:组名:口令:组标识号:组内用户列表

3、实用指令

3.1、运行级别

运行级别:

运行级别 说明
0 关机
1 单用户
2 多用户状态没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图形界面
6 系统重启

常用的运行级别是3和5,也可以指定默认运行级别。

命令:

init[0123456]

通过 init 来切换不同的运行级别,比如由5图形界面切换到3无图形界面

在这里插入图片描述

3.2、找回root密码(CentOS7.6)

面试题:如何找回root密码

  1. 首先,启动系统,进入开机界面,在界面中按 e 进入编辑界面。

在这里插入图片描述

  1. 进入编辑界面,使用键盘上下键把光标向下移动,找到以 “Linux16” 开头内容所在的行数,在行的最后面输入:init=/bin/sh

在这里插入图片描述

  1. 输入完成后,直接按快捷键 Ctrl+X 进入单用户模式

在这里插入图片描述

  1. 接着在光标闪烁的位置输入: mount -o remount,rw / (注意各个单词间有空格),完成后回车,如下图

在这里插入图片描述

  1. 在新的一行最后面输入passwd,完成后回车。输入密码,再次确认密码即可(密码长度最好8位以上,但不是必须的),密码修改成功后,会显示 passwd… 的样式,说明密码修改成功[我这里设置为1234567890]

在这里插入图片描述

  1. 接着,在光标闪烁的位置(最后一行中)输入:touch /.autorelabel (touch与 / 后面有一个空格),完成后按回车键

  2. 继续在光标闪烁的位置中,输入:exec /sbin/init(exec与 / 后面有一个空格 ),完成后回车。等待系统自动修改密码(这个过程时间有点长,耐心等待),完成后系统会自动重启,新的密码就生效了。

  3. 这样进入系统,我们就又可以将密码改为自己熟悉的密码

在这里插入图片描述

3.3、帮助指令

3.3.1、man获得帮助信息

  • man 获得帮助信息
    • 基本语法:man[帮助或配置文件] (功能描述:获得帮助信息)
    • 例如查看ls 命令的帮助信息:man ls

在这里插入图片描述

在Linux下我们的隐藏文件是以.开头的

在这里插入图片描述

3.3.2、help指令

基本语法:

help 命令 

功能描述:获得shell内置命令的帮助信息

help cd 等

3.4、文件目录类

3.4.1、pwd指令

基本语法:

pwd

功能描述:显示当前工作目录的绝对路径

3.4.2、ls指令

基本语法:

ls [选项] [目录或是文件]

常用选项:

  • ls -a :显示当前目录所有的文件和目录,包括隐藏的
  • ls -l :以列表的方式显示信息

3.4.3、cd指令

基本语法:cd [参数] (功能描述:切换到指定目录)

  • cd ~ 或者 cd : 回到自己的家目录
  • cd .. 回到当前目录的上一级目录

3.4.4、mkdir指令

mkdir指令用于创建目录

基本语法:mkdir [选项] 要创建的目录

常用选项:-p 创建多级目录

  1. 例如我们创建一个目录: /home/dog

在这里插入图片描述

  1. 例如我们创建多级目录:/home/animal/tiger

在这里插入图片描述

3.4.5、rmdir指令

rmdir指令删除空目录

基本语法:rmdir [选项] 要删除的空目录

使用细节:rmdir 删除的是空目录,如果目录下有内容时无法删除。如果需要删除非空目录,需要使用 rm -rf 要删除的目录(这个操作请超级谨慎)

  1. 删除目录 /home/dog

在这里插入图片描述

3.4.6、touch指令

touch指令创建空文件

基本语法:touch 文件名称

在这里插入图片描述

3.4.7、cp指令

cp指令拷贝文件到指定目录

基本语法:cp [选项] source dest

  • source 代表你要拷贝的是哪个文件
  • dest 代表把文件拷贝到哪个地方去

常用选项:-r 递归复制整个文件夹(其实就是Windows系统的复制文件夹)

  1. 将 /home/hello.txt 拷贝到 /home/bbb 目录下

在这里插入图片描述

强制覆盖不提示: \cp [选项] source dest

3.4.8、rm指令

rm指令移除文件或目录

基本语法:rm [选项] 要删除的文件或目录

常用选项:

  • -r 递归删除整个文件夹
  • -f 强制删除不提示
  1. 将 /home/hello.txt 删除
rm /home/hello.txt
  1. 递归删除整个文件夹 /home/bbb
rm -rf /home/bbb [删除整个文件夹,不提示]

强制删除不提示的方法:带上-f 参数即可

3.4.9、mv指令

mv 移动文件与目录或重命名

基本语法:

  • mv oldNameFile newNameFile (功能描述:重命名)
    • 两个文件在同一个目录,oldNameFile 代表旧的文件名,newNameFile 代表新的文件名
  • mv /temp/movefile /targetFolder (功能描述:移动文件)
    • 两个文件不在同一个目录,将/temp/movefile 文件移动到 /targetFolder 目录
  1. 将 /home/cat.txt 文件重新命名为 pig.txt
mv cat.txt pig.txt
  1. 将 /home/pig.txt 文件移动到 /root 目录下
mv /home/pig.txt /root

3.4.10、cat指令

cat查看文件内容

基本语法:cat [选项] 要查看的文件

常用选项:-n :显示行号

  1. 查看 /etc/profile 文件内容,并显示行号
cat -n /etc/profile

在这里插入图片描述

细节:

  • cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 |more
cat -n/etc/profile | more

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.4.11、more指令

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键(交互的指令),如下:

基本语法: more 要查看的文件

操作 功能说明
空格键space 代表向下翻一页
Enter 代表向下翻一行
q 代表立刻离开more,不再显示该文件内容
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

3.4.12、less指令

less指令用来分屏查看文件内容,它的内容与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

基本语法:less 要查看的文件

操作 功能说明
空格键space 代表向下翻一页
[pagedown] 代表向下翻一行
[pageup] 代表向上翻一行
/字串 向下搜寻[字串]的功能,n:向下查找,N:向上查找
?字串 向上搜寻[字串]的功能,n:向下查找,N:向上查找
q 离开less这个程序
  1. 采用 less 查看一个大文件 杂文.txt

在这里插入图片描述

  1. pageup 键 和 pagedown 键分别代表向上 和 向下一行
  2. /字串 寻找字串

在这里插入图片描述

按 n 键,向下查找,按 N 键,向上查找。

3.4.13、echo指令

echo输出内容到控制台

基本语法: echo [选项] [输出内容]

  1. 使用 echo 指令输出环境变量,比如输出 $PATH 、主机名$HOSTNAME
echo $PATH
echo $HOSTNAME

在这里插入图片描述

  1. 使用 echo 指令输出 heelo,world
echo "hello,world"

在这里插入图片描述

3.4.14、head指令

head用于显示文件的开头部分,默认情况下 head 指令显示文件的前10行内容。

基本语法:

  • head 文件 (功能描述:查看文件头10行内容)
  • head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
  1. 查看 /etc/profile 的前5行代码
head -n 5 /etc/profile

3.4.15、tail指令

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前10行内容

基本语法:

  • tail 文件 (功能描述:查看文件尾10行内容)
  • tail -n 5 文件 (功能描述:查看文件尾5行内容,5可以是任意行数)
  • tail -f 文件 (功能描述:实时追踪该文档的所有更新)
  1. 查看/etc/profile 最后5行代码
tail -n 5 /etc/profile
  1. 实时监控 mydate.txt,看看文件是否有变化**(Ctrl+C来停止监控)**
tail -f /home/mydate.txt

在这里插入图片描述

在这里插入图片描述

3.4.16、>指令和>>指令

> 输出重定向

>> 追加

基本语法:

  • ls -l > 文件 (功能描述:列表的内容写入文件中(覆盖写))

  • ls -al>>文件 (功能描述:列表的内容追加到文件末尾)

  • cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)

  • echo "内容">>文件 (功能描述:将内容追加到文件)

  1. 将 /home 目录下的文件列表,写入到 /home/info.txt 中,覆盖写入
ls -l/home > /home/info.txt [如果info.txt没有,则会自动创建

3.4.17、ln指令

软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

基本语法:ln -s [原文件或目录][软链接名] (功能描述:给原文件创建一个软链接)

  1. 在 /home 目录下创建一个软链接 myroot,链接到 /root 目录
ln -s/root /home/myroot
  1. 删除软链接 myroot
rm /home/myroot

当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录

3.4.18、history指令

查看已经执行过历史命令,也可以执行历史指令

基本语法:history (功能描述:查看已经执行过的历史命令)

  1. 显示所有历史命令
history
  1. 显示最近使用过的10个指令
 history 10
  1. 执行历史编号为5的指令
!5

3.5、时间日期类

3.5.1、设置当前日期

date指令显示当前日期

基本语法:

  1. date (功能描述:显示当前时间)

  2. date+%Y (功能描述:显示当前年份)

  3. date+%m (功能描述:显示当前月份)

  4. date+%d (功能描述:显示当前是哪一天)

  5. date+"+%Y-%m-%d%H:%M:%S" (功能描述:显示年月日时分秒)

  6. 显示当前时间信息

date

在这里插入图片描述

  1. 显示当前时间年月日
date "+%Y-%m-%d"

在这里插入图片描述

3.5.2、设置日期

基本语法:date -s 字符串时间

  1. 设置系统当前时间,比如设置成 2020-11-23 10:09:09
date -s "2020-11-23 10:09:09"

3.5.3、cal指令

cal指令用于查看日历

基本语法:cal[选项] (功能描述:不加选项,显示本月日历)

  1. 显示当前日历
cal
  1. 显示2020年日历
cal 2020

3.6、搜索查找类

3.6.1、find指令

find 指令将从指定目录向下递归地遍历其各个子目录,将蛮族调节的文件或者目录显示在终端

基本语法: find [搜索范围] [选项]

选项如下:

选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件
  1. 按照文件名:根据名称查找 /home 目录下的 hello.txt 文件
find/home -name hello.txt
  1. 按照拥有者:查找/opt目录下,用户名称为 nobody的文件
find /opt -user nobody
  1. 查找整个 linux 系统下大于 200M 的文件 (+n 大于 -n 小于 n 等于,单位有 k,M,G)
find / -size +200M

3.6.2、locate指令

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。 locate 指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须顶起更新 locate 时刻。

基本语法:locate 搜索文件

特别说明:由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库

  1. 使用 locate 指令快速定位 hello.txt 文件所在目录

在这里插入图片描述

which 指令,可以查看某个指令在哪个目录下,比如 ls 指令在哪个目录

which ls

在这里插入图片描述

3.6.3、grep指令和管道符号 |

grep 过滤查找,管道符 “|” ,表示将前一个命令的处理结果输出传递给后面的命令处理,两者通常结合使用

基本语法:grep[选项] 查找内容 源文件

选项说明:

选项 功能
-n 显示匹配行及行号
-i 忽略字母大小写
  1. 在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号
cat /home/hello.txt | grep "yes"

grep -n "yes" /home/hello.txt

3.7、压缩和解压类

3.7.1、gzip / gunzip 指令

gzip 用于压缩文件,gunzip 用于解压

基本用法:

  • gzip 文件 (功能描述:压缩文件,只能将文件压缩为 *.gz文件)

  • gunzip 文件.gz (功能描述:解压缩文件命令)

  1. 将 /home 下的 hello.txt 文件进行压缩
gzip /home/hello.txt
  1. 将 /home 下的 hello.txt.gz 文件进行解压缩
gunzip /home/hello.txt.gz

3.7.2、zip/unzip指令

zip 用于压缩文件,unzip用于解压,这个在项目打包发布中很有用

基本语法:

  • zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
    • 常用选项: -r 递归压缩,即压缩目录
  • unzip [选项] XXX.zip (功能描述:解压缩文件)
    • 常用选项:-d<目录> 指定解压后文件的存放目录
  1. 将 /home 下的所有文件/文件夹进行压缩成 myhome.zip
zip -r myhome.zip /home/   [将home目录及其包含的文件和子文件夹都压缩]
  1. 将 myhome.zip 解压到 /opt/tmp 目录下
mkdir /opt/tmp
unzip -d/opt/tmp /home/myhome.zip

3.7.3、tar指令

tar指令是打包指令,最后打包后的文件是 .tar.gz 的文件

基本语法:tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式 .tar.gz)

选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解压.tar文件
  1. 压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
  1. 将 /home 的文件夹压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
  1. 将 pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz
  1. 将 myhome.tar.gz 解压到 /opt/tmp2 目录下
mkdir /opt/tmp2
tar -zxvf/home/myhome.tar.gz 

猜你喜欢

转载自blog.csdn.net/Augenstern_QXL/article/details/122291032