Linux基础(二)

目录


通配符的使用:

*: 匹配任意长度的任意字符:

[root@sh ~]# ls
a  ab  ad  ae  af  ah  anaconda-ks.cfg  ascde  asde  bdeg  besa  ca  cd  ce
[root@sh ~]# ls a*
a  ab  ad  ae  af  ah  anaconda-ks.cfg  ascde  asde

?: 匹配任意单个字符:

[root@sh ~]# ls
a  ab  ad  ae  af  ah  anaconda-ks.cfg  ascde  asde  bdeg  besa  ca  cd  ce
[root@sh ~]# ls a?
ab  ad  ae  af  ah

[ ]: 匹配指定范围内的任意单个字符:

[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# ls [1-8]
1  2  3  4  5  6  7  8

[^]:匹配指定范围之外的任意单个字符:

[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# ls [^5]
1  2  3  4  6  7  8  9

压缩,归档工具的使用:

常见的归档,压缩文件格式:[gz] [bz2] [xz] [zip] [Z]

压缩工具之zip:

使用格式:gzip [option] [file]

压缩完成会删除原文件

[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# gzip 1
[root@sh ~]# ls
1.gz  2  3  4  5  6  7  8  9  anaconda-ks.cfg

压缩工具之zip:

[option ] :

-d :解压缩,解压缩完成后会删除原文件

[root@sh ~]# ls
1.gz  2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# gzip -d 1.gz 
[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  anaconda-ks.cfg

压缩工具之bzip2:

使用格式:bzip2 [option] [file]

压缩完成会删除原文件

【biz2包需要配置yum源仓库后自行安装】

[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# bzip2 2
[root@sh ~]# ls
1  2.bz2  3  4  5  6  7  8  9  anaconda-ks.cfg

压缩工具之bzip2:

[option] :

-k :压缩完成保留原文件 -d :解压缩完成后删除原文件

[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# bzip2 2
[root@sh ~]# ls
1  2.bz2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# bzip2 -k 3
[root@sh ~]# ls
1  2.bz2  3  3.bz2  4  5  6  7  8  9  anaconda-ks.cfg

压缩工具之xz:

使用格式:xz [option] [file]

压缩完成会删除原文件

[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  anaconda-ks.cfg
[root@sh ~]# xz 2
[root@sh ~]# ls
1  2.xz  3  4  5  6  7  8  9  anaconda-ks.cfg

压缩工具之xz:
[option] :

-k :压缩完成保存原文件

-d :解压缩完成后删除原文件

压缩工具之zip:

使用格式:

1.压缩文件使用:{zip filename.zip file1 file2 …}

2.压缩目录使用:{zip filename.zip DIR/*}

【zip压缩工具及unzip解压工具需要配置yum源仓库自行安装】

[root@sh ~]# ls
1  2  3  4  5  6  7  8  9  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# zip 123.zip 1
  adding: 1 (stored 0%)
[root@sh ~]# zip 345.zip A
  adding: A/ (stored 0%)
[root@sh ~]# ls
1  123.zip  2  3  345.zip  4  5  6  7  8  9  A  anaconda-ks.cfg  B  C  D

解压缩工具之unzip:只用于解压缩zip格式的压缩格式

[root@sh ~]# ls
123.zip  345.zip  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# unzip 123.zip 
Archive:  123.zip
 extracting: 1                       
[root@sh ~]# ls
1  123.zip  345.zip  A  anaconda-ks.cfg  B  C  D

压缩工具之compress:

使用格式:compress [file]

【压缩完成后不会保留原文件】[压缩共需要安装yum源仓库自行安装]

[root@sh ~]# 
[root@sh ~]# ls
1  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# compress anaconda-ks.cfg 
[root@sh ~]# ls
1  A  anaconda-ks.cfg.Z  B  C  D

解压缩工具之uncompress:

只用于解压缩compress的压缩格式

[root@sh ~]# ls
1  A  anaconda-ks.cfg.Z  B  C  D
[root@sh ~]# uncompress anaconda-ks.cfg.Z 
[root@sh ~]# ls
1  A  anaconda-ks.cfg  B  C  D

归档工具tar的使用

使用格式:tar [option] [file]

归档工具tar:[option]:

-c:创建归档文件

-f file.tar:指定要操作的归档文件

-x:还原归档

-v:显示归档过程

-p:归档时保留权限信息。只有管理员才有权限用此选项

-C:指定还原归档或解压时的目标目录

-tf:不展开归档,直接查看归档了哪些文件

归档工具tar:常见的组合项:

-zcf file.tar.gz:归档并调用gzip进行压缩

-jcf file.tar.bz2:归档并调用bzip2进行压缩

-Jcf file.tar.xz:归档并调用xz进行压缩

xf file.tar.gz|file.tar.bz2|file.tar.xz:还原归档并自动根据压缩方式调用相应的工具解压

实验tar操作之用gzip方式压缩并解压缩

【压缩和解压缩时不会删除原文件】

[root@sh ~]# ls
1  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# tar -zcf 123.tar.zip anaconda-ks.cfg 
[root@sh ~]# ls
1  123.tar.zip  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# rm -rf anaconda-ks.cfg 
[root@sh ~]# ls
1  123.tar.zip  A  B  C  D
[root@sh ~]# tar -xf 123.tar.zip 
[root@sh ~]# ls
1  123.tar.zip  A  anaconda-ks.cfg  B  C  D

实验tar操作之用bzip2方式压缩并解压缩

【压缩和解压缩时不会删除原文件】

[root@sh ~]# ls
1  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# tar -jcf 345.tar.bz2 anaconda-ks.cfg 
[root@sh ~]# ls
1  345.tar.bz2  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# rm -rf anaconda-ks.cfg 
[root@sh ~]# ls
1  345.tar.bz2  A  B  C  D
[root@sh ~]# tar -xf 345.tar.bz2 
[root@sh ~]# ls
1  345.tar.bz2  A  anaconda-ks.cfg  B  C  D

实验tar操作之用xz方式压缩并解压缩

【压缩和解压缩时不会删除原文件】

[root@sh ~]# ls
1  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# tar -Jcf 456.tar.xz anaconda-ks.cfg 
[root@sh ~]# ls
1  456.tar.xz  A  anaconda-ks.cfg  B  C  D
[root@sh ~]# rm -rf anaconda-ks.cfg 
[root@sh ~]# ls
1  456.tar.xz  A  B  C  D
[root@sh ~]# tar -xf 456.tar.xz 
[root@sh ~]# ls
1  456.tar.xz  A  anaconda-ks.cfg  B  C  D

文本排序命令sort

使用格式:

sort [option] [file]

常用的option:

-n:以数值大小进行排序

-r:逆序排序

-t:字段分隔符

-k:以哪个字段为关键字进行排序

-u:去重,排序后相同的行只显示一次

-f:排序时忽略字符大小写

实验操作【-n】

[root@sh ~]# cat a
1
3
4
5
a
C
[root@sh ~]# sort -n a
a
C
1
3
4
5

实验操作【-r】

[root@sh ~]# cat a
1
3
4
5
a
C
[root@sh ~]# sort -r a
C
a
5
4
3
1

实验操作【-u】

[root@sh ~]# cat a
1
3
4
5
a
1
3
C
a

[root@sh ~]# sort -u a

1
3
4
5
a
C

实验操作【-t】

[root@sh ~]# cat a
adacaeavadfgaeve
19238127819786
[root@sh ~]# sort -t 1 a
19238127819786
adacaeavadfgaeve

实验操作【-k】

[root@sh ~]# cat a
adacaeavadfgaeve
19238127819786
asdebbasexx
bbbbbb
123123123
vzsd
[root@sh ~]# sort -k 1 a
123123123
19238127819786
adacaeavadfgaeve
asdebbasexx
bbbbbb
vzsd

文件去重命令uniq

【-f默认就带有】

使用格式:uniq [option] [input[ouput]]

常用的OPTION:

-c:显示文件中行重复的次数

-d:只显示重复的行

-u:只显示未重复的行

实验操作【-c】

[root@sh ~]# uniq -c a
      2 1
      2 2
      2 3
      2 4
[root@sh ~]# cat a
1
1
2
2
3
3
4
4

实验操作【-d】

[root@sh ~]# cat a
1
1
2
2
3
3
4
4
[root@sh ~]# uniq -d a
1
2
3
4

实验操作【-u】

[root@sh ~]# cat a
1
1
2
2
3
3
4
4
[root@sh ~]# uniq -d a
1
2
3
4

基础命令之cut

使用格式:cut option [file]

常用的OPTION:

-d:指定字段分隔符,默认是空格

-f:指定要显示的字段

-f 1,3:显示1和3字段

-f 1-3:显示1到3字段

实验操作【[-d] [-f1,3]】

[root@sh ~]# cut -d : -f 1,3 /etc/passwd
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
operator:11
games:12
ftp:14
nobody:99
systemd-network:192
dbus:81
polkitd:999
postfix:89
chrony:998
sshd:74

实验操作【[-d] [1-3]】

[root@sh ~]# cut -d : -f 1-3 /etc/passwd
root:x:0
bin:x:1
daemon:x:2
adm:x:3
lp:x:4
sync:x:5
shutdown:x:6
halt:x:7
mail:x:8
operator:x:11
games:x:12
ftp:x:14
nobody:x:99
systemd-network:x:192
dbus:x:81
polkitd:x:999
postfix:x:89
chrony:x:998
sshd:x:74

高级命令之awk

使用格式 awk option: ‘{print $n}’ file

实验操作

[root@sh ~]# awk -F: '{ print $1 }' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
postfix
chrony
sshd

高级命令之sed

使用格式:sed -i ‘s/[ ]/[ ]/n’ [file]

【n为数字时取数字之后的修改,n为g时为全文本修改】

实验操作【n为数字时】

[root@sh ~]# cat a
11 22 33 11
22 11 33 22
33 22 11 33
[root@sh ~]# sed -i 's/11/22/2' a
[root@sh ~]# cat a
11 22 33 22
22 11 33 22
33 22 11 33

实验操作【n为g时】

[root@sh ~]# cat a
11 22 33 22
22 11 33 22
33 22 11 33
[root@sh ~]# sed -i 's/11/22/g' a
[root@sh ~]# cat a
22 22 33 22
22 22 33 22
33 22 22 33

文件命名规范

长度不能超过255字符

不能使用/为文件名

严格区分大小写

文本过滤命令grep

grep命令根据正则表达式搜索文本,并将符合正则表达式的文本显示出来。

默认使用基本正则表达式来过滤文本

使用格式:grep [option] pattern [file]

常用的OPTION:

-i:忽略大小写

–color:匹配到的内容高亮显示

-v:显示没有被正则表达式匹配到的内容

-o:只显示被正则表达式匹配到的内容

-E:使用扩展正则表达式

-q:静默模式,不输出任何信息

-A #:此处的#必须是数字。被正则匹配到的内容以及其后面#行的内容都显示出来

-B #:此处的#必须是数字。被正则匹配到的内容以及其前面#行的内容都显示出来

-C #:此处的#必须是数字。被正则匹配到的内容及其前后各#行的内容都显示出来

实验操作【-i】

[root@sh ~]# cat a
aaa bbb ccc
AAA
BBB
DDD
eee
[root@sh ~]# grep -i a a
aaa bbb ccc
AAA

实验操作【-v】

[root@sh ~]# cat a 
aaa bbb ccc
AAA
BBB
DDD
eee
[root@sh ~]# grep -v 'a'  a
AAA
BBB
DDD
eee

实验操作【-E】

[root@sh ~]# cat a
aaa bbb ccc
AAA
BBB
DDD
eee
[root@sh ~]# grep -E 'a|b' a
aaa bbb ccc

实验操作【-q】

【-q不会显示任何信息,可以用echo $来判断指令是否正确】

[root@sh ~]# cat a
aaa bbb ccc
AAA
BBB
DDD
eee
[root@sh ~]# grep -q 'a' a
[root@sh ~]# echo $?
0

实验操作【-A】

[root@sh ~]# cat a
aaa bbb ccc
AAA
BBB
DDD
eee
[root@sh ~]# grep -A2 'B' a
BBB
DDD
eee

实验操作【-B】

[root@sh ~]# cat a
aaa bbb ccc
AAA
BBB
DDD
eee
[root@sh ~]# grep -B2 'B' a
aaa bbb ccc
AAA
BBB

实验操作【-C】

[root@sh ~]# cat a
aaa bbb ccc
AAA
BBB
DDD
eee
[root@sh ~]# grep -C2 'B' a
aaa bbb ccc
AAA
BBB
DDD
eee

实验操作【-o】

[root@sh ~]# cat a
aaa bbb ccc
AAA
BBB
DDD
eee
b
b
[root@sh ~]# grep -o 'b' a
b
b
b
b
b

文件查找命令find

使用格式 :find [option]…查找路径 查找标准,处理动作

查找路径:默认为当前目录

查找标准:

-name filename:对文件名精确匹配,支持通配符

-iname filename:文件名匹配时不区分大小写

-regex pattern:基于正则表达式进行文件名匹配

-user:查找某用户的所有文件

-group:查找某组的所有文件

-uid:根据UID进行查找

-gid:根据GID进行查找

-nouser:查找没有拥有者的文件

-nogroup:查找没有属组的文件

-type:根据文件类型进行查找

实验操作【-name filename】

[root@sh ~]# find -name a
./a

实验操作【-iname filename】
[root@sh ~]# ls
a  A  anaconda-ks.cfg  b  B  c  d  D
[root@sh ~]# find -iname b
./B
./b

实验操作【-user】

[root@sh ~]# find / -user shihao
/var/spool/mail/shihao
/home/shihao
/home/shihao/.bash_logout
/home/shihao/.bash_profile
/home/shihao/.bashrc

实验操作【-group】

[root@sh ~]# find / -group shihao
/home/shihao
/home/shihao/.bash_logout
/home/shihao/.bash_profile
/home/shihao/.bashrc

实验操作【-uid】

[root@sh ~]# find / -uid 1001
/var/spool/mail/shihao
/home/shihao
/home/shihao/.bash_logout
/home/shihao/.bash_profile
/home/shihao/.bashrc

实验操作【-gid】

[root@sh ~]# find / -gid 1001
/home/shihao
/home/shihao/.bash_logout
/home/shihao/.bash_profile
/home/shihao/.bashrc

实验操作【-type】

[root@sh ~]# find . -type f 
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./.bash_history
./anaconda-ks.cfg
./A
./B
./b
./c
./D
./d
./a

查找标准(续):

-size:根据文件大小进行查找。
如1k、1M、+10k、+10M、-1k、-10M +表示大于,-表示小于

-mtime:根据修改时间查找

+5:表示查找5天以前修改的文件

-5:表示查找5天以内修改的文件

-atime:根据访问时间查找

-ctime:根据改变时间查找

-perm mode:根据权限精确查找

-perm –mode:文件权限能完全包含此mode时才符合条件

-perm /mode:9位权限中有任何一位权限匹配都视为符合查找条件

实验操作【-size】

[root@sh ~]# ll -h
总用量 12K
-rw-r--r--. 1 root root   95 5月  24 22:31 a
-rw-------. 1 root root 1.5K 5月  22 17:11 anaconda-ks.cfg
-rw-r--r--. 1 root root  928 5月  24 22:31 passwd
[root@sh ~]# find -size +1k
./anaconda-ks.cfg

实验操作【-mtime】

[root@sh ~]# find -mtime +1
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./anaconda-ks.cfg
[root@sh ~]# find -mtime -1
.
./a
./passwd

实验操作【-atime】

[root@sh ~]# find -atime -1
.
./.bash_history
./anaconda-ks.cfg
./a
./passwd
[root@sh ~]# find -atime +1
./.bash_logout
./.cshrc
./.tcshrc

实验操作【-ctime】

[root@sh ~]# find -ctime +1
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
[root@sh ~]# find -ctime -1
.
./anaconda-ks.cfg
./a
./passwd

处理动作:默认动作是显示到屏幕上

-print:打印到屏幕上

-ls:类似ls –l的形式显示每一个文件的详细信息

-delete:删除查找到的文件

-fls /path/to/somefile:将查找到的所有文件的长格式信息保存至指定文件中

-ok COMMAND {} ;:对查找到的所有文件执行COMMAND,每次操作都需要用户确认

-exec COMMAND {};:对查找到的所有文件执行COMMAND,操作不需要确认

-xargs:通过管道将查找到的内容给xargs处理,xargs后面直接跟命令即可

实验操作 【-ls】

[root@sh ~]# find . -type f -ls
33850697    4 -rw-r--r--   1 root     root           18 12月 29  2013 ./.bash_logout
33850698    4 -rw-r--r--   1 root     root          176 12月 29  2013 ./.bash_profile
33850699    4 -rw-r--r--   1 root     root          176 12月 29  2013 ./.bashrc
33850700    4 -rw-r--r--   1 root     root          100 12月 29  2013 ./.cshrc
33850701    4 -rw-r--r--   1 root     root          129 12月 29  2013 ./.tcshrc
33587822    4 -rw-------   1 root     root           23 5月 23 03:26 ./.bash_history
33574992    4 -rw-------   1 root     root         1451 5月 22 17:11 ./anaconda-ks.cfg
33921297    4 -rw-r--r--   1 root     root           95 5月 24 22:31 ./a
33587828    4 -rw-r--r--   1 root     root          928 5月 24 22:31 ./passwd

实验操作【-delete】

[root@sh ~]# ls
a  anaconda-ks.cfg  passwd
[root@sh ~]# find . -name passwd -delete
[root@sh ~]# ls
a  anaconda-ks.cfg

实验操作【-ok COMMAND {} \:】

[root@sh /]# find / -type f -a -user xx -ok rm -rf {} \;
find: ‘/proc/7699/task/7699/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/7699/fdinfo/6’: 没有那个文件或目录
< rm ... /var/spool/mail/xx > ? n
< rm ... /home/xx/.bash_logout > ? n
< rm ... /home/xx/.bash_profile > ? n
< rm ... /home/xx/.bashrc > ?

实验操作【-fls /path/to/somefile】

[root@sh /]# find . -type f -fls a
find: ‘./proc/7197/task/7197/fdinfo/7’: 没有那个文件或目录
find: ‘./proc/7197/fdinfo/7’: 没有那个文件或目录
[root@sh /]# ls
a    boot  etc   lib    media  opt   root  sbin  sys  usr
bin  dev   home  lib64  mnt    proc  run   srv   tmp  var

实验操作【-exec COMMAND {} \:】

[root@sh /]# find / -type f -a -user xx -exec rm -rf {} \;
find: ‘/proc/7748/task/7748/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/7748/fdinfo/6’: 没有那个文件或目录

实验操作【xargs】

[root@sh /]# find / -type f -a -user xz | xargs rm -rf
find: ‘/proc/7870/task/7870/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/7870/fdinfo/6’: 没有那个文件或目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值