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]# ls
  cni  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/test2
 lrwxrwxrwx. 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 test2

d          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-x
 7   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/
└── test3

1 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Apache Doris 2.x 版本【保姆级】安装+使用教程

Doris简介 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于…

COOIS 生产订单显示系统增强

需求说明:订单系统显示页面新增批量打印功能 增强点:CL_COIS_DISP_LIST_NAVIGATION -->TOOLBAR方法中新增隐式增强添加自定义打印按钮 增强点:BADI-->WORKORDER_INFOSYSTEM新增增强实施 实现位置:IF_EX_WORKORDER_INFOSYS…

频裂变加群推广强制分享引流源码

视频裂变加群推广强制分享引流源码,用户达到观看次数后需要分享给好友或者群,好友必须点击推广链接后才会增加观看次数。 引导用户转发QV分享,达到快速裂变引流的效果! 视频裂变推广程序,强制分享链接,引导用户转发,…

数据库MySQL的初级基础操作

文章目录 1. 介绍2. 数据库相关概念3. 启动4. 数据模型5. SQL6. DDL数据库DDL-表操作DDL-表操作-数据类型DDL-表操作-修改DDL-表操作-删除 7. 图形化界面工具DataGrip8. DML(数据操作语言)DML-添加数据DML-修改数据 9. DQL(数据查询语言)基本查询条件查询…

MemFire案例-政务应急物联网实时监测预警项目

客户背景 党的十八大以来,中央多次就应急管理工作做出重要指示:要求坚持以防为主、防抗救相结合,全面提升综合防灾能力;坚持生命至上、安全第一,完善安全生产责任制,坚决遏制重特大安全事故。 面对新形势…

小白学习SpringCloud之Eureka

前言 需要搭建springcloud项目,eureka是其中的一个模块,依赖主要继承父依赖 学习视频:b站狂神说 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comEureka入门案例 eureka…

Maven的仓库、周期和插件

一、简介 随着各公司的Java项目入库方式由老的Ant改为Maven后,相信大家对Maven已经有了个基本的熟悉。但是在实际的使用、入库过程中,笔者发现挺多人对Maven的一些基本知识还缺乏了解,因此在此处跟大家简单地聊下Maven的相关内容&#xff0c…

如何把经验变成可以销售的“知识产品”?

知识付费,很多人想做,但是不知道如何把自己在某方面的“经验”,变成一个“知识产品”,那么这篇文章,我们就来聊聊如何从0打造一个知识产品 非常简单,一共六个步骤: 第一步:取名字&…

【深度学习】StabelDiffusion,Lora训练过程,秋叶包,Linux,SDXL Lora训练

文章目录 一、环境搭建指南二、个性化安装流程三、启动应用四、打开web五、开始训练 19.27服务器 一、环境搭建指南 打造一个高效且友好的开发环境,我们推荐使用以下简洁明了的中文资源: 项目源码获取: 通过以下命令轻松克隆项目及所有子模…

(一)Dataframes安装与类型 #Julia数据分析 #CDA学习打卡

目录 一. Julia简介 二. Dataframe构造方法 1)访问列的方式 (a)判断严格相等 i. 切片严格相等是true ii. 复制严格相等是false (b)判断相等 i. 切片相等是true ii. 复制相等是true 2)获取列名称 …

【Camera KMD ISP SubSystem笔记】CAM SYNC与DRQ③

DRQ什么时候调度Node去填写dependency ::Pipeline调度Node的sequenceId 0执行 Pipeline::ProcessRequest() { for (UINT nodeIndex 0; nodeIndex < m_orderedNodeCount ; nodeIndex) m_pDeferredRequestQueue->AddDef…

ROM修改进阶教程------如何去除安卓机型系统的开机向导 几种操作步骤解析

在和很多工作室定制化系统中。手机在第一次启动的时候系统都会进入设置向导,虽然可以设置手机的基本配置。但有很多客户需要去除手机的开机向导来缩短开机时间。确保手机直接进入工作状态。那么今天的教程针去除对开机向导的几种方法做个解析。机型很多版本不同。操作也有不同…

JS实现对用户名、密码进行正则表达式判断,网页跳转

目标&#xff1a;使用JS实现对用户名和密码进行正则表达式判断&#xff0c;用户名和密码正确时&#xff0c;进行网页跳转。 用户名、密码的正则表达式检验 HTML代码&#xff1a; <button type"submit" id"login-btn" /*onclick"login();alidate…

四川易点慧电子商务:抖音小店引领潮流,先进模式打造电商新标杆

在当下数字化浪潮中&#xff0c;电子商务行业如日中天&#xff0c;四川易点慧电子商务有限公司以其独特的视角和前瞻性的战略布局&#xff0c;成功在抖音小店领域崭露头角&#xff0c;成为行业内的佼佼者。本文将深入剖析四川易点慧电子商务的成功秘诀&#xff0c;以及其在抖音…

【openLooKeng-1.10.0集群环境安装部署】

openLooKeng-1.10.0集群环境安装部署 一、摘要二、正文1. 环境说明2. 集群拓扑图3. 安装过程(以root用户安装)3.1 在Coordinator和Worker两个节点都需要安装jdk1.8+3.2 在Coordinator上安装配置openLooKeng3.3 在Worker节点上进行配置openLooKeng3.4 在Coordinator节点上先启…

Spring Boot集成Redisson实现延迟队列

项目场景&#xff1a; 在电商、支付等领域&#xff0c;往往会有这样的场景&#xff0c;用户下单后放弃支付了&#xff0c;那这笔订单会在指定的时间段后进行关闭操作&#xff0c;细心的你一定发现了像某宝、某东都有这样的逻辑&#xff0c;而且时间很准确&#xff0c;误差在1s内…

OceanBase单机版安装体验

前情提要 上周OceanBase开发者大会过后&#xff0c;作为观察员也来体验一下OB的安装。业内有某个国产安装用了两周&#xff0c;这种其实有点劝退了。话说就是10年前&#xff0c;没搞过Oracle的人也不用两周安装一个数据库啊。今天看看OB的&#xff08;一体化&#xff09;安装。…

【震撼揭秘】Sentinel:一文读懂,那些让开发者“拍案叫绝”的核心特性!

关注微信公众号 “程序员小胖” 每日技术干货&#xff0c;第一时间送达&#xff01; 引言 在微服务架构中&#xff0c;流量治理是确保系统稳定性和高可用性的关键。Sentinel作为一项强大的流量控制组件&#xff0c;为我们提供了完善的解决方案。本文将带您走进Sentinel的世界…

第11章 Android特色开发——基于位置的服务

第11章 Android特色开发——基于位置的服务 本章中&#xff0c;将要学习一些全新的Android技术&#xff0c;这些技术有别于传统的PC或Web领域的应用技术&#xff0c;是只有在移动设备上才能实现的。 基于位置的服务&#xff08;Location Based Service&#xff09;。由于移动…

vue2实现字节流byte[]数组的图片预览

项目使用vantui框架&#xff0c;后端返回图片的字节流byte[]数组&#xff0c;在移动端实现预览&#xff0c;实现代码如下&#xff1a; <template><!-- 附件预览 --><div class"file-preview-wrap"><van-overlay :show"show"><…