用戶管理+文本處理+文件查找

用戶管理

erter

useradd (使用頻率2)
- -u 指定UID (默認500|1000開頭) - -o -u新建用戶前不檢查下指定的UID是否存在(一般不要使用這個選項)  useradd -u 250 -o yonggege
- -g GID|組名  指明用戶所屬的基本組 (使用比較多) - -G 指明用戶所屬的附加組 - -d  指定某個目錄作為家目錄,默認/home - -s  指明用戶默認的shell,默認/bin/bash,通常會指定/sbin/nologin(使用較多) - -c  “ ”  指定用戶注釋信息 - -r  新建系統用戶 - -m  默認選項 創建用戶家目錄 - -M 不創建用戶家目錄 (使用較多)  ```useradd -M -s /sbin/nologin yongge```

- -D 改變新建用戶默認的選項  (使用頻率為0

/etc/default/useradd用戶模板文件說明

: [root@CentOS68 ~]# cat /etc/default/useradd

GROUP=100
HOME=/home  默認家目錄
INACTIVE=-1  密碼失效日期,shadow第7列
EXPIRE=  賬號失效日期 第8列
SHELL=/bin/bash
SKEL=/etc/skel  家目錄下面的隱藏文件的模板
CREATE_MAIL_SPOOL=yes 是否創建一個郵箱賬戶
/etc/login.defs 關于新建用戶的默認配置文件

: 主要用于指定文件的郵箱路徑,是否新建家目錄,uid.gid,加密方式SHA512 (mysql 默認md5),密碼有效期提醒時間等

批量創建用戶和修改密碼

: 1.newusers和chpasswd(接新建用戶的文件模板)2.使用for 循環

usermod 修改用戶的屬性

(使用頻率為1)-a|–append 把用戶追加到某些組中,僅與-G選項一起使用

  • -U 解鎖用戶 sarah
  • -L 鎖定用戶 (直接修改密碼文件,加感嘆號)

-a|–append ##把用戶追加到某些組中,僅與-G選項一起使用(注意.不加此選項會修改)-c|–comment ##修改/etc/passwd文件第五段comment-d|–home ##修改用戶的家目錄通常和-m選項一起使用-e|–expiredate ##指定用戶帳號禁用的日期,格式YY-MM-DD-f|–inactive ##用戶密碼過期多少天后采用就禁用該帳號,0表示密碼已過期就禁用帳號,-1表示禁用此功能,默認值是-1-g|–gid ##修改用戶的gid,改組一定存在-G|–groups ##把用戶追加到某些組中,僅與-a選項一起使用-l|–login ##修改用戶的登錄名稱-L|–lock ##鎖定用戶的密碼-m|–move-home ##修改用戶的家目錄通常和-d選項一起使用-s|–shell ##修改用戶的shell-u|–uid ##修改用戶的uid,該uid必須唯一


userdel 刪除用戶 (使用頻率1)

  • -r 刪除用戶家目錄
  • -f強制刪除.即是用戶處于登錄狀態

nmap ip查看指定ip的開放的端口 fping掃描網段內所有可訪問的機器


passwd: 修改自己的密碼

  • 不常用選項:

    • -l:鎖定指定用戶
    • -u:解鎖指定用戶
    • -e:強制用戶下次登錄修改密碼
    • -n mindays: 可修改密碼時間
    • -x maxdays:最大使用期限
    • -w warndays:提前多少天開始警告
    • -i inactivedays:寬限期
  • 常用選項–stdin:從標準輸入接收用戶密碼

    echo "PASSWORD" | passwd --stdin USERNAME

    echo “123456” | passwd –stdin xian chage -d 0 xian 要求用戶在第一次登陸的時候必須強制一定要修改密碼

    `echo "P@w$sd" | passwd --stdin xian` : > 注意字符串有一個$符號 會把后面的內容給替換成變量 而這個變量為空,所以切記改密碼的時候要使用單引號 強引用
    
    : > 要注意的事情是:改完密碼之后,當前的終端不能立即退出,改為先驗證下密碼是否改成功,如果成功再退出,如果不成功,你退出了,后果你自己想吧?
gpasswd [選項] 用戶賬號 組賬號

常見選項: -a 向組中添加的成員 -d 刪除組中的成員 -M 同時向組中添加多個成員

chpasswd修改密碼
  • -e:輸入的密碼是加密后的密文;
  • -h:顯示幫助信息并退出
  • -m:當被支持的密碼未被加密時,使用MD5加密代替DES加密。

實例:先創建用戶密碼對應文件,格式為username:password,如abc:abc123,必須以這種格式來書寫,并且不能有空行,保存成文本文件user.txt,然后執行chpasswd命令: chpasswd < user.txt 以上是運用chpasswd命令來批量修改密碼。是linux系統管理中的捷徑。

來自: http://man.linuxde.net/chpasswd

2.chage option user
  1. -d 0 user 強制修改密碼(shaddowd第三段),不為0指最近修改時間
  2. -E EXPIRE_DATE
  3. -I inactive密碼失效時間
  4. -m mindays最短使用時間
  5. -M maxdays最大使用時間
  6. -W warndays 失效親警告時間
  7. -l顯示密碼策略
chage -d 0 tom  下一次登錄強制重設密碼
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom
3.finger user 查看用戶信息
4.chfn user 修改個人信息
5.chsh option shell user
  1. -s修改shell
6.groupadd option gname
  1. -g 指定gid
  2. -r 創建系統組CentOS 6: ID<500 CentOS 7: ID<1000
7.groupmod option gname
  1. -n new_group_name 改組名
  2. -g 新的GID
8.groupdel gname刪除組
9.gpasswd option gname
  1. -a user: 將user 添加至指定組中
  2. -d user: 從指定組中移除用戶user
  3. -A user1,user2,…: 設置有管理權限的用戶列表
10.newgrp option gname 臨時切換主組

如果用戶本不屬于此組,則需要組密碼

11.groupmems option action更改或查看組成員
  1. -g gname -a user 將user加入組
  2. -g gname -d user 將user移除組
  3. -g gname -p(purge) 清除組內成員
更改和追加附加用戶組總結
  1. 追加

    • usermod -aG
    • gpasswd -a
    • groupmems -a user1 -g admin
  2. 修改

    • usermod -G
    • gpasswd -G

3.移出組 – gpasswd -d user group

修改組的方法
  • usermod -g
  • gpasswd -g

練習

  1. 將 date 命令的所有大寫字母轉換成小寫字母輸出
1.[root@yongge ~]# date | tr 'A-Z' 'a-z' thu mar 30 08:51:16 cst 2017 2.[root@yongge ~]# date | tr [A-Z] [a-z]
  1. 將/etc/fstab 文件中的內容轉換成大寫后保存至/tmp/fstab.bak 中,用兩種方法實現
1.[root@yongge ~]# cat /etc/fstab | tr 'a-z' 'A-Z'>>/tmp/fstab.bak 2.cat /etc/fstab | tr 'a-z' 'A-Z'|| tee -a /tmp/fstab1.bak(會有輸出)
  1. 開啟兩個終端,將終端 1 中輸入命令的執行結果輸出,并同時輸出到終端 2
1.列出已有會話:
[root@yongge ~]# screen -ls There are screens on: 4478.lee        (Attached) 4460.pts-0.yongge       (Attached) 2 Sockets in /var/run/screen/S-root. 2.新建會話:
screen -S test

[root@yongge ~]# screen -ls There are screens on: 4510.test       (Attached) 4478.lee        (Attached) 4460.pts-0.yongge       (Attached) 3 Sockets in /var/run/screen/S-root.

在另一個終端加入會話:
screen -x 4510 3.離線會話:
screen -x 4510 [root@yongge ~]# screen -ls There are screens on: 4510.test (Detached) 4478.lee (Attached) 4460.pts-0.yongge    (Attached) 3 Sockets in /var/run/screen/S-root.

或者:
ls /dev/pts/
w
tee /dev/pts/0 &> /dev/pts/1
  1. 創建 test 用戶,并讓其在首次登錄后修改密碼
useradd test && echo 3|passwd --stdin test&& chage -d 0 test
  1. 更改 test用戶的登錄環境 shell 為/sbin/nologin , 并說明 /etc/shadow 中 test:用戶后加!! 區別
1.usermod -s /sbin/nologin test(無輸出)
2.[root@yongge ~]# chsh -s /bin/bash test(有輸出)
Changing shell for test. Shell changed.

/etc/shadow 中 test:用戶后加!加!!的時候 可以 su - test 中去的
而當 /etc/passwd 的/bin/bash 改變為 /sbin/nologin 時,不僅不能登錄,而且用 su 命令切
換不過去
  1. 查看 test 用戶的 id 信息包括(用戶 id,組 id,附加組 id)
[root@yongge ~]# id test
uid=1001(test) gid=1001(test) groups=1001(test)

7.修改test 用戶組為 root 組,附加組為 ftp 組

usermod -g root -G ftp
  1. 當用戶 test 用戶目錄被刪除時,如何恢復
cp -av /etc/skel/ /home/test/
  1. 利用 cat 輸入輸出的功能,輸入一段信息到/root/newbash 中,并調用一個系統命令
[root@yongge skel]# cat > /root/newbash shell
Bash
Linux
`date`
[root@yongge skel]# head /root/newbash  shell
Bash
Linux
date Wed Mar 29 16:33:56 CST 2017 [root@yongge skel]# cat -n  /root/newbash 1 shell 2 Bash 3 Linux 4 date Wed Mar 29 16:33:56 CST 2017
  1. 在不與用戶交互的情況下更改 test 的密碼
echo '123456' | passwd --stdin test
  1. 新建一個系統組為 group1,新建系統用戶 sysuser
useradd -u 400 -g 400
  1. [root@node0 ~]# nano /etc/passwd 修改如下兩行 #root:x:0:0:root:/root:/bin/bash 注釋或刪了 magedu:x:0:0::/home/magedu:/bin/bash #保存退出后,root 用戶不能,而 magedu 則成為了系統的擁有最高管理權限的用戶 #sshd 基于 root 名稱的認證,而并非 id 所以 PermitRootLogin yes 對此類的 magedu 用戶不起作用

    命令查找

    • which
    • whereis
    • whoami

    軟件包查找

    rmp -qf which sz

    locate

    about

    • 文件索引數據庫:/var/lib/mlocate/mlocate.db
    • 索引的構建是在系統較為空閑時自動進行( 周期性 任務), 管理員 手動更新數據庫(updatedb)
    • 索引構建過程需要遍歷整個根文件系統,極消耗資源

    usage

    locate [-in] keyword

    options complications
    i 不區分大小寫
    n 只列舉前n個匹配選項
    r 使用正則搜索

    locale 顯示當前系統默認的字符集

    example

    搜索以conf結尾的文件
    locate -r ‘\.conf$’

    find

    about

    usage

    options

    按文件基本屬性查找

    options complications
    -name 按文件名查找
    -iname 文件名忽略大小寫
    -inum n 按inode編號查找
    -samefile filename 與filename相同inode號的文件
    -links n 鏈接數為n的文件
    -regex “PATTERN” PATTERN匹配整個文件路徑而非文件名

    按文件屬主屬組查找

    options complications
    -user username 所屬主
    -group gname 按屬組查找
    -uid n 按uid查找
    -gid n 按gid查找
    -nouser 沒有屬主的文件
    -nogroup 沒有屬組的文件

    按文件類型查找 -type

    options complications
    -type d 目錄
    -type f 普通文件
    -type l 符號鏈接
    -type s 套接字文件
    -type b 塊設備文件
    -type c 字符設備文件
    -type p 管道文件

    按文件大小查找 -size

    options complications
    -size # 表示(#-1,#];#可以是10K,10M..表示(9,10]K
    -size +# 表示(#,無窮大)
    -size -# 表示[0,#-1]

    按時間查找 -[atime ctime mtime amin mmin cmin]

    -atime
    options complications
    +# [#+1,無窮大]
    -# [0,#)
    # [#,#+1)

    -mtime +10表示10天以前修改過的;-mtime -10表示10天內修改過的文件;-mtime 0表示一天內修改過的;注意跟size區分,size不加符號表示(#-1,#]

    各條件間的關系

    • 默認是與的關系-a
    • 或:-o
    • 非 -not!

    按權限查找 -perm

    perm [/|-] mode
    symbol complications
    – mode 精確權限匹配
    – /mode ugo中任何一位匹配
    – -mode 每個權限位必須同時滿足
    – +mode ugo中任何一位匹配,cent7開始廢棄

    +和-中出現0表示忽略這一位的權限

    find /etc perm /220 表示屬主或屬組有寫權限,其他人任意權限
    find /etc -perm -220 表示屬主和屬組有寫權限,其他人任意權限

    actions

    options complications
    print 默認行為
    -ls 列出文件屬性
    -delete 刪除查找到的文件
    -fls file 將查找的文件的長格式信息保存到file中,相當于重定向
    -ok commmond {} |對查找的文件執行commind命令,執行前需用戶確認,{}表示find查找到的內容\為find命令結束符
    -exec commmond {} |直接執行.不詢問

    xargs

    讀取標準輸出,并意空格或者回車符將stdin的數據分隔成arguments

    find | xargs command find /sbin -perm +700|xargx ls -l
    find /etc -perm -022 -ls >root/find.log find /etc -perm -022 fls root/find.log find /etc -perm 002 -ok chmod o-w {} \;

    使用通配符:

    find -name  '*.sh' 以.sh結尾的文件
    find -name  '??.sh' 以.sh結尾的文件名為2位字符
    find -name  '*sh*' 包含sh的
    find -name  '[0-9][[:digit:]].sh' 以兩位數字作為文件名的.sh文件
    find -name  '[^0-9][[:digit:]].sh'
    開頭非數字第二個字符為數字且只有兩位字符的sh文件

    examples

    find -inum 2 查找根分區 find -samefile log 2>/dev/null find /home -user yongge -ls find /home -nouser -nogroup -type d 查找/home下沒有屬主屬組的目錄 find /home -nouser -o -type d 查找home下沒有屬主的文件和所有目錄 find /home \(-nouser -o -type d\) -ls find /etc/ -not -name "*.conf" -ls find /etc/ ! -name "*.conf" -ls find /etc -path '/etc/etcsane.d' -prune -o -name '*.conf' 查找etc下不包括/etc/etcsane.d目錄下以conf結尾的文件

    練習

    1. 備份配置文件,添加.orig 這個擴展名
    find -name “*.conf-exec cp {} {}.orig \;
    1. 提示刪除存在時間超過3天以上的joe 的臨時文件
    find /tmp -ctime +3 -user joe -ok rm {} \;

    ? find ~ -perm -002 -exec chmod o-w {} ; ? 在你的主目錄中尋找可被其它用戶寫入的文件 ? find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} ; ? find /home –type d -ls

    1 、查找/var 目錄下屬主為root ,且屬組為mail 的所有文件 ? 2 、查找/var 目錄下不屬于root 、lp 、gdm 的所有文件 ? 3 、查找/var 目錄下最近一周內其內容修改過,同時屬主不為 root ,也不是postfix 的文件 ? 4 、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪 問過的文件 ? 5 、查找/etc 目錄下大于1M 且類型為普通文件的所有文件 ? 6 、查找/etc 目錄下所有用戶都沒有寫權限的文件 ? 7 、查找/etc 目錄下至少有一類用戶沒有執行權限的文件 ? 8 、查找/etc/init.d 目錄下,所有用戶都有執行權限,且其它 用戶有寫權限的文件

    grep簡介

    grep(Global Search REgular Expression and Print out the line) grep,egrep,fgrep(不支持正則,但效率高)

    usage

    grep [-ABCceEFinoqvw] pattern filename

    options implications
    -v 顯示不被pattern匹配的行
    -i 忽略字符大小寫
    -n 顯示行號(cat -n file
    -c 顯示匹配行數
    -o 顯示匹配的字符串
    -q 靜默模式.不輸出(grep str file &>/dev/null)
    -A# 后#行
    -B# 前#行
    -C# 前后各#行
    -e 實現多個選項間的邏輯or關系
    -E 使用ERE
    -F 相當fgrep,不支持正則
    -w 匹配單詞(相當于\bstring\b)

    實例:

    grep root /etc/passwd grep "$USER" /etc/passwd grep '$USER' /etc/passwd grep `whoami` /etc/passwd
    nmap -sP -v 172.16.252.0/24 | grep -B1 up | grep -v up|grep -v '\-\-' 掃描子網內所有開機的ip
    nmap -sP -v 172.16.252.0/24 | grep -B1 up | grep scan|cut -d' ' -f5  取出ip
    
    namp -V -A 172.16.252.100 查看指定機器開放的端口
    
    ifconfig | grep -w inet|tr -s ' '|cut -d' ' -f3 查看所有網卡ip
    ifconfig | grep -w inet|tr -s ' '|cut -d' ' -f3|cut -d: -f2 兼容centos6
    
    df |grep /dev/sd|tr -s ' '|cut -d' ' -f5|tr -d %|sort -nr 查看硬盤占用率

    元字符(正則中所有字符統稱元字符)

    字符匹配、匹配次數、位置錨定、分組

    字符匹配

    character complications
    . 匹配任意單個字符
    [] 匹配指定范圍內的任意單個字符
    [^] 匹配指定范圍外的任意單個字符
    [:alnum:] 字母和 數字
    [:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z
    [:lower:] 小寫字母 [:upper:] 大寫字母
    [:blank:] 空白字符(空格和制表符)
    [:space:] 水平和垂直的空白字符(比[:blank:] 包含的范圍廣)
    [:cntrl:] 不可打印的控制字符(退格、刪除、警鈴…) )
    [:digit:] 字 十進制數字 [:xdigit:] 十六進制數字
    [:graph:] 可打印的非空白字符
    [:print:] 可打印字符
    [:punct:] 標點符號

    匹配次數

    character complications
    * 匹配 前面的字符任意次,包括0次;貪婪模式:盡可能長的匹配
    .* 任意 長度的任意字符
    ? 匹配 其前面的字符0 或1次 次
    + 匹配 其前面的字符至少1次 次
    {n} 匹配 前面的字符n次 次
    {m,n} 匹配 前面的字符至少m 次,至多n次 次
    {,n} 匹配 前面的字符至多n次次
    {n,} 匹配 前面的字符至少n次

    位置錨定

    character complications
    ^ 行首錨定,用于模式的最左側
    $ 行尾錨定,用于模式的最右側
    ^PATTERN$ 用于模式匹配整行
    ^$ 空行
    ^[[:space:]]*$ 空白行
    \< 或 \b 詞首錨定,用于單詞模式的左側(除了字母數字和下劃線意外的字符都可以作為單詞的邊界)
    \> 或 \b 詞尾錨定;用于單詞模式的右側
    \<PATTERN\> 匹配整個單詞

    分組()

    將一個或多個字符捆綁在一起,當作一個整體進 行處理,如:(root)+ 分組 括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名方式為: \1, \2, \3, …

    • \1 表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到 的字符 示例 :
    \(string1\+\(string2\)*\) \1  :string1\+\(string2\)*
    \2  :string2

    后向引用引用前面的分組括號中的模式所匹配字符,而非模式本身

    # 匹配出現兩次god的行 echo godgodgod |grep '/(god/)\{2\}'

    練習

    1. 顯示/proc/meminfo 文件中以大小s 開頭的行( 要求:使用兩種方法)
    cat /proc/meminfo grep -i '^s'
     cat /proc/meminfo grep  '^[sS]'
     cat meminfo.log | grep -e "^s" -e "^S"
    1. 顯示/etc/passwd 文件中不以/bin/bash 結尾的
    grep -v '/bin/bash$' /etc/passwd
    1. 顯示用戶rpc 默認的shell 程序
    grep -w rpc passwd |cut -d':' -f7
    grep '\<rpc\>' passwd |cut -d':' -f7
    1. 找出/etc/passwd 中的兩位或三位數
    2. 顯示CentOS7的/etc/grub2.cfg文件中,至少以一個空白字符開頭的且后面存非空白字符的行
    grep -o '[[:space:]]\+[^[:space:]]\+' /etc/grub2.cfg
    1. 找出“netstat -tan” 命令的結果中以‘LISTEN’ 后跟任意多個空白字符結尾的行
    netstat -tan | grep 'LISTEN[[:space:]]*'
    1. 顯示CentOS7 上所有系統用戶的用戶名和UID
    cat /etc/passwd|cut -d: -f1,3|egrep -w '[0-9]{1,3}'
    1. 添加用戶bash 、testbash 、basher 以及nologin( 其shell為/sbin/nologin),找出/etc/passwd文件中用戶名同shell 名的行
    egrep -w '(^.+).+\1$' /etc/passwd sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt nobody:x:99:99:Nobody:/:/sbin/nologin 以上由于實體1沒有錨定詞首詞尾導致匹配多余的行.下面為正解
    egrep '^\b(\b.+\b).+\1$' /etc/passwd
    1. 利用df 和grep,取出磁盤各分區利用率,并從大到小排序
    df -h | grep -o "[[:digit:]]\+%" | tr -d "%" | sort -nr
    df |grep -o '[[:digit:]]\+%'|cut -d'%' -f1|sort -nr
    df|tr -s ' '| cut -d' ' -f5|cut -d% -f1
    df|tr -s ' '| cut -d' ' -f5|tr -d %
    1. 顯示三個用戶root 、mage 、wang 的UID 和默認shell
    egrep -w '^(root|mage|wang)' passwd|cut -d: -f3,7
    1. 找出/etc/rc.d/init.d/functions 文件中行首為某單詞(包括下劃線)后面跟一個小括號的行
    egrep -w '^[[:alnum:]_]+\(\)' /etc/rc.d/init.d/functions
    
    cat /etc/rc.d/init.d/functions  | egrep "^[_[:alpha:]]+\(\)"
    1. 使用egrep 取出/etc/rc.d/init.d/functions 中其基名
    echo /etc/rc.d/init.d/functions | egrep -v '^/.*/' echo /etc/rc.d/init.d/functions | egrep -o '/[[:alpha:]]+$' | tr -d / echo etc/rc.d/init.d/function|grep -o '[^/]\+$' echo etc/rc.d/init.d/function|egrep -o '[^/]+$' basename /etc/rc.d/init.d/functions
    1. 使用egrep 取出上面路徑的目錄名
    echo /etc/rc.d/init.d/functions | egrep -o '^/.*/' dirname /etc/rc.d/init.d/functions
    1. 統計last 命令中以root 登錄的每個主機IP 地址登錄次數
    last|grep -w root|tr -s ' '|cut -d' ' -f1,3
    1. 文件log內容如下:
    1 2 3 12 10 14 123 234 34 345 456 678 1234 1000 123456

    利用擴展正則表達式分別篩選出0-9、10-99、100-199,200-249 、250-255

    egrep -w '[0-9]{1}' log egrep -w '[[:digit:]]{1}' log egrep -w '[[:digit:]]{2}' log egrep -w '[[:digit:]]{3}' log egrep -w '2[0-4][[:digit:]]' log egrep -w '25[0-5]' log
    1. 顯示ifconfig 命令結果中所有IPv4 地址
    ifconfig|grep '\<inet\>'|tr -s ' '|cut -d' ' -f3|cut -d: -f2
     ifconfig  | egrep  -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
    1. 將此字符串:welcome to magedu linux 中的每個字符去重并排序,重復次數多的排到前面
    echo welcom to mageedu linux|grep -o '[[:alpha:]]'|sort|uniq -c|sort -nr echo welcom to mageedu linux|grep -o '.'|sort|uniq -c | sort

    9.查找文件file中不包含空行的行

    grep -nv ^$ file grep -nv '^[[:space:]]*$' file #空格也排除
    1. 取出passwd中所有單詞
    grep -ow '[[:alnum:]_]*' passwd grep -o '\b[[:alnum:]_]*\b' passwd grep -o '\<[[:alnum:]_]*\>' passwd

    壓縮原理:

    相同字符串用短字符替換

    壓縮工具

    compass file

    options complication
    -c 結果輸出至標準輸出,不刪除源文件(compass -c file>file.z)
    -v 顯示詳情
    -d 解壓縮

    uncompass file = compass -d

    也可用zcat file.z > file解壓 compass -d -c file.z >file(保留源文件)

    zcat 不解壓直接輸出文件內容 (.z .ge)

    gzip [-dc] file

    options complication
    -d 解壓縮,相當于gunzip
    -c 將壓縮或解壓的結果輸出至標準輸出
    -# 1-9指定壓縮比,值越大壓縮比越大,默認6
    壓縮但保留源文件
    gzip -c err.log > err.log.gz
    
    解壓但保留源文件
    gzip -c -d err.log.gz > err.log 或者zcat err.log.gz > err.log

    bzip2 [-kd#]

    options complication
    -k keep保留源文件
    -d 解壓縮
    -# 1-9,壓縮比.默認為6

    bzcat (.bz2)

    xz [-kd#]

    options complication
    -k keep保留源文件
    -d 解壓縮
    -# 1-9,壓縮比.默認為6

    xzcat (.xz)

    zip 打包壓縮(支持目錄壓縮) 壓縮后path 源文件

    • 壓縮:zip -r /test/sysconfig /etc/syszonfig/
    • 解壓縮:
    unzip sysconfig.zip cat /var/log/message | zip message -
    unzip -p messsage > message

    tar (tap archive) [-crtxzvf] 支持目錄

    options complication
    -f 指定文件名
    -cf 創建歸檔
    -rf 追加
    -t 查看歸檔文件列表
    -x 展開歸檔
    -j 使用bizp2歸檔并壓縮
    -z 使用gzip歸檔并壓縮
    -J 使用xz歸檔并壓縮
    -v 查看過程
    -C 指定解檔后存放位置
    -T 調用文本中的文件路徑歸檔
    -X 排除要歸檔的文件

    split

    options complication
    -b # (block)解檔后分割存放,#指定沒份文件的大小
    -d digit 后綴為數字
    split -b 5M backup.tar etc.part etc.part為前綴,會生成前綴加上aa ab ac ad...的編號 cat etc.part* > backup.tar 合并:
    歸檔txt中指定的文件或目錄
    tar -cvf bakup.tar -T tar.txt 以gzip壓縮歸檔并顯示過程
    tar -zcvf file.tar.gz /etc/
    以bzip2壓縮歸檔并顯示過程
    tar -jcvf file.tar.bzip2 /etc/
    以xz歸檔并顯示過程
    tar -Jcvf file.tar.xz /etc/
    
    tar -rvf 歸檔文件 追加文件 
    tar -tvf 預覽歸檔文件
    
    tar -xvf 解開歸檔文件
    tar -xvf file.tar -c /test/file 解開歸檔文件之指定目錄
    tar -xzvf  解開gzip壓縮的歸檔文件
    tar -xjvf  解開bzip2壓縮的歸檔文件
    tar -xJvf  解開xz壓縮的歸檔文件

    cpio [-cdiov] > file/dev

    通過重定向的方式將文件進行打包備份,還原恢復 的工具,它可以解壓以“.cpio” 或者“.tar” 結尾的文件

    options complication
    – o 將文件拷貝打包成文件或者將文件輸出到設備上
    – i 解包,將打包文件解壓或將設備上的備份還原到系統
    – t 預覽,查看文件內容或者輸出到設備上的文件內容
    – v 顯示打包過程中的文件名稱
    – d 解包生成目錄,在cpio 還原時,自動的建立目錄
    – c 一種較新的存儲方式
    1.將/etc目錄備份
    find ./etc | cpio -ov >etc.cpio 2.預覽
    cpio -tv < etc.cpio 3.要解包的文件
    cpio -idv < etc.cpio

原創文章,作者:勇哥,如若轉載,請注明出處:http://www.www58058.com/72976

(0)
勇哥勇哥
上一篇 2017-04-09
下一篇 2017-04-09

相關推薦

  • 網絡配置詳解(一)

    Linux網絡屬性配置      ifcfg命令家族:ifconfig, route, netstat      ifconfig命令:      ifconfig [INTERFACE]      # ifconfig -a 顯示所有接口…

    Linux干貨 2017-01-02
  • N25-第二周作業

    1、  Linux上的文件管理類命令都有那些,其常用的使用方法及其相關示例演示。 常用的管理類命令有:rm、mv、cp 1)         rm:remove rm [ OPTION ] FILE 常用選項:     &nbsp…

    Linux干貨 2016-12-13
  • N26—第二周博客作業

    一、Linux常用管理命令     1、cp命令:復制         cp 源文件 目標文件 [root@localhost ~]# cp /etc/fstab /tmp cp: overwrite&nbsp…

    Linux干貨 2017-01-06
  • 第五次作業

    1、當用戶xiaoming 對/testdir  目錄無執行權限時,意味著無法做哪些操作?   由于/testdir為目錄,意味著xiaoming用戶對此目錄至少不能用cd命令跳轉進入目錄內,但是可以用ls -l命令查看此目錄下的文件列表詳細信息 2、當用戶xiaoqiang 對/testdir  目錄無讀權限時,意味…

    Linux干貨 2016-08-07
  • 第三周作業

    第三周作業

    Linux干貨 2017-12-19

評論列表(1條)

  • renjin
    renjin 2017-04-12 13:08

    詳細介紹了文本處理工具的用法,linux系統的用戶類管理,文件查找,壓縮類的命令用法。內容總結的很詳細,排版也很不錯,贊!

欧美性久久久久