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.mzph.cn/bicheng/3468.shtml

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

相关文章

sqlplus / as sysdba登陆失败,(ORA-01017)

周一上班检查alert log,看到某个库报出大量的错误 提示无法连接到ASM实例,这是某知名MES厂商DBA创建的11G RAC刚刚​转交到我手上的,这又是给我挖了什么坑? 报错为ORA-01017​用户名密码不对?​what? 登陆o…

大语言模型在研究领域的应用——信息检索中的大语言模型

信息检索中的大语言模型 大语言模型提升信息检索任务利用大语言模型进行信息检索大语言模型增强的信息检索模型.检索增强的大语言模型输入优化策略.指令微调策略.预训练策略.总结应用建议未来方向大语言模型对于传统信息检索技术与应用范式带来了重要影响。这两者在技术路径上具…

在Mac M1笔记本上跑大语言模型llama3的4个步骤?(install、pull、run、ask)

要点 Ollama一个功能强大的本地大语言模型LLM运行工具,支持很多模型,并且操作极其简单快速回忆步骤: 下载ollama工具:https://ollama.com/download 下载模型:ollama pull llama3 #根据libs列表直接指定名字 运行模型…

卡巴斯基plus(kaspersky plus) 21.16主界面出不来

请选择下载x86版本的dotnet 6.0 x86版本的dotnet 6.0 https://download.visualstudio.microsoft.com/download/pr/4aded178-a52a-4fcc-a779-59bb444df048/67924e3556a3a69da09528bd74dca9ef/dotnet-sdk-6.0.421-win-x86.exe

企业微信hook接口协议,ipad协议http,发送大视频文件

发送大视频文件 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信send_userid是long要发送的人或群idisRoom是bool是否是群消息 请求示例 {"uuid":"1688853790xxx", //uuid 默认随机生成如果初始化传了id则用初始…

软考-论文写作-论架构风格论文

题目 素材 框架 一、 摘要 2020年12月,我参加了某省政协委员履职系统的开发。该系统为政协机关人员线上开展各项工作以及委员完成各项履职提供了全方位的软件支撑。我在该项目重担任系统架构师一职,负责履职系统的架构设计。本文结合实践,以委员履职系统为例,主要讨论软件…

12.6.1 实验5:IOS恢复

1、实验目的 通过本实验可以掌握: copy方式恢复IOS的步骤。TFTPDNLD方式恢复IOS的步骤。Xmodem方式恢复IOS的步骤。 2、实验拓扑 路由器IOS恢复的实验拓扑如下图所示。 3、实验步骤 如果工作中不慎误删除路由器IOS,或者升级了错误版本的IOS&#xff…

请编写一个函数void fun(char*ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

制作一个RISC-V的操作系统十三-抢占式多任务和兼容协作式多任务

文章目录 强占式多任务流程代码具体流程兼容协作式多任务(软中断)寄存器 msip流程代码结果 强占式多任务 流程 抢占式多任务由计时器中断触发,最后在处理程序中切换到下一个进程 代码具体流程 上下文中增加pc寄存器 寄存器保留上下文和切…

数据挖掘实验一

一、实验环境及背景 使用软件: Anaconda3 Jupyter Notebook 实验内容: 1.使用Tushare或者其他手段获取任意两支股票近三个月的交易数据。做出收盘价的变动图像。2.使用Pandas_datareader获取世界银行数据库中美国(USA)、瑞典&…

【中级软件设计师】上午题12-软件工程(2):单元测试、黑盒测试、白盒测试、软件运行与维护

【中级软件设计师】上午题12-软件工程(2) 1 系统测试1.1 单元测试1.2 集成测试1.2.1 自顶向下1.2.2 自顶向上1.2.3 回归测试 2 测试方法2.1 黑盒测试2.1.1 McCabe度量法 2.2 白盒测试2.2.1 语句覆盖-“每个流程”执行一次2.2.2 判定覆盖2.2.3 条件覆盖-A…

vue+springboot项目的登录验证码(JAVA自带)

后台springboot CaptureController package com.example.controller;import com.example.common.Result; import com.example.service.AuthCodeService; import com.example.utils.CodeUtils; import lombok.SneakyThrows; import org.apache.ibatis.annotations.Param; impo…

Java openrasp记录-01

例子1 https://github.com/anbai-inc/javaweb-expression 一个hook ognl、spel、MVEL表达式注入的例子 用的是asm5进行字节码修改 采用premain进行插桩,重写transform方法 expClassList是要hook的类,这里定义在MethodHookDesc 这里判断hook点通过类名…

Java并发编程:ThreadPoolExecutor详细源码解析与应用

Thread直接创建线程的弊端 在开始解析ThreadPoolExecutor类之前,让我们先来了解直接创建线程所带来的弊端。在Java中,线程是资源密集型对象,每当需要并发执行任务时,直接创建新线程会带来以下问题: 资源消耗 每个线…

贪吃蛇身子改进加贪吃蛇向右移动

1. 蛇移动的思想: 其实就是删除头节点 ,增加尾节点;一句代码搞定 struct Snake *p; p head; head head -> next; free(p) 防止造成多的空间节点 2.增加尾节点代码思想: 2.1 .开辟new 节点的空间 struct Snake *new (stru…

解决Android studio更换sdk地址后flutter项目显示no device selected

问题描述 因为之前sdk的路径在c盘上,经常在更新或下在sdk后c盘饱满,于是就更换了sdk的路径,更换sdk路径后就导致flutter项目在选择设备的时候出现no device selected 找不到设备,但是在device Manager可以看到物理设备或者是虚拟…

Java设计模式:使用责任链模式和状态模式优化‘审批流程‘

Java设计模式:使用责任链模式和状态模式优化审批流程 摘要引言 需求流程图正文内容📐 基本概念介绍 功能实现示例1:设计模式:责任链模式方法:好处: 示例2:设计模式:责任链模式方法和操作流程:好…

【canvas】前端创造的图片粒子动画效果:HTML5 Canvas 技术详解

前端创造的图片粒子动画效果:HTML5 Canvas 技术详解 我们将深入探讨如何通过 HTML5 的 Canvas 功能,将上传的图片转换成引人入胜的粒子动画效果。这种效果将图片分解成小粒子,并在用户与它们交互时产生动态变化。我们将分步骤详细解析代码&a…

EasyRecovery数据恢复软件2025永久免费电脑版下载

EasyRecovery数据恢复软件是一款业界知名的数据恢复工具,它凭借强大的恢复能力和广泛的数据兼容性,帮助用户从各种存储设备中恢复丢失或删除的数据。以下是关于EasyRecovery数据恢复软件的详细介绍。 EasyRecovery绿色破解下载网盘链接: https://pan.ba…

自动驾驶行业源代码防泄漏解决方案

行业背景: 随着新一代信息通信及人工智能技术的快速发展,汽车作为这些新技术应用的重要载体,正在加速向智能化和网联化转型,以自动驾驶研发为主业的企业也越来越多,如何保障自己研发的算法、模型、系统不被研发人员离…