Linux实用技能:打包压缩、热键、Shell与权限管理

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。

一、Linux打包压缩——搞定文件“瘦身”和传输

不管是存文件还是传文件,打包压缩都是Linux里最常用的操作。先搞懂核心逻辑,再记命令,上手很快!

1.1 先明白:打包压缩是啥?为啥要用?

  • 是什么:用算法把文件“变小”(压缩),或把多个文件合并成一个(打包),通常“打包+压缩”一起做,比如把10个文件压成1个.tgz文件。
  • 为啥用
    ① 省空间:文件变小,能存更多东西;
    ② 好传输:多个文件变一个,传的时候不容易漏,还能减少带宽消耗。

1.2 两种常用格式:.zip 和 .tgz(附命令+效果图)

① .zip格式:跨系统通用(Windows也能解)

  • 压缩文件/文件夹:用zip命令,加-r参数表示“递归压缩”(比如压缩文件夹时,把里面的子文件也一起压)
    命令:zip 目标压缩包名.zip 要压缩的文件/文件夹
    例:把test文件夹压成test.zip
    zip -r test.zip test/
    
  • 解压.zip文件:用unzip命令
    命令:unzip 压缩包名.zip
    例:解压test.zip
    unzip test.zip
    
    效果如图,能看到压缩/解压的文件列表:
    image.png

② .tgz格式:Linux专用(压缩率更高)

tar命令处理,参数多但好记,核心就几个:

  • c:创建压缩包(打包)
  • z:用gzip算法压缩
  • v:显示操作过程(能看到压了哪些文件)
  • f:指定压缩包文件名
  • x:解压压缩包

  • 打包压缩tar -cvzf 目标压缩包名.tgz 要压缩的文件/文件夹
    例:把test文件夹压成test.tgz

    tar -cvzf test.tgz test/
    
  • 解压tar -xvzf 压缩包名.tgz
    例:解压test.tgz到当前目录:
    tar -xvzf test.tgz
    
  • 指定解压路径:加-C(大写),后面跟目标路径
    例:把test.tgz解压到/home目录:
    tar -xvzf test.tgz -C /home/
    
    解压效果如图,能看到详细过程和路径:
    image.png

1.3 跨系统/跨服务器传文件:3种实用方法

① Windows ↔ Linux:用lrzsz工具

先装工具(CentOS用yum,Ubuntu用apt):

yum install -y lrzsz
  • 从Linux传文件到Windows:输sz 文件名,会弹出保存窗口
    例:传test.tgz到Windows:
    sz test.tgz
    
  • 从Windows传文件到Linux:输rz,会弹出选择文件窗口,选了就传
  • 更简单的:在Xshell里直接把Windows文件“拖”到终端,自动上传!

② Linux ↔ Linux:远程拷贝(scp)

比如从“服务器A”把文件传到“服务器B”,命令格式:

scp 本地文件 目标服务器用户名@目标服务器IP:目标路径

例:把本地的test.tgz传到192.168.1.100服务器的/home目录(用户名是root):

scp test.tgz root@192.168.1.100:/home/

远程拷贝的效果如图,会显示传输进度:
image.png

解压远程传过来的文件,效果如图:
image.png

1.4 两个小工具:bc(算浮点)、uname(看系统)

① bc:算带小数点的运算

Linux默认计算器(calc)不能算小数,bc可以!直接输bc进入计算模式,输完表达式按回车出结果,输quit退出:

bc
# 进入后算:2.5 + 3.8 = 6.3
2.5+3.8
6.3
quit

效果如图,能轻松算浮点:
image.png

② uname -r:看Linux内核版本

想知道系统内核是多少,输:

uname -r

还能看系统版本(CentOS为例):

cat /etc/redhat-release

效果如图,能看到内核和系统信息:
image.png
image.png

二、Linux常用热键——效率翻倍的小技巧

记几个热键,比手动敲命令快10倍!

热键/命令 作用
TAB键 自动补全命令/文件名(按一下就好)
Ctrl + C 停止当前运行的命令(比如命令卡住时)
上下方向键 翻阅历史命令(不用重新敲之前输过的)
Ctrl + R 搜索历史命令(输关键词就能找)
shutdown 关机(加选项,比如shutdown -h now立即关)
  • TAB键补全效果如图,输te按TAB,会自动补全成test
    image.png
  • 关机命令示例:
    shutdown -h now  # 立即关机
    shutdown -h 23:00 # 23点关机
    
    关机命令的选项说明如图:
    image.png

三、Shell命令的运行原理——谁在帮你“翻译”命令?

你输的lszip这些命令,不是直接让Linux内核执行的,中间有个“翻译官”——Shell。

核心逻辑:Shell是“用户和内核的中间人”

  1. Linux内核是系统的“核心大脑”,但它听不懂人类的命令;
  2. Shell是外层的“外壳程序”,先接收你的命令(比如ls),解析成内核能懂的语言;
  3. 内核执行后,把结果通过Shell显示给你(比如显示当前目录的文件列表)。

原理如图,一看就懂:
image.png

Bash和Shell的关系:“具体的翻译官”和“翻译官群体”

  • Shell是“翻译官群体”的统称(类似“媒婆”);
  • Bash是Linux里最常用的“具体翻译官”(类似“王婆”),你平时输命令,默认就是Bash在解析。
    Bash会用“创建子程序”的方式处理命令,确保内核稳定(就算子程序出错,内核也不会崩)。

四、Linux权限管理——谁能操作哪个文件?

Linux是多用户系统,权限就是“限制:哪个用户能对哪个文件做什么事”。

4.1 权限的核心:角色 + 操作

① 3种角色(谁能操作)

  • 拥有者(u):文件的创建者(比如你建的文件,你就是拥有者);
  • 所属组(g):文件归属的用户组(比如把多个用户拉进“test组”,组里的人都有组权限);
  • 其他人(o):既不是拥有者,也不在所属组的用户(比如其他普通用户)。

角色划分如图:
image.png
image.png

② 3种操作(能做什么)

rwx表示, -表示没有这个权限:

  • r(read):可读(能看文件内容,比如cat命令);
  • w(write):可写(能改文件内容,比如vim编辑);
  • x(execute):可执行(如果是脚本/程序,能运行,比如./test.sh)。

比如文件权限显示rw-r--r--,意思是:

  • 拥有者(u):rw-(可读可写,不能执行);
  • 所属组(g):r--(只能读);
  • 其他人(o):r--(只能读)。

权限标识如图:
image.png

4.2 用户管理:加用户、切换用户

① 加普通用户:adduser

root(超级管理员)才能加用户,命令:

adduser 用户名
# 例:加一个叫whb的用户
adduser whb

加用户效果如图:
image.png

② 切换用户:su

  • 普通用户切root:输su root,然后输root密码(密码不显示,输完回车);
  • root切普通用户:输su 用户名,不用输密码(比如su whb);
  • 重新登录用户:输su - 用户名(会加载该用户的环境变量,更彻底的切换)。

切换用户效果如图:
image.png
image.png
image.png

4.3 提权:sudo——普通用户也能执行高权限命令

比如安装软件需要root权限,普通用户不用切root,加sudo就能提权:

# 普通用户安装lrzsz,加sudo提权
sudo yum install -y lrzsz
  • 输什么密码?:输普通用户自己的密码(不是root密码);
  • 为什么能提权?:该用户要在sudo白名单里(root可以通过visudo添加)。

sudo提权效果如图:
image.png

4.4 修改文件权限:chmod

chmod命令,格式:chmod 角色+/-权限 文件名

  • 角色:u(拥有者)、g(所属组)、o(其他人)、a(所有人);
  • +:加权限,-:减权限。

例:

# 给test.txt的拥有者(u)去掉读权限(r)
chmod u-r test.txt

# 给test.txt的所属组(g)加写权限(w)
chmod g+w test.txt

# 给所有人(a)加执行权限(x)
chmod a+x test.sh

修改权限效果如图:
image.png

权限管理总结如图:
image.png

4.5 补充:apt和yum类似,yum冲突用killall

  • Ubuntu系统用apt管理软件,和yum用法差不多,比如搜索软件:

    apt search 软件名
    

    apt搜索效果如图:
    image.png

  • 如果yum命令卡住(提示“yum正在运行”),用killall yum关掉进程:

    killall yum
    
相关文章
|
4月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
480 9
|
4月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
422 2
|
6月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
788 0
|
8月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
248 4
|
9月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
765 25
|
8月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
481 3
|
9月前
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
205 18
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
11月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
855 32
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
409 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】