首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Linux指令 (四)】基础指令收尾:打包、网络、历史与Shell运行原理深度解析——涵盖tar/scp/history/shutdown等Linux核心运维指令

【Linux指令 (四)】基础指令收尾:打包、网络、历史与Shell运行原理深度解析——涵盖tar/scp/history/shutdown等Linux核心运维指令

作者头像
艾莉丝努力练剑
发布2025-11-18 13:28:50
发布2025-11-18 13:28:50
970
举报
文章被收录于专栏:C / C++C / C++

前期提示

1 ~> 本期指令

2 ~> 本期热键



33 tar

33.1 概念

打包 / 解包,不打开它,直接看内容。

C语言写的二进制可执行程序。

33.2 语法

33.3 常用选项

-c:建立一个压缩文件的参数指令(create的意思); -X:解开一个压缩文件的参数指令! -t:查看tarfile里面的文件! -z:是否同时具有gzip的属性?亦即是否需要用gzip压缩? -j:是否同时具有bzip2的属性?亦即是否需要用bzip2压缩? -v:压缩的程中显示文件!这个常用,但不建议用在背景执行过程! -f:使用档名,请留意,在f之后要立即接档名喔!不要再加参数! -C:解压到指定目录

33.4 实践

33.4.1 将整个/etc目录下的文件全部打包成为/tmp/etc.tar
代码语言:javascript
复制
[root@linux ~]$ tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]$ tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]$ tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

特别注意,在参数f之后的文件档名是自己取的,我们习惯上都用,tar来作为辨识。 如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的 tar file。 如果加j参数,则以.tar.bz2来作为附档名啊。 上述指令在执行的时候,会显示一个警告讯息:

代码语言:javascript
复制
【'tar: Removing leading`/" from member names`】

这是关于绝对路径的特殊设定。

33.4.2 查阅上述/tmp/etc.tar.gz文件内有哪些文件?
代码语言:javascript
复制
[root@linux ~]$ tar -ztvf /tmp/etc.tar.gz

因为我们使用gzip压缩,所以要查阅该tar file内的文件时,就得要加上z这个参数,这很重要!

33.4.3 将/tmp/etc.tar.gz文件解压缩在/usr/local/src底下
代码语言:javascript
复制
[root@linux ~]$ cd /usr/local/src
[root@linux src]$ tar -zxvf /tmp/etc.tar.gz

在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,我们先将工作目录变换到/usr/local/src底下,并且解开/tmp/etc.tar.gz,则解开的目录会在/usr/local/src/etc!另外,如果uu们进入/usr/local/src/etc,就会发现:该目录下的文件属性与/etc/可能会有所不同!

33.4.4 在/tmp 底下,我只想要将/tmp/etc.tar.gz内的 etc/passwd 解开
代码语言:javascript
复制
[root@linux ~]$ cd /tmp
[root@linux tmp]$ tar -zxvf /tmp/etc.tar.gz etc/passwd

我们可以通过tar -ztvf来查阅tar file内的文件名称,如果单只要一个文件,就可以通过这个方式来下 达!这里注意:etc.tar.gz内的根目录/是被拿掉了!

33.4.5 将/etc/内的所有文件备份下来,并且保存其权限!
代码语言:javascript
复制
[root@linux ~]$ tar -zxvpf /tmp/etc.tar.gz /etc
# 这个 -p 的属性是很重要的,尤其是当你要保留原本⽂件的属性的时候
33.4.6 在/home当中,比2005/06/01新的文件才备份
代码语言:javascript
复制
[root@linux ~]$ tar -N "2005/06/01" -zcvf home.tar.gz /home
33.4.7 我要备份/home,/etc,但不要/home/dmtsai
代码语言:javascript
复制
[root@linux ~]$ tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
33.4.8 将/etc/打包后直接解开在/tmp底下,而不产生文件!
代码语言:javascript
复制
[root@linux ~]$ cd /tmp
[root@linux tmp]$ tar -cvf - /etc | tar -xvf -

这个动作有点像是cp-r/etc/tmp!但是它依旧是有其有用途的! 要注意的地方在于输出档变成 - 而输入档也变成 -,以及这里也用到了“管道”。 这分别代表standard output,standard input与管线命令啦!

33.5 常用选项

33.5.1 -czf
代码语言:javascript
复制
[root@VM-4-17-centos dir1]# tar -czf Greyrat.tgz Greyrat

-c:(create)创建。 -z:压缩。 -f:名字。

33.5.2 -xzf

解压到当前路径——

代码语言:javascript
复制
[root@VM-4-17-centos dir1]# tar -xzf Greyrat.tgz

解压解包。

解压到指定路径:-C(选项)——

代码语言:javascript
复制
[root@VM-4-17-centos dir1]# tar -xzf Greyrat.tgz -C/root
33.5.3 -cvzf

-v:呈现打包过程。

33.6 实践

代码语言:javascript
复制
#===============================================
# 示例 1: 使用 tar -czf 打包并压缩目录(不显示过程)
#===============================================
# 创建测试目录和文件
[root@VM-4-17-centos dir1]# mkdir -p test_dir 
[root@VM-4-17-centos dir1]# echo "测试文件1" > test_dir/file1.txt
[root@VM-4-17-centos dir1]# echo "测试文件2" > test_dir/file2.txt
[root@VM-4-17-centos dir1]# ls ./test_dir
file1.txt  file2.txt
# 打包并压缩 test_dir 目录为 archive.tgz(-c:创建 -z:gzip压缩 -f:指定文件名)
[root@VM-4-17-centos dir1]# tar -czf archive.tgz test_dir
[root@VM-4-17-centos dir1]# ls
archive.tar.gz  test_dir

#==========================================
# 示例 2: 使用 tar -xzf 解压压缩包(不显示过程)
#==========================================
# 先删除原目录
[root@VM-4-17-centos dir1]# rm -rf test_dir
[root@VM-4-17-centos dir1]# ls
archive.tgz
# 解压 archive.tgz(-x:解压 -z:识别gzip压缩 -f:指定压缩包)
[root@VM-4-17-centos dir1]# tar -xzf archive.tgz
[root@VM-4-17-centos dir1]# ls
archive.tgz  test_dir
[root@VM-4-17-centos dir1]# ls -l test_dir
total 8
-rw-r--r-- 1 root root 14 Oct 16 10:28 file1.txt
-rw-r--r-- 1 root root 14 Oct 16 10:28 file2.txt

#=======================================
# 示例 3: 使用 tar -xzf -C 解压到指定目录
#=======================================
# 创建目标目录
[root@VM-4-17-centos dir1]# mkdir -p target_dir
[root@VM-4-17-centos dir1]# ls
archive.tgz  target_dir  test_dir
# 解压到指定目录 target_dir(-C:指定解压路径)
[root@VM-4-17-centos dir1]# tar -xzf archive.tgz -C target_dir
[root@VM-4-17-centos dir1]# ls ./target_dir
test_dir

# ======================================
# 示例 4: 使用 tar -cvzf 打包压缩并显示过程
# ======================================
# -v:显示详细过程(verbose)
[root@VM-4-17-centos dir1]# tar -cvzf visible__archive.tgz test_dir
test_dir/
test_dir/file2.txt
test_dir/file1.txt
[root@VM-4-17-centos dir1]# ls
archive.tgz  target_dir  test_dir  visible__archive.tgz

# ===================================
# 示例 5: 使用 tar -xvzf 解压并显示过程
# ===================================
# 清理已经存在的测试文件
[root@VM-4-17-centos dir1]# rm -rf test_dir
# -v:显示解压的每个文件
[root@VM-4-17-centos dir1]# tar -xvzf visible__archive.tgz
test_dir/
test_dir/file2.txt
test_dir/file1.txt
[root@VM-4-17-centos dir1]# ls
archive.tgz  target_dir  test_dir  visible__archive.tgz

#====================================
#补充:在任意 tar 命令末尾加 &,例如:
#====================================
tar -czf big_archive.tar.gz /path/to/large_dir &  # 后台打包
tar -xzf big_archive.tar.gz -C /target &         # 后台解压
# 所以我们大部分时候也可以不用v

34 file(补充)

34.1 概念

查看一个文件更加详细的内容。

34.2 实践


35 scp

35.2 实践

35.2.1 从本地拷贝文件到远程服务器
代码语言:javascript
复制
scp /path/to/local/file.txt username@remote_server_ip:/path/to/remote/directory/

示例:将本地的report.pdf拷贝到 IP 为192.168.1.100的服务器的/home/user/downloads/目录下,登录用户是admin。

代码语言:javascript
复制
scp ./report.pdf admin@192.168.1.100:/home/user/downloads/

执行后:系统会提示您输入admin用户在192.168.1.100这台服务器上的密码。

35.2.2 从远程服务器拷贝文件到本地
代码语言:javascript
复制
scp username@remote_server_ip:/path/to/remote/file.txt /path/to/local/directory/

示例:将远程服务器example.com上用户alice家目录下的database.backup文件拷贝到本地的/tmp/目录。

代码语言:javascript
复制
scp alice@example.com:~/database.backup /tmp/

备注:这里的~代表用户alice的家目录。

35.2.3 其他实践

可以自己去输入关键词,让AI生成给你。


36 bc

36.1 概念

Linux下的计算器

和下图中的Windows中的计算器是同理的——

36.2 功能

bc命令还可以很方便的进行浮点运算。

36.3 退出键

quit(推出)

36.4 好处

可以进行长运算——


四、()面试题

问题:

你的计算机的体系结构式是什么? 如何查看你的Linux内核版本? 如何查看你的具体系统发行版本?


五、热键(Linux中的高频访问键位)

5.1 Ctrl + C

卡住了出不来?直接Ctrl + C。

5.1.1 功能

终止异常(命令行)。

5.1.2 实践

5.2 Ctrl + r(接回车)

按 “[上箭头]”、“[下箭头]” 会转到历史上的命令。

5.2.1 功能

对历史命令进行搜索。

5.2.2 实践
5.2.3 命令行的短板

命令行的短板——

(1)提示的关键词要把细节想得更加完美; (2)现在的裸的XShell没有那么强大(下拉框没那么好使,下拉就没有了)。

5.3 Ctrl + d

5.3.1 功能

退出登录。

第一次断开机器,第二次退出XShell。

5.3.2 实践

Disconnected:断开了远程机器。

5.4 Tab(补充)

[Tab] 按键——具有 [命令补全] 和 [档案补齐] 的功能。

对命令行进行补齐——常见的命令。

记命令就只要记个大概就能【Tab】找一下,命令的几个字母记得越多越能【Tab】。

啥也不写,直接【Tab】两次,就会先退出登录,再退出XShell。

注意:不一定都能【Tab】出来。

怎么查看历史指令?——见下一条指令。


37 history

怎么查看历史指令?接下来艾莉丝要再介绍一个指令——

37.1 概念

历史上的所有指令。

37.2 历史指令记录默认有上限

历史指令默认上限是1000行,到了1000行,再写一条指令,就会把1000行中最前面的那个顶掉。

新写一个,最老的就被挤出去了。

但是,用环境变量可以改大,这里不展开,后面介绍【环境变量】时会介绍。

37.3 实践

37.3.1 history
37.3.2 history | ws -l

大家写到1000行时如果没有改环境变量,可以试一下上限是不是1000行,前面介绍过一个指令:

37.3.3 history | grep "[要过滤的指令]"

六、云服务器永不关机

6.1 Linux

6.2 Windows

代码语言:javascript
复制
shutdown \?

在Windows命令行查看shutdown。

6.3 开机有指令吗?——???

开机有指令吗?emmmmmmmmmmmm……

开机没有命令,命令在操作系统上面,开机请您按电源键……


38 shutdown && halt

38.1 概念 / 功能

关机。

38.2 语法

shutdown [选项]

38.3 常用选项

-h:立即重启; -r:重启; -t sec:+ [秒数]——n秒后关机。

38.4 扩展命令


七、Shell以及运行原理

即指令的运行原理,指令怎么执行的?

7.1 Shell(外壳)

7.2 操作系统初步认识

7.2.1 小白认知
7.2.2 初始操作系统

7.3 一个故事,感性理解Shell(外壳)

如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小美。你看上了小美,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小美,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。

接下来,我们就用一个故事,感性理解Shell(外壳)——


结尾

uu们,本文的内容到这里就全部结束了,艾莉丝再次感谢您的阅读!

往期回顾:

【Linux指令 (三)】从理解到熟悉:探索Linux底层逻辑与指令的高效之道,理解Linux系统理论核心概念与基础指令

结语:本期我们在前一篇博客的基础上继续深入学习了Linux中的指令篇,希望对学习Linux指令相关内容的uu有所帮助,不要忘记给博主“一键四连”哦!

🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡 ૮₍ ˶ ˊ ᴥ ˋ˶₎ა

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前期提示
    • 1 ~> 本期指令
    • 2 ~> 本期热键
  • 33 tar
    • 33.1 概念
    • 33.2 语法
    • 33.3 常用选项
    • 33.4 实践
      • 33.4.1 将整个/etc目录下的文件全部打包成为/tmp/etc.tar
      • 33.4.2 查阅上述/tmp/etc.tar.gz文件内有哪些文件?
      • 33.4.3 将/tmp/etc.tar.gz文件解压缩在/usr/local/src底下
      • 33.4.4 在/tmp 底下,我只想要将/tmp/etc.tar.gz内的 etc/passwd 解开
      • 33.4.5 将/etc/内的所有文件备份下来,并且保存其权限!
      • 33.4.6 在/home当中,比2005/06/01新的文件才备份
      • 33.4.7 我要备份/home,/etc,但不要/home/dmtsai
      • 33.4.8 将/etc/打包后直接解开在/tmp底下,而不产生文件!
    • 33.5 常用选项
      • 33.5.1 -czf
      • 33.5.2 -xzf
      • 33.5.3 -cvzf
    • 33.6 实践
  • 34 file(补充)
    • 34.1 概念
    • 34.2 实践
  • 35 scp
    • 35.2 实践
      • 35.2.1 从本地拷贝文件到远程服务器
      • 35.2.2 从远程服务器拷贝文件到本地
      • 35.2.3 其他实践
  • 36 bc
    • 36.1 概念
    • 36.2 功能
    • 36.3 退出键
    • 36.4 好处
  • 四、(续)面试题
  • 五、热键(Linux中的高频访问键位)
    • 5.1 Ctrl + C
      • 5.1.1 功能
      • 5.1.2 实践
    • 5.2 Ctrl + r(接回车)
      • 5.2.1 功能
      • 5.2.2 实践
      • 5.2.3 命令行的短板
    • 5.3 Ctrl + d
      • 5.3.1 功能
      • 5.3.2 实践
    • 5.4 Tab(补充)
  • 37 history
    • 37.1 概念
    • 37.2 历史指令记录默认有上限
    • 37.3 实践
      • 37.3.1 history
      • 37.3.2 history | ws -l
      • 37.3.3 history | grep "[要过滤的指令]"
  • 六、云服务器永不关机
    • 6.1 Linux
    • 6.2 Windows
    • 6.3 开机有指令吗?——???
  • 38 shutdown && halt
    • 38.1 概念 / 功能
    • 38.2 语法
    • 38.3 常用选项
    • 38.4 扩展命令
  • 七、Shell以及运行原理
    • 7.1 Shell(外壳)
    • 7.2 操作系统初步认识
      • 7.2.1 小白认知
      • 7.2.2 初始操作系统
    • 7.3 一个故事,感性理解Shell(外壳)
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档