Centos的一些基础命令

news2024/12/28 17:58:34

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot学习之Redis下载安装启动【Mac版本】(三十七)

一、下载Redis 1、下载地址:Downloads - Redis 往下滑,找到Downloads区域,这里有若干版本,这里我们选择了7.0的稳定版本 2、我们下载的是redis-7.0.15.tar.gz,这是一个压缩包,我们双击解压这个压缩包,可以得到如下文件 二、安装Redis 1、我们进入redis根目录安装mak…

Orange3数据可视化(树查看器-决策树)

树视图 分类和回归树的可视化。 输入 树:决策树 输出 选中的数据:从树节点中选中的实例 数据:带有额外一列,显示每个点是否被选中 这是一个多功能的小部件,用于展示分类和回归树的2D可视化。用户可以选择一个节点…

jvm知识点总结(二)

Java8默认使用的垃圾收集器是什么? Java8版本的Hotspot JVM,默认情况下使用的是并行垃圾收集器(Parallel GC) 如果CPU使用率飙升,如何排查? 1.先通过top定位到消耗最高的进程id 2.执行top -h pid单独监控该进程 3.在2中输入H&#xff…

Laravel 6 - 第十八章 模型

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

SN75107BDR 总线接收器 中文资料_PDF中文资料_参数_引脚图

SN75107BDR 规格信息: 制造商:Texas Instruments 产品种类:总线接收器 RoHS:是 接收机数量:2 Receiver 接收机信号类型:Differential 电源电压-最小:/- 4.75 V 电源电压-最大:/- 5.25 V 工作电源电流:30 mA 最小工作温度:0 C 最大工作温度: 70 C 封装 / 箱…

Honor of Kings PC Simulator S35

Honor of Kings PC Simulator S35 [王者荣耀PC模拟器S35] 1)卡顿,延迟高 2)技能方向控制麻烦 3)技能释放位置麻烦 4)方向控制麻烦 2024-04-26 04-00-16-Honor of Kings PC Simulator S35 [王者荣耀PC模拟器S35]_哔…

小白学习SpringCloud之Eureka

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

Pytorch迁移学习训练病变分类模型

划分数据集 1.创建训练集文件夹和测试集文件夹 # 创建 train 文件夹 os.mkdir(os.path.join(dataset_path, train))# 创建 test 文件夹 os.mkdir(os.path.join(dataset_path, val))# 在 train 和 test 文件夹中创建各类别子文件夹 for Retinopathy in classes:os.mkdir(os.pa…

【STM32 IIC通信与温湿度传感器AHT20(I2C_AHT20)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 最终效果展示AHT20温湿度传感器(I2C_AHT20) 1、工程配置2、代码如果您发现文章有错误请与我留言,感谢 最终效果展示 详细讲解视频…

Vivado-IP-DDS and Testbench Learning

DDS内部结构 实现流程 首先新建一个工程,创建bd文件,添加DDS Compiler核,此处不多赘述 Block Design 在观测输出的信号时,需要将最高位符号位的信号取反,这样才能输出正弦波,否则输出的波形如下图所示 将t…

深度学习--RNN循环神经网络和LSTM

RNN RNN简介 我们来看一看百度百科给的解释 下面是循环神经网络的一部分 黑色直线代表权重,a1,a2代表存储单元,黄色框框代表输入,曲线是激活函数 RNN常用领域 语言建模(Language Modeling):…

视频抽帧转图片,opencv和ffmpeg效果测评

最近在做一个项目,需要从视频中抽帧转图片,于是对opencv和ffmpeg效果进行了测评。 文章目录 1. open cv2. ffmpeg3.抽帧效果对比 1. open cv open cv 视频抽图片的教程,推荐以下链接,抽的帧数可以自行调节! 用pythono…

重磅!!!监控分布式NVIDIA-GPU状态

简介:Uptime Kuma是一个易于使用的自托管监控工具,它的界面干净简洁,部署和使用都非常方便,用来监控GPU是否在占用,非常美观。 历史攻略: docker应用:搭建uptime-kuma监控站点 win下持续观察…

windows11编译3dslicer_问题总结

编译前准备 CMake:版本>3.16.3(避免使用3.21.0,3.25.0-3.25.2,这些版本,可能会出现build错误)。Git:版本>1.7.10,安装完git,一定要在cmd里面试一试,是…

DRF学习之三大认证

一、认证 1、自定义认证 在前面说的 APIView 中封装了三大认证,分别为认证、权限、频率。认证即登录认证,权限表示该用户是否有权限访问接口,频率表示用户指定时间内能访问接口的次数。整个请求最开始的也是认证。 (1&#xff…

pytest测试基础

assert 验证关键字 需要pahton版本大于3.6,因为有个工具pip3;因为做了映射,所以下面命令pip3即pip pip install -U pytest -U参数可选,是如果已安装可更新。 如果上述demo变化 通过验证代码,测试环境没问题。…

Aigtek:介电弹性体高压放大器在软体机器人研究中的应用

近年来软体机器人的研究成为目前机器人研究领域的热点,由于软体材料的自由度可以根据需求自由变化,因此软体机器人有着极高的灵活性,而且软体机器人因其材料的柔软性有着很好的人机交互性能和安全性。它的出现成功解决了传统的刚性机器人人机…

嵌入式学习62-C++

知识零碎: 构造函数 在执行过程中的三个过程 ←(背) 1.传参:实参向形参传…

Hikyuu-tips-如何使用自定义的 host

Hikyuu 下载数据依赖于 pytdx,如何修改确定的通达信行情服务器的地址,可以参考:如何修改 pytdx 中对应的通达信 IP 地址_通达信行情主站地址-CSDN博客 上面需要去修改 pytdx 中的 hosts.py,但 pytdx 实际是一个 python 的软件包&…

51单片机中断和定时的结合应用

#include <reg52.h>unsigned int cnt 0;sbit led P1^1;// 初始化定时器 void TimerSetup(){TMOD 0x01; // 定时器的第1个模式TH0 0xB8; // 定时器的初始值-高位TL0 0x00; // 定时器的初始值-低位TR0 1; //启动定时器cnt 0;EA 1; // 开启总中断ET0 1; // 时间中断…