Centos的一些基础命令

CentOS是一个基于开源代码构建的免费Linux发行版,它由Red Hat Enterprise Linux (RHEL) 的源代码重新编译而成。由于 CentOS是基于RHEL构建的,因此它与RHEL具有非常类似的特性和功能,包括稳定性、安全性和可靠性。并且大部分的 Linux 命令在CentOS上都可以使用。尽管CentOS项目停止了CentOS8和之前版本的长期支持,它仍然提供了CentOS Stream,以及与之相关的社区支持和资源,供那些希望继续使用CentOS的用户和开发人员使用。

系统演示版本为centos7.5

命令格式:

command [-options] parameter1 parameter2
命令      选项      参数1       参数2

语系支持:locale

[root@localhost ~]# locale
LANG=zh_CN.UTF-8             系统默认的语言环境为中文UTF-8编码
LC_CTYPE="zh_CN.UTF-8"       指定字符分类的语言环境为中文UTF-8编码,用于定义字符类别。
LC_NUMERIC="zh_CN.UT"        指定时间和日期格式的语言环境为中文UTF-8编码,用于定义日期和时间的显示格式。
LC_TIME="zh_CN.UTF-8"        指定排序规则的语言环境为中文UTF-8编码,用于定义字符串的排序方式。
LC_COLLATE="zh_CN.UTF-8"     指定排序规则的语言环境为中文UTF-8编码,用于定义字符串的排序方式。
LC_MONETARY="zh_CN.UTF-8"    指定货币格式的语言环境为中文UTF-8编码,用于定义货币的显示格式。 
LC_MESSAGES="zh_CN.UTF-8"    指定消息文本的语言环境为中文UTF-8编码,用于定义程序的提示信息和错误信息的显示语言。
LC_PAPER="zh_CN.UTF-8"       指定纸张大小和打印格式的语言环境为中文UTF-8码,用于定义打印输出的格式。
LC_NAME="zh_CN.UTF-8"        指定人名格式的语言环境为中文UTF-8编码,用于定义人名的显示格式。 
LC_ADDRESS="zh_CN.UTF-8"     指定地址格式的语言环境为中文UTF-编码,用于定义地址的显示格式。
LC_TELEPHONE="zh_CN.UTF-8"   指定电话号码格式的语言环境为中文UTF-8编码,用于定义电话号码的显示格式。
LC_MEASUREMENT="zh_CN.UTF-8" 指定测量单位的语言环境为中文UTF-8编码,用于定义测量单位的显示格式。
LC_IDENTIFICATION="zh_CN.UTF-8" 指定身份证件格式的语言环境为中文UTF-8 编码,用于定义身份证件的显示格式。
LC_ALL=                      这是一个特殊的环境变量,如果设置了LC_ALL,则会覆盖其他所有LC_ 开头的环境变量的设置。在这里LC_ALL未指定具体值,因此不会覆盖其他环境变量的设置,而是使用其他环境变量的值。

语系支持非常重要在部署程序的时候,他们会调用系统的语系支持,如果程序的编码和系统不匹配会出现程序错误或者程序显示问题。
执行命令:date

[root@localhost ~]# date
2024年 04月 25日 星期四 09:07:28 CST

修改语系为英文:

[root@localhost ~]# LANG=en_US.utf8
[root@localhost ~]# export LC_ALL=en_US.utf8

查看date:

[root@localhost ~]# date
Thu Apr 25 09:09:36 CST 2024

#目录切换cd #

.      当前目录
..     上一层目录
-      当前目录的上一个工作目录
~      当家linux系统账户的家目录
~bwk   代表bwk系统账户的主文件夹

演示一下:

   [root@localhost opt]# mkdir -p /opt/test/test2 创建目录[root@localhost opt]# cd /opt/test/test2/[root@localhost test2]# pwd/opt/test/test2[root@localhost test2]# cd .[root@localhost test2]# pwd/opt/test/test2                . 就代表当前目录,cd .后目录没有切换[root@localhost test2]# cd ..   [root@localhost test]# pwd/opt/test                       .. 上一层目录,cd .. 后目录切换到了上一层test[root@localhost test]# cd /home[root@localhost home]# cd -      - 代表上一个工作目录,并不是上一层目录。在test的cd到/home目录后cd - 直接回到了test目录。/opt/test[root@localhost ~]# cd ~[root@localhost ~]# pwd/root                         [root@localhost ~]# cd ~bwk[root@localhost bwk]# pwd/home/bwk

目录切换cd

 -P(大写) :显示出实际路径,而非使用链接路径。

演示一下:

 [root@localhost opt]# ln -s /opt/test/test2/ .[root@localhost opt]# lscni  containerd  test  test2[root@localhost opt]# cd test2/[root@localhost test2]# pwd/opt/test2[root@localhost test2]# pwd -P/opt/test/test2[root@localhost test2]# ls /opt/test2lrwxrwxrwx. 1 root root 16 4月  25 09:40 /opt/test2 -> /opt/test/test2/

创建目录mkdir

 -m 设置文件的权限,直接设置不受umask的影响。-p 递归创建目录

演示一下:删除刚刚创建的test目录

[root@localhost opt]# mkdir test1
[root@localhost opt]# ls
cni  containerd  test1
[root@localhost opt]# ls test1/
[root@localhost opt]# mkdir test1/test2/test3
mkdir: 无法创建目录"test1/test2/test3": 没有那个文件或目录
[root@localhost opt]# mkdir -p test1/test2/test3
[root@localhost opt]# tree test1
test1
└── test2└── test3
2 directories, 0 files

目录权限:

[root@localhost opt]# ll test1
总用量 0
drwxr-xr-x. 3 root root 19 4月  25 09:49 test2d          rwx       r-x          r-x       3       19         root       root  
类型     用户权限     群组权限     其他权限    链接数   目录大小     所有者     所属组d 目录 - 文件  L 链接文件  B 设备文件,周边设备(磁盘)C 设备文件,一次性设备 (键盘 鼠标)
R  可读值是4、W可写值是2、X可执行是1

创建一个自定义权限的目录:

目录的默认权限由umask在系统中定义,它的值是目录要屏蔽的权限,有效的值是后3位。目录的满权限777减去它定义的值得到创建目录的权限值。如下:

[root@localhost opt]# umask  
0022
[root@localhost opt]# umask -S
u=rwx,g=rx,o=rx
[root@localhost opt]# mkdir bwk | ll -d bwk
drwxr-xr-x. 2 root root 6 4月  25 10:12 bwk  此目录权限为755,是777减去022的值。
rwx r-x r-x7   5   5

创建一个自定义权限的目录:

[root@localhost opt]# mkdir -m 744 bwk2 | ll -d /opt/bwk2
drwxr--r--. 2 root root 6 4月  25 10:16 /opt/bwk2
rwx r-- r--7   4   4
添加m参数后权限不在受umask的影响。

可以重新设置umask的值:

[root@localhost opt]# umask 0002
[root@localhost opt]# umask -S
u=rwx,g=rwx,o=rx

目录的查看ls

ls [-aAdfFhilnrRSt] 文件名或目录名
ls [--color={never,auto,always}] 文件名或目录名
ls [--full-time]   文件名或目录名

ls有很多参数只列出常用的参数:

   -a 全部的文件,连同隐藏文件。-d 列出目录本身,不列出目录下文件或目录。-l 列出文件的详细信息,属性权限等数据。-S 依文件大小排序,而不是用文件名-t 依照时间排序--color=never 不显示颜色。--color=always 显示颜色。--color=auto   让系统自行设置颜色。--full-time 显示完整时间--time={atime,ctime} 输出atime和ctime

演示一下(–color不演示):

[root@localhost test1]# mkdir .bwk  创建一个隐藏目录
[root@localhost test1]# ls -l
总用量 0
drwxr-xr-x. 3 root root 19 4月  25 09:49 test2
[root@localhost test1]# ls -al   添加a后显示隐藏目录
总用量 0
drwxr-xr-x. 4 root root 31 4月  25 10:30 .
drwxr-xr-x. 5 root root 48 4月  25 10:29 ..
drwxr-xr-x. 2 root root  6 4月  25 10:30 .bwk
drwxr-xr-x. 3 root root 19 4月  25 09:49 test2
[root@localhost test1]# tree test2/ test2下面有一个test3目录
test2/
└── test31 directory, 0 files
[root@localhost test1]# ls -l test2/
总用量 0
drwxr-xr-x. 2 root root 6 4月  25 09:49 test3
[root@localhost test1]# ls -ld test2/    添加d参数只显示test2目录本身
drwxr-xr-x. 3 root root 19 4月  25 09:49 test2/
[root@localhost etc]# ls -lS /etc/ | head -10  安照文件大小排序
总用量 1092
-rw-r--r--.  1 root root 670293 6月   7 2013 services
-rw-r--r--.  1 root root  25411 4月  18 19:52 ld.so.cache
-rw-r--r--.  1 root root  12288 3月   5 17:33 aliases.db
-rw-r--r--.  1 root root   7265 3月   5 17:24 kdump.conf
-rw-r--r--.  1 root root   6545 6月   7 2013 protocols
-rw-r--r--.  1 root root   5725 4月  11 2018 DIR_COLORS.256color
-rw-r--r--.  1 root root   5171 6月  10 2014 man_db.conf
-rw-r--r--.  1 root root   5122 4月  13 2018 makedumpfile.conf.sample
-rw-r--r--.  1 root root   5090 4月  11 2018 DIR_COLORS
[root@localhost etc]# ls -lt --full-time  /etc/ | head -10 按照时间排序并显示详细时间
总用量 1092
----------.  1 root root    436 2024-04-25 09:17:39.201084054 +0800 gshadow
-rw-r--r--.  1 root root    554 2024-04-25 09:17:39.195084054 +0800 group
----------.  1 root root    724 2024-04-25 09:17:39.192084054 +0800 shadow
-rw-r--r--.  1 root root   1181 2024-04-25 09:17:39.188084053 +0800 passwd
-rw-r--r--.  1 root root     72 2024-04-25 08:47:31.457043017 +0800 resolv.conf
drwxr-xr-x.  3 root root     23 2024-04-18 19:52:24.648024433 +0800 kubernetes
drwxr-xr-x.  6 root root   4096 2024-04-18 19:52:24.648024433 +0800 sysconfig
drwxr-xr-x.  2 root root     29 2024-04-18 19:52:20.211024262 +0800 conntrackd
-rw-r--r--.  1 root root  25411 2024-04-18 19:52:20.195024262 +0800 ld.so.cache

ls的–time参数:atime,ctime,mtime

这个主要涉及到atime,ctime,mtime的概念要搞清楚,并且对于目录和文件他们两个的atime,ctime,mtime的概念略有不同,因为目录的变化主要是目录中文件的变化。

atime、ctime、mtime的基本概念:

  1. Access Time (atime): atime表示的是文件的最后访问时间。当文件被读取时,atime属性会更新为当前时间。atime 主要用于跟踪文件的访问情况,例如确定文件何时被最后一次访问。但随着文件系统中大量的读取操作,频繁地更新atime可能会对性能产生一定的影响。因此有些系统可以通过挂载选项(如 noatime)来禁用或减少对atime的更新以提高性能。
  2. Change Time (ctime): ctime表示的是文件的状态改变时间(Change Time)。当文件的元数据(例如权限、所有者、链接等)或者文件内容发生变化时,ctime属性会更新为当前时间。ctime不仅会在文件内容修改时更新也会在文件的元数据修改时更新。因此ctime 可以用来追踪文件的状态变化。
  3. Modification Time (mtime): mtime表示的是文件的最后修改时间(Modification Time)。当文件内容发生变化时,mtime属性会更新为当前时间。mtime通常用于确定文件何时被修改。

目录:

atime:目录的最后访问时间,即最后一次读取目录中内容的时间。
ctime:目录的状态改变时间,即目录的元数据或内容发生变化的时间,例如添加、删除或重命名文件和目录权限的修改。
mtime:目录的最后修改时间,通常表示目录中文件的修改时间。

文件:

atime:文件的最后访问时间,即最后一次读取文件内容的时间。
ctime:文件的状态改变时间,即文件的元数据或内容发生变化的时间,例如修改文件的权限、所有者或链接。
mtime:文件的最后修改时间,即文件内容发生变化的时间。

拷贝cp和scp

cp [-adfilprsu] 文件(source)目标文件(destination)

cp有很多参数只列出常用的参数:

 -a 相当于-dr --preserve=all 理解为完整复制吧。-d 若复制源为链接文件则复制链接文件属性而非本身。-r 表示递归复制,即复制目录及其所有内容(包括子目录和文件)。-i 若目标文件已经存在则询问要不要覆盖。-p 连同文件属性一起复制,而非默认属性(备份常用)。-u 表示仅复制源文件中新于目标文件的文件(即只更新目标文件不存在或者比目标文件旧的文件)。

演示一下:

[root@localhost test]# alias | grep cp 
alias cp='cp -i'      cp命令默认了-i参数
[root@localhost opt]# cd test/ && touch bwk
[root@localhost test]# cp bwk ../
[root@localhost test]# cp bwk ../
cp:是否覆盖"../bwk"? y   y同意覆盖n不同意覆盖[root@localhost test]# cp /var/log/wtmp ./wtmp1    不使用-p命令拷贝
[root@localhost test]# cp -p /var/log/wtmp ./wtmp2 使用-p命令拷贝
[root@localhost test]# ll /var/log/wtmp ./
-rw-rw-r--. 1 root utmp 86400 4月  25 08:48 /var/log/wtmp./:
总用量 176
-rw-r--r--. 1 root root 86400 4月  25 12:17 wtmp1  看当前文件的用户组使用-p命令的属性未改变。
-rw-rw-r--. 1 root utmp 86400 4月  25 08:48 wtmp2[root@localhost opt]# tree test
test
├── bwk
└── test1
[root@localhost opt]# ll /mnt/ | grep test
[root@localhost opt]#                     在/mnt下没有test目录
[root@localhost opt]# cp  test/ /mnt | ll /mnt | grep test  目录被略过没有拷贝成功
cp: 略过目录"test/"
[root@localhost opt]# cp -r test/ /mnt | ll /mnt | grep test  添加-r参数
drwxr-xr-x. 3 root root 30 4月  25 12:26 test

scp远程拷贝

scp拷贝和cp拷贝,拷贝的参数基本相同例如-r、-p多了系统的验证参数。

 scp [选项] [源文件] [目标地址]
-P port:指定远程主机的端口号。默认端口号是 22。
-r:递归复制整个目录及其内容。
-p:保留文件的原始修改时间和访问时间。
-q:静默模式,不显示复制进度信息。
-v:详细模式,显示详细的复制进度信息。
-C:压缩传输数据。
-i identity_file:指定身份验证文件(例如私钥文件)。
-l limit:限制复制速率,以 Kbit/s 为单位。
-B:使用批处理模式(仅对多个文件传输有效)。
-J destination:连接到目标主机之前,先连接到中间主机。
-S program:指定加密程序或加密选项。
-o ssh_option:指定 SSH 客户端选项。

删除命令rm

rm [-fir] 目录或文件
-f force,强制,不会出现告警信息。
-i 删除前询问。
-r 递归删除。(很危险哦!~)

查看一下系统默认参数:

[root@localhost opt]# alias | grep rm
alias rm='rm -i'

rm默认了-i的参数。

rm -rf * 删库跑路,是个很危险的命令使用时候要特别小心。

[root@localhost opt]# rm test/
rm: 无法删除"test/": 是一个目录
[root@localhost opt]# rm -r test/ 每层询问最后删除。
rm:是否进入目录"test/"? y
rm:是否删除目录 "test/test1"?y
rm:是否删除目录 "test/"?y
[root@localhost opt]# ll | grep test
[root@localhost opt]#          [root@localhost opt]# mkdir -p test/test1 
[root@localhost opt]# rm -rf test/   使用-rf参数直接删除
[root@localhost opt]# ll | grep test
[root@localhost opt]# 

移动文件mv

mv [-fiu] 源文件  目标文件
-f force,强制,不会出现告警信息。
-i 删除前询问。
-u 表示仅复制源文件中新于目标文件的文件(即只更新目标文件不存在或者比目标文件旧的文件)。

查看文件cat

cat [-AbEnTv] 文件名
-A 相当于-vET的整合,可以列出一些特殊字符而不是空白行。
-b 列出行号,仅针对非空白行做行号显示,空白行不进行标志。
-n 打印出行号,加上空白行的。
-E 将结尾断行字符 $ 显示出来。
-v 列出看不到的字符。

常用的就是-n和-A在查看配置文件或处理配置文件格式时查看配置文件是否有特殊字符时会用到。

tail和head

tail/head [-n number] 文件
-n 后面是数字

就是显示文件后面几行、前面几行默认10行。另外tail 有-f参数持续的监测文件(查看日志的的时候用的比较多)。

创建文件touch

touch [-acdmt]
-a 仅修订atime。
-c 修订文件的时间,若文件不存在则不创建新文件。
-d 后面接修订日期而不用目前时间。也可以用--data="日期和时间"
-m 修改mtime
-t 修订时间。格式为[YYYYMMDDhhmm]

演示一下:

[root@localhost test]# touch bwk
[root@localhost test]# ll --full-time
总用量 0
-rw-r--r--. 1 root root 0 2024-04-25 13:07:42.374397390 +0800 bwk[root@localhost test]# cp -p  ~/.bashrc bashrc
[root@localhost test]# date; ll bashrc ;ll --time=atime bashrc; ll --time=ctime bashrc 
2024年 04月 25日 星期四 13:12:48 CST               当前时间
-rw-r--r--. 1 root root 176 12月 29 2013 bashrc   mtime时间,文件的最后修改时间,即文件内容发生变化的时间。
-rw-r--r--. 1 root root 176 4月  25 08:47 bashrc  atime时间,文件的最后访问时间,即最后一次读取文件内容的时间。
-rw-r--r--. 1 root root 176 4月  25 13:12 bashrc  ctime时间,文件的状态改变时间,即文件的元数据或内容发生变化的时间。

文件的-d参数

[root@localhost test]# ll --full-time
总用量 4
-rw-r--r--. 1 root root 176 2013-12-29 10:26:31.000000000 +0800 bashrc 文件的日期是2013年
[root@localhost test]# touch -d "1 days ago" bashrc  修改时间
[root@localhost test]# date;ll --full-time       
2024年 04月 25日 星期四 13:22:17 CST                   当前时间
总用量 4
-rw-r--r--. 1 root root 176 2024-04-24 13:20:37.701696258 +0800 bashrc  修改后的时间
[root@localhost test]# date;ll --full-time bashrc;ll --time=atime bashrc ;ll --time=ctime bashrc 
2024年 04月 25日 星期四 13:23:39 CST
-rw-r--r--. 1 root root 176 2024-04-24 13:20:37.701696258 +0800 bashrc
-rw-r--r--. 1 root root 176 4月  24 13:20 bashrc           atime变成了1天前
-rw-r--r--. 1 root root 176 4月  25 13:20 bashrc           ctime未改变

文件的-t参数:

[root@localhost test]# touch -t 202205120000 bashrc  
[root@localhost test]# date;ll --full-time
2024年 04月 25日 星期四 13:28:57 CST
总用量 4
-rw-r--r--. 1 root root 176 2022-05-12 00:00:00.000000000 +0800 bashrc 日期变成了2022年[root@localhost test]# date;ll --full-time bashrc;ll --time=atime bashrc ;ll --time=ctime bashrc 
2024年 04月 25日 星期四 13:29:15 CST                      当前时间
-rw-r--r--. 1 root root 176 2022-05-12 00:00:00.000000000 +0800 bashrc
-rw-r--r--. 1 root root 176 5月  12 2022 bashrc          atime变成了2022年
-rw-r--r--. 1 root root 176 4月  25 13:27 bashrc         ctime记录了当前时间

touch指令最常用的就是创建空文件,将文件的日期修订为目前的时间(mtime和atime)

文件的查询find

要记得你找的都是过去和当前时间下的文件。

find [path] [option] [action]

与时间有关的选项

在这里插入图片描述

-mtime n 在n天之前的一天之内被改动过内容的文件
-mtime +n 在n天之前不含n天本身被改动过内容的文件
-mtime -n 在n天之内含n天本身被改动过内容的文件

+4 代表大于等于5天前的文件。、-4 代表小于等于4天内的文件。、4 则代表4-5天那一天的文件。

与用户有关的选项

-uid n:这个n(数字),属于哪个者的账号ID,即UID。
-gid n: 使用者的群组ID,即GID。
-user name: 查询使用者的账号。
-group name: 查询群组名称。
-nouser:  寻找文件的拥有者不存在与/etc/passwd的人。
-nogroup: 寻找文件的拥有群组不存在/etc/group的文件。

演示一下:

[root@localhost test]# cp bashrc bashrc1
[root@localhost test]# cp bashrc bashrc2
[root@localhost test]# chown root:bwk bashrc
[root@localhost test]# chown bwk:bwk bashrc2
[root@localhost test]# ll
总用量 12                                         注意文件的属组和拥有者
-rw-r--r--. 1 root bwk  176 5月  12 2022 bashrc
-rw-r--r--. 1 root root 176 4月  25 13:59 bashrc1
-rw-r--r--. 1 bwk  bwk  176 4月  25 13:59 bashrc2
[root@localhost test]# find /opt/test/  -user bwk
/opt/test/bashrc2
[root@localhost test]# find /opt/test/  -group bwk
/opt/test/bashrc

与文件权限及名称有关的参数

-name: 搜索文件名
-size [+-]SIZE:搜索比SIZE大小的文件。SIZE的规格(c:代表字节Byte,k代表1024Bytes)c: 以字节数表示的文件大小。k: 以千字节表示的文件大小。M: 以兆字节表示的文件大小。G: 以千兆字节表示的文件大小。
-type TYPE: 搜索文件类型。f:普通文件(regular file)。d:目录文件(directory)。l:符号链接(symbolic link)。c:字符设备文件(character device file)。b:块设备文件(block device file)。p:管道文件(named pipe)。s:套接字文件(socket file)

-name演示:

[root@localhost test]# ls  其中test1是目录
bashrc  bashrc1  bashrc2  bwk  bwk2  test1
[root@localhost test]# find /opt/test/ -name bwk
/opt/test/bwk
[root@localhost test]# find /opt/test/ -name "bwk*"
/opt/test/bwk
/opt/test/bwk2

-size演示:

[root@localhost test]# ll  注意文件大小
总用量 16
-rw-r--r--. 1 root bwk  176 5月  12 2022 bashrc
-rw-r--r--. 1 root root 176 4月  25 13:59 bashrc1
-rw-r--r--. 1 bwk  bwk  176 4月  25 13:59 bashrc2
-rw-r--r--. 1 root root   6 4月  25 14:33 bwk
-rw-r--r--. 1 root root   0 4月  25 14:29 bwk2
[root@localhost test]# find /opt/test/ -size +50c
/opt/test/
/opt/test/bashrc
/opt/test/bashrc1
/opt/test/bashrc2
[root@localhost test]# find /opt/test/ -size -50c
/opt/test/bwk
/opt/test/bwk2

-type演示:

[root@localhost test]# ll
总用量 16
-rw-r--r--. 1 root bwk  176 5月  12 2022 bashrc
-rw-r--r--. 1 root root 176 4月  25 13:59 bashrc1
-rw-r--r--. 1 bwk  bwk  176 4月  25 13:59 bashrc2
-rw-r--r--. 1 root root   6 4月  25 14:33 bwk
-rw-r--r--. 1 root root   0 4月  25 14:29 bwk2
drwxr-xr-x. 2 root root   6 4月  25 14:40 test1
[root@localhost test]# find /opt/test/ -type d
/opt/test/
/opt/test/test1

筛选命令grep

-v 反选查找

演示一下:

[root@localhost test]# ll
总用量 12
-rwxr--r--. 1 root root 176 4月  25 13:59 bashrc1
-rw-r--r--. 1 bwk  bwk  176 4月  25 13:59 bashrc2
-rw-r--r--. 1 root root   6 4月  25 14:33 bwk
-rw--wx-wx. 1 root root   0 4月  25 14:29 bwk2
[root@localhost test]# ll | grep bwk
-rw-r--r--. 1 bwk  bwk  176 4月  25 13:59 bashrc2
-rw-r--r--. 1 root root   6 4月  25 14:33 bwk
-rw--wx-wx. 1 root root   0 4月  25 14:29 bwk2
[root@localhost test]# ll | grep -v bwk
总用量 12
-rwxr--r--. 1 root root 176 4月  25 13:59 bashrc1

压缩命令

gzip

gzip [-cdtv#] 文件名
-c 将压缩的数据输出到屏幕。
-d 解压缩的参数。
-t 可以用来检验一个压缩文件的一致性,看文件有无错误。
-# #为数字,代表压缩等级,-1最快单压缩比最差,-9最慢压缩比更好,默认是-6。

演示一下:

[root@localhost test]# gzip -v services 
services:	 79.7% -- replaced with services.gz
[root@localhost test]# ll ; ll /etc/services 
总用量 136
-rw-r--r--. 1 root root 136088 4月  25 15:45 services.gz  看压缩文件大小
-rw-r--r--. 1 root root 670293 6月   7 2013 /etc/services
[root@localhost test]# gzip -d services.gz 
[root@localhost test]# ls
services[root@localhost test]# gzip -9 services 
[root@localhost test]# ll ; ll /etc/services 
总用量 136
-rw-r--r--. 1 root root 135489 4月  25 15:45 services.gz  看压缩文件大小略微小了一点。
-rw-r--r--. 1 root root 670293 6月   7 2013 /etc/services

zgrep检索文件中的关键字

[root@localhost test]# zgrep -n 109/tcp  services.gz 
109:pop2            109/tcp         pop-2 postoffice        # POP version 2
503:kpop            1109/tcp                        # Pop with Kerberos
3774:ergolight       2109/tcp                # Ergolight
5693:personnel       3109/tcp                # Personnel protocol
7620:izm             4109/tcp                # Instantiated Zero-control Messaging
9022:globecast-id    6109/tcp                # GLOBECAST-ID
10437:sgi-dmfmgr      11109/tcp               # Data migration facility manager
10511:rets-ssl        12109/tcp               # RETS over SSL

bzip2

bzip2 [-cdkzv#] 文件名
-c 将压缩的数据输出到屏幕。
-d 解压缩的参数。
-k 保留原始文件夹。
-t 可以用来检验一个压缩文件的一致性,看文件有无错误。
-# #为数字,代表压缩等级,-1最快单压缩比最差,-9最慢压缩比更好。

演示一下:
[root@localhost test]# bzip2 services
[root@localhost test]# ll ; ll /etc/services
总用量 124
-rw-r–r–. 1 root root 123932 4月 25 15:45 services.bz2
-rw-r–r–. 1 root root 670293 6月 7 2013 /etc/services

[root@localhost test]# bzip2 -k -9 services
[root@localhost test]# ll ;ll /etc/services 保留了原始文件
总用量 780
-rw-r–r–. 1 root root 670293 4月 25 15:45 services
-rw-r–r–. 1 root root 123932 4月 25 15:45 services.bz2 没什么变化不要太在意
-rw-r–r–. 1 root root 670293 6月 7 2013 /etc/services

tar

tar [-z|-j] [cv] [-f 待创建的新文件名] filename
tar [-z|-j] [tv] [-f tar文件名] 
tar [-z|-j] [xv] [-f tar文件名] [-C(大写)  目录]-z: 通过gzip压缩/解压缩,名称后缀 xxx.tar.gz
-j: 通过bzip2压缩/解压缩,名称后缀 xxx.tar.bz2-c:创建打包文件。
-v:观察过程中的被打包的文件名。
-t:查看打包文件的内容含有哪些文件名。就是查看文件名
-x: 解打包和解压缩。-f filename: -f后面接要被处理的文件名。
-C 目录: 解压到那个目录。-P(大写):保留备份数据原本的权限属性。
-p(小写):保留绝对路径,即允许备份数据中含有跟路存在的意思。
--exclude=FILE: 在压缩过程中不讲文件打包。演示一下:
[root@localhost test]# tar zcf service.tar.gz services  压缩文件
[root@localhost test]# ll
总用量 792
-rw-r--r--. 1 root root 670293 4月  25 15:45 services
-rw-r--r--. 1 root root 136200 4月  25 16:16 service.tar.gz[root@localhost test]# tar jcf service.tar.bz2  services 
[root@localhost test]# ll
总用量 916
-rw-r--r--. 1 root root 670293 4月  25 15:45 services
-rw-r--r--. 1 root root 123933 4月  25 16:16 service.tar.bz2
-rw-r--r--. 1 root root 136200 4月  25 16:16 service.tar.gz[root@localhost test]# tar zxf service.tar.gz  -C /home  解压缩
[root@localhost test]# ll /home/ | grep service
-rw-r--r--. 1 root root    670293 4月  25 15:45 services

tar利用管线命令与数据流

[root@localhost mnt]# tar -zcvf - /etc | tar -zxf -
tar: 从成员名中删除开头的“/”
/etc/
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/resolv.conf
/etc/grub.d/
.............[root@localhost /]# du -sh *
0	bin
110M	boot
0	dev
35M	etc
.........
[root@localhost mnt]# du -sh *
35M	etc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/317447.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于H.264的RTP打包中的组合封包以及分片封包结构图简介及抓包分析;FU-A FU-B STAP-A STAP-B简介;

H.264视频流的RTP封装类型分析: 前言: 1.RTP打包原则: RTP的包长度必须要小于MTU(最大传输单元),IP协议中MTU的最大长度为1500字节。除去IP报头(20字节)、UDP报头(8字节)、RTP头&a…

ZISUOJ 高级语言程序设计实训-基础C(部分题)

说明&#xff1a; 有几个题是不会讲的&#xff0c;我只能保证大家拿保底分。 题目列表&#xff1a; 问题 A: 求平均数1 思路&#xff1a; 送分题…… 参考题解&#xff1a; #include <iostream> #include <iomanip> using std::cin; using std::cout;int main(…

Django后台项目开发实战二

我们的需求是开发职位管理系统 三个功能&#xff1a; 管理员发布职位候选人能浏览职位用户能投递职位 第二阶段 创建应用 jobs&#xff0c;实现职位数据的建模 python manage.py startapp jobs 然后再 setting .py 注册应用&#xff0c;只需添加应用名称到最后一行 INST…

git 的迁移

现象是gitlab经常会挂掉&#xff0c;linux会显示磁盘空间不足&#xff0c;实际上&#xff0c;我们linux某个目录的空间是4T。这个空间应该是足够的。猜测是gitlab的安装目录不对导致的空间不足。 1、查找原因 用rpm 安装gitlab会有自己的目录&#xff0c;很多安装文件会在opt…

【华为】华为防火墙双机热备

【华为】华为防火墙双机热备 实验需求实验拓扑配置FW5-M前骤单臂路由和VRRP划分防火墙基本区域部署HRP&#xff08;华为心跳协议&#xff09; FW6-B前骤单臂路由和VRRP划分防火墙基本区域部署HRP&#xff08;华为心跳协议&#xff09; LSW2PC NATSNAT &#xff1a;Easy IPDNAT&…

DSP实时分析平台设计方案:924-6U CPCI振动数据DSP实时分析平台

6U CPCI振动数据DSP实时分析平台 一、产品概述 基于CPCI结构完成40路AD输入&#xff0c;30路DA输出的信号处理平台&#xff0c;处理平台采用双DSPFPGA的结构&#xff0c;DSP采用TI公司新一代DSP TMS320C6678&#xff0c;FPGA采用Xilinx V5 5VLX110T-1FF1136芯片&#xff…

如何在Spring Boot中配置数据库密码加密

如何在Spring Boot中配置数据库密码加密&#xff1f; alibaba/druid Wiki GitHub 使用ConfigFilter alibaba/druid Wiki GitHub 巧用Druid数据源实现数据库连接密码的加密解密功能 import com.alibaba.druid.filter.config.ConfigTools;public class Testttt {public stat…

【IDEA】IDEA自带Maven/JDK,不需要下载

IDEA是由Java编写的&#xff0c;为了保证其运行&#xff0c;内部是自带JDK的。IDEA 2021 及 之后的版本是自带Maven的&#xff1a; 视频连接&#xff1a; https://www.bilibili.com/video/BV1Cs4y1b7JC?p4&spm_id_frompageDriver&vd_source5534adbd427e3b01c725714cd…

状态模式和策略模式对比

状态模式和策略模式都是行为型设计模式&#xff0c;它们的主要目标都是将变化的行为封装起来&#xff0c;使得程序更加灵活和可维护。之所以将状态模式和策略模式进行比较&#xff0c;主要是因为两个设计模式的类图相似度较高。但是&#xff0c;从状态模式和策略模式的应用场景…

Redisson分布式锁,重试锁和锁续命的原理

RedissonLock 锁重试原理 tryLock有三个三个参数&#xff0c;第一个是等待时间&#xff0c;第二个是锁失效后自动释放的时间,不填默认为-1&#xff0c;第三个是时间单位&#xff1b; 当设置了第一个参数&#xff0c;那这个锁就成了可重试锁&#xff1b;获取锁失败后&#xff0c…

大数据分析与内存计算学习笔记

一、Scala编程初级实践 1.计算级数&#xff1a; 请用脚本的方式编程计算并输出下列级数的前n项之和Sn&#xff0c;直到Sn刚好大于或等于q为止&#xff0c;其中q为大于0的整数&#xff0c;其值通过键盘输入。&#xff08;不使用脚本执行方式可写Java代码转换成Scala代码执行&a…

【R语言数据分析】数据类型与数据结构

R的数据类型有数值型num&#xff0c;字符型chr&#xff0c;逻辑型logi等等。 R最常处理的数据结构是&#xff1a;向量&#xff0c;数据框&#xff0c;矩阵&#xff0c;列表。 向量有数值型向量&#xff0c;字符型向量&#xff0c;逻辑型向量等&#xff0c;字符型向量就是反应…

普通屏幕已过时?裸眼3D屏幕显示效果更胜一筹!

随着多媒体技术的迅猛进步&#xff0c;我们日常生活中的内容展现方式&#xff0c;已经经历了前所未有的变革。在这其中&#xff0c;裸眼3D屏幕的应用&#xff0c;无疑是最为引人注目的亮点&#xff0c;它相较于传统屏幕&#xff0c;在显示效果上展现出了鲜明的优势&#xff0c;…

ComfyUI最新InsightFaceLoader节点无法安装的问题

最近更新一个工作流。里面有一些爆红节点&#xff0c;很正常的想到去Manager安装&#xff0c;于是乎开启Clash猫远程安装。装完了还是有一些报错&#xff0c;InsightFaceLoader也无法安装&#xff0c;很奇怪&#xff0c;很常用的节点啊。 一查是ComfyUI_IPAdapter_plus模块的。…

C#知识|汇总方法重载与静态方法应用技巧

哈喽&#xff0c;你好&#xff0c;我是雷工&#xff01; 今天学习C#方法重载与静态方法应用技巧的相关内容。 01 方法重载有什么好处&#xff1f; 1.1、可以有效的减少类的对外接口&#xff08;只显示一个方法比较简洁&#xff09;&#xff0c;从而降低类的复杂度。 1.2、方便…

java实现模板填充word,word转pdf,pdf转图片

Java实现Word转PDF及PDF转图片 在日常开发中&#xff0c;我们经常需要将文件操作&#xff0c;比如&#xff1a; 根据模板填充wordword文档中插入图片Word文档转换为PDF格式将PDF文件转换为图片。 这些转换可以帮助我们在不同的场景下展示或处理文档内容。下面&#xff0c;我将…

鹏哥C语言复习——字符函数与字符串函数

目录 一.字符函数 1.字符分类函数 2.字符转换函数 二.基础字符串函数 1.strlen函数 2.strcpy函数 3.strcat函数 4.strcmp函数 三.基础字符串函数优化 1.strncpy函数 2.strncat函数 3.strncmp函数 四.进阶字符串函数 1.strstr函数 2.strtok函数 3.strerror函数 一…

python实现的基于单向循环链表插入排序

相比于定义一个循环双向链表来实现插入排序来说&#xff0c;下面的实现采用一个单向循环链表来实现&#xff0c;并且不需要定义一个单向循环链表类&#xff0c;而是把一个list&#xff08;数组/顺序表&#xff09;当成单向循环链表来用&#xff0c;list的元素是一个包含两个元素…

Linux migrate_type初步探索

1、基础知识 我们都知道Linux内存组织管理结构架构&#xff0c;顶层是struct pglist_data&#xff0c;然后再到struct zone&#xff0c;最后是struct page。大概的管理结构是这样的&#xff1a; 根据物理内存的地址范围可划分不同的zone&#xff0c;每个zone里的内存由buddy…

赋能智慧校园!A3D数字孪生可视化,轻量又高效!

放假之后&#xff0c;学生们会逐步返学&#xff0c;大量人员出入校园&#xff0c;安全更是不容忽视&#xff0c;如何在短时间内对大批人员及设施进行智能监管&#xff1f;数字化转型是关键手段&#xff0c;我们可以融合线上线下数据&#xff0c;搭建3D立体的智慧校园&#xff0…