首页 > 技术文章 > 命令总结

nb-blog 2016-08-18 15:17 原文

 

 

 

1章 sed命令 1

1.1 功能说明 1

1.2 增删改查 1

1.2.1  1

1.2.2  4

1.2.3  4

1.2.4  9

1.2.5 其他参数用法 9

2章 awk 10

3章 grep 11

4章 mkdir 11

5章 cd 12

6章 pwd 12

7章 touch 12

8章 ls 12

9章 vi 13

10章 cat 13

11章 echo 14

12章 cp 16

13章 mv 16

13.1 mv  move(移动文件或目录) 16

13.2 rm  remove删除文件或目录 16

13.3 .rmdir    删除空目录 17

14章 find 17

15章 xargs 17

16章 head 18

17章 tail 18

18章 which 18

19章 alias 19

20章 seq 19

21章 uname 20

22章 hostname 20

23章 setenforce 20

23.1 setenforce 设置selinux状态 20

23.2 getenforce 查看selinux状态 20

24章 runlevel 21

24.1 runlevel   查看系统的运行级别 21

24.2 init       修改运行级别(修改你的个人状态) 21

25章 chkconfig chkconfig  管理开机自启动服务。 21

26章 date 21

27章 history 22

28章 ulimit 23

29章 useradd 23

30章 passwd 23

31章 su 23

32章 chattr 23

32.1 chattr     更改文件属性(-i,-a 23

32.2 lsattr     查看chattr更改后的属性 23

33章 tree 24

34章 df 24

35章 cut 25

36章 wc 25

37章 tar 26

38章 file 30

39章 du 31

40章 stat 32

41章 mounts cat   /proc/mounts可查看当前已经挂载文件系统的列表 32

 

 

 

 

 

 

 

第1章 sed命令

1.1   功能说明

流编辑器,操作、过滤和转换文本内容的强大工具,linux三剑客老二。

常用功能增删改查过滤取行

1.2 增删改查

实验文本

[root@root /]# cat person.txt

101,oldboy,CEO

102,zhangyao,CTO

103,Alex,COO

104,yy,CFO

105,feixue,CIO

1.2.1  

追加文本到指定的行后

单行增加

 [root@root /]# sed '2a 106,dandan,CSO' person.txt    2a在第二行后追加内容

101,oldboy,CEO

102,zhangyao,CTO

106,dandan,CSO

103,Alex,COO

104,yy,CFO

105,feixue,CIO

多行增加

第一种sed '2a 106,dandan,CSO\n107,bingbing,CCO' person.txt    \n是换行符  连续在第二行之后追加了两行

第二种sed '2a 106,dandan,CSO \ 按回车

>输入 107,bingbing,CCO' person.txt

i 插入文本到指定行前

[root@oldboy ~]# sed '2i 106,dandan,CSO' person.txt  2i在第二行后追加内容

实例1-1   

企业案例:优化ssh配置

在我们学习系统优化时,有一个优化点:更改ssh服务远程登录的配置。主要的操作是在ssh的配置文件加入下面5行文本。(下面参数的具体含义见其他课程。)  现在想一条命令增加5行文本到第13行前

  1. Port 52113
  2. PermitRootLogin no
  3. PermitEmptyPasswords no
  4. UseDNS no
  5. GSSAPIAuthentication no

答案sed  '13i  Port 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' /etc/ssh/sshd_config

指定执行的地址范围:

  1. sed软件可以对单行或多行进行处理。如果在sed命令前面不指定地址范围,那么默认会匹配所有行。
  2. 用法:n1[,n2]{sed-commands}
  3. 地址用逗号分隔的,n1,n2可以用数字、正则表达式、或二者的组合表示。

例子:

  1.    10{sed-commands}        对第10行操作
  2.    10,20{sed-commands}     对10到20行操作,包括第10,20行
  3.    10,+20{sed-commands}   对10到30(10+20)行操作,包括第10,30行
  4.    1~2{sed-commands}       对1,3,5,7,……行操作
  5.    10,${sed-commands}     对10到最后一行($代表最后一行)操作,包括第10行
  6. /oldboy/{sed-commands}         对匹配oldboy的行操作
  7. /oldboy/,/Alex/{sed-commands}  对匹配oldboy的行到匹配Alex的行操作
  8. /oldboy/,${sed-commands}       对匹配oldboy的行到最后一行操作
  9. /oldboy/,10{sed-commands}      对匹配oldboy的行到第10行操作,注意:如果前10行没有匹配到oldboy,sed软件会显示10行以后的匹配oldboy的行,如果有。
  10. 1,/Alex/{sed-commands}         对第1行到匹配Alex的行操作
  11. /oldboy/,+2{sed-commands}      对匹配oldboy的行到其后的2行操作

 

1.2.2 

d删除指定的行   结合指定删除范围使用

实例1-1  打印文件内容但不包括oldboy

        sed   '/oldboy/d'  person.txt

 

1.2.3 

1.按行替换

c 用新行取代旧行    [root@oldboy ~]# sed '2c 106,dandan,CSO' person.txt

2.文本替换

s:单独使用→将每一行中第一处匹配的字符串进行替换 ==>sed命令 
g:每一行进行全部替换 ==>sed命令s的替换标志之一,非sed命令 
-i:修改文件内容 ==>sed软件的选项

sed软件替换模型(方框▇被替换成三角▲)

sed -i 's/▇/▲/g' oldboy.log      不加g的话对每行第一个替换加上g全部替换
sed -i 's#▇#▲#g' oldboy.log

s#▇#▲#g▇能用正则表达式,但▲不能用,必须是具体的

实例1-1  指定行修改配置文件

1.:sed '3s#0#9#' person.txt   加上g第三行的0全部换为9

例2. sed '2s#1#0#2' num.txt

[root@oldboy ~]# sed '2s#1#0#2' num.txt #→精确定位第2行,第2列
1 1 1 1 1
1 0 1 1 1
1 1 1 1 1
1 1 1 1 1

 

3.变量替换

[root@oldboy ~]# cat test.txt #→再新建一个文本

a

b

a

[root@oldboy ~]# x=a

[root@oldboy ~]# y=b

[root@oldboy ~]# echo $x $y              变量时必须加双引号或者不加引号

a b

[root@oldboy ~]# sed s#$x#$y#g test.txt       也可以eval sed 's#$x#$y#g' test.txt

b

b

b

 

 

4.分组替换

sed软件的\( \)的功能可以记住正则表达式的一部分,其中,\1为第一个记住的模式即第一个小括号中的匹配内容

例:echo I am oldboy teacher.如果想保留这一行的单词oldboy,删除剩下的部分,使用圆括号标记想保留的部分。

  1. [root@oldboy ~]# echo I am oldboy teacher. |sed 's#^.*am \([a-z].*\) tea.*$#\1#g'
  2. oldboy
  3. [root@oldboy ~]# echo I am oldboy teacher. |sed -r 's#^.*am ([a-z].*) tea.*$#\1#g'
  4. oldboy
  5. [root@oldboy ~]# echo I am oldboy teacher. |sed -r 's#I (.*) (.*) teacher.#\1\2#g'
  6. amoldboy

实例1-2  企业开机启动项优化

企业案例4:系统开机启动项优化
  1. [root@oldboy ~]# chkconfig --list|grep "3:on"|grep -vE "sshd|crond|network|rsyslog|sysstat"|awk '{print $1}'|sed -r  's#^(.*)#chkconfig \1 off#g'|bash
  2. [root@oldboy ~]# chkconfig --list|grep "3:on"
  3. crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
  4. network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
  5. rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
  6. sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
  7. sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off

chkconfig --list|grep 3:on|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash
第二种写法

chkconfig --level 1 sshd off  指定某个运行级别开关

5.特殊符号$代表被替换的内容

  1. [root@oldboy ~]# sed '1,3s#C#--&--#g' person.txt #→此处&等于C
  2. 101,oldboy,--C--EO      #→将1到3行的C替换为--C--
  3. 102,zhangyao,--C--TO
  4. 103,yy,--C--OO
  5. 104,feixue,CFO
  6. 105,dandan,CIO

 

实例1-3  批量重命名文件

当前目录下有文件如下所示:

  1. [root@oldboy test]# ls
  2. stu_102999_1_finished.jpg stu_102999_2_finished.jpg stu_102999_3_finished.jpg stu_102999_4_finished.jpg stu_102999_5_finished.jpg

要求用sed命令重命名,效果为stu_102999_1_finished.jpg==>stu_102999_1.jpg,即删除文件名的_finished

方法一:\1 子串匹配标记   & 已匹配字符串标记  mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中

方法二:

[root@oldboy ~/test]# rename jpg JPG *
[root@oldboy ~/test]# ls
stu_102999_1.JPG  stu_102999_2.JPG  stu_102999_3.JPG  stu_102999_4.JPG  stu_102999_5.JPG

备份文件内容
[root@oldboy ~]# sed -i.ori 's#zhangyao#NB#' person.txt
[root@oldboy ~]# cat person.txt
101,oldboy,CEO
102,NB,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@oldboy ~]# cat person.txt.ori 
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

 

1.2.4 

p 输出指定内容,但默认会输出2次匹配的结果,因此使用n取消默认输出

按行查询sed -n '2p' person.txt

   按字符串查询:sed -n '/CTO/p' person.txt

1.2.5  其他参数用法

-e选项允许在同一行里执行多条命令或者使用 sed -e '1,5d' -e 's/test/check/' file
= 打印当前行号码
N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码
例:[root@oldboy ~]# sed  "=" person.txt|sed 'N;s#\n# #'

实例1-1 企业案例:SVN帐号密码案例
   很久以前,由于一些未知的原因,我们的SVN服务器的生成帐号密码的脚本生成的帐号密码如下:
stu10309
7f753cc3
stu10312
636e026d
stu10315
18273b95
但是SVN服务器识别的帐号密码格式为:
stu10309=7f753cc3
stu10312=636e026d
stu10315=18273b95     如何修改 sed 'N;s#\n# #'

第2章 awk

.awk   过滤、输出内容 一门语言 按列是特长

常用参数:NR是行号,&&意思是并且,两边同时成立。

          $0表示整行内容,\n回车。 F 是分隔符

NF字段数

例如:[root@oldboy ~]# ifconfig eth0|awk -F "[ :]+" 'NR ==2{print $4}'

[root@oldboy ~]# awk 'NF>0 {print $0}' 12.txt

[root@oldboy ~]# awk 'NF!=0 {print $0}' 12.txt  

第3章 grep

grep  过滤,类似筛子 。 linux三剑客老三(awk,sed,grep)。
-B(before)  除了显示匹配的一行之外,并显示该行之前的num行(包含匹配的行)

grep 30 -B 10 ett.txt
-A(after)  除了显示匹配的一行之外,并显示该行之后的num行(包含匹配的行)

grep 20 -A 10 ett.txt
-C(context)  除了显示匹配的一行之外,并显示该行之前后各num行(包含匹配的行) grep 25 -C 5 ett.txt
不区分大小写 -i 

 echo "hello world" | grep -i "HELLO" hello      
输出除之外的所有行 -v 

 grep -v "match_pattern" file_name

标记匹配颜色 --color=auto 

  grep "match_pattern" file_name --color=auto

使用正则表达式 -E 

  grep -E "[1-9]+" 或 egrep "[1-9]+"

只输出文件中匹配到的部分 -o

  echo this is a test line. | grep -o -E "[a-z]+\." line.  echo this is a test line. | egrep -o "[a-z]+\." line.

第4章 mkdir

mkdir创建目录  mkdir -p递归创建目录  -m加权限

在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问

mkdir -m 700 /usr/meng/test

在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问 mkdir -p-m 750 bin/os_1

第5章 cd

cd 切换目录        

cd..  退到上一级目录 ,一个点儿是当前目录,- 上一次所在目录

第6章 pwd  

绝对路径方式显示当前工作目录所在

第7章 touch

touch 创建文件 
如果touch创建文件,如果重复创建不会提示存在,也不会覆盖,更改文件时间戳(时间属性)

创建多个文件:touch  stu{1..100}

第8章 ls

ls 查看目录下的内容(列表)

-l(long)以长格式显示文件信息

-F在文件结尾加不同的标识

-p给目录结尾加斜线
  -d 列目录属性。

-r反转排序 

-t按修改时间排序  例:按修改时间列出文件和文件夹详细信息  ls -ltr

--color=auto让不同的文件显示不同的颜色。

ls -lih 查看文件属性,十列内容

-i (inode节点,每个文件索引号)

-h 人类可读

第9章 vi   

 vi   类似记事本一样的linux下的常用编辑器

例:vi oldboy.txt进入vi编辑器(命令模式),点击i进入insert模式,输入文本,然后按esc退出编辑模式(进入命令模式),最后敲:wq保存并推出。

q!强制退出

vim   类似高级的编辑器例

第10章 cat

1.cat   查看文件内容。例如:cat oldboy.txt  

 2.-n显示行号  cat -n oldboy.txt

3.追加多行内容到文件 例:

    cat >>/data/oldboy.txt<<EOF  也可将EOF改为其他

    I am studying linux.

    EOF结束。

 

第11章 echo

  1. echo  打印输出内容,配合“>或>>”可以为文件覆盖及追加内容

 

2.echo "I am studying linux." >oldboy.txt

"I am studying linux."里的内容,重定向到oldboy.txt结尾,清除文件之前的内容,如果文件不存在会创建文件

3.echo "I am studying linux." >>oldboy.txt

"I am studying linux."里的内容,追加到oldboy.txt结尾,但不清除之前的内容。

4.将标准输出和错误输出重定向到log.txt。

echo oldboy 1>log.txt 2>log.txt

echo oldboy >log.txt 2>&1(最常用)

echo oldboy &>log.txt

5. echo 参数:

    -n 不要在最后自动换行

    -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般

文字输出:

   \a 发出警告声;

   \b 删除前一个字符;

   \c 最后不加上换行符号;

   \f 换行但光标仍旧停留在原来的位置;

   \n 换行且光标移至行首;

   \r 光标移至行首,但不换行;

   \t 插入tab;

   \v 与\f相同;

   \\ 插入\字符;

   \nnn 插入nnn(八进制)所代表的ASCII字符;

[root@oldboy ~]# echo -n "oldboy";echo "oldboy"

oldboyoldboy

[root@oldboy ~]# echo -e "oldboy \t";echo "oldboy"

oldboy

oldboy

[root@oldboy ~]# echo -e "\toldboy"

        oldboy

[root@oldboy ~]# echo -en "\toldboy";echo 123

        oldboy123

[root@oldboy ~]# echo -en "\toldboy\t";echo 123

        oldboy  123

第12章 cp

cp  拷贝文件或目录(copy) -i操作前确认

-i操作前确认  -p 保留原文件的目录属性

-r递归 ,将目录文件下所有文件与子目录一并处理

-a 用于复制目录,相当于-pdr

 

文件可以直接拷贝,不加参数

\cp 拷贝时不提示

第13章 mv

13.1 mv  move(移动文件或目录) 

  重命名,原地搬家

例:将文件ex3改名为new1 mv ex3 new1

将目录/usr/men中的所有文件移到当前目录(用.表示)中: mv /usr/men/* .

13.2 rm  remove删除文件或目录

-f强制删除,-r递归,删除目录  rm -fr

13.3 .rmdir    删除空目录

第14章 find

1.find  查找,-type类型 f(file),d(directory)

-exec对找到的结果处理

-mtime 按修改时间查找+7 7天以前,7第七天  -7最近7天

 -maxdepth 深度

 -name 按文件名查找

-mmin 按分钟查找[root@oldboy etc]# find /etc/* -mmin -10
! 取反 

例find ./ -maxdepth 1 -type d ! -name "."  ./是标识当前目录下  标识的是路径   -name "."  表示的是名字

find /data -type f -name "*.log" -mtime +7 -size 10M|xargs -i mv {} /tmp

find /data -type f -name "*.log" -mtime +7 -size 10M -exec mv {} /tmp \

2.-a并且  -o 或者

[root@oldboy oldboy]# find . -type f -a -name "oldboy"
./oldboy
[root@oldboy oldboy]# find . -type f -o -name "oldboy" 

第15章 xargs

1.xargs 分组功能,配合find等,可以实现把找到的内容作为后面命令处理的源。

例如:cat test.txt | xargs -n3

 a b c

 d e f

g h i

2.xargs的一个选项-I,使用-I指定一个替换字符串{},当-I与xargs结合使用,每一个参数命令都会被执行一次:

find /data -type f -name "*.log" -mtime +7 -size 10M|xargs -i mv {} /tmp

第16章 head

head  头 头部  显示文件的前n行,默认显示前10行

head -n 5(head -5)

第17章 tail

tail  尾 尾部  显示文件的后n行,默认显示后10行

tail -n 5(tail -5)

-f跟随一个文件尾部的内容变化。

tail -f /var/log/messages  -f 输入错误时会报错,另一个窗口会自动退出-F会一直尝试去打开这个文件,直到有人创建。

tail -F /var/log/messages

第18章 which

which 查看命令所在路径  which cat

whereis -b  cat

locateupdatedb更新)查看命令和帮助

第19章 alias

alias 查看和设置别名(*在命令的前面加上全路径或反斜线可以跳过系统别名)

防止用户误操作
unalias 取消别名

alias egrep='egrep --color=auto'

永久生效:vi /etc/profile 保存退出  

source /etc/profile 或者 /etc/bashrc

第20章 seq

seq  equence==seq序列。打数字序列。

-s 指定分隔符

-w同宽  seq -w 98 101  输出:098 099 100 101

例: 1.[root@Bison oldboy]# seq -s " " 10

      1 2 3 4 5 6 7 8 9 10

     2.seq 100 >ett.txt 往ett中打100个数字 一个数字一行

3.seq  100 |xargs 显示一行

     4. seq  100 |xargs  -n  2  n显示两行。

第21章 uname

uname输出系统信息 

  -m(-p -i) 32or64  

-r内核版本     -a(all)    -n显示主机名

cat /etc/redhat-release 查系统版本

隐藏内核版本提示. > /etc/issue

第22章 hostname

hostname  查看以及设置主机名(uname -n)

hostname 名字 (临时生效)系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

-I  显示IP地址

第23章 setenforce

23.1 setenforce 设置selinux状态

setenforce  0 (用于命令管理级别,数字表示设置对应的级别),不用立刻重启系统,生产环境下linux系统不能随意重启

23.2 getenforce 查看selinux状态

[root@root ~]# getenforce

Enforcing

[root@root ~]# setenforce

usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

第24章 runlevel 

24.1 runlevel   查看系统的运行级别

24.2 init       修改运行级别(修改你的个人状态)

第25章 chkconfig
chkconfig  管理开机自启动服务。

chkconfig --list #列出所有的系统服务

chkconfig sshd off

chkconfig --level 1 sshd  off

例如:操作命令chkconfig --list|grep 3:on|grep -vE “sshd |rsysiog |network |crond |ysstart”|awk  '{print " chkconfig " "$1" off "}'|bash

第26章 date

date 查看设置时间  cal  日历

 

date -d -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号

例:date -d "1 day ago" +"%Y-%m-%d" 2012-11-19

例如:[root@root data]# date +%y

16

[root@root data]# date +%Y

2016

[root@root data]# date +%Y%m%d%h

20160905Sep

[root@root data]# date +%F

2016-09-05

date -s 设置时间

第27章 history

1)history    历史记录相关  

-c清空所有历史,    

-d指定偏移量。

-n打印最近的几行  history 10

2)设置命令行:      export HISTSIZE=5     

#history size命令行历史记录数量  

3)命令行命令对应的历史记录文件:export HISTFILESIZE=5          

记录文件中命令数 ~/.bash_history

查看cat  ~/.bash_history

 

第28章 ulimit 

ulimit     修改shell的资源限制(ulimit -HSn 65535)

 

ulimit -HSn 65535 若想永久生效,需要加入到/etc/rc.local

第29章 useradd 

useradd 添加用户

第30章 passwd 

passwd 为用户设置或修改密码

例子:passwd oldboy 为oldboy设置修改密码,直接passwd是为当前用户修改密码  

非交互式更改密码:echo“123456”|passwd--stdin oldboy

第31章 su 

su 切换用户(su - oldboy)

第32章 chattr

32.1 chattr     更改文件属性(-i,-a)

32.2 lsattr     查看chattr更改后的属性

chattr 更改文件属性-i  -a)

1.上锁:chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

查看:
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

解锁-i

2.想要更安全:

可以把chattr改名转移。mv /usr/bin/chattr /usr/bin/oldboy1

解锁时需用oldboy1 -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

第33章 tree 

tree 以树形的格式列目录的内容 

-L(level)显示目录tree -L 1 显示一列    -d 显示目录

如果tree不出来,输入yum install tree -y  ,安装。

第34章 df  

df -h查看分区挂载以及使用情况 -h(human-readable)

df -a 查看全部文件系统

查看inode block的字节大小

[root@oldboy spool]# dumpe2fs /dev/sda3 |egrep -i "block count |Inode count"

[root@oldboy spool]# dumpe2fs /dev/sda3 |egrep -i "block size |Inode size"

注意:block count一般会大一Inode count的数量。

查看inode的总量和使用方法

df -i

查看文件的inode信息方法

ls -li或sata

如何生成及指定inode大小

格式化命令:mkfs.ext4 -b 2048 -I 256 /dev/sdb

第35章 cut

cut 切割    

-d指定分隔符

[root@localhost text]# cat test2.txt

 [root@localhost text]# cut -f2 -d";" test2.txt  以冒号为分隔符取第二列

-f指定列[root@localhost text]# cut -f 1 test.txt  1是表示取第一列

-c取字符cut -c1-3 test.txt    取一到三个字符

第36章 wc

wc 统计行数,字符,字节 -l统计行数

第37章 tar

打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
gziptar z)bzip2tar j)两种打包方式

unzip

tar
①-c  创建tar包
②-f  指定tar包名字
tar -cf etc.tar.gz etc
模型: tar  筐   苹果
③-z 调用gzip命令压缩tar包
tar -zcf etc.tar.gz etc
④-v  显示详细信息
tar -zcvf etc.tar.gz etc
tar zcvf etc.tar.gz etc
⑤--exclude=文件   不打包这个文件
tar zcvf  etc_exclude.tar.gz 

etc --exclude=etc/services
⑥-t  不解压查看tar包内容
[root@oldboy /]# tar tf etc_exclude.tar.gz |grep service
etc/init/readahead-disable-services.conf
[root@oldboy /]# tar tf etc.tar.gz |grep service        
etc/services
etc/init/readahead-disable-services.conf
⑦x  解压
tar zxf etc.tar.gz -C /tmp  解压的常用组合:zxvf(tar zxvf etc.tar.gz)或者xf(tar xf etc.tar.gz)
⑧-C  指定解压路径
tar xf etc.tar.gz -C /tmp    tar命令他会自动识别你这个包是用gzip还是其他压缩命令压缩的

 

压缩:zcf
解压:xf
不解压查看:tf

其他参数:

-C  --directory DIR  指定目录进行操作,如解压到指定目录

-p  --same-permissions 保持文件属性

--exclude PATTERN  排除不需要处理的文件或目录

-X  --exclude-from FILE 指定文件列表的形式排除不需要处理的文件或目录

例:解压到指定目录下

[root@Bison tmp]# tar xf oldboy.tar.gz  -C /opt/

[root@Bison opt]# ll oldboy

total 24

drwxr-xr-x 4 root root 4096 Aug 24 09:41 ext

-rw-r--r-- 1 root root    0 Aug 23 15:21 jeacen

-rw-r--r-- 1 root root    0 Aug 23 15:21 oldboy

-rw-r--r-- 1 root root   30 Aug 24 14:21 oldboy.txt

drwxr-xr-x 2 root root 4096 Aug 23 15:21 test

-rw-r--r-- 1 root root    0 Aug 23 15:21 wodi.gz

drwxr-xr-x 2 root root 4096 Aug 23 15:21 xiaodong

drwxr-xr-x 2 root root 4096 Aug 23 15:21 xiaofan

drwxr-xr-x 2 root root 4096 Aug 23 15:21 xingfujie

-rw-r--r-- 1 root root    0 Aug 23 15:21 yingsui.gz

压缩时排除单个文件:

[root@Bison opt]# tar zcvf /tmp/oldboy.tar.gz --exclude=oldboy/wodi.gz ./oldboy

./oldboy/

./oldboy/ext/

./oldboy/ext/sss/

./oldboy/ext/oldboy/

./oldboy/xiaodong/

./oldboy/oldboy.txt

./oldboy/jeacen

./oldboy/xingfujie/

./oldboy/yingsui.gz

./oldboy/test/

./oldboy/oldboy

./oldboy/xiaofan/

压缩时排出多个文件:

[root@Bison opt]# tar zcvf /tmp/oldboy.tar.gz --exclude={wodi.gz,jeacen} ./oldboy

./oldboy/

./oldboy/ext/

./oldboy/ext/sss/

./oldboy/ext/oldboy/

./oldboy/xiaodong/

./oldboy/oldboy.txt

./oldboy/xingfujie/

./oldboy/yingsui.gz

./oldboy/test/

./oldboy/oldboy

./oldboy/xiaofan/

[root@Bison opt]# tar tf /tmp/oldboy.tar.gz

./oldboy/

./oldboy/ext/

./oldboy/ext/sss/

./oldboy/ext/oldboy/

./oldboy/xiaodong/

./oldboy/oldboy.txt

./oldboy/xingfujie/

./oldboy/yingsui.gz

./oldboy/test/

./oldboy/oldboy

./oldboy/xiaofan/

排除指定文件内的文件或目录:

实例37-1  

 

第38章 file

file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程


选项 -b:列出辨识结果时,不显示文件名称;

 -c:详细显示指令执行过程,便于排错或分析程序执行的情形;

-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;

 -L:直接显示符号连接所指向的文件类别; [root@localhost ~]# file -L /var/spool/mail /var/spool/mail: directory

-m<魔法数字文件>:指定魔法数字文件;

 -v:显示版本信息;

-z:尝试去解读压缩文件的内容。

第39章 du

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

1).du:只显示当前目录下面的子目录的目录大小和当前目录的总的大小
例如:[root@root data]# du

4 ./data

4 ./test

12 ./aa

4 ./oldboy/aa

8 ./oldboy

72 .
2.du -s 只显示总和的大小

第40章 stat

stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细

第41章 mounts
cat   /proc/mounts可查看当前已经挂载文件系统的列表

umount()系统调用用于卸载已经挂载的文件系统



 

推荐阅读