Linux 基础第 4 天:用户权限、通配符、文件打包与压缩

一、用户与权限操作基础

        在正式进入核心知识讲解前,先回顾一些常见的用户和文件权限操作指令,这些是 Linux 系统日常管理和使用的基础。

(一)创建新用户

普通创建

        使用sudo useradd -d /home/用户文件夹 -m 用户名指令,可创建新用户,并同时创建对应的用户主目录(位于/home下)。

指定用户组创建

        若想将用户添加到特定用户组,可使用sudo useradd -d /home/用户文件夹 -mg 用户组名 用户名 。

(二)设置用户密码

设置初始密码:通过sudo passwd 用户名,管理员可为新用户设置初始密码。

设置专属密码:用户切换到自身账号后,使用passwd指令即可修改专属密码。

(三)文件权限设置

数字设定法:

        chmod 750 文件或目录路径 ,其中数字 7(4 + 2 + 1)代表所有者具有读、写、执行权限;5(4 + 1)代表组用户具有读、执行权限;0 代表其他用户无任何权限 。

文字设定法:

        chmod u=rwx,g=rx,o=- 文件或目录路径

        这里u表示所有者,g表示组用户,o表示其他用户,r为读,w为写,x为执行,-表示无权限 。

二、通配符的灵活运用

        通配符在 Linux 命令行操作中起着重要作用,它能帮助我们快速匹配和操作多个文件或目录,提高工作效率。

(一)* 通配符

        *可以匹配任意单个或多个字符。

        例如,在文件列表中有test01.c、test01.txt、test2.c、test02.txt ,若要删除指定目录中demo开头的文件或者目录,可使用rm -rf demo*;

        删除.c结尾的文件,可执行rm *.c;

        删除包含t0内容的文件,可用rm *t0* 。需注意,通配符可用于rm、cp、mv、ls等指令中 。

(二)? 通配符

        ? 用于匹配任意单个字符。如在目录中有a.txt、b.txt、c.txt ,执行ls?.txt ,就只会显示这些单字符文件名且以.txt结尾的文件;

        若有aaa.txt、aba.txt ,执行ls a?a.txt ,则会匹配到aaa.txt、aba.txt 。

(三)[ ] 通配符

        [ ] 用于匹配括号范围中的任意单个字符。

        比如,在文件列表123.txt、1.txt、2.txt、aaa.txt、abaa.txt、aba.txt、a.txt、b.txt、c.txt 中,ls [0 - 9].txt 会匹配到0 - 9之间的任意一个数字且以.txt结尾的文件,

        即1.txt、2.txt;ls [ab].txt 会匹配a、b中任意单个字符且以.txt结尾的文件,也就是a.txt、b.txt 。

        此外,ls [0 - 9][0 - 9][0 - 9].txt 可连续实现三组匹配,匹配到三个数字的文件,如123.txt;ls [a - zA - Z0 - 9].txt 能匹配a - z、A - Z、0 - 9之中的任意单个字符 。

(四)[ ! ] 通配符

        [ ! ]与[ ]相反,用于匹配不在方括号内的任意一个字符。

        例如,ls [!a].txt 会匹配除了a.txt之外的所有单字符文件名且以.txt结尾的文件 。

(五){ } 通配符

        { } 用于生成多个模式,匹配其中任意一个。

        比如,ls file{1,2,3}.txt 可以匹配file1.txt、file2.txt、file3.txt ;还能进行范围指定,ls file{1..3}.txt 效果和上面一样 。

三、文件的压缩、打包与解压缩

        在 Linux 系统中,对文件和目录进行压缩、打包和解压缩操作是非常常见的,这有助于节省存储空间、方便文件传输等。

(一)gzip 压缩与解压缩

指令说明

        gzip 是 Linux 系统中常用的压缩工具,它将文件压缩为.gz格式,只能压缩文件,不能压缩目录;只能压缩,不能打包,所有用户均可使用 。

语法与选项

语法为gzip [选项] 文件路径 ,其中-r可将目录下的文件递归压缩 / 解压缩;-l用于显示已经压缩文件的压缩信息;-d表示解压缩 。

扩展解压

        还可使用gunzip [选项] 文件/目录 进行解压缩,其中-r可将目录下的文件递归解压缩,如gunzip -r chapter01 等价于gzip -rd chapter01 。

(二)bzip2 压缩与解压缩

指令说明

        bzip2 可将文件压缩为.bz2格式,同样不提供打包功能,所有用户都能使用,且它比 gzip 有更高的压缩效率 。

语法与选项

        语法为bzip2 [选项] 文件路径 

        -k用于保留源文件

        -d表示解压缩

        -f可进行覆盖式压缩 / 解压缩 。

操作示例

        压缩文件:bzip2 demo01.c ,会将当前路径下的demo01.c文件压缩,默认名称变为demo01.c.bz2,源文件会被删除 。

        解压缩文件:bzip2 -d demo01.c.bz2 ,可解压缩当前路径下的demo01.c.bz2文件,解压缩后源文件会被删除 。

        保留源文件压缩:bzip2 -k demo02.c ,压缩后会保留源文件 。

        复杂操作:bzip2 -kdf demo02.c.bz2 ,解压缩后保留.bz2文件,覆盖掉之前的.c文件;bzip2 -kf demo01.c demo02.c ,批量压缩并保留.c文件,覆盖同名的.bz2文件;bzip2 -df demo01.c.bz2 demo02.c.bz2 ,批量解压缩并删除.bz2文件,覆盖.c文件 。

        扩展解压:使用bunzip2 [选项] 文件名 ,其中-f可在压缩时保留了源文件的情况下进行覆盖解压,如bunzip2 -f demo02.c.bz2 。

(三)tar 打包与压缩

指令说明

        tar 一般结合压缩使用,用于打包文件或目录,所有用户均可操作 。

语法与选项

        语法为tar [选项] 打包文件的名称 被打包的文件或目录路径 ,-c用于打包;-v显示命令执行过程;-f指定打包文件的名称;-z表示打包时压缩 / 解包时解压缩,使用 gzip 算法,操作的文件扩展名为.gz;-x用于解包;-j表示打包时压缩 / 解包时解压缩,使用 bzip2 算法,操作的文件扩展名为.bz2 ,且-z和-j不能同时使用 。使用-f选项时必须将其放在最后,后接文件名 。

操作示例

        单纯打包:tar -cvf all.tar chapter01 demo01.c ,会将chapter01目录和demo01.c文件打包到all.tar,此时未经过压缩,保留源文件 。解包可使用tar -xvf all.tar 。

        打包 + 压缩(gzip 算法):tar -zcvf all.tar.gz chapter01 all.tar demo01.c ,会打包并压缩相关文件到all.tar.gz,保留源文件 。解包并解压缩使用tar -zxvf all.tar.gz 。

        打包 + 压缩(bzip2 算法):tar -jcvf all.tar.bz2 chapter01 all.tar demo01.c ,打包并压缩文件到all.tar.bz2,保留源文件 。解包并解压缩使用tar -jxvf all.tar.bz2 。

(四)zip 压缩与解压缩

        指令说明:zip 文件的后缀名是.zip ,它同时支持打包和压缩,不过该指令不是 Linux 自带的,需要额外安装 ,且 zip 压缩是跨平台的 。当压缩一个目录时,必须使用-r选项,否则只会压缩目录本身(空目录),不包括目录中的文件 。

        安装与语法:安装命令为sudo apt-get update 更新软件源,然后sudo apt-get install zip 安装 zip 工具(需在联网环境下进行) 。压缩语法为zip [选项] 压缩后的文件名 文件/目录路径 ,解压语法为unzip [选项] 压缩文件的文件名 ,-r用于递归压缩 ,不带选项会保留源文件(默认保留源文件) 。

        压缩文件:gzip demo01.c ,会将当前路径下的demo01.c文件压缩,压缩后的名称默认变为demo01.c.gz,且源文件demo01.c会被删除 。

        解压缩文件:gzip -d demo01.c.gz ,可解压缩当前路径下的demo01.c.gz,解压后源文件demo01.c.gz会被删除 。

        递归压缩目录:gzip -r chapter01 ,会递归压缩chapter01目录中的文件,每个文件会单独压缩为.gz格式,压缩后删除源文件 。

        递归解压缩目录:gzip -rd chapter01 ,可解压缩chapter01目录下的.gz文件,解压缩后删除源文件 。

        批量压缩与解压缩:gzip demo01.c demo02.c 可批量压缩文件,gzip -d demo01.c.gz demo02.c.gz 可批量解压文件,压缩和解压后源文件都会被删除 。

操作示例

        压缩文件:zip demo01.zip demo01.c ,会压缩当前路径下的demo01.c文件,压缩后文件名变为demo01.zip,保留源文件 。解压缩使用unzip demo01.zip ,若出现同名文件,会提示用户选择性处理 。

        压缩目录:zip chapter01.zip chapter01 ,从外部整体压缩目录;zip -r chapter02.zip chapter01 ,逐层递归压缩目录 。解压缩类似,若有同名文件或目录,会提示用户选择处理,如[y]es 覆盖文件、[n]o 不覆盖文件、[A]ll 覆盖文件夹、[N]one 不覆盖文件夹、[r]ename 重命名解压后的文件 。

(五)压缩格式与方式总结

压缩格式对应解压缩方式

  • *.tar:用tar -xvf 解包 。
  • *.gz:用gzip -d 或gunzip 解压缩 。
  • *.tar.gz 和*.tgz:用tar -zxvf 解压 。
  • *.bz2:用bzip2 -d 或bunzip2 解压 。
  • *.tar.bz2:用tar -jxvf 解包 。
  • *.zip:用unzip 解压 。

打包压缩方式

  • zip:直接实现打包并压缩 。
  • tar + gzip:先打包,再使用 gzip 算法进行压缩 。
  • tar + bzip2:先打包,再使用 bzip2 算法进行压缩 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值