系统相关
首页 > 系统相关> > Linux基础入门+基本命令的万字碎碎念

Linux基础入门+基本命令的万字碎碎念

作者:互联网

开篇总想絮叨两句

之前一直没系统的学习过 Linux,也就简单的用过Ubuntu,或者在本地的虚拟机上,搭了搭开发的环境,以及半查半折腾的在阿里云的 CentOS 系统上部署了一个博客,现在因为有时候用的稍微多了一点,正好家里也有几本Linux的数据,那就把这一部分好好学习,顺便整理一下,难免会有一些错误,有什么问题希望大家不吝赐教 ~

(一) 强大的 Shell

(1) terminal

shell 是什么,可能大家还有点迷糊,但是 terminal 这个词或许会感觉熟悉一点,是的,一般在学习阶段,很多人安装系统的时候会选择安装图形化界面,相比较纯图形化界面,图形化界面看起来会友好一些,而在看一些书籍,视频的时候,我们会非常频繁的使用到一个名叫 terminal (终端) 的东西,它在图形用户界面中,也算是一个非常重要的东西了,我们就从这里讲起,Rush !!!

A:基本定义

终端(termimal),它确切的叫法是终端仿真器(termimal emulator),当然了大部分人更习惯于叫前者

起码从咱们用户看起来的角度来看,它提供了一个命令的输入输出环境,也就是说你想执行点啥命令操作,都可以在这里面通过具体的命令语法去执行

B:terminal 和 Shell 的关系

标题是 Shell ,这都说了半天了,咋还没扯到呢

来了,来了,他们两个的关系很密切,在图形界面中的用户终端中,可以在这里用来启动 bash(也就是 Shell,因为 Linux 默认是使用 bash 后面你就知道,用它的快乐你想象不到)也就是说当你打开一个 terminal 的时候,terminal 和 Shell 会被操作系统关联起来,当我们在 terminal 中输入命令后,shell 就负责解释命令

随意将 terminal 简单的理解成一个 “工具” 的概念也是可以的

下图就是分别在 乌班图 和 CentOS 下的终端界面

(2) Shell

A:基本定义

shell是一个命令行解释器,是 Linux 内核的一个外壳,负责外界与 Linux 内核的交互

shell接收用户或者其他应用程序的命令,然后将这些命令转化成内核能理解的语言并传给内核,内核执行命令完成后将结果返回给用户或者应用程序

B:什么是Linux 内核 ?

上面一直又谈到了 Linux 的内核,这又是什么呢?

C:什么是 Bash ?

早在 UNIX 时期,shell 有着许多版本,比如sh、C SHell、K SHell、等等,每一种Shell都各有特点

Bash(Bournce-Again SHell)这个shell是Bourne Shell的增强版本

同样现在大部分主流的 Linux 默认的选择了Bash解释器

D:Shell 的地位

通过这一张图片,大家应该就很好理解定义中所说 Shell 所处的地位了,简单的说,它就像是一个翻译官,帮助 用户与内核之间交流,用户想要执行一些 “命令” 就去告诉 Shell ,然后 Shell 再去和内核沟通,最终调用相应的程序或者服务去完成

到这里,小小的总结一下:terminal 这个工具活跃在为用户服务的面前,而 Shell 活跃在为用户服务的背后

(二) 提前说明

后面继续学习的东西,基本不涉及到图形界面了,不过作为初学,仍然可以在桌面中调出 terminal 进行使用,图形化会使得学习的压力也小一点,对我个人而言,平时 Linux 更多的是用来做服务器,稳定,可靠,安全是第一个考虑的问题,图形界面虽然简单,但是却需要安装更多服务,开放更多的端口,同时占用更多的系统资源,所以下面都涉及图形界面的讲解,再次强调一下,Ubuntu 和 CentOS 以及其他发行版本有些命令是不同的,但是基础的基本也都差不多的,处于学习的态度,大家完全可以在学习中使用不同的发行版本试一试,如果你是一名开发的选手,我更推荐你在 CentOS 上实践,反正不会咱就学,不对咱就改呗

(三) 命令的基本格式

首先看一下命令的基本格式

基本格式:command [options] [arguments]

即:命令 [选项] [参数]

注意:别忘了命令后加空格

命令格式中的 [] 代表可选,有些命令可以不写选项或参数,也能执行

下面用常见的 ls 命令讲解一下(具体的知识点会放到下面说,这里只为了演示基本格式)

ls 的基本作用就是展开目录,而不同的选项、参数

一般情况下,短格式选项是长格式选项的缩写,也就是一个短格式选项会有对应的长格式选项,就例如上面使用的长格式指令 ls --all 和其对应的短格式指令 ls -a的效果是一致的

但是也有一些例外比如刚开始的 ls 命令的短格式选项 -l 就没有对应的长格式选项

(四) Linux 文件和目录管理

(1) 目录结构

Linux 和 Windows 还是有很大区别的,在正式学习命令之前,还有一个知识需要补充介绍,也就是目录的结构

我拿一台空着的乌班图给大家做演示,当然不同的发行版本,还是有区别的,不过这一篇主要是一些常用的基本命令,所以也没关系,大家也可以CentOS 等等

大家可以在终端输入 ls / 看一下根目录下有些什么东西

当然了,其中自然有一些是比较重要的,我们把关键的一些介绍一下

我们只摘出来其中几个重要的介绍,当然还有一些就需要大家自己去探索一下啦~

(2) 绝对路径和相对路径

Linux 系统中所有的文件(目录)都被分为以根目录 “/” 开始的倒置的树状结构,学过数据结构中 “树” 这个结构,大家应该就明白了(节点上少,下多,像一个倒过来的树)

Linux使用正斜线 / 而不是反斜线 \ 来在文件路径中划分目录

在 Shell 中:

这几个点,作为一个默认已知的基础铺垫,后面配合各种命令会及极其常用

A:绝对路径演示

最重要的一点:绝对路径一定是从根目录 / 写起的

例如,通过绝对路径打开 usr 文件夹 下的 src 目录

我们以 root 用户目录出发(cd 为切换目录,pwd 为显示当前路径 后面会介绍,这里主要看绝对和相对路径的特点)

root@ubuntu:~# cd /usr/src
root@ubuntu:/usr/src# pwd
/usr/src

上面的例子,即使我们身在 root 目录下,但是通过绝对路径我们仍然可以跳转到我们想要去的目录下

root@ubuntu:~# cd usr/src
bash: cd: usr/src: No such file or directory

如果我们不从 / 写起,就会提醒找不到这个文件或者目录

B:相对路径演示

依旧从 root 目录出发,由于 root 的前一级目录就是 / 根目录,所以可以通过 cd .. 返回上一级目录,或者直接通过 cd / 回到根目录,由于 usr 就在根目录下,所以可以通过 cd ./usr 或者cd usr相对路径的写法进入,为了演示,我都拆开写了,大家也可以在 root 目录下,使用 ../usr 直接打开 usr目录

root@ubuntu:~# cd ..
root@ubuntu:/# cd ./usr
root@ubuntu:/usr# cd ./src
root@ubuntu:/usr/src# pwd
/usr/src

C:总结

绝对路径永远是是相对于根路径 / 的,文件不动,则它的绝对路径不变

而相对路径是相对于当前所在目录而言的,当前所在目录改变,文件的相对路径也会变化

(3) 第一次使用命令的注意点

A:登录后的显示

当你登录后,首次出现的就是在用户(或超级用户)的目录下,由于你登录的账户不同可能会有不同的显示

我这里选择了使用 root 直接登录,当然你也可以选择使用普通用户登录,但是最好给其赋予 root 权限,否则学习过程中,有一些命令和操作是没有权限执行的

补充:不同的发行版本中,提示符的外观可能有些许不同,但是基本是一致的,通常会包括 (用户名@机器名 目录 和 #/$ 符号

B:家目录

用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的家目录(也称用户的主目录)

登录后也会直接跳转到这个目录下

(4) 目录切换(cd)

cd 命令用于切换工作路径:也就是说,输入 cd接着输入绝对路径或者相对路径就可以完成目录的切换了

这个命令也太常用了,通过cd 可以非常灵活的切换工作目录,除了上面演示的绝对路径以及相对路径的写法,还有一些非常方便的写法可以搭配在 cd 后面

~ 代表当前登录用户的主目录
~ 用户名 表示切换至指定用户的主目录
- 代表上次所在目录
. 代表当前目录
.. 代表上级目录

随便写一个,大家可以参考下格式

root@ubuntu:/usr/src# cd ~
root@ubuntu:~#

(5) 显示当前路径(pwd)

使用pwd命令可以显示当前用户所处的工作目录的绝对路径,pwd 是 Print Working Directory 的缩写

注意点:

Ubuntu 默认的终端下面,进入很多层的目录后,前面那个提示符会显示完整的路径,我感觉不是很舒服,尤其是进去的目录比较深的时候,这一点可以度娘一下,把它改掉

CnetOS,虽然也显示出当前所在的目录,但它只会列出整个路径中最后的那一个目录,同样是 /etc/vim 文件夹,下面这种前面只显示 vim

(6) 查看目录下文件(ls)

通过前面的 cd 以及 pwd 命令我们已经在 Linux 文件系统中乱跑了,但是再怎么跑也得有个方向,ls 就可以帮助我们看到你跑到(切换)的这个地方(目录)放着哪些文件,然后再决定进行下一步操作

A:基本用法

所以这个 ls 也是非常常用的,使用频率甚至超过了cd

root@ubuntu:/# ls /usr
bin  games  include  lib  local  sbin  share  src
root@ubuntu:/# ls /home/gzah7799 /usr
/home/gzah7799:
Desktop  Documents  Downloads  examples.desktop  Music  Pictures  Public  Templates  Videos

/usr:
bin  games  include  lib  local  sbin  share  src

B:选项和参数

搭配一点参数,带来加倍的快乐,当然这里都是短指令,例如 -a 的长指令是 -all 我都没有列举哈,我摘了几个常用的,不过这几个里面也主要用 -a 和 -l 比较多

选项(短) 含义
-a 显示所有文件及目录,包括隐藏文件(开头为 . 的文件)也一起罗列出来,这是最常用的选项之一。
-A 显示所有文件及目录,包括隐藏文件,但不包括 . 与 .. 这两个目录
-F 在文件或目录名后加上文件类型的指示符号例如,* 代表可运行文件,/代表目录,= 代表 socket 文件,\ 代表 FIFO 文件
-l 使用长格式列出文件和目录信息
-r 将文件以相反次序显示(原定依英文字母次序)
-S 用文件和目录大小排序
-t 将文件依建立时间的先后次序列出
-R 递归处理,将指定目录下所有文件及子目录及子目录中的文件一并列出(别乱试 - -)

-l 举个例子:

补充:llls -l 的效果是一样的,可以理解为简写或者别名

root@ubuntu:/usr# ls -l
total 92
drwxr-xr-x   2 root root 49152 Apr 21 07:17 bin
drwxr-xr-x   2 root root  4096 Jul 24  2018 games
drwxr-xr-x  34 root root  4096 Apr 15 06:53 include
drwxr-xr-x 131 root root  4096 Apr 17 02:15 lib
drwxr-xr-x  10 root root  4096 Jul 24  2018 local
drwxr-xr-x   2 root root 12288 Apr 17 02:20 sbin
drwxr-xr-x 246 root root 12288 Apr 17 02:16 share
drwxr-xr-x   6 root root  4096 Apr 21 07:17 src

C:长列表格式

前面看到了使用 cd -l使得目录下的内容通过长格式显示出了结果,而这种格式包含着很多的有用信息,简单看一下它提供了哪些

输出信息 信息描述
d 文件类型:“-”代表普通文件,d 表示目录
drwxr-xr-x 文件权限,以三个分,共分为三组,在后面的权限专篇文章,我会专门去讲解这一点
2 文件连接数
root 文件的用户所有者
root 文件的用户群所有者
49152 文件长度(也就是文件大小,不是文件的磁盘占用量)
Apr 21 07:17 文件的更改时间(mtime),或者是文件的最后访问时间(atime)
bin 文件 / 目录名称

(7) Linux创建目录(mkdir命令)

基本用法:mkdir [参数] 目录名称

权限的问题我们仍不多考虑,放到后面,这里分别演示一下无参数创建以及递归创建

root@ubuntu:~# mkdir ideal-20
root@ubuntu:~# cd ideal-20
root@ubuntu:~/ideal-20# mkdir -p a/b
root@ubuntu:~/ideal-20# cd a
root@ubuntu:~/ideal-20/a# cd b
root@ubuntu:~/ideal-20/a/b# pwd
/root/ideal-20/a/b

(8) 删除空目录(rmdir)

基本用法:rmdir [选项] [目录]

演示:

root@ubuntu:~/ideal-20/a/b# rmdir /root/ideal-20/a/b

如果目录不为空就会报错

rmdir: failed to remove '/root/ideal-20': Directory not empty

(9) 创建文件 (touch)

创建好了目录,就可以开始试着创建文件了,touch 可以帮助我们创建文件,也可以修改目录的时间参数

基本用法:touch 文件名称

选项
-c--no-create 如果文件不存在,不建立任何文件,也不提示
-d<时间日期> 使用指定的时间日期,而非现在的时间
-t<日期时间> 使用指定的日期时间,而非现在的时间
-a 改变文件的访问时间为系统当前时间,无需设置时间选项
-m 改变文件的修改时间为系统当前时间,无需设置时间选项
-r 把指定文件或目录的日期、时间都设成和参考文件或目录的日期、时间想通过

比较用的多一点的就是简单的文件创建了

root@ubuntu:~# touch demo.txt
root@ubuntu:~# ls
demo.txt

指定修改时间 也给出一下格式

touch -d "20200423 10:11" test.txt

(10) 复制文件和目录(cp)

cp 命令,主要用来复制文件和目录

基本用法:cp [选项] 源文件 目标文件

选项 含义
-a 复制文件和目录以及属性(包括所有权和权限)
-i 若目标文件或目录已经存在时,进行覆盖时会先询问是否进行覆盖
-p 保留源文件或目录的属性,而非使用默认属性(备份常用);
-r 递归地复制目录及其内容
u 复制时,只会复制那些目标目录不存在的或者相应文件的更新文件
v 复制文件时,显示信息性消息

A:复制文件

root@ubuntu:~# cp demo.txt /var/
root@ubuntu:/var# cp /root/demo.txt /var/test.txt

B:复制目录

root@ubuntu:/var# cp -r /var/ideal/ /root/
root@ubuntu:/var# cp -r /var/ideal/* /root/

(11) 删除文件或目录(rm)

rm 命令用来删除文件和目录,同时默认情况下不会有任何的提示

基本用法: rm[选项] 文件或目录

选项 含义
-f 系统将不再询问,而是直接删除目标文件或目录
-i 在删除文件或目录之前,系统会给出提示信息
-r 可删除指定目录及包含的所有内容,包括所有的子目录和文件

这个方法使用要特别小心,Linux 可是没有还原操作的,它默认认为用户是明智的,尤其搭配通配符进行删除的时候,一定要小心,可以提前使用 ls 命令看一下要删除的内容是不是自己想要的

下面两行命令分别就是删除文件和删除目录的简单演示

root@ubuntu:/var# rm test.txt
root@ubuntu:/var# rm -r /var/ideal/

(12) 移动文件或重命名文件(mv)

基本用法:mv [参数] [源文件或目录] [目标文件或目录]

选项 含义
-b 若需覆盖文件,则覆盖前先进行备份
-f 如果目标文件或目录已经存在,则直接覆盖现有的文件或目录
-i 若目标文件或目录已经存在时,进行覆盖时会先询问是否进行覆盖
-u 移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件

A:移动文件

/root/demo.txt 文件移动到根目录 /

root@ubuntu:~# mv /root/demo.txt /

B:移动文件并改名

/root/demo.txt 文件移动到根目录 / ,并重命名为 test.txt

root@ubuntu:~# mv /root/demo.txt /test.txt

C:移动目录

移动/root/ideal目录中的所有文件和子目录到根目录

root@ubuntu:~# mv /root/ideal /

D:重命名文件或目录

将 demo 文件重命名为 demo2 ,将 ideal 目录重命名为 ideal2

root@ubuntu:~# mv /root/demo /root/demo2
root@ubuntu:~# mv /root/ideal /root/ideal2

(13) 文件间建立链接(ln)

基本用法:ln [选项] 源文件 目标文件

选项 含义
-s 如果目标文件已经存在,则删除目标文件后再建立链接文件
-f 如果目标文件已经存在,则删除目标文件后再建立链接文件

Linux 链接概念

Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接。

硬连接

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

(五) 文本操作(仅查看)

(1) 显示文本文件内容(cat)

使用 cat 命令可以显示文本文件的内容,其后可以直接跟文件名

同时 cat 也可以把几个文件内容附加到另一个文件中,即连接合并文件

基本用法:cat [参数] [文件]

选项 含义
-A 显示所有的内容,包括特殊字符
-E 列出每行结尾的回车符 $;
-n 对输出的所有行进行编号;
-s 当遇到有连续 2 行以上的空白行时,就替换为 1 行的空白行。

选个长度小点的演示,别的大家亲手试一试就好了

root@ubuntu:/etc# cat -n issue
     1	Ubuntu 18.04.1 LTS \n \l
     2	

补充:cat 是从第一行开始显示,而有一个命令 tac 则是从最后一行开始显示

(2) 分页显示文本文件的内容(more)

上面的演示是一个很短的文件,但是由于 cat 命令是直接将内容一次性输出到屏幕上,但是如果内容过多,查看起来就会非常的麻烦,因为信息会在屏幕上快速的滚动,对于长篇的文本内容,更推荐使用more命令来查看,同时它在下面会以百分比的形式告诉你已经读了多少

基本用法:more [选项] 文件名

除了特殊需要,一般也不加什么参数,下面的大概了解下就好了

选项 含义
-f 计算行数时,以实际的行数,而不是自动换行过后的行数。
-p 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容。
-c 跟 -p 选项相似,不同的是先显示内容再清除其他旧资料。
-s 当遇到有连续两行以上的空白行时,就替换为一行的空白行。
-u 不显示下引号(根据环境变量 TERM 指定的终端而有所不同)。
+n 从第 n 行开始显示文件内容,n 代表数字。
-n 一次显示的行数,n 代表数字。

more 命令的执行会打开一个可以交互的界面,所以了解下面一些交互的指令还是必要的

交互指令 功能
h 或 ? 显示 more 命令交互命令帮助。
q 或 Q 退出 more。
v 在当前行启动一个编辑器。
:f 显示当前文件的文件名和行号。
!<命令> 或 :!<命令> 在子Shell中执行指定命令。
回车键 向下移动一行。
空格键 向下移动一页。
Ctrl+l 刷新屏幕。
= 显示当前行的行号
' 转到上一次搜索开始的地方
Ctrf+f 向下滚动一页。
. 重复上次输入的命令
/ 字符串 搜索指定的字符串
d 向下移动半页
b 向上移动一页

(3) 显示文本文件前/后 N 行(head/tail)

这个命令的应用场景就是当你不想要看完整个文档,直线看前N行,就可以使用它

基本用法:head [选项] 文件名 以及 tail [选项] 文件名

选项 含义
-n K 这里的 K 表示行数,该选项用来显示文件前 K 行的内容;
-c K 这里的 K 表示字节数,该选项用来显示文件前 K 个字节的内容
-v 显示文件名

(2) 和 (3) 都比较简单,就不演示了

(4) 显示(less)

less命令和more命令功能基本差不多,也是分屏的显示方式,同时支持 more 命令的所有参数,同时还多了一些选项,例如支持使用上下键翻页,总的来说,它更加的全面以及完善

基本用法:less [选项] 文件名

选项暂时用的也不多,暂时搁着,以后有需要查就是了,下面的交互指令,了解一下就好了,把常用的例如上下页这种记住就可以了

交互指令 功能
/字符串 向下搜索“字符串”的功能。
?字符串 向上搜索“字符串”的功能。
n 重复*前一个搜索(与 / 成 ? 有关)。
N 反向重复前一个搜索(与 / 或 ? 有关)。
b 向上移动一页。
d 向下移动半页。
h 或 H 显示帮助界面。
q 或 Q 退出 less 命令。
y 向上移动一行。
空格键 向下移动一页。
回车键 向下移动一行。
【PgDn】键 向下移动一页。
【PgUp】键 向上移动一页。
Ctrl+f 向下移动一页。
Ctrl+b 向上移动一页。
Ctrl+d 向下移动一页。
Ctrl+u 向上移动半页。
j 向下移动一行。
k 向上移动一行。
G 移动至最后一行。
g 移动到第一行。
ZZ 退出 less 命令。
v 使用配置的编辑器编辑当前文件。
[ 移动到本文档的上一个节点。
] 移动到本文档的下一个节点。
p 移动到同级的上一个节点。
u 向上移动半页。

(5) 总结

这几个查看文本的命令用几句话总结一下

(六) Linux 打包和压缩

在网络上,人们自然是更倾向于传输经过压缩后的文件,由于其体积小,所以传输时间得以缩短,下面我们就来了解一下 Linux 针对文件压缩等的概念

(1) 区分打包和压缩的概念

在 Windows 下,我们通常会借用一些第三方的压缩软件,例如 WinRAR Bandizip 进行文件的压缩,常见的格式 也就是 .rar .zip .7z 等,而同样 Linux 也有着它压缩的方式与一些格式,在 Linux 中,在压缩之前,通常还有一个打包的操作,我们首先来了解一下这两个概念

① 打包,也称为归档,是将一个文件或者目录的集合存储在一个文件中,打包后的文件没有经过压缩,因此它占用的空间是其中所有文件目录的总和

② 压缩的原理就是将文件中相同的信息用一个字符代替,文件体积就能变小,压缩对于文本或者数据类文件有比较明显的作用

下面看一下具体的用法

(2) 打包/解打包命令(tar )

A:打包

基本用法:tar [选项] 源文件或目录

同时由于打包(归档)后的包文件都是 .tar 结尾所以,又叫做 tar 包

选项 含义
-c 将多个文件或目录进行打包。
-A 追加 tar 文件到归档文件。
-f 包名 指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
-v 显示打包文件过程;

注意哈,使用 tar 命令指定选项时可以不在选项前面输入“-”,输不输入都一样的

演示下,首先 root 目录下有 demo.txt 文件以及 test 目录,这三种情况就分别代表了,打包文件、目录,以及同事打包多者

root@ubuntu:~# tar -cvf demo.txt.tar demo.txt
demo.txt

root@ubuntu:~# tar -cvf test.tar test
test/

root@ubuntu:~# tar -cvf demo-test.tar demo.txt test
demo.txt
test/

查看一下结果

root@ubuntu:~# ls
demo-test.tar  demo.txt  demo.txt.tar  test  test.tar

如果想要进而对其压缩,就可以执行下面的命令,暂时先看看,别急,这种方式有点麻烦,能更加优化的

这样 文件就加上了 .gz 后缀了,这是一种压缩格式,后面再细说

root@ubuntu:~# gzip demo.txt.tar
root@ubuntu:~# ls
demo-test.tar  demo.txt  demo.txt.tar.gz  test  test.tar

B:解打包

基本用法:tar [选项] 压缩包

选项 含义
-x 对 tar 包做解打包操作。
-f 指定要解压的 tar 包的包名。
-t 只查看 tar 包中有哪些文件或目录,不对 tar 包做解打包操作。
-C 目录 指定解打包位置。
-v 显示解打包的具体过程。

其实与打包区别是不大的,只不过把 -cvf 替换成了 -xvf

root@ubuntu:~# tar -xvf demo.txt.tar

前者是默认解压在当前目录的,如果想要指定目录解压,需要使用 -C 选项,例如下面解压到 usr 目录下

root@ubuntu:~# tar -xvf demo.txt.tar -C /usr

如果想看一下包中有哪些文件,可以 将 -x 替换成 -t 选项

root@ubuntu:~# tar -tvf test.tar

C:tar 命令直接做打包后压缩/解压缩

上面虽然演示了一下打包后,再进行压缩的一个例子,但是这也太麻烦了吧,打包压缩,需要先打包成 .tar 再压缩成 .tar.gz 别急阿,前面演示,是为了让大家分的更清楚一点,自然是有着更加方便的操作方式,下面来看一下

基本用法:tar [选项] 压缩包 源文件或目录

常用的有两种:

① .tar.gz 方式

root@ubuntu:~# tar -zcvf demo.txt.tar.gz demo.txt
root@ubuntu:~# tar -zxvf demo.txt.tar.gz

② -jcvf 方式

这个的区别就是把上面的 -zcvf 换成了 -jcvf 也就是 -z 变成了 -j

root@ubuntu:~# tar -jcvf demo.txt.tar.gz demo.txt
root@ubuntu:~# tar -jxvf demo.txt.tar.gz

同时上面说的, -C 用于指定解压位置、-t 用于查看压缩包内容,也是一样的哈

总结:一般来说,.tar.gz.tar.bz2 是比较常用的,后面这两种直接打包压缩 解压缩的方式要记好了

(七) 总结

这一篇文章,也是除了安装,以及配置网络,环境以外,关于 Linux 的第一篇,这一篇主要讲解了关于 Linux 的常用命令,当然了,都是一些比较基础的,原本 vi/vim 也想放到这里,但是现在已经1w字左右了,篇幅太长,给大家查阅起来也不是很方便,就挪到下一篇说,虽然说我暂时没想着把 Linux 学到多么深的一个层次,不过即使作为基础认识,还有一些例如用户、还有权限等等的问题也没有说到,后面我会再出几篇文章说一下

写这篇文章,主要原因还是因为自己欠缺这方面的知识,顺便当总结,也同样分享给大家一起交流,当然啦,这篇文章都是一些入门的基础操作,没什么难度可言,也渴望与大家交流

感谢大家的支持,谢谢!

(八) 结尾

如果文章中有什么不足,欢迎大家留言交流,感谢朋友们的支持!

如果能帮到你的话,那就来关注我吧!如果您更喜欢微信文章的阅读方式,可以关注我的公众号

在这里的我们素不相识,却都在为了自己的梦而努力 ❤

一个坚持推送原创开发技术文章的公众号:理想二旬不止

标签:文件,tar,demo,万字碎,碎念,Linux,root,目录,ubuntu
来源: https://www.cnblogs.com/ideal-20/p/12768001.html