Centos的一些基础命令

发布于:2024-04-26 ⋅ 阅读:(29) ⋅ 点赞:(0)

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