1 文件目錄
1.1 路徑
絕對路徑 : /+名稱組合 從根目錄開始的路徑
相對路徑:? 不以/開頭的路徑
顯示當前目錄的絕對路徑? ? pwd:?? /home/jackie_liu/music/zhoujielun/yequ
兩個特殊的相對路徑:? . 你的當前目錄 镣煮;? .. 表示你的父目錄
第一次登陸SHELL? 進入的是根HOME目錄 评也,
目前位置:當前工作目錄窟感,每個shell都有一個當前的工作目錄?
最頂級目錄 根目錄 用/表示
1.2 目錄:
cd 或者cd ~ 命令: 切換到 home 目錄?
cd -? 切換到以前的目錄?
cd /home/jackie_liu/music? ?直接切換工作目錄??
2? 列出文件夾:ls
只能從根目錄進入:
相對路徑:ls music?
絕對路徑:ls /home/scott/music?
任意目錄切換:
ls ~/music/zhoujielun? (文件夾下有子目錄才可以切換什荣,如果沒有秽五,只能切換到上一層)酱固;ls ~/music/pv? PV下沒有子目錄 則切換不成功。
ls ~/videos/*.wmv? 以XX格式結(jié)尾的目錄
ls ~/videos/*just*? ?查詢包含這個單詞? tiger_woods_just_did_it.wmv?
ls -r 查看子文件夾中的文件列表?
ls -1 以單獨一列顯示內(nèi)容? ?Ctrl+c 取消顯示方式
ls -m 用逗號分隔的列表顯示內(nèi)容?
ls -a查看隱藏的文件和文件夾?
ls -F? 顯示文件的類型? 文件后面的“*”(星號)表示該文件 是可執(zhí)行文件,“/”(斜杠)表示它是一個目錄升熊。如果文件名后面沒 有任何附加符號,那這個文件就是一個普通的文件
ls -- color 顯示顏色?
ls -l 顯示權(quán)限绸栅、所有者等詳細信息?
drwxrwxr-x 3 jackie_liu jackie_liu 4096 Nov 15 18:08 arts
分析 最右邊文件名+最后一次修改時間+文件大小+文件所有者级野,所屬組+硬鏈接,文件包含多少內(nèi)容+d rwx rwx r-x?
一組由第一個字符組成粹胯;第二組由第二個到第四個字符組成蓖柔;第三組 包括第五個到第七個字符組成;第四組风纠,即后一組由第八個到第十 個字符組成
第一組告訴你它是什么類型的文件况鸣。前面已經(jīng)看到-F和--color 選項用不同的方式來展現(xiàn)這一內(nèi)容,-l也是如此竹观。d表示credentials 是目錄镐捧,而第一個位置上的–則表示該項是一個文件(即便文件是可 執(zhí)行的,ls–l仍然只用一個-來表示臭增,所以-F和--color選項可以為你 提供更多的信息)懂酱。當然在第一個位置還可能看到其他選項,詳細內(nèi) 容如表2-3所示誊抛。?
表2-3 權(quán)限字符和文件類型?
字? 符 含? 義
?- 普通文件 - 可執(zhí)行文件 d 目錄 l 符號鏈接文件 s 套接字(socket) b 塊設(shè)備(block device) c 字符設(shè)備(character device) p 命名管道(named pipe)?
?接下來的9個字符(組成第二組列牺、第三組、以及第四組)分別代 表對文件的所有者芍锚、文件的組昔园,以及系統(tǒng)中所有其他用戶的權(quán)限
?r表示“允許讀取”,w表示“允許改寫”(改寫意味 著修改和刪除)并炮, x表示“允許執(zhí)行”默刚, –則表示“不允許執(zhí)行這個操作”。 如果原本應該出現(xiàn)r字符的位置逃魄,現(xiàn)在出現(xiàn)的是-荤西,則表示“不允許讀 取”。這一點對于w和x也同樣適用伍俘。?
組合使用
?ls -lf
?ls- lf --color
?ls -r 以相反的順序顯示列表內(nèi)容?
?ls -x 按文件的擴展名排 可以把同一類的文件放在一起展示邪锌;
?ls -t 按日期和時間排序?
?ls -s 按文件大小進行排序?
?ls - h? 用K、M和 G顯示文件大小? 如果文件足夠大? 都能顯示出來? 1kb = 1024 字節(jié)
3? 創(chuàng)建
3.1 創(chuàng)建文本
touch +文件名
touch hepingge.text? 創(chuàng)建文件
3.2 創(chuàng)建文件夾
mkdir 996? 創(chuàng)建文件夾 癌瘾,如果存在文件夾 則會提示 由mkdir命令創(chuàng)建的新目錄是賦予所有者讀 取觅丰、改寫、以及執(zhí)行的權(quán)限妨退,而組以及其他任何人則只有讀 取和執(zhí)行的權(quán)限
mkdir -p 996/work? 創(chuàng)建新目錄和任何必要的子目錄?
? 單個:
? mkdir music
? 多個:
? mkdir piano arts singing,
創(chuàng)建子文件夾:
進入到父文件夾:再創(chuàng)建 mkdir?
快捷創(chuàng)建方式:
例如創(chuàng)建和平鴿:
mkdir -p arts/picasso/hepingge
查看創(chuàng)建是否成功:
mkdir -vp zhoujielun/yequ? ?VP可用來創(chuàng)建新目錄 子目錄?
mkdir -v? music/zhoujielun/yifuzhiming? ?只能在已有目錄下創(chuàng)建? 否則報錯?
例如:
[jackie_liu@rbtnode1 ~]$ ls
arts? music? piano? singing,
[jackie_liu@rbtnode1 ~]$ mkdir -v? 測試/性能
mkdir: cannot create directory ‘測試/性能’: No such file or directory
[jackie_liu@rbtnode1 ~]$ mkdir -vp? 測試/性能
mkdir: created directory ‘測試’
mkdir: created directory ‘測試/性能’
[jackie_liu@rbtnode1 ~]$?
4 復制
cp hepingge.text heping.text? 當前目錄復制 名字需要修改
cp heping.text? /home/jackie_liu/arts/picasso/hepingge? 切換到不同目錄 當前目錄+要復制的地址絕對路徑
cp? /home/jackie_liu/arts/picasso/heping.text .? 從別的地方切換到當前目錄? 當前目錄用.表示?
cp? /home/jackie_liu/arts/picasso*.jpg .? 通配符 匹配以JPG格式結(jié)尾的文件妇萄;cp? /home/jackie_liu/arts/picasso[1-3].jpg .? 前3張圖片
cp -v ~/home/jackie_liu/arts/picasso[1-3].jpg . 復制文件時顯示執(zhí)行過程
cp -i /home/jackie_liu/arts/picasso/heping.text .? ?防止復制時覆蓋重要的文件? 輸入 y n 進行判斷? 如果是多個文件 一直提示? ctrl +c 結(jié)束
cp -r /home/jackie_liu/arts .? ?文件夾以及子目錄切換 外部路徑切換到當前目錄? ? cp -r heping.text arts 當前目錄下切換不同文件
cp -a 復制文件目錄到其他目錄以作為完整的備份? a選項可以確保cp命令不會復制符號鏈接的內(nèi)容(否則可能會極大地增加復制量)蜕企,只保存關(guān)鍵的文件屬性(例如擁有者、時間戳)冠句,并遞歸處理子目錄轻掩。
5 移動
mv heping.text meng/? ?要移動的目錄名后加/ 如果meng 不是目錄則移動不成功,防止覆蓋 同級別目錄移動 ; mv heping.text /home/jackie_liu/music? 當前目錄移動到別的目錄? 類似復制的命令
以下這個命令只移動軟鏈接: mv dogs ~/libby懦底;而以下這條命令移動的是軟鏈接所指向的目錄: mv dogs/ ~/libby?
6 刪除
rm? hepingge.text 當前目錄刪除 唇牧;rm /home/jackie_liu/arts/picasso/heping.text 絕對路徑刪除 不需要在 當前目錄
rm *text 通配符的使用? 刪除多個以text結(jié)尾的文件? ? rm * text? 加了個空格 會刪除所有的文件 所以應該特別注意
rm-v刪除文件時顯示執(zhí)行過程
rm-i? 防止刪除重要文件 會給出提示? Y統(tǒng)一 N 忽略
rmdir picasso? 刪除空目錄
rmdir: failed to remove ‘picasso’: Directory not empty
rm -Rf 刪除文件和非空的目錄? -r選項告訴rm命令進入到它發(fā)現(xiàn)的每個子目錄中去刪除文件,而-f選項只是告訴rm命令完成任務(wù)但不要因為些細節(jié)問題(比如文件夾非空)而煩擾用戶聚唐。
為root登錄時丐重,不要輸入rm -Rf /*命令。這樣你將刪除你的系統(tǒng)
rm -Rf libby*和rm -Rf libby *之間有著巨大的差異拱层。前者會刪除工作目錄中以libby開頭的所有東西弥臼,后者會刪除任何名稱恰好是libby的文件或文件夾,然后再刪除目錄中的所有其他東西
入rm -Rf .*/*刪除以點號.作為名稱開始的目錄根灯,因為這也匹配..径缅,最終將刪除當前工作目錄的上級目錄上的所有東西
刪除帶有空格的文件 rm +"文件名" ;刪除名稱以—開始命名的文件 rm -- -abc?
7查找
grep '7745' log.txt? |grep? '保險'?
grep? -i '7745'? log.txt??? 查詢所有符合條件的
?grep -i? '短信提醒服務(wù)' log.txt |? grep -E? ?"1485|6068|0274" log.txt
8 用戶
8.1 切換用戶
su username? 變更其他 用戶? “switch user”
who am i? 查看當前用戶?
su jason_yang? 切換用戶 +輸入密碼? ?實際上并沒有獲得環(huán)境變量? 就好像既穿上了超人的衣服, 退出Ctrl+c
su -l? jason_yang? 輸入密碼? ? 獲得其工作的環(huán)境變量? 擁有了超人一躍沖天的超能力
su +su root + su l root? 成為root用戶
su – 變更成有環(huán)境變量的ROOT用戶
8.2擁有者和權(quán)限:
su? ?sudo?
切換目錄 :
[root@localhost home]# su tian
[tian@localhost home]$ groups
1烙肺、內(nèi)容不同:
su命令:用來切換用戶纳猪,substitute英文含義“代替”的意思。
sudo命令:sudo為superuser do 的簡寫桃笙,即使用超級用戶來執(zhí)行命令氏堤,一般是指root用戶。
2搏明、用法不同:
su命令:不加用戶名默認是切換為root用戶鼠锈,切當前目錄不改變,其他環(huán)境變量不變星著。
sudo命令: 查看當前用戶可以用sudo執(zhí)行的命令都有哪些购笆。
3、環(huán)境不同:
su命令:切換到root用戶虚循,但是并沒有轉(zhuǎn)到root用戶家目錄下同欠,即沒有改變用戶的環(huán)境。
sudo命令:是當前用戶切換到root横缔,然后以root身份執(zhí)行命令铺遂,執(zhí)行完成后,直接退回到當前用戶茎刚,而這些的前提是要通過sudo的配置文件/etc/sudoers來進行授權(quán)襟锐。
權(quán)限 查看:
drwx------. 2 de? ? ? de? ? ? 62 Dec 17 04:03 de
drwx------. 2 others1 others1 62 Dec 17 03:35 others1
drwx------. 2 others2 others2 62 Dec 17 03:35 others2
drwx------. 2 tian? ? tian? ? 62 Dec 17 03:27 tian
drwx------. 2 xi? ? ? others? 62 Dec 17 04:03 xi
drwx------. 2 xiang? ?xiang? ?62 Dec 17 03:31 xiang
drwx------. 2 yang? ? yang? ? 62 Dec 17 03:31 yang
[root@localhost home]# chmod g+x tian
[root@localhost home]# ll
total 0
drwx------. 2 de? ? ? de? ? ? 62 Dec 17 04:03 de
drwx------. 2 others1 others1 62 Dec 17 03:35 others1
drwx------. 2 others2 others2 62 Dec 17 03:35 others2
drwx--x---. 2 tian? ? tian? ? 62 Dec 17 03:27 tian
drwx------. 2 xi? ? ? others? 62 Dec 17 04:03 xi
drwx------. 2 xiang? ?xiang? ?62 Dec 17 03:31 xiang
drwx------. 2 yang? ? yang? ? 62 Dec 17 03:31 yang
[root@localhost home]#?
? ? 第一位表示類型,共四個選項(常見的都是前兩個):
? ? - 普通文件
? ? d 目錄
? ? c 字符設(shè)備文件
? ? b 塊設(shè)備文件
? ? s 符號鏈接文件
? ? 二三四 位代表文件所有者(user)擁有的權(quán)限
? ? 五六七 位代表組群(group)擁有的權(quán)限
? ? 八九十 位代表其他人(other)擁有的權(quán)限
? ? - 相應權(quán)限未被賦予
? ? r 文件可以被讀(read)
? ? w 文件可以被寫(write)
? ? x 文件可以被執(zhí)行(可執(zhí)行文件)
2.權(quán)限分配
2.1 指定用戶形式
? ? 如:chmod a+x file 表示對于文件file膛锭,給a(所有用戶)分配x(執(zhí)行權(quán)限)
? ? u 代表所有者(user)
? ? g 代表所有者所在的組群(group)
? ? o 代表其他人(other)
? ? a 代表全部的人粮坞,也就是包括u笛质,g和o
? ? + 增加權(quán)限
? ? - 刪除權(quán)限
? ? = 使之成為唯一權(quán)限
2.2 數(shù)字形式
? ? rwx可以用數(shù)字來代替:
? ? -—————— 0
? ? r—————— 4
? ? w—————— 2
? ? x—————— 1
? ? 如 chmod 777 file表示對于file,給所有用戶分配所有權(quán)限
? ? 因為777對應的權(quán)限表示為-rwxrwxrwx
? ? 第一個7代表所有者權(quán)限的和捞蚂,第二個7代表組群權(quán)限的和,第三個7代表其他人權(quán)限的和
?chmod g+x tian? ? 給用戶組添加執(zhí)行權(quán)限
?chmod? a+r others2? 給所有的人添加可讀權(quán)限
chmod o-r a.txt? ? 給其余的人 去掉可讀權(quán)限?
[root@localhost others2]# chmod o-r a.txt
[root@localhost others2]# ll
total 0
-rw-r-----. 1 root root 0 Dec 19 03:45 a.txt
[root@localhost others2]#?
chmod u+x a.txt? 給所有者添加可執(zhí)行的權(quán)限
chgrp? 修改文件或目錄屬于的用戶組 別的用戶組的人也可以使用此文件
-rwxr-----. 1 root txy 0 Dec 19 03:45 a.txt
-rw-r--r--. 1 root txy 0 Dec 19 05:01 b.txt
[root@localhost others2]# chgrp -v others2? b.txt
changed group of ‘b.txt’ from txy to others2
[root@localhost others2]# ll
total 0
-rwxr-----. 1 root txy? ? ?0 Dec 19 03:45 a.txt
-rw-r--r--. 1 root others2 0 Dec 19 05:01 b.txt
chmod -R? 修改目錄下文件的全部權(quán)限? ?
$ chmod -R 660 *.jpg? ?修改圖像 進行篩選? 660 是權(quán)限表達的另外一種方式
chmod u[+-]s? ?設(shè)置和清除 suid
[root@localhost bin]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 Aug? 9 09:39 /usr/bin/passwd
cat /etc/passwd? 查看用戶信息
-bash: /usr/bin/passwd: Permission denied
?原因1:/usr/bin/passwd 權(quán)限異常
正常情況下的權(quán)限:
? ? ls -l /usr/bin/passwd
? ? -rwsr-xr-x 1 root root 34392 2009-05-22 16:03 /usr/bin/passwd
修復命令:
? ? chown root:root /usr/bin/passwd
? ? chmod u=rwx,go=rx,u+s /usr/bin/passwd??
? ? chmod -v 4711 /usr/bin/passwd修復權(quán)限
Linux 是真正意義上的多用戶操作系
8.3 用戶和用戶組
1跷究、用戶(user)的概念
? ? ? ? ? ? ? 通過前面對Linux 多用戶的理解姓迅,我們明白Linux 是真正意義上的多用戶操作系統(tǒng),所以我們能在Linux系統(tǒng)中建若干用戶(user)俊马。比如我們的同事想用我的計算機丁存,但我不想讓他用我的用戶名登錄,因為我的用戶名下有不想讓別人看到的資料和信息(也就是隱私內(nèi)容)這時我就可以給他建一個新的用戶名柴我,讓他用我所開的用戶名去折騰解寝,這從計算機安全角度來說是符合操作規(guī)則的;
? ? ? ? ?當然用戶(user)的概念理解還不僅僅于此艘儒,在Linux系統(tǒng)中還有一些用戶是用來完成特定任務(wù)的聋伦,比如nobody和ftp 等,我們訪問LinuxSir.Org 的網(wǎng)頁程序界睁,就是nobody用戶觉增;我們匿名訪問ftp 時,會用到用戶ftp或nobody 翻斟;如果您想了解Linux系統(tǒng)的一些帳號逾礁,請查看 /etc/passwd ;
2访惜、用戶組(group)的概念
? ? ? ? 用戶組(group)就是具有相同特征的用戶(user)的集合體嘹履;比如有時我們要讓多個用戶具有相同的權(quán)限,比如查看债热、修改某一文件或執(zhí)行某個命令砾嫉,這時我們需要用戶組,我們把用戶都定義到同一用戶組阳柔,我們通過修改文件或目錄的權(quán)限焰枢,讓用戶組具有一定的操作權(quán)限,這樣用戶組下的用戶對該文件或目錄都具有相同的權(quán)限舌剂,這是我們通過定義組和修改文件的權(quán)限來實現(xiàn)的济锄;
? ? ? ? 舉例:我們?yōu)榱俗屢恍┯脩粲袡?quán)限查看某一文檔,比如是一個時間表霍转,而編寫時間表的人要具有讀寫執(zhí)行的權(quán)限荐绝,我們想讓一些用戶知道這個時間表的內(nèi)容,而不讓他們修改避消,所以我們可以把這些用戶都劃到一個組低滩,然后來修改這個文件的權(quán)限召夹,讓用戶組可讀,這樣用戶組下面的每個用戶都是可讀的恕沫;
?一般先 cd /home? 進入到根目錄再進入到 home目錄? (一般用來存放用戶)
? ?groupadd txy? 創(chuàng)建用戶組?
? ?groupdel? txy? ? 刪除用戶組
? ?groups? 顯示用戶所屬的用戶組?
? ?groupmod (包含修改名稱监憎,設(shè)置密碼)
? ?useradd -G txy tian 添加用戶tian(不可中文) 到用戶組txy??
? ?id tian? 查看用戶所在的組?
? ?[root@localhost home]# id tian
uid=1000(tian) gid=1000(tian) groups=1000(tian),1001(txy)
[root@localhost home]# id others1
uid=1003(others1) gid=1005(others1) groups=1005(others1),1004(others)
[root@localhost home]#?
為用戶設(shè)置密碼?
[root@localhost home]# passwd tian
Changing password for user tian.
New password:?
New password:?
BAD PASSWORD: The password is a palindrome
Retype new password:?
passwd: all authentication tokens updated successfully.
usermod 示例 – 將一個已有用戶增加到一個已有用戶組中 ;將用戶添加到新用戶組中而不必離開原有的其他用戶組婶溯。
[root@localhost home]# usermod -a -G others xi
[root@localhost home]# id xi
uid=1006(xi) gid=1001(txy) groups=1001(txy),1004(others)? 出現(xiàn)2個用戶組? 主要用戶組是txy?
如果要同時將 cnzhx 的主要用戶組改為 apache鲸阔,則直接使用 -g 選項:
[root@localhost home]# usermod -g others xi
[root@localhost home]# id xi
uid=1006(xi) gid=1004(others) groups=1004(others),1001(txy)? 主要用戶組已經(jīng)改變?
[root@localhost home]#?
如果要將一個用戶從某個組中刪除,但是這個時候需要保證 group 不是 user 的主組
[root@localhost home]# gpasswd -d xi? txy
Removing user xi from group txy
[root@localhost home]# id xi?
uid=1006(xi) gid=1004(others) groups=1004(others)
[root@localhost home]#?
9 時間
獲取當前時間:date
終端輸入命令 date +%D迄委,能夠獲取當前的年份月份日數(shù)
[jackie_liu@rbtnode1 ~]$? date +%D
12/06/19
終端輸入命令date +%r褐筛, 可以獲取當前的時間
[jackie_liu@rbtnode1 ~]$ date +%r
08:35:56 PM
cal -3,可以顯示當前本月以及前后兩個月的月歷
終端輸入cal -y ,可以顯示整年的月歷
uptime叙身,可以查看當前系統(tǒng)運行的時長
[jackie_liu@rbtnode1 ~]$ date +%Y-%m-%d
2019-12-06
[jackie_liu@rbtnode1 ~]$ date +%Y%_m%_d
201912 6
修改時間
上一級目錄 直接touch? 將文件時間修改為當前時間?
touch -t? 修改為任意時間:194508151200 picasso? 不需要到秒?
?如果是00~68渔扎,則假設(shè)年份的前2位數(shù)字是20? 如果是69~99,則假設(shè)年份的前2位數(shù)字是19?
?touch -t 9211021200 picasso? 92 默認假設(shè)19 開頭
?touch -t4011021200 picasso? 40? 默認20 開頭?
修改時間? date -s :? "2007-08-03 14:15:00"?
10 解壓和壓縮
10.1 zip 命令用來壓縮文件
參數(shù):
-A:調(diào)整可執(zhí)行的自動解壓縮文件信轿;
-b<工作目錄>:指定暫時存放文件的目錄晃痴;
-c:替每個被壓縮的文件加上注釋;
-d:從壓縮文件內(nèi)刪除指定的文件财忽;
-D:壓縮文件內(nèi)不建立目錄名稱愧旦;
-f:此參數(shù)的效果和指定“-u”參數(shù)類似,但不僅更新既有文件定罢,如果某些文件原本不存在于壓縮文件內(nèi)笤虫,使用本參數(shù)會一并將其加入壓縮文件中;
-F:嘗試修復已損壞的壓縮文件祖凫;
-g:將文件壓縮后附加在已有的壓縮文件之后琼蚯,而非另行建立新的壓縮文件;
-h:在線幫助惠况;
-i<范本樣式>:只壓縮符合條件的文件遭庶;
-j:只保存文件名稱及其內(nèi)容,而不存放任何目錄名稱稠屠;
-J:刪除壓縮文件前面不必要的數(shù)據(jù)峦睡;
-k:使用MS-DOS兼容格式的文件名稱;
-l:壓縮文件時权埠,把LF字符置換成LF+CR字符榨了;
-ll:壓縮文件時,把LF+cp字符置換成LF字符攘蔽;
-L:顯示版權(quán)信息龙屉;
-m:將文件壓縮并加入壓縮文件后,刪除原始文件满俗,即把文件移到壓縮文件中转捕;
-n<字尾字符串>:不壓縮具有特定字尾字符串的文件作岖;
-o:以壓縮文件內(nèi)擁有最新更改時間的文件為準,將壓縮文件的更改時間設(shè)成和該文件相同五芝;
-q:不顯示指令執(zhí)行過程痘儡;
-r:遞歸處理,將指定目錄下的所有文件和子目錄一并處理枢步;
-S:包含系統(tǒng)和隱藏文件近弟;
-t<日期時間>:把壓縮文件的日期設(shè)成指定的日期幔翰;
-T:檢查備份文件內(nèi)的每個文件是否正確無誤榔袋;
-u:更換較新的文件到壓縮文件內(nèi)让蕾;
-v:顯示指令執(zhí)行過程或顯示版本信息涡戳;
-V:保存VMS操作系統(tǒng)的文件屬性结蟋;
-w:在文件名稱里假如版本編號,本參數(shù)僅在VMS操作系統(tǒng)下有效渔彰;
-x<范本樣式>:壓縮時排除符合條件的文件嵌屎;
-X:不保存額外的文件屬性;
-y:直接保存符號連接恍涂,而非該鏈接所指向的文件宝惰,本參數(shù)僅在UNIX之類的系統(tǒng)下有效;
-z:替壓縮文件加上注釋再沧;
-$:保存第一個被壓縮文件所在磁盤的卷冊名稱尼夺;
-<壓縮效率>:壓縮效率是一個介于1~9的數(shù)值。
用法
1.將/home/data 這個目錄下的所有文件打包壓縮為當前目錄下的data.zip
zip -q -r data.zip /home/data
2.如果現(xiàn)在在/home 這個目錄下炒瘸,則如下
zip -q -r data.zip data
3.如果在/home/data 這個目錄下淤堵,則如下
1
zip -q -r data.zip *
-bash: zip: command not found
是因為liunx服務(wù)器上沒有安裝zip命令,需要安裝一下即可
linux安裝zip命令:
apt-get install zip 或yum install zip? ??
壓縮單獨文件? :zip +創(chuàng)建文件名稱 +要壓縮的文件??
?zip txt.zip a.txt? ? ?
[root@localhost de]# zip txt.zip a.txt?
? adding: a.txt (stored 0%)? ( 顯示壓縮節(jié)省的空間為0%)
[root@localhost de]# ls
a.txt? b.txt? c.txt? rng? txt.zip
[root@localhost de]#?
壓縮多個文件就需要 壓縮目錄 以便解壓縮得到目錄清晰
zip -9? 壓縮效果? :0表示“一點也不壓縮” 1表示“盡快完成壓縮顷扩,而不需要壓縮太多”拐邪,9表示“盡可能壓縮文件,不介意會為此等待較長的時間” 默認是6?
目前計算機性能好 一般都是用最大優(yōu)先級 9
zip -p -e? ?-p 會在shell歷史中看到? -e 則不會
zip -p 123456? 直接指定密碼
[root@localhost home]# zip -e? tian.zip tian? 提示
Enter password:?
10.2 解壓
解壓到指定目錄? ?unzip tian.zip -d de
把/home目錄下面的abc文件夾和123.txt壓縮成為abc123.zip
zip -r abc123.zip abc 123.txt
把/home目錄下面的abc12.zip隘截、abc23.zip扎阶、abc34.zip同時解壓到/home目錄里面
unzip abc\*.zip
?unzip -l moby.zip? 列出將要解壓的文件
?[root@localhost home]# unzip -l tian.zip?
Archive:? tian.zip
? Length? ? ? Date? ? Time? ? Name
---------? ---------- -----? ?----
? ? ? ? 0? 12-27-2019 03:13? ?tian/
---------? ? ? ? ? ? ? ? ? ? ?-------
? ? ? ? 0? ? ? ? ? ? ? ? ? ? ?1 file
[root@localhost home]#?
?unzip -t moby.zip? 測試將要解壓的文件是否完整
?[root@localhost home]# unzip -t tian.zip?
Archive:? tian.zip
? ? testing: tian/? ? ? ? ? ? ? ? ? ? OK
No errors detected in compressed data of tian.zip.
[root@localhost home]#
gzip? 命令
gzip a.txt? 原文件不保留? 想讓gzip保留原始文件,則需要使用-c 但還需要將輸出重定向到另一個文件
[root@localhost de]# gunzip -c a.txt.gz > /home/tian/yang (不能到父級目錄 tian )
[root@localhost de]# cd ../
[root@localhost home]# ls
1.zip? de? de.zip? others1? others2? tian? tian.zip? xi? xiang? xiang.zip? xi.zip? yang? yan.zip
[root@localhost home]# cd tian?
[root@localhost tian]# ls
a.txt? yang
[root@localhost tian]#?
gzip? 只能壓縮單文件? 先歸檔到單文件再壓縮
[root@localhost home]# gzip yang
gzip: yang is a directory -- ignored
[root@localhost home]# ls
1.zip? de? de.zip? others1? others2? tian? tian.zip? xi? xiang? xiang.zip? xi.zip? yang
[root@localhost home]# cd de?
[root@localhost de]# ls
a.txt? b.txt? c.txt? rng? tian? txt.zip
[root@localhost de]# gzip a.txt
[root@localhost de]# ls
a.txt.gz? b.txt? c.txt? rng? tian? txt.zip
[root@localhost de]#?
?zip主要是壓縮單個文件婶芭,zip是壓縮多個文件东臀,然后zip 壓縮文件名 需要壓縮的文件,如:將abcd四個文件壓縮到一起犀农,壓縮文件名為r啡邑,命令為:zip r a b c d,
?gzip是一種文件壓縮工具(或該壓縮工具產(chǎn)生的壓縮文件格式)井赌,它的設(shè)計目標是處理單個的文件谤逼。gzip在壓縮文件中的數(shù)據(jù)時使用的就是zlib贵扰。為了保存與文件屬性有關(guān)的信息,gzip需要在壓縮文件(.gz)中保存更多的頭信息內(nèi)容流部,而zlib不用考慮這一點戚绕。但gzip只適用于單個文件,所以我們在UNIX/Linux上經(jīng)持剑看到的壓縮包后綴都是.tar.gz或*.tgz舞丛,也就是先用tar把多個文件打包成單個文件,再用gzip壓縮的結(jié)果果漾。
zip只是一種數(shù)據(jù)結(jié)構(gòu)球切,跟rar同類型。zip是適用于壓縮多個文件的格式(相應的工具有PkZip和WinZip等)绒障,因此吨凑,zip文件還要進一步包含文件目錄結(jié)構(gòu)的信息,比gzip的頭信息更多户辱。但需要注意鸵钝,zip格式可采用多種壓縮算法,我們常見的zip文件大多不是用zlib的算法壓縮的庐镐,其壓縮數(shù)據(jù)的格式與gzip大不一樣恩商。
默認情況下,gzip不遍歷壓縮子目錄的內(nèi)容必逆。為了讓gzip可以壓縮子目錄怠堪,則需要在使用通配符的同時,使用-r(或--recursive)選項名眉。這一次研叫,每個文件(包括子目錄中的文件)都會被壓縮。不過要注意璧针,每個文件都是單獨壓縮的嚷炉。gzip命令并不能像zip命令那樣將所有文件組合到一個大文件中。要想將所有文件壓縮到一個大文件中探橱,需要引入tar命令申屹,
10.3 用 tar 和 gzip 歸檔和壓縮文件
[root@localhost home]# tar -zcvf de.tar.zip de/
de/
de/.bash_logout
de/.bash_profile
de/.bashrc
de/b.txt
de/c.txt
de/rng/
de/rng/d.txt
de/txt.zip
de/tian/
de/a.txt.gz
de/de.tar
[root@localhost home]# ls
1.zip? de? de.tar.zip? others1? others2? tian? tian.zip? xi? xiang? xiang.zip? xi.zip? yang? yan.zip
inux下最常用的打包程序就是tar了,使用tar程序打出來的包我們常稱為tar包隧膏,tar包文件的命令通常都是以.tar結(jié)尾的哗讥。生成tar包后,就可以用其它的程序來進行壓縮胞枕。
1.命令格式:
tar[必要參數(shù)][選擇參數(shù)][文件]?
2.命令功能:
用來壓縮和解壓文件杆煞。tar本身不具有壓縮功能。他是調(diào)用壓縮功能實現(xiàn)的?
3.命令參數(shù):
必要參數(shù)有如下:
-A 新增壓縮文件到已存在的壓縮
-B 設(shè)置區(qū)塊大小
-c 建立新的壓縮文件
-d 記錄文件的差別
-r 添加文件到已經(jīng)壓縮的文件
-u 添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件
-x 從壓縮的文件中提取文件
-t 顯示壓縮文件的內(nèi)容
-z 支持gzip解壓文件
-j 支持bzip2解壓文件
-Z 支持compress解壓文件
-v 顯示操作過程
-l 文件系統(tǒng)邊界設(shè)置
-k 保留原有文件不覆蓋
-m 保留文件不被覆蓋
-W 確認壓縮文件的正確性
可選參數(shù)如下:
-b 設(shè)置區(qū)塊數(shù)目
-C 切換到指定目錄
-f 指定壓縮文件
--help 顯示幫助信息
--version 顯示版本信息?
這樣就可以知道每個文件的權(quán)限、所有者决乎、大小以及創(chuàng)建時間等信息
?測試將要解開和解壓的 tarball? -zvtf? ?要確保-f是最后一個選項队询,因為在它后面需要指定.tar.gz文件
[root@localhost home]# tar -zvtf de.tar.zip
drwx--x--- de/de? ? ? ? ? ? ?0 2019-12-28 22:33 de/
-rw-r-xr-- de/de? ? ? ? ? ? 18 2019-08-08 20:06 de/.bash_logout
-rw-r-xr-- de/de? ? ? ? ? ?193 2019-08-08 20:06 de/.bash_profile
-rw-r-xr-- de/de? ? ? ? ? ?231 2019-08-08 20:06 de/.bashrc
-rw-r-xr-- root/root? ? ? ? ?0 2019-12-25 19:58 de/b.txt
-rw-r-xr-- root/root? ? ? ? ?0 2019-12-25 19:58 de/c.txt
drwxr-xr-x root/root? ? ? ? ?0 2019-12-25 21:01 de/rng/
-rw-r-xr-- root/root? ? ? ? ?0 2019-12-25 21:01 de/rng/d.txt
-rw-r--r-- root/root? ? ? ?160 2019-12-27 22:58 de/txt.zip
drwx--x--- root/root? ? ? ? ?0 2019-12-27 03:13 de/tian/
-rw-r-xr-- root/root? ? ? ? 26 2019-12-25 19:58 de/a.txt.gz
-rw-r--r-- root/root? ? ?10240 2019-12-28 22:33 de/de.tar
[root@localhost home]#? 這樣就可以知道每個文件的權(quán)限、所有者构诚、大小以及創(chuàng)建時間等信息
?解開和解壓 tarball? ?-zxvf?
[root@localhost home]# tar -zxvf de.tar.zip -C /home/others1? 到指定目錄
de/
de/.bash_logout
de/.bash_profile
de/.bashrc
de/b.txt
de/c.txt
de/rng/
de/rng/d.txt
de/txt.zip
de/tian/
de/a.txt.gz
de/de.tar
[root@localhost home]# cd others1
[root@localhost others1]# ls
de
[root@localhost others1]# cd de?
[root@localhost de]# ls
a.txt.gz? b.txt? c.txt? de.tar? rng? tian? txt.zip