敲击键盘的悸动:Linux命令从‘零‘开始的浪漫冒险

server/2024/12/25 1:32:41/

在这里插入图片描述

man(查询指令)

在这里插入图片描述
我们进行这个man的安装

yum install -y man-pages

这里就是说明我们已经下载好了

在这里插入图片描述
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man 语法: man [选项] 命令

比如我们这里man ls查询ls的所有使用方法

man ls

在这里插入图片描述
查询完成之后我们输入q直接进行退出的操作

man就是我们Linux中的一个在线手册

我们这里man pwd

可以看到我们我们的pwd的作用是打印我们当前的地址

man pwd

在这里插入图片描述

我们这里man touch

开始的就是touch的作用,后面的就是和touch相关的选项操作

man touch

在这里插入图片描述
我们这里man rm这里就是移除一个文件和目录

man rm 

在这里插入图片描述
如果我们不知道man的使用方法,当然我们也是可以使用man man 进行查询man的具体使用方法的

man man 

在这里插入图片描述

我们这里man printf可以发现我们也是可以发现printf也是这个Linux中的命令

man printf

并且这个作用就是类似于c语言中的printf一样具有打印功能的

在这里插入图片描述

但是我们想通过man查到c语言中的printf的作用

那么我们是可以通过输入man 3 printf进行c语言中printf的作用的查找的

man 3 printf

在这里插入图片描述
那么我们这里就显示了我们的这个c语言中的printf相关的函数了

那么我们这里就可以查的出我们的Linux中的指令

我们也可以查到 C语言中的函数

我们也是可以在使用man 操作打开对应的指令的解释的时候我们可以输入/然后进行我们对应的关键词的搜索操作,我们这里输入的是返回值,那么我们这样就可以直接帮我们定位到返回值的说明的地方

/return val

在这里插入图片描述

在这里插入图片描述
我们这里使用man 2 fork可以查到系统调用接口,fork的作用就是调用一个子进程

那么我们的man不仅可以帮我们查询指令,又能帮我们查询对应的系统调用接口

还能帮我们查C语言当中的接口

但是man最重要的还是帮我们进行C语言中的接口以及指令的查询

那么我们的这个man 2和man 3是什么意思呢?

我们使用man man 查下

然后我们使用上下移动键进行往下移动,我们可以发现存在9个章节

在这里插入图片描述
这个的话就是我们依次从每个手册进行查询

如果我们不带数字的话默认是从第一个手册进行查询的

第一号手册主要是可执行程序或者是命令行的命令

二号手册线程调用

三号手册就是函数调用,一般的话都是程序的库

剩下的手册我们就不关心的

所以我们一开始man printf的时候查到的是Linux中的命令,因为我们没有指定手册号,默认是从1号手册开始进行查询操作的

先进行指令的查询,刚好我们的Linux系统存在这么一个指令的,当我们在1号指令查到了就直接结束了,我们后面的指令就不查了

我们这里的1号手册是默认手册

如果我们man 2的话就是我们跳过1号手册从2号手册直接开始进行查询的操作

10.重定向>操作(echo)

输出重定向

Linux下,一切皆是文件

打印到显示器→显示器也是文件→写入到显示器文件

从键盘读取数据→键盘也是文件→从键盘文件读取数据

echo命令,将后面的字符串打印到现实器上面,后面可以是一段换可以是单引号包起来的

[root@20W lesson3]# echo hello world
hello world
[root@20W lesson3]# 

在这里插入图片描述

我们这里输入echo "hello world" > log.txt

[root@20W lesson3]# echo "hello world" > log.txt
[root@20W lesson3]# ls
dir  exit  log.txt  test.c
[root@20W lesson3]# cat log.txt
hello world
[root@20W lesson3]# 

然后我们发现我们想要输出的hello world并没有输出在屏幕上面

于是我们使用ls命令发现我们多出了一个log.txt的文件

我们使用cat查看其中的内容,发现就是我们要打印的那个字符串

我们本应该将显示在屏幕上的字符串写到了文件里面

我们这里一开始的这个文件是不存在的,那么我们直接进行这个文件的创建了,然后将我们的这个字符串放了进去

那么这个操作我们就叫做输出重定向

我们的echo是默认向显示器进行文件写入

然后加个大于符号,然后后面加个文件名,那么就指定向这个文件进行写入的操作了

这个我们就叫做重定向操作

如果文件不存在的话就会先帮我进行文件的新建操作

如果我们的文件之前里面是存在数据的,我们使用echo进行数据的写入操作,那么系统就会将之前存在的数据进行删除操作的,然后再进行写入操作的

[root@20W lesson3]# echo "hello world" > log.txt
[root@20W lesson3]# ls
dir  exit  log.txt  test.c
[root@20W lesson3]# cat log.txt
hello world
[root@20W lesson3]# cat log.txt
hello world
[root@20W lesson3]# echo "aaa" > log.txt
[root@20W lesson3]# cat log.txt
aaa
[root@20W lesson3]# ls -l
total 20
drwxr-xr-x 2 root root 4096 Dec  4 17:58 dir
-rw-r--r-- 1 root root 9708 Oct 30 09:18 exit
-rw-r--r-- 1 root root    4 Dec  4 20:23 log.txt
-rw-r--r-- 1 root root    0 Dec  4 17:59 test.c
[root@20W lesson3]# echo b
b
[root@20W lesson3]# echo b > log.txt
[root@20W lesson3]# cat log.txt
b
[root@20W lesson3]# 

echo会将目标文件先清空再进行写入的操作

那么我们就可以推导出,如果我们想在Linux下降一个文件进行清空的操作,我们只需要在文件前面加上大于号

清空文件内容:>文件名

[root@20W lesson3]# cat log.txt
b
[root@20W lesson3]# cat log.txt
b
[root@20W lesson3]# 
[root@20W lesson3]# cat log.txt
b
[root@20W lesson3]# > log.txt
[root@20W lesson3]# cat log.txt
[root@20W lesson3]# 

在这里插入图片描述

那么我们这个是否能进行文件的新建呢?

我们输入>文件名然后会发现我们的文件确实被新建了

[root@20W lesson3]# >new.txt
[root@20W lesson3]# ls -l
total 16
drwxr-xr-x 2 root root 4096 Dec  4 17:58 dir
-rw-r--r-- 1 root root 9708 Oct 30 09:18 exit
-rw-r--r-- 1 root root    0 Dec  4 20:42 log.txt
-rw-r--r-- 1 root root    0 Dec  4 20:54 new.txt
-rw-r--r-- 1 root root    0 Dec  4 17:59 test.c
[root@20W lesson3]# 

在这里插入图片描述

那么>文件夹就可以清空并且创建这个文件(如果文件不在的话是会进行创建操作的)

这个大于符号叫做输出重定向

一般来说我们的ls -l的作用是查看当前文件夹内的内容的

也是将内容显示在屏幕上

那么我们能不能将这个输出到log.txt这个文件夹呢?

我们使用ls -l > log.txt将我们查看的信息直接输出到这个文件中

然后我们使用cat进行文件的查看,就能看到我们查到的这个文件夹内的信息了

[root@20W lesson3]# ls -l
total 16
drwxr-xr-x 2 root root 4096 Dec  4 17:58 dir
-rw-r--r-- 1 root root 9708 Oct 30 09:18 exit
-rw-r--r-- 1 root root    0 Dec  4 20:54 new.txt
-rw-r--r-- 1 root root    0 Dec  4 17:59 test.c
[root@20W lesson3]# ls -l > log.txt
[root@20W lesson3]# cat log.txt
total 16
drwxr-xr-x 2 root root 4096 Dec  4 17:58 dir
-rw-r--r-- 1 root root 9708 Oct 30 09:18 exit
-rw-r--r-- 1 root root    0 Dec  4 21:57 log.txt
-rw-r--r-- 1 root root    0 Dec  4 20:54 new.txt
-rw-r--r-- 1 root root    0 Dec  4 17:59 test.c
[root@20W lesson3]# 

任何具有输出的内容都可以进行输出重定向操作的

比如说我们的ls就可以将当前目录里面的内容输出到屏幕上

那么我们就可以利用输出重定向将输出的内容写到指定的文件中

总结下:我们的输出重定向可以进行文件的创建>文件夹

以及文件夹的清空

甚至是将我们具有输出内容指令的结果存在指定文件夹中

追加重定向>>

然后我们使用两个输出重定向的符号

可以发现我们原本文件之中存在的数据没有被额外删除了

而是每次的话就新增一行进行写入

[root@20W ~]# echo "aaaa" >>log.txt
[root@20W ~]# cat log.txt
aaaa
[root@20W ~]# echo "aaaa" >>log.txt
[root@20W ~]# echo "aaaa" >>log.txt
[root@20W ~]# echo "aaaa" >>log.txt
[root@20W ~]# cat log.txt
aaaa
aaaa
aaaa
aaaa
[root@20W ~]# 

在这里插入图片描述
那么这两个输出重定向的符号其实叫做追加重定向

所谓的追加重定向就是向我们的文件中不断的进行内容的增加

输出重定向和追加重定向都是向文件中进行写入的

输入重定向<

我们在Linux中输入cat

但是我们发现没反应

在这里插入图片描述
我们试着输入一串数字1234

然后回车我们发现屏幕上面显示了我们刚刚输入的数字

可以发现cat本来是从我们的文件中进行读取数字的,但是我们没有进行文件的指定

那么cat就从键盘上面进行数据的读取了,那么就需要我们进行输入了

如果我们想进行退出的操作的话,那么我们就输入CTRL C就可以退出了

那我们如果使用cat和<以及文件名进行搭配又会出现什么结果呢?

我们将log.txt中的内容进行获取了,然后进行打印出来

[root@20W ~]# cat <log.txt
aaaa
aaaa
aaaa
aaaa
[root@20W ~]# 

在这里插入图片描述
我们的cat本来是需要将文件中的内容进行输出的,那么就可以使用到我们的输入重定向操作了

总结下

在这里插入图片描述

终端

我们每次登录的这个页面叫做终端,终端的本质也是一个文件

那么这个文件一般是在哪里呢?

在这里插入图片描述

终端文件一般是在dev/tty ,那么我们就输入一串指令进行查看

[root@20W ~]# ls /dev/tty
/dev/tty
[root@20W ~]# 

但是我们今天用的是远程登录,那么其实是在dev/pts

[root@20W ~]# ls  -ld /dev/pts
drwxr-xr-x 2 root root 0 Oct  1 14:32 /dev/pts
[root@20W ~]# 

pts是终端文件的一个目录

在这里插入图片描述
我们不带d的话就可以查看到目录里面的内容

[root@20W ~]# ls  -l /dev/pts
total 0
crw--w---- 1 root tty  136, 0 Dec  6 15:48 0
c--------- 1 root root   5, 2 Oct  1 14:32 ptmx
[root@20W ~]# 

在这里插入图片描述

我们再打开一个终端,我们可以发现之前的0变成了1了

在这里插入图片描述
我们在一开始的远程终端里面输入echo进行字符串的输入,像自己的屏幕进行打印

我们刚刚又提到了Linux下一切都是文件

那么我们也是可以将这个终端的字符串输出在另一个终端的屏幕上的

echo helloworld > /dev/pts/1

[root@20W ~]# echo helloworld > /dev/pts
-bash: /dev/pts: Is a directory
[root@20W ~]# echo helloworld > /dev/pts/1
[root@20W ~]# echo helloworld > /dev/pts/1
[root@20W ~]# echo helloworld > /dev/pts/1
[root@20W ~]# echo helloworld > /dev/pts/1
[root@20W ~]# echo helloworld > /dev/pts/1
[root@20W ~]# 

在这里插入图片描述
我们终端里面打印的信息都往这个1号文件里面进行写入了

所以这个1号文件就是终端文件,这个是Linux中的设定

那么这个0是谁呢?

我们可以使用echo进行测试下

echo helloworld > /dev/pts/0

[root@20W ~]# echo helloworld > /dev/pts/0
helloworld
[root@20W ~]# 

在这里插入图片描述

我们可以发现我们往这个0号文件中输出的信息输出在屏幕上了

11.cp拷贝

在这里插入图片描述
在这里插入图片描述

[root@20W ~]# echo "aaaaaa" > log.txt
[root@20W ~]# cat log.txt
aaaaaa
[root@20W ~]# cp log.txt ../
[root@20W ~]# ls ../
112  boot                 etc   lib64       media  proc  sbin  tmp
113  CloudrResetPwdAgent  home  log.txt     mnt    root  srv   usr
bin  dev                  lib   lost+found  opt    run   sys   var
[root@20W ~]# 

我们使用cp将这个log.txt拷贝到上级目录里面

我们对普通文件是可以直接将这个文件拷贝到对应的文件里面的

但是如果我们拷贝的是文件夹呢?

还能拷贝成功吗?

在这里插入图片描述

[root@20W 114kaizi]# ls
code.txt  lesson3  tty.c  xuanxuan
[root@20W 114kaizi]# cp lesson3 ../
cp: -r not specified; omitting directory 'lesson3'
[root@20W 114kaizi]# 

我们使用这个拷贝命令拷贝这个lesson3文件夹,但是系统不让我们进行复制的操作

因为lesson是一个目录,所以是不让我们拷贝的

目录是树形结构的,所以我们是需要带上-r进行一个递归拷贝操作的

而且可能我们拷贝的时候有可能拷贝的目录及其子文件在目标路径下已经存在了,所以我们加上-f进行强制拷贝操作

[root@20W 114kaizi]# cp -rf lesson3 ../
[root@20W 114kaizi]# ls ../
114kaizi  kaizi  lesson3  mamashengde  mortal  xcwgs
[root@20W 114kaizi]# 

在这里插入图片描述
那么我们就在上级目录成功进行lesson3文件的复制操作

我们这里将这个log.txt复制到上一级路径之下

但是我们将这个拷贝的文件进行重新命名的操作

我们在这个拷贝操作后面加上这个新文件夹的名字,因为不存在,所以我们也是可以利用这个拷贝操作进行拷贝以及新建文件夹的操作

[root@20W 114kaizi]# cd lesson3
[root@20W lesson3]# ls
dir  exit  log.txt  new.txt  test.c
[root@20W lesson3]# cp log.txt ../mylog.txt
[root@20W lesson3]# ls ../
code.txt  lesson3  mylog.txt  tty.c  xuanxuan
[root@20W lesson3]# 

在这里插入图片描述
我们也可以使用cat文件进行文件的查询,是一个文件内容的

我们是使用mkdir进行系统目录的创建操作

[root@20W lesson3]# ls
dir  exit  log.txt  new.txt  test.c
[root@20W lesson3]# mkdir -p d1/d2/d3
[root@20W lesson3]# ls
d1  dir  exit  log.txt  new.txt  test.c
[root@20W lesson3]# 

那么我们拷贝我们的文件夹的同时也是可以进行文件夹名称的修改操作的

我们现在将这个d1文件夹拷贝到上级文件里面并且进行重命名的操作

递归式的强制操作将我们的这个目录里面的内容复制到上级目录里面

[root@20W lesson3]# cp -rf d1 ../myd1
[root@20W lesson3]# ls ../
code.txt  lesson3  myd1  mylog.txt  tty.c  xuanxuan
[root@20W lesson3]# 

在这里插入图片描述
那么我们就可以看到我们上一级的文件夹出现了这个myd1的目录了

我们使用这个tree进行观察上级路径的myd1可以发现这个目录的路径和我们的d1是一模一样的

[root@20W lesson3]# tree ../myd1
../myd1
└── d2└── d32 directories, 0 files
[root@20W lesson3]# 

在这里插入图片描述

总结:如果拷贝的是目录的话我们需要带上rf,主要是带上r,f的话可能是我们拷贝的文件需要覆盖对应路径的相同的文件夹

我们直接进行强制操作就行了,不要额外进行问我们的操作

一般系统会问我们的是不是需要进行覆盖啥的

我们直接加上f就避免了询问

alias取别名

指令是什么?就是程序,特定系统路径下的程序

which:快速找到指定的命令文件

一般的系统指令文件是放在usr/bin路径之下的

在这里插入图片描述
在这里插入图片描述
我们在输入/usr/bin/ls的文件都是没有颜色的

但是我们在后面加上–color=auto就可以产生出颜色了

这个就是usr/bin/ls的选项

我们直接去执行这个命令的是不带颜色的

在这里插入图片描述
这里的的alias就是别名的意思,就是说Linux系统中允许我们对特定的命令起别名

我们使用这个命令alias 'zhangsan'='ls -a -l'就是说我们将后面的命令起了一个别名,那么我们输入zhangsan的时候就可以进行后面的命令了

[root@20W ~]# alias 'zhangsan'='ls -a -l'
[root@20W ~]# zhangsan 
total 120
dr-xr-x---.  9 root root  4096 Dec  7 20:48 .
dr-xr-xr-x. 21 root root  4096 Dec  7 20:52 ..
drwxr-xr-x   2 root root  4096 Nov 14 16:32 111
drwxr-xr-x   2 root root  4096 Oct 27 18:31 112
drwxr-xr-x   2 root root  4096 Oct 27 18:34 113
drwxr-xr-x   5 root root  4096 Dec  3 15:53 114
-rw-r--r--   1 root root 23130 Dec  7 21:56 .bash_history
-rw-r--r--.  1 root root    18 May 11  2019 .bash_logout
-rw-r--r--.  1 root root   176 May 11  2019 .bash_profile
-rw-r--r--.  1 root root   176 May 11  2019 .bashrc
drwx------   3 root root  4096 Jul 17  2023 .cache
-rw-r--r--.  1 root root   100 May 11  2019 .cshrc
-rw-------   1 root root     0 Jul 17  2023 .history
-rw-------   1 root root   126 Dec  4 17:08 .lesshst
drwxr-xr-x   2 root root  4096 Dec  3 15:26 lesson4
-rw-r--r--   1 root root     7 Dec  7 20:48 log.txt
drwx------   2 root root  4096 Oct  1 14:23 .ssh
-rw-------   1 root root 12288 Nov  3 09:36 .swp
-rw-r--r--.  1 root root   129 May 11  2019 .tcshrc
-rw-------   1 root root 10847 Nov 28 12:56 .viminfo
-rw-r--r--   1 root root    34 Nov 18 18:00 .vimrc
[root@20W ~]# 

在这里插入图片描述
我们使用which进行zhangsan 这个命令的路径的查看操作

我们发现zhangsan 的本质就是ls -a -l

[root@20W ~]# which zhangsan 
alias zhangsan='ls -a -l'/usr/bin/ls
[root@20W ~]# 

在这里插入图片描述

所以我们的Linux命令行允许我们对指定的命令和选项组合进行取别名的操作

给他整体取别名

那么我们再分析这个图,这个ls就是ls --color的别名了,我们使用ls就是使用ls --color的意思

带颜色的文件查看命令

在这里插入图片描述
那么我们也能发现这个ll的命令其实是ls -l --color的别名了

[root@20W ~]# which ll
alias ll='ls -l --color=auto'/usr/bin/ls
[root@20W ~]# 

在这里插入图片描述

但是系统中我们是不推荐对一个指令起过多的别名了,不然得话操作久了都忘了是什么

如何去掉这个别名呢?我们直接将这个xshell关掉就行了,重新登录就行了

12.mv(剪切以及重命名操作)

在这里插入图片描述
我们这里一开始的a.out文件是在这个lesson3中的

现在我们利用mv将a.out移动到上级目录中

使用这个命令mv a.out …

然后回车使用ls …进行查看,我们发现了这个文件就被剪切到了上级目录中了,当前的目录已经不存在这个文件了

在这里插入图片描述
不仅是文件,目录也是就可以的

我们将这个d1剪切到上级目录里面,当前目录的d1就没了

然后我们使用tree看下d1的结构,发现和之前的是一样的

在这里插入图片描述
我们使用mv进行文件或者是目录的剪切操作的时候我们是不需要带上选项的,直接剪切到对应的位置里面

我们的mv命令除了剪切的操作,还能进行这个重命名的操作

[root@20W lesson3]# ls
d1  dir  exit  log.txt  new.txt  test.c
[root@20W lesson3]# mv test.c mttest.c
[root@20W lesson3]# ls
d1  dir  exit  log.txt  mttest.c  new.txt
[root@20W lesson3]# 

在这里插入图片描述
mv 原来的文件名 新的文件名

这样就可以实现重命名的操作了

这个新的文件名一定要是之前不存在的名称

当然我们的剪切和重命名操作可以放在一起的

使用这个命令将我们的mttest.c文件剪切到上个目录并且进行重命名的操作

mv mttest.c ../test.c

[root@20W lesson3]# ls
d1  dir  exit  log.txt  mttest.c  new.txt
[root@20W lesson3]# ls ..
code.txt  lesson3  myd1  mylog.txt  tty.c  xuanxuan
[root@20W lesson3]# mv mttest.c ../test.c
[root@20W lesson3]# ls
d1  dir  exit  log.txt  new.txt
[root@20W lesson3]# ls ..
code.txt  lesson3  myd1  mylog.txt  test.c  tty.c  xuanxuan
[root@20W lesson3]# 

13.cat查看文件里面的文本内容

在这里插入图片描述
我们在是用cat查看.c文件的时候,我们可以加上选项 -ns

-n就是显示左边的行号

-s就是将多行空行进行压缩的操作

在这里插入图片描述

除了我们的cat还有tac

tac就是将我们的文本内容反向的打印出来

在这里插入图片描述
那么cat的作用就是将文件的内容打印出来

那么为啥学这个呢?

因为以后我们可能在Linux中看小文件

我们不需要使用vim或者是nano进行打开,我们直接使用cat进行查看就行了,比较方便

14.more 查看文件内容

more命令我们知道就行了在这里插入图片描述
现在我们要查看系统日志,但是如果使用cat的话就会显示很多

那么我们现在使用more进行查看的操作,只会打印一屏,而不会像cat一样进行刷屏的操作

就是这里只显示了26%的内容

在这里插入图片描述

[root@20W lesson3]# more /car/log/message
more: stat of /car/log/message failed: No such file or directory
[root@20W lesson3]# more /var/log/message
more: stat of /var/log/message failed: No such file or directory
[root@20W lesson3]# more /var/log/messages
Dec  8 03:39:01 20W rsyslogd[869]: [origin software="rsyslogd" swVersion="
8.2102.0-5.el8" x-pid="869" x-info="https://www.rsyslog.com"] rsyslogd wasHUPed
Dec  8 05:17:59 20W systemd[1]: Starting dnf makecache...
Dec  8 05:18:00 20W dnf[669553]: Metadata cache refreshed recently.
Dec  8 05:18:00 20W systemd[1]: dnf-makecache.service: Succeeded.
Dec  8 05:18:00 20W systemd[1]: Started dnf makecache.
Dec  8 06:58:59 20W systemd[1]: Starting dnf makecache...
Dec  8 06:59:00 20W dnf[669962]: CentOS-8 - AppStream                     119 kB/s | 4.3 kB     00:00
Dec  8 06:59:00 20W dnf[669962]: CentOS-8 - Base                          117 kB/s | 3.9 kB     00:00
Dec  8 06:59:00 20W dnf[669962]: CentOS-8 - Extras                        50 kB/s | 1.5 kB     00:00
Dec  8 06:59:00 20W dnf[669962]: Extra Packages for Enterprise Linux 8 - x
86_64   11 kB/s | 4.4 kB     00:00
Dec  8 06:59:01 20W dnf[669962]: Extra Packages for Enterprise Linux Modul
ar 8 - 7.4 kB/s | 3.0 kB     00:00
Dec  8 06:59:01 20W dnf[669962]: Metadata cache created.
Dec  8 06:59:01 20W systemd[1]: dnf-makecache.service: Succeeded.
Dec  8 06:59:01 20W systemd[1]: Started dnf makecache.
Dec  8 08:33:59 20W systemd[1]: Starting dnf makecache...

如果想看下一行的话我们使用回车就行了

more命令的话不能进行上翻操作,只能通过回车键进行下翻的操作

在这里插入图片描述

14.less 查看文件内容

在这里插入图片描述
因为more指令使用起来不是很方便,所有我们这里有一个平替more指令的less指令

输入下面的命令我们就可以进行查询日志了

less /var/log/messages

Dec  8 03:39:01 20W rsyslogd[869]: [origin software="rsyslogd" swVersion="8.2102.0-5.el8" x-pid="869" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Dec  8 05:17:59 20W systemd[1]: Starting dnf makecache...
Dec  8 05:18:00 20W dnf[669553]: Metadata cache refreshed recently.
Dec  8 05:18:00 20W systemd[1]: dnf-makecache.service: Succeeded.
Dec  8 05:18:00 20W systemd[1]: Started dnf makecache.
Dec  8 06:58:59 20W systemd[1]: Starting dnf makecache...
Dec  8 06:59:00 20W dnf[669962]: CentOS-8 - AppStream                            119 kB/s | 4.3 kB     00:00
Dec  8 06:59:00 20W dnf[669962]: CentOS-8 - Base                                 117 kB/s | 3.9 kB     00:00
Dec  8 06:59:00 20W dnf[669962]: CentOS-8 - Extras                                50 kB/s | 1.5 kB     00:00
Dec  8 06:59:00 20W dnf[669962]: Extra Packages for Enterprise Linux 8 - x86_64   11 kB/s | 4.4 kB     00:00
Dec  8 06:59:01 20W dnf[669962]: Extra Packages for Enterprise Linux Modular 8 - 7.4 kB/s | 3.0 kB     00:00
Dec  8 06:59:01 20W dnf[669962]: Metadata cache created.
Dec  8 06:59:01 20W systemd[1]: dnf-makecache.service: Succeeded.
Dec  8 06:59:01 20W systemd[1]: Started dnf makecache.
Dec  8 08:33:59 20W systemd[1]: Starting dnf makecache...
Dec  8 08:34:00 20W dnf[670339]: Metadata cache refreshed recently.
Dec  8 08:34:00 20W systemd[1]: dnf-makecache.service: Succeeded.
Dec  8 08:34:00 20W systemd[1]: Started dnf makecache.
Dec  8 08:49:10 20W systemd[1]: Created slice User Slice of UID 0.
Dec  8 08:49:10 20W systemd[1]: Starting User runtime directory /run/user/0...
Dec  8 08:49:10 20W systemd-logind[821]: New session 222 of user root.
Dec  8 08:49:10 20W systemd[1]: Started User runtime directory /run/user/0.
Dec  8 08:49:10 20W systemd[1]: Starting User Manager for UID 0...
Dec  8 08:49:10 20W systemd[670417]: Reached target Paths.
Dec  8 08:49:10 20W systemd[670417]: Starting D-Bus User Message Bus Socket.
Dec  8 08:49:10 20W systemd[670417]: Reached target Timers.
Dec  8 08:49:10 20W systemd[670417]: Listening on D-Bus User Message Bus Socket.
Dec  8 08:49:10 20W systemd[670417]: Reached target Sockets.
Dec  8 08:49:10 20W systemd[670417]: Reached target Basic System.
:

在这里插入图片描述
这里我们是可以进行下翻操作的

我们也可以进行回翻的操作的

我们也可以输入/root进行查询

在这里插入图片描述
我们只需要在后面加上/我们想要搜索的名称

然后就能直接跳到那里了

那么总结:我们的less命令可以进行大文本的查看以及上下翻的操作

使用q进行退出

/进行搜索

如果搜索的时候有很多匹配项

那么我们点击n就可以切换下个匹配项了

n就是next的意思

在more和less中我们推荐less,因为less更加方便

15.head 提取文本前n行信息

我们现在进行查看一个大文件,但是我们不想这个文件屏幕上显示很多

那么我们使用head进行文件的查看,仅仅查看开头的前10行就行了

head log.txt 这里默认就是查看前10行的信息

在这里插入图片描述
如果我们现在想利用查看head查看前20行的信息呢?

head -20 log.txt 就行了

提取前3行就是head -3 log.txt

总结

head使用方法:head -n file显示文件前n行

16.tail 提取文本后n行内容

tail log.txt默认显示尾部10行
在这里插入图片描述
那么我们想显示尾部20行呢?

tail -20 log.txt

在这里插入图片描述
tail使用方法:tail -n file

显示尾部指定行的内容

如果我们想找出第2000行到2020行的内容呢?

我们怎么进行呢?

我们先将使用head将前2020行的数据利用重定向>导入到一个文件中

然后我们再利用tail将这个文件的后面20行导出来

然后我们就获得了2000-2020行的数据了

那么是否存在更加简单的做法呢?

我们可以使用管道|

输入下面的命令

head -2020 log.txt | tail -21

这个log.txt文件只出现一次

先将这个文件的前2020行提取出来

然后将这个输出的结果作为我们的输入交给管道后面的指令

在这里插入图片描述
head -2020 log.txt | tail -21

解释下这个命令

我们管道符号|左边的命令就可以将log.txt的前2020行的数据拿到

右侧的话也是一个命令,但是我们没有写文件的

总的来说就是我们将这个左侧的输出结果通过管道喂给右边的命令

这个命令的话传给右边的就是log.txt文件的前2020行,然后通过管道将这前2020行给tail命令进行操作

获取这2020行的最后20行的数据

在这里插入图片描述

那么如果我们需要将这一段文本进行逆向打印的操作呢?

head -2020 loh.txt | tail -21| tac

在这里插入图片描述
在后面再加一个管道使用tac进行逆向打印操作

那么我们现在加上这个wc -l进行统计的操作,看看是不是21行

head -2020 loh.txt | tail -21| tac | wc -l

w表示word

c表示count

那么这个命令就是统计字符数了

l选项就是line

总的来说就是按行进行统计的操作

在这里插入图片描述
所以我们是可以利用管道对文件进行流水线、批量化的文件操作的

17.时间相关的指令

在这里插入图片描述
输入下面的指令 date +%Y/%m/%d\ %H:%M:%S 就能将当前时间进行打印出来

%Y就是年

/是分隔符

%m是月份

%d是天数

[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:37
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:39
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:39
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:40
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:41
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:41
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:42
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:43
[root@20W ~]# date +%Y/%m/%d_%H:%M:%S
2024/12/09_20:56:43
[root@20W ~]# date +%Y/%m/%d\ %H:%M:%S
2024/12/09 20:57:09
[root@20W ~]# date +%Y/%m/%d\ %H:%M:%S
2024/12/09 21:08:04

在这里插入图片描述

date命令不重要,但是时间很重要,我们的系统日志里面必须包含时间,所以我们在查看出问题的时候,除了看出了什么问题还要看什么时候出的问题,出问题的时间

所以时间可以作为日志输出的一部分

我们输入下面的命令

date +%s也会出现一串数字,这个也是会随着时间进行变化的,我们叫这个叫时间戳

时间戳是1970-01-01 12:00到现在的累计的秒数总和

时间戳是一个线性增长的数字

根据时间戳进行批量式的查找和定位

当然我们使用nano在Linux进行c语言编程我们也是可以获得这个时间戳的

首先输入命令nano mytime.c

然后输入下面的代码

#include <stdio.h>
#include<time.h>
int main()
{printf("%lu\n",time(NULL));return 0;}
[root@20W lesson3]# gcc mytime.c
[root@20W lesson3]# ll
total 48
-rwxr-xr-x 1 root root 17584 Dec 10 10:58 a.out
drwxr-xr-x 3 root root  4096 Dec  7 21:24 d1
drwxr-xr-x 2 root root  4096 Dec  7 21:24 dir
-rw-r--r-- 1 root root  9708 Oct 30 09:18 exit
-rw-r--r-- 1 root root    12 Dec  5 08:57 log.txt
-rw-r--r-- 1 root root    93 Dec 10 10:58 mytime.c
-rw-r--r-- 1 root root     0 Dec  4 20:54 new.txt

然后使用gcc进行编译的操作

生成一个a.out文件

然后我们进行编译操作./a.out

然后时间戳就出来了

[root@20W lesson3]# ./a.out
1733799574
[root@20W lesson3]# ./a.out
1733799576
[root@20W lesson3]# ./a.out
1733799576
[root@20W lesson3]# ./a.out
1733799577
[root@20W lesson3]# ./a.out
1733799577
[root@20W lesson3]# ./a.out
1733799578
[root@20W lesson3]# ./a.out
1733799578
[root@20W lesson3]# ./a.out
1733799579

但是这个时间戳的话我们看的很难受

那么有没有什么方法将时间戳换成现在的时间呢?

正常的操作是通过这个命令进行显示年月日时分秒的date +%Y/%m/%d\ %H:%M:%S

在这里插入图片描述

那么我们可以通过一个方便随便将一个时间戳转换为这样的时间显示的

我们在原有的命令的基础上加上 -d @时间戳

类似下面这样子

date +%Y/%m/%d\ %H:%M:%S -d@1733800061

[root@20W lesson3]# date +%Y/%m/%d\ %H:%M:%S -d@1733800061
2024/12/10 11:07:41
[root@20W lesson3]# [root@20W lesson3]# date +%Y/%m/%d\ %H:%M:%S -d@0
1970/01/01 08:00:00
[root@20W lesson3]# 

在这里插入图片描述

18.Cal指令

通过Cal显示某年的日历

[root@20W lesson3]# cal 19491949                               January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa1          1  2  3  4  5          1  2  3  4  52  3  4  5  6  7  8    6  7  8  9 10 11 12    6  7  8  9 10 11 129 10 11 12 13 14 15   13 14 15 16 17 18 19   13 14 15 16 17 18 19
16 17 18 19 20 21 22   20 21 22 23 24 25 26   20 21 22 23 24 25 26
23 24 25 26 27 28 29   27 28                  27 28 29 30 31      
30 31                                                             April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa1  2    1  2  3  4  5  6  7             1  2  3  43  4  5  6  7  8  9    8  9 10 11 12 13 14    5  6  7  8  9 10 11
10 11 12 13 14 15 16   15 16 17 18 19 20 21   12 13 14 15 16 17 18
17 18 19 20 21 22 23   22 23 24 25 26 27 28   19 20 21 22 23 24 25
24 25 26 27 28 29 30   29 30 31               26 27 28 29 30      July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa1  2       1  2  3  4  5  6                1  2  33  4  5  6  7  8  9    7  8  9 10 11 12 13    4  5  6  7  8  9 10
10 11 12 13 14 15 16   14 15 16 17 18 19 20   11 12 13 14 15 16 17
17 18 19 20 21 22 23   21 22 23 24 25 26 27   18 19 20 21 22 23 24
24 25 26 27 28 29 30   28 29 30 31            25 26 27 28 29 30   
31                                                                October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa1          1  2  3  4  5                1  2  32  3  4  5  6  7  8    6  7  8  9 10 11 12    4  5  6  7  8  9 109 10 11 12 13 14 15   13 14 15 16 17 18 19   11 12 13 14 15 16 17
16 17 18 19 20 21 22   20 21 22 23 24 25 26   18 19 20 21 22 23 24
23 24 25 26 27 28 29   27 28 29 30            25 26 27 28 29 30 31
30 31                                                             
[root@20W lesson3]# 

cal -3可以查看本年的3月的前中后三个月的日历

其他的数字就不行了

在这里插入图片描述

19.find命令

在这里插入图片描述
我们可以输入下面的命令,位置和指定的文件进行查找

find /home/114kaizi/lesson -name a.out

或者是对满足条件的文件进行查找操作

find /home/114kaizi/lesson3 -name '*.c'

或者是我们在当前的目录进行查找

find ~ name '*.c'

find会将所有满足条件的文件都找出来的

[root@20W lesson3]# find ~ name '*.c'
/root
/root/.bash_logout
/root/.tcshrc
/root/lesson4
/root/114
/root/114/lesson4
/root/114/lesson4/test
/root/114/other
/root/114/other/test.zip
/root/114/test
/root/114/test.zip
/root/.swp
/root/113
/root/.vimrc
/root/.history
/root/.bashrc
/root/.bash_profile
/root/.bash_history
/root/.cshrc
/root/.lesshst
/root/.cache
/root/.cache/pip
/root/.cache/pip/http
/root/.cache/pip/http/f
/root/.cache/pip/http/f/e
/root/.cache/pip/http/f/e/d
/root/.cache/pip/http/f/e/d/0
/root/.cache/pip/http/f/e/d/0/e
/root/.cache/pip/http/f/e/d/0/e/fed0ed508030b766d5b0c2792132c8bf197804464765b46b361f93a4
/root/.cache/pip/http/b
/root/.cache/pip/http/b/b
/root/.cache/pip/http/b/b/8
/root/.cache/pip/http/b/b/8/7
/root/.cache/pip/http/b/b/8/7/6
/root/.cache/pip/http/b/b/8/7/6/bb876b2e6a22c2739002e9ef3388ae978b7a6192a19fe67d8b0030f2
/root/.cache/pip/selfcheck.json
/root/.ssh
/root/.ssh/authorized_keys
/root/111
/root/111/ProcessBar.c
/root/111/.ProcessBar.h.swp
/root/111/.ProcesBar.c.swp
/root/111/ProcessBar.h
/root/111/.ProcessBar.h.swo
/root/112
/root/log.txt
/root/.viminfo
find: ‘name’: No such file or directory
find: ‘*.c’: No such file or directory
[root@20W lesson3]#

在这里插入图片描述
find系统目录直接查找,可以查询任意文件

which用来查询系统可执行程序

20.grep行文本过滤指令

在这里插入图片描述
n是行号

i是忽略大小写

v是反向进行选择,输出不匹配的选项

主要是用来行文本过滤

我们可以使用man grep查看作用

在这里插入图片描述
我们使用grep '999' log.txt在这个大文本中进行查询,只要包含999的都被被显示在屏幕上面在这里插入图片描述
这里就是将包含main的那一行显示出来在这里插入图片描述
我们也能加上这个-n选项显示这个我们要找的在第几行在这里插入图片描述
我们也可以加上-v选项,将不匹配的行打印出来

就是将我们后面匹配的行给忽略了,将其他不匹配的行进行打印的操作

在这里插入图片描述
grep在匹配的时候默认是大小写敏感的,只匹配我们匹配的内容

那么我们加上i这个选项的话,就会忽略大小写的匹配操作

在这里插入图片描述

那么我们三个选项都加上的话niv然后就会将我们匹配到的内容全都排除掉

在这里插入图片描述

那么grep有什么用呢?

我们可以利用后面的指令将进程显示出来,然后通过管道传给grep进行我们想要的数据的查询操作

21.zip/unzip 打包和压缩

打包和压缩是什么?

使用特定的算法,将文件进行合并或者压缩,减少体积

打包压缩作为一个整体

为什么?

a.减少文件体积,节省资源,节省磁盘空间,减少网络传送的成本

b.多文件转一个文件,可以提高我们传输文件的容错性

怎么办?

压缩包有很多形式,但是我们这里重点将.zip和.tgz的

我们利用之前学过的多种指令进行这么一个test目录的创建操作

[root@20W lesson3]# tree test
test
├── dir1
│   └── dir2
│       └── dir3
│           └── log.txt
├── f1.txt
├── f2.txt
├── f3.txt
├── f4.txt
└── f5.txt3 directories, 6 files
[root@20W lesson3]# 

在这里插入图片描述

我们使用这个命令进行zip 、unzip的安装操作

[root@20W lesson3]# yum install -y zip unzip
Last metadata expiration check: 2:40:01 ago on Thu 12 Dec 2024 06:08:01 AM CST.
Package zip-3.0-23.el8.x86_64 is already installed.
Package unzip-6.0-45.el8_4.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@20W lesson3]#

我们使用zip 压缩后的文件名 要压缩的文件名这个命令将test文件压缩为test.zip文件,那么这个时候在系统中就形成了一个压缩文件了

[root@20W lesson3]# zip test.zip testadding: test/ (stored 0%)
[root@20W lesson3]# ll
total 56
-rwxr-xr-x 1 root root 17584 Dec 10 10:58 a.out
drwxr-xr-x 3 root root  4096 Dec  7 21:24 d1
drwxr-xr-x 2 root root  4096 Dec  7 21:24 dir
-rw-r--r-- 1 root root  9708 Oct 30 09:18 exit
-rw-r--r-- 1 root root    12 Dec  5 08:57 log.txt
-rw-r--r-- 1 root root    93 Dec 10 10:58 mytime.c
-rw-r--r-- 1 root root     0 Dec  4 20:54 new.txt
drwxr-xr-x 3 root root  4096 Dec 12 08:12 test
-rw-r--r-- 1 root root   160 Dec 12 08:50 test.zip
[root@20W lesson3]# 

在这里插入图片描述

现在我们创建一个文件用来我们刚刚的文件的解压和解包

在这里插入图片描述

unzip test.zip我们使用这个命令将test.zip进行解压的操作

[root@20W other]# ls
test.zip
[root@20W other]# unzip test.zip
Archive:  test.zipcreating: test/
[root@20W other]# ls
test  test.zip
[root@20W other]# 

解压完成之后当前文件夹会多出一个解压的文件

我们发现这个压缩的操作好像只能将我们的顶级目录进行压缩的操作

在这里插入图片描述

所提我们打包压缩的话我们是需要携带上一个重要的选项的

-r 递归操作

凡是在树状结构,对目录进行操作,那那么这个-r就少不了的

我们先使用rm * -rf将other这个文件里面的内容都删除了

那么我们重新进行压缩的操作

[root@20W lesson3]# zip -r test.zip  testadding: test/ (stored 0%)adding: test/dir1/ (stored 0%)adding: test/dir1/dir2/ (stored 0%)adding: test/dir1/dir2/dir3/ (stored 0%)adding: test/dir1/dir2/dir3/log.txt (stored 0%)adding: test/f3.txt (stored 0%)adding: test/f4.txt (stored 0%)adding: test/f5.txt (stored 0%)adding: test/f2.txt (stored 0%)adding: test/f1.txt (stored 0%)
[root@20W lesson3]# 

在这里插入图片描述
这里我们可以看到利用递归将所有文件都添加过来

因为文件都是空的,所以压缩率为0

然后将test.zip利用mv指令移动到other文件中

然后我们在这个文件里面进行测试的操作

unzip test.zip我们直接输入这个命令就行了进行解压的操作

[root@20W other]# unzip  test.zip
Archive:  test.zipcreating: test/creating: test/dir1/creating: test/dir1/dir2/creating: test/dir1/dir2/dir3/extracting: test/dir1/dir2/dir3/log.txt  extracting: test/f3.txt             extracting: test/f4.txt             extracting: test/f5.txt             extracting: test/f2.txt             extracting: test/f1.txt             
[root@20W other]# 

我们进行文件里面的内容查看

发现文件的内容并没有改变

[root@20W other]# cat test/dir1/dir2/dir3/log.txt
hello bit

那么总结:我们打包的话利用这个指令`zip -r 打包后的名称 要打包的文件名称

解压:unzip 要解压的文件名称

会解压到当前文件中

unzip test.zip -d ../myd1我们通过这个指令选项将解压的文件放在上级目录里面的一个文件夹里面了

[root@20W lesson3]# unzip test.zip  -d ../myd1
Archive:  test.zipcreating: ../myd1/test/creating: ../myd1/test/dir1/creating: ../myd1/test/dir1/dir2/creating: ../myd1/test/dir1/dir2/dir3/extracting: ../myd1/test/dir1/dir2/dir3/log.txt  extracting: ../myd1/test/f3.txt     extracting: ../myd1/test/f4.txt     extracting: ../myd1/test/f5.txt     extracting: ../myd1/test/f2.txt     extracting: ../myd1/test/f1.txt     
[root@20W lesson3]# cd ..
[root@20W 114kaizi]# ;s
-bash: syntax error near unexpected token `;'
[root@20W 114kaizi]# ls
code.txt  lesson3  myd1  mylog.txt  test  test.c  tty.c  xuanxuan
[root@20W 114kaizi]# cd ..
[root@20W home]# ls
114kaizi  kaizi  mamashengde  mortal  xcwgs
[root@20W home]# cd 114kazi
-bash: cd: 114kazi: No such file or directory
[root@20W home]# cd /home/114kaizi
[root@20W 114kaizi]# ls
code.txt  lesson3  myd1  mylog.txt  test  test.c  tty.c  xuanxuan
[root@20W 114kaizi]# ls myd1
d2  test
[root@20W 114kaizi]# 

我们可以发现我们的解压文件出现在我们指定的文件中了

我们使用tree指令发现解压的确实是没有问题的

[root@20W 114kaizi]# ls
code.txt  lesson3  myd1  mylog.txt  test  test.c  tty.c  xuanxuan
[root@20W 114kaizi]# tree myd1
myd1
├── d2
│   └── d3
└── test├── dir1│   └── dir2│       └── dir3│           └── log.txt├── f1.txt├── f2.txt├── f3.txt├── f4.txt└── f5.txt6 directories, 6 files
[root@20W 114kaizi]# 

如果我们想解压到指定路径的时候那么我们可以加上-d选项进行指定路径的选择操作了

如果我们要让Windows在Linux中进行互传文件

那么我们这里就需要一个软件了,叫做lrzsz

我们使用命令进行安装的操作

yum install -y lrzsz

[root@20W lesson3]# yum install -y lrzsz
Last metadata expiration check: 0:10:12 ago on Thu 12 Dec 2024 09:22:39 AM CST.
Package lrzsz-0.12.20-43.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

我们先递归将文件进行压缩的操作

[root@20W lesson3]# zip -r test.zip testadding: test/ (stored 0%)adding: test/dir1/ (stored 0%)adding: test/dir1/dir2/ (stored 0%)adding: test/dir1/dir2/dir3/ (stored 0%)adding: test/dir1/dir2/dir3/log.txt (stored 0%)adding: test/f3.txt (stored 0%)adding: test/f4.txt (stored 0%)adding: test/f5.txt (stored 0%)adding: test/f2.txt (stored 0%)adding: test/f1.txt (stored 0%)
[root@20W lesson3]# ls
a.out  d1  dir  exit  log.txt  mytime.c  new.txt  test  test.zip
[root@20W lesson3]# 

那么我们怎么将这个压缩包发到Windows系统下呢?

我们使用sz这个指令

s就是send的意思

z可以理解为压缩

sz test.zip输入这个指令

回车我们可以发现xshell会弹出一个界面

在这里插入图片描述
然后我们的桌面上就多出了一个压缩包了

然后找到我们的log.txt文件,我们可以发现里面的内容还是hello bit

在这里插入图片描述
在这里插入图片描述

我们这里还能发现我们的压缩包文件可以通过拖拽的方式拉到xshell里面

在这里插入图片描述
那么这里我们就得到了这么一个文件了

22.tar 打包/解包,不打开它,直接看内容

我们输入命令tar -czf test.tgz test进行打包压缩操作

c是建立一个压缩文件的参数指令(create 的意思);

z是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

f是使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数

[root@20W lesson3]# tar -czf test.tgz test
[root@20W lesson3]# ls
a.out  d1  dir  exit  log.txt  mytime.c  new.txt  test  test.tgz
[root@20W lesson3]# ls

我们使用tar进行文件压缩的时候产生的压缩包的后缀是.tgz

一但打包压缩成功的话,那么我们先做本地化测试

我们还是将这个文件利用mv移动到other路径下

[root@20W lesson3]# mv test.tgz other
[root@20W lesson3]# ls
a.out  d1  dir  exit  log.txt  mytime.c  new.txt  other  test
[root@20W lesson3]# ls other
test.tgz
[root@20W lesson3]# 

我们进行解压操作的时候我们输入tar -xzf test.tgz就行了

将我们的之前的c换成x就行了

这个x是解开一个压缩文件的参数指令!

[root@20W other]# tar -xzf test.tgz 
[root@20W other]# ls
test  test.tgz
[root@20W other]# tree test
test
├── dir1
│?? └── dir2
│??     └── dir3
│??         └── log.txt
├── f1.txt
├── f2.txt
├── f3.txt
├── f4.txt
└── f5.txt3 directories, 6 files
[root@20W other]# 

总结:我们利用tar -czf dist.tgz src进行压缩操作

利用tar -czf dist.tgz 进行解压的操作

我们发现我们的tar在压缩和解压的时候不显示过程

我们可以在打包和解压的过程中加上v这个选项,可以将打包压缩的过程显示出来

tar -cvzf dist.tgz

在这里插入图片描述

在zip中我们将一个压缩包文件解压到指定路径下需要加上选项-d

在tar中我们用到的是-C 是大写的C,不是小写的

那么下面我们就解压成功了

[root@20W other]# ls ../
a.out  d1  dir  exit  log.txt  mytime.c  new.txt  other  test
[root@20W other]# tar -xzvf test.tgz -C ../dir
test/
test/dir1/
test/dir1/dir2/
test/dir1/dir2/dir3/
test/dir1/dir2/dir3/log.txt
test/f3.txt
test/f4.txt
test/f5.txt
test/f2.txt
test/f1.txt
[root@20W other]# 

那么我们回到上级路径里面的文件里面看下内容是否正确

[root@20W other]# tree ../dir/test
../dir/test
├── dir1
│   └── dir2
│       └── dir3
│           └── log.txt
├── f1.txt
├── f2.txt
├── f3.txt
├── f4.txt
└── f5.txt3 directories, 6 files
[root@20W other]# 

我们发现这个树状图结构很正常

那么总结:

tar -czf dst.tgz src 压缩的命令

tar -xzf dst.tgz src 将c改成x就变成了解压操作了

如果要显示过程的话那么就在选项中加上v就行了

tar -cvzf dst.tgz -C 指定路径 将这个解压的文件放在指定的路径文件下

同样我们也可以使用sz将这个tgz压缩包放到桌面文件上

我们能否在两台Linux控制台进行压缩包的传输呢?

我们使用scp这个命令将当前目录下的压缩包,然后找到另一个控制台的公网ip地址

指定拷贝的对应文件路径

在这里插入图片描述
在这里插入图片描述

23.bc—命令行计算器

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

我们在Linu中输入bc

我们发现这里可以进行计算操作

通过bc显示出来的是一个命令行计算器

[root@20W other]#  bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
10+10
20
15+26
41
151+12515
12666
+1515
(standard_in) 4: syntax error
4545
4545

这个bc的话我们可以用到平常的测试计算中

通过管道将传输的算术式传给bc进行计算操作

[root@20W other]# echo 1+1+1+5*5+6 |bc
34
[root@20W other]# 

在这里插入图片描述

24.uname—获取电脑信息

我们使用uname -a进行查看我们当前的主机的信息

[root@20W ~]# uname -a
Linux 20W 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

如果我们单纯的想看我们的内核版本我们输入这个命令就行了uname -r

选项是r

[root@20W ~]# uname -r
4.18.0-348.7.1.el8_5.x86_64

这个是对于centos系统来说的

我们也可以通过下面这个命令查看我们的云服务器的参数

[root@20W ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

http://www.ppmy.cn/server/152924.html

相关文章

计算机网络——练习题

一. 单选题&#xff08;共27题&#xff0c;67.5分&#xff09; 1. (单选题)计算机网络的最突出的优点是____。 A. 运算速度快 B. 运算精度高 C. 存储容量大 D. 资源共享 我的答案: D:资源共享;正确答案: D:资源共享; 2.5分 答案解析&#xff1a; 2. (单选题)TCP/IP协…

LLMs之PDF:MinerU(将PDF文件转换成Markdown和JSON格式)的简介、安装和使用方法、案例应用之详细攻略

LLMs之PDF&#xff1a;MinerU(将PDF文件转换成Markdown和JSON格式)的简介、安装和使用方法、案例应用之详细攻略 目录 MinerU的简介 0、日志 1、MinerU 的主要特点 2、已知问题 MinerU 安装和使用方法 1、MinerU的三种体验方式 T1、在线演示 T2、快速CPU演示 T3、GPU …

D101【python 接口自动化学习】- pytest进阶之fixture用法

day101 pytest的fixture执行顺序 学习日期&#xff1a;20241218 学习目标&#xff1a;pytest基础用法 -- pytest的fixture执行顺序 学习笔记&#xff1a; fixtrue的作用范围 实战结果 import pytestpytest.fixture(scopesession) def test_session():print(我是 session f…

118.KubeSphere应用商店安装Harbor提示镜像拉取失败的解决办法

目录 1.原因 2.修改Docker镜像地址 1.原因 docker镜像拉取有问题&#xff0c;很多都拉取不了了。 2.修改Docker镜像地址 vi /etc/docker/daemon.json { "registry-mirrors": [ "https://dockerhub.xianfish.site", "https://yxzrazem.mirror.aliy…

jsp中的四个域对象(Spring MVC)

在Spring MVC中&#xff0c;Model中的数据会被自动放入到请求域&#xff08;Request Scope&#xff09;中。也就是说&#xff0c;当我们在控制器中使用model.addAttribute()时&#xff0c;这些属性会被放入到HttpServletRequest对象的属性中。 让我们通过代码来详细解释&#…

springboot/ssm七彩云南文化旅游网站Java代码编写web在线旅游景点管理

springboot/ssm七彩云南文化旅游网站Java代码编写web在线旅游景点管理 基于springboot(可改ssm)htmlvue项目 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&…

【算法day20】回溯:子集与全排列问题

题目引用 非递减子序列全排列全排列II 1. 非递减子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#x…

阿里云cdn稳定吗?

阿里云CDN&#xff08;内容分发网络&#xff09;是阿里云提供的一项全球加速服务&#xff0c;它的稳定性通常被认为是非常高的&#xff0c;尤其在国内市场。九河云给大家总结了阿里云CDN的稳定性情况&#xff1a; 1. 全球节点覆盖广泛 阿里云CDN在全球范围内拥有数百个加速节…