-
用戶管理
-
erter
-
-
/etc/default/useradd用戶模板文件說明
- /etc/login.defs 關于新建用戶的默認配置文件
- 批量創建用戶和修改密碼
- usermod 修改用戶的屬性
- chpasswd修改密碼
- 2.chage option user
- 3.finger user 查看用戶信息
- 4.chfn user 修改個人信息
- 5.chsh option shell user
- 6.groupadd option gname
- 7.groupmod option gname
- 8.groupdel gname刪除組
- 9.gpasswd option gname
- 10.newgrp option gname 臨時切換主組
- 11.groupmems option action更改或查看組成員
- 更改和追加附加用戶組總結
- 修改組的方法
-
-
erter
用戶管理
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
- -d 0 user 強制修改密碼(shaddowd第三段),不為0指最近修改時間
- -E EXPIRE_DATE
- -I inactive密碼失效時間
- -m mindays最短使用時間
- -M maxdays最大使用時間
- -W warndays 失效親警告時間
- -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
- -s修改shell
6.groupadd option gname
- -g 指定gid
- -r 創建系統組CentOS 6: ID<500 CentOS 7: ID<1000
7.groupmod option gname
- -n new_group_name 改組名
- -g 新的GID
8.groupdel gname刪除組
9.gpasswd option gname
- -a user: 將user 添加至指定組中
- -d user: 從指定組中移除用戶user
- -A user1,user2,…: 設置有管理權限的用戶列表
10.newgrp option gname 臨時切換主組
如果用戶本不屬于此組,則需要組密碼
11.groupmems option action更改或查看組成員
- -g gname -a user 將user加入組
- -g gname -d user 將user移除組
- -g gname -p(purge) 清除組內成員
更改和追加附加用戶組總結
-
追加
- usermod -aG
- gpasswd -a
- groupmems -a user1 -g admin
-
修改
- usermod -G
- gpasswd -G
3.移出組 – gpasswd -d user group
修改組的方法
- usermod -g
- gpasswd -g
練習
- 將 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]
- 將/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 中輸入命令的執行結果輸出,并同時輸出到終端 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
- 創建 test 用戶,并讓其在首次登錄后修改密碼
useradd test && echo 3|passwd --stdin test&& chage -d 0 test
- 更改 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 命令切
換不過去
- 查看 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
- 當用戶 test 用戶目錄被刪除時,如何恢復
cp -av /etc/skel/ /home/test/
- 利用 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
- 在不與用戶交互的情況下更改 test 的密碼
echo '123456' | passwd --stdin test
- 新建一個系統組為 group1,新建系統用戶 sysuser
useradd -u 400 -g 400
-
[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
find [-maxdepth mindepath name iname inum samefile links regex user group uid nouser nogroup a o not] -type -[fdslbcp] path condition action
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結尾的文件
練習
- 備份配置文件,添加.orig 這個擴展名
find -name “*.conf” -exec cp {} {}.orig \;
- 提示刪除存在時間超過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\}'
練習
- 顯示/proc/meminfo 文件中以大小s 開頭的行( 要求:使用兩種方法)
cat /proc/meminfo grep -i '^s' cat /proc/meminfo grep '^[sS]' cat meminfo.log | grep -e "^s" -e "^S"
- 顯示/etc/passwd 文件中不以/bin/bash 結尾的
grep -v '/bin/bash$' /etc/passwd
- 顯示用戶rpc 默認的shell 程序
grep -w rpc passwd |cut -d':' -f7 grep '\<rpc\>' passwd |cut -d':' -f7
- 找出/etc/passwd 中的兩位或三位數
- 顯示CentOS7的/etc/grub2.cfg文件中,至少以一個空白字符開頭的且后面存非空白字符的行
grep -o '[[:space:]]\+[^[:space:]]\+' /etc/grub2.cfg
- 找出“netstat -tan” 命令的結果中以‘LISTEN’ 后跟任意多個空白字符結尾的行
netstat -tan | grep 'LISTEN[[:space:]]*'
- 顯示CentOS7 上所有系統用戶的用戶名和UID
cat /etc/passwd|cut -d: -f1,3|egrep -w '[0-9]{1,3}'
- 添加用戶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
- 利用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 %
- 顯示三個用戶root 、mage 、wang 的UID 和默認shell
egrep -w '^(root|mage|wang)' passwd|cut -d: -f3,7
- 找出/etc/rc.d/init.d/functions 文件中行首為某單詞(包括下劃線)后面跟一個小括號的行
egrep -w '^[[:alnum:]_]+\(\)' /etc/rc.d/init.d/functions cat /etc/rc.d/init.d/functions | egrep "^[_[:alpha:]]+\(\)"
- 使用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
- 使用egrep 取出上面路徑的目錄名
echo /etc/rc.d/init.d/functions | egrep -o '^/.*/' dirname /etc/rc.d/init.d/functions
- 統計last 命令中以root 登錄的每個主機IP 地址登錄次數
last|grep -w root|tr -s ' '|cut -d' ' -f1,3
- 文件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
- 顯示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}"
- 將此字符串: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 #空格也排除
- 取出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
詳細介紹了文本處理工具的用法,linux系統的用戶類管理,文件查找,壓縮類的命令用法。內容總結的很詳細,排版也很不錯,贊!