1、Linux下的目錄結構:
/:根目錄,一般根目錄下隻存放目錄,不要存放檔案,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中
/bin:/usr/bin:可執行二進制檔案的目錄,如常用的指令ls、tar、mv、cat等。
/boot:放置linux系統啟動時用到的一些檔案。/boot/vmlinuz為linux的核心檔案,以及/boot/gurb。建議單獨分區,分區大小100M即可
/dev:存放linux系統下的裝置檔案,通路該目錄下某個檔案,相當于通路某個裝置,常用的是挂載光驅mount /dev/cdrom /mnt。
/etc:系統配置檔案存放的目錄,不建議在此目錄下存放可執行檔案,重要的配置檔案有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置檔案之前記得備份。
注:/etc/X11存放與x windows有關的設定。
/home:系統預設的使用者家目錄,新增使用者賬号時,使用者的家目錄都存放在此目錄下,~表示目前使用者的家目錄,~test表示使用者test的家目錄。建議單獨分區,并設定較大的磁盤空間,友善使用者存放資料
/lib:/usr/lib:/usr/local/lib:系統使用的函數庫的目錄,程式在執行過程中,需要調用一些額外的參數時需要函數庫的協助,比較重要的目錄為/lib/modules。
/lost+fount:系統異常産生錯誤時,會将一些遺失的片段放置于此目錄下,通常這個目錄會自動出現在裝置目錄下。如加載硬碟于/disk 中,此目錄下就會自動産生目錄/disk/lost+found
/mnt:/media:CD光牒預設挂載點,通常CD光牒挂載于/mnt/cdrom下,也不一定,可以選擇任意位置進行挂載。
/opt:給主機額外安裝軟體所擺放的目錄。如:FC4使用的Fedora 社群開發軟體,如果想要自行安裝新的KDE 桌面軟體,可以将該軟體安裝在該目錄下。以前的 Linux 系統中,習慣放置在 /usr/local 目錄下
/proc:此目錄的資料都在記憶體中,如系統核心,外部裝置,網絡狀态,由于資料都存放于記憶體中,是以不占用磁盤空間,比較重要的目錄有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root:系統管理者root的家目錄,系統第一個啟動的分區為/,是以最好将/root和/放置在一個分區下。
/sbin:/usr/sbin:/usr/local/sbin:放置系統管理者使用的可執行指令,如fdisk、shutdown、mount等。與/bin不同的是,這幾個目錄是給系統管理者root使用的指令,一般使用者隻能"檢視"而不能設定和使用。
/tmp:一般使用者或正在執行的程式臨時存放檔案的目錄,任何人都可以通路,重要資料不可放置在此目錄下
/srv:服務啟動之後需要通路的資料目錄,如www服務需要通路的網頁資料存放在/srv/www内
/usr:應用程式存放目錄,/usr/bin存放應用程式,/usr/share存放共享資料,/usr/lib存放不能直接運作的,卻是許多程式運作所必需的一些函數庫檔案。/usr/local:存放軟體更新包。/usr/share/doc:系統說明檔案存放目錄。/usr/share/man: 程式說明檔案存放目錄,使用 man ls時會查詢/usr/share/man/man1/ls.1.gz的内容建議單獨分區,設定較大的磁盤空間
/var:放置系統執行過程中經常變化的檔案,如随時更改的日志檔案/var/log,/var/log/message:所有的登入檔案存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程式或服務啟動後,其PID存放在該目錄下。建議單獨分區,設定較大的磁盤空間
2、顔色在linux下的重要性:
藍色:目錄,
綠色:可執行檔案,
天藍色:符号檔案,
白色:普通檔案,
黃色:裝置檔案,
紅色:失效檔案的連結,
淺紅:壓縮檔案或tarball檔案,
粉色:圖檔檔案
3、
[[email protected] root]$
[目前登陸使用者名@機器名 目前目錄]管理者
4、更改使用者權限:
更改使用者身份su指令
1) 由普通使用者更改為root
$ su
Password:不顯示
2) 由root更改為普通使用者
# su zhangsan
不需要密碼
5、指令
1)、cd 更改的路徑名
cd / 根目錄
cd .. 上級目錄
2)、ls 顯示檔案(目錄)資訊
幫助資訊:man ls ls --help (有中文)
參數:
-a 顯示所有檔案,包括以.開頭的隐藏檔案
-l以長格式顯示檔案或子目錄的詳細資訊
-R 遞歸的顯示指定目錄中的各個子目錄中的檔案
-S 以檔案大小排序
-s 給出每個目錄項所用的塊數
-t 以檔案的修改時間的先後順序排序
-d 如果參數是目錄,隻顯示其名稱而不顯示其下的各檔案,往往與1選項一起使用,已得到目錄的詳細資訊
-m 橫向顯示目錄下的檔案,檔案名之間以逗号分隔。
Ls –l 以長格式顯示
自己的權限可讀可寫
作者權限
所屬組權限
其他人權限
檔案所有者 所屬的組 檔案類型 d表示目錄 -表示檔案 l表示連接配接
R w x
4 2 1
-l:以長格式顯示
- rwx rw- r--
檔案類型 作者權限 所屬組權限 其他人權限
111 110 100
4+2+1=7 4+2=6 4
r:read 讀取 4
w:write 寫入 2
x: 可執行 1
3)、cd更改目錄
cd 檔案目錄
4)、 mkdir touch(建立檔案)
文法: mkdir [參數] 目錄名 [目錄名]
目錄加上綠色必須有x權限 能用cd指令
檔案建立之後,沒有x權限
參數:-m
指定權限:
[[email protected] home]# mkdir dir2 -m 755
-p
建立多級目錄,同時可建立它的子目錄
[[email protected] dir2]# mkdir -p d1 d2 d3
touch
如果touch 後面緊跟的檔案名稱存在 就會更新為目前的時間
否則生成一個新的檔案(相當于建立一個空檔案)
[[email protected] dir2]# touch *
将目前目錄下的所有檔案時間修該為目前系統時間。
[[email protected] dir2]# touch –d 200111118 test
将檔案test的時間修改為20011年11月18日
權限掩碼umask 022
設定掩碼 在umask 後加上你要設定的 權限掩碼 422
目錄真實權限=777-umask 755
檔案真實權限=666-umask 644
5)、 rmdir rm
文法: rmdir [參數] 目錄名 [目錄名]
rmdir
參數:
-p 遞歸删除目錄,當子目錄删除後其父目錄為空時,也一同被删除。
删除的必須是一個空目錄 ,并且目前目錄也不能為被删除的目錄,或者是子目錄,否則目錄不能從系統中删除。
參數:
rm
參數:
-i詢問使用者是否删除,在進行删除。
-r 遞歸删除
Ctrl+c 停止删除
-f 強制删除
用rm删除目錄時不能删除子目錄,必須加上 -r 這個參數才可以 遞歸删除 ctrl+c 停止删除 強制删除目錄 rm –f
對于連接配接檔案,隻是删除了連接配接,原有檔案均保持不變。
6)、建立連接配接檔案: ln指令
ln [-s] 源檔案或目錄 連接配接檔案名
參數:-s 建立軟連接配接(或符号連接配接)
7)、檢視被起别名的指令:alias
alias 指令名
8)、臨時修改權限:Chmod
1) 使用字母方式
U 表示user使用者
分為:加、減、等于
u- (r w x)
u+ (r w x)
u=(r w x)
[[email protected] root]# ls -l test.html
-rw-r--r-- 1 root root 65 12月 9 08:30 test.html
[[email protected] root]# chmod u-w test.html
[[email protected] root]# ls -l test.html
-r--r--r-- 1 root root 65 12月 9 08:30 test.html
2) 使用數字方式 chmod 權限 檔案名
dir11 dir4 etc file1 file2 shadow
[[email protected] dir1]# chmod 644 file1
[[email protected] dir1]# ls
dir11 dir4 etc file1 file2 shadow
9)、檔案或目錄複制 cp copy
文法: cp [參數] 源檔案或目錄 目标檔案或目錄
參數:
-f 如果目标檔案或目錄已經存在,不詢問使用者是否删除,直接删除在指派
-i 如果目标檔案或目錄已經存在,詢問使用者是否删除,在進行複制。
-R 遞歸複制目錄,即連同目錄下的子目錄和檔案一起複制
-p 在複制時保持源檔案的所有者、權限和時間标志。
*:通配符,在檔案名中出現表示通配符
cp file1 file2 在同一個目錄下表示将file1重命名為file2
Tab 補齊檔案名
10)、mv 檔案移動和重命名
文法: mv [參數] 源檔案 目标檔案
mv用于檔案名的修改,或者是将檔案或目錄由一個目錄移入另一個目錄
如果移入一個目錄則原來的檔案名不會變,如果目标檔案也是一個檔案,則源檔案會改為目标檔案的名稱
參數:
-f 如果目标檔案或目錄已經存在,不詢問使用者是否覆寫,直接進行覆寫操作
-i 如果目标檔案或目錄已經存在,詢問使用者是否覆寫原檔案或目錄
[[email protected] user]# mv /tmp/a.txt . 将a.txt移動到目前目錄下
[[email protected] user]# mv mydata myfile
11)、cat 顯示檔案内容
文法: cat [參數] 檔案名 [檔案名]
将輸出的内容顯示等到螢幕上,如果有多個檔案,則依次讀取檔案内容并顯示,如果檔案過長,會自動出現滾屏,按ctrl+s 停止滾屏, ctrl+q 回複滾屏。
參數:
-n 顯示輸出行的行号。
-s 将相連的多個空行用單一空行代替。
-e 在每行末尾顯示$符号。
12)、顯示文本時用到的指令:more less wc head tail
(1)more
文法: more[參數] 檔案名
----分頁顯示 more 檔案名稱 回車顯示下一行 空格顯示下一頁 不能復原 隻能向下移動
(2)less
文法: less[參數] 檔案名
-分頁顯示 more 檔案名稱 回車顯示下一行 空格顯示下一頁 能復原
(3)wc 統計
-c或--bytes或--chars 隻顯示Bytes數。
-l或--lines 隻顯示行數。
-w或--words 隻顯示字數。每一個空格算一個
例題:
[[email protected] user]# wc 3.txt /home/user/a.php
統計3.txt a.php 檔案中分别出現的行數、單詞數、字元數,以及總的結果數
3 4 65 3.txt
4 2 57 a.php
7 6 122 總用量
(4)head 顯示頭幾行
Head -10 檔案名
文法: head[參數] 檔案名清單
(5)tail 顯示後幾行
Tail -10 檔案名
文法: tail[參數] 檔案名清單
[[email protected] user]# hear -10 | tail -1 a.php
顯示a檔案第十行 hear -10 | tail -1
13)、find查找
find 可以指定查找條件如名稱,類型,時間,檔案大小,權限和所有者查找,針對多個條件進行與或非的邏輯運算。我們可以控制find的查找的行為,還可以和其他指令組合使用。
find
find .
find . -print
三者等效, 查找目前目錄下所有的檔案和目錄(遞歸子目錄),以每行一個檔案或者目錄的形式列舉出,不包含隐藏檔案
find lib opt bin
同上,查找指定的多個目錄(lib/opt/bin)
(1) 指定查找條件
1) 按名稱查找
find . -name readme.txt
查找目前目錄下(遞歸子目錄)的所有名為readme.txt的檔案
find . -name \*.txt
find . -name "*.txt"
查找目前目錄下(遞歸子目錄)的所有名稱以.txt結尾的檔案,注意*号的寫法,需要前面加\或者放到雙引号中
find . -iname \*.txt
預設find是區分大小寫的,如果不想區分大小寫,請使用-iname替代-name,如上則"abc.TXT"将被查找到
2) 按類型查找
find . -type d
查找目前目錄下(遞歸子目錄)的所有目錄
find . -type f
查找目前目錄下(遞歸子目錄)的所有檔案
find . -type l
查找目前目錄下(遞歸子目錄)的所有符号連結
3) 按時間查找
1. 以小時為機關的時間
find 指令三個選項用于按照時間查找,機關都是小時:
mtime — 檔案内容上次修改時間
atime — 檔案被讀取或通路的時間
ctime — 檔案狀态變化時間
這三個選項都需要配置一個n值使用,可以是-n / n / +n:
-n 小于 n
n 正好與 n 相等
+n 大于 n
find . -mtime -1
查找目前目錄下(遞歸子目錄)的所有1小時内修改的檔案和目錄
find . -mtime +1
查找目前目錄下(遞歸子目錄)的所有修改時間超過1小時的檔案和目錄
find . -mtime 1
查找目前目錄下(遞歸子目錄)的所有恰好在1小時前修改的檔案和目錄
2. 以分鐘為機關的時間
用法和*time類似,mmin、amin和cmin 的不同在于機關時間是分鐘,用于查找在不到1小時的時間内變化了的檔案和目錄
find . -mmin -10
查找目前目錄下(遞歸子目錄)的所有10分鐘内修改的檔案和目錄
find . -mmin +20
查找目前目錄下(遞歸子目錄)的所有20分鐘外1小時内修改的檔案和目錄
3. 與特定的檔案比較
-newer,-anewer和-cnewer選項用于查找與特定的檔案比較的已修改或通路過的檔案,類似mtime,atime和ctime
-newer 指内容最近被修改的檔案
-anewer 指最近被讀取過的檔案
-cnewer 指狀态最近發生變化的檔案
find . -newer a.txt
查找目前目錄下(遞歸子目錄)的所有修改時間在a.txt之後(是以檔案更新)的檔案和目錄
4) 按檔案大小查找
1. -size 選項用于查找滿足指定的大小條件的檔案(注意不查找目錄), +表示大于, -表示小于, 沒有+1表示正好等于。檔案大小的機關可以是位元組(用c表示), kb(用k表示)。
find . -size -100c
查找目前目錄下(遞歸子目錄)的所有檔案大小小于100位元組的檔案
find . -size +100k
查找目前目錄下(遞歸子目錄)的所有檔案大小大于100k的檔案
find . -size 0
查找目前目錄下(遞歸子目錄)的所有檔案大小為0的檔案
2. -empty 查找空檔案和空檔案夾, 和-size 0不同的在于-size 0 隻查找空檔案,或者說-empty -type f 等同于-size 0 :
find . -empty
查找目前目錄下(遞歸子目錄)的所有檔案大小為0的檔案和空檔案夾
find . -empty -type f
查找目前目錄下(遞歸子目錄)的所有檔案大小為0的檔案
find . -empty -type d
查找目前目錄下(遞歸子目錄)的所有空目錄
5) 按權限和所有者查找
find . -perm 777
查找目前目錄下(遞歸子目錄)的所有權限為777的檔案和目錄
find . -perm -u=rwx
查找目前目錄下(遞歸子目錄)的所有user權限為rwx的檔案和目錄
find . -perm -ug=x
查找目前目錄下(遞歸子目錄)的所有user和group權限為x的檔案和目錄
find . -user sky
查找目前目錄下(遞歸子目錄)的所有user為sky的檔案和目錄
find . -group users
查找目前目錄下(遞歸子目錄)的所有group為users的檔案和目錄
(2) 查找條件的邏輯運算
1. 邏輯與
find . -name "*.java" -size -mmin -10
find . -name "*.java" -a -size -mmin -10
查找目前目錄下(遞歸子目錄)的所有名為*.java并且修改時間在10分鐘之内的檔案,-a是預設選項
2. 邏輯或
find . -name "*.class" -o -name "*.jar"
查找目前目錄下(遞歸子目錄)的所有名為*.class或者*.jar的檔案和目錄
3. 邏輯非
find . ! -user sky
查找目前目錄下(遞歸子目錄)的所有user不是sky的檔案和目錄
(3) 控制查找的行為
find . -maxdepth 3 -name "*.txt"
查找目前目錄下(遞歸子目錄)的所有名為*.txt的檔案,目錄深度不超過3層
find . -maxdepth 1 -name "*.txt"
查找目前目錄下(不遞歸子目錄,因為maxdepth為1)的所有名為*.txt的檔案
find . -mindepth 3 -name "*.txt"
查找目前目錄下(遞歸子目錄)的所有名為*.txt的檔案,目錄深度不低于3層
find . -mindepth 1 -name "*.txt"
查找目前目錄下的子目錄中(遞歸子目錄)的所有名為*.txt的檔案,不包含目前目錄
find . -depth -name "*.txt"
查找目前目錄下(遞歸子目錄)的所有名為*.txt的檔案,每個目錄都是先在目錄中進行查找,然後才繼續查找其子目錄
(4) find和其他指令的組合
find . -name "*.jar" -exec ls -l {} \;
find . -name "*.jar" -ls
查找目前目錄下(遞歸子目錄)的所有*.jar檔案并使用ls -l列出詳細資訊
find . -name "*.java" -exec grep HashMap {} \;
查找目前目錄下(遞歸子目錄)的所有的含有"HashMap"字樣的*.java檔案
find . -name "*.sh" -exec mv {} backup \;
查找目前目錄下(遞歸子目錄)的所有的*.sh檔案并移動到backup目錄中
14)、locate 查找
[[email protected] user]# Locate file1
Locate: 在檔案名資料庫中查找檔案和目錄,速度比find指令快(不存在庫就會查不到)
需要注意的是 如果用locate查找必須先執行它Updatedb,保證查找的準确性
15)、grep 查找
語 法:grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<範本樣式>][-f<範本檔案>][--help][範本樣式][檔案或目錄...]
參 數:
-a或--text 不要忽略二進制的資料。
-A<顯示列數>或--after-context=<顯示列數> 除了顯示符合範本樣式的那一列之外,并顯示該列之後的内容。
-b或--byte-offset 在顯示符合範本樣式的那一列之前,标示出該列第一個字元的位編号。
-B<顯示列數>或--before-context=<顯示列數> 除了顯示符合範本樣式的那一列之外,并顯示該列之前的内容。
-c或--count 計算符合範本樣式的列數。
-C<顯示列數>或--context=<顯示列數>或-<顯示列數> 除了顯示符合範本樣式的那一列之外,并顯示該列之前後的内容。
-d<進行動作>或--directories=<進行動作> 當指定要查找的是目錄而非檔案時,必須使用這項參數,否則grep指令将回報資訊并停止動作。
-e<範本樣式>或--regexp=<範本樣式> 指定字元串做為查找檔案内容的範本樣式。
-E或--extended-regexp 将範本樣式為延伸的普通表示法來使用。
-f<範本檔案>或--file=<範本檔案> 指定範本檔案,其内容含有一個或多個範本樣式,讓grep查找符合範本條件的檔案内容,格式為每列一個範本樣式。
-F或--fixed-regexp 将範本樣式視為固定字元串的清單。
-G或--basic-regexp 将範本樣式視為普通的表示法來使用。
-h或--no-filename 在顯示符合範本樣式的那一列之前,不标示該列所屬的檔案名稱。
-H或--with-filename 在顯示符合範本樣式的那一列之前,表示該列所屬的檔案名稱。
-i或--ignore-case 忽略字元大小寫的差别。
-l或--file-with-matches 列出檔案内容符合指定的範本樣式的檔案名稱。
-L或--files-without-match 列出檔案内容不符合指定的範本樣式的檔案名稱。
-n或--line-number 在顯示符合範本樣式的那一列之前,标示出該列的列數編号。
-q或--quiet或--silent 不顯示任何資訊。
-r或--recursive 此參數的效果和指定“-d recurse”參數相同。
-s或--no-messages 不顯示錯誤資訊。
-v或--revert-match 反轉查找。
-V或--version 顯示版本資訊。
-w或--word-regexp 隻顯示全字元合的列。
-x或--line-regexp 隻顯示全列符合的列。
-y 此參數的效果和指定“-i”參數相同。
--help 線上幫助。
使用
如果預料到有許多輸出,您可以通過 管道将其轉到‘less’上閱讀: feedom.net
$ grep magic /usr/src/linux/Documentation/* | less
這樣,您就可以更友善地閱讀。
有一點要注意,您必需提供一個檔案過濾方式(搜尋全部檔案的話用 *)。如果您忘了,‘grep’會一直等着,直到該程式被中斷。如果您遇到了這樣的情況,按 <CTRL c> ,然後再試。
下面是一些有意思的指令行參數:
· grep -i pattern files :不區分大小寫地搜尋。預設情況區分大小寫,
· grep -l pattern files :隻列出比對的檔案名,
· grep -L pattern files :列出不比對的檔案名,
· grep -w pattern files :隻比對整個單詞,而不是字元串的一部分(如比對‘magic’,而不是‘magical’),
· grep -C number pattern files :比對的上下文分别顯示[number]行,
· grep pattern1 | pattern2 files :顯示比對 pattern1 或 pattern2 的行,
· grep pattern1 files | grep pattern2 :顯示既比對 pattern1 又比對 pattern2 的行。
這裡還有些用于搜尋的特殊符号:
· < 和 > 分别标注單詞的開始與結尾。
例如:
o grep man * 會比對 ‘Batman’、‘manic’、‘man’等,
o grep \'<man\' * 比對‘manic’和‘man’,但不是‘Batman’,
o grep \'<man>\' 隻比對‘man’,而不是‘Batman’或‘manic’等其他的字元串。
· \'^\':指比對的字元串在行首,
· \'$\':指比對的字元串在行尾,
· 如果您不習慣指令行參數,可以試試圖形界面的‘grep’,如 reXgrep 。這個軟體提供 AND、OR、NOT 等文法,還有漂亮的按鈕 :-) 。如果您隻是需要更清楚的輸出,不妨試試 fungrep 。
.grep 搜尋字元串
指令格式:
grep string filename
尋找字串的方法很多,比如說我想找所有以M開頭的行.此時必須引進pattern的觀
念.以下是一些簡單的□例,以及說明:
^M 以M開頭的行,^表示開始的意思
M$ 以M結尾的行,$表示結束的意思
^[0-9] 以數字開始的行,[]内可列舉字母
^[124ab] 以1,2,4,a,或b開頭的行
* 星号表示0個以上的字母(可以沒有)
+ 加号表示1個以上的字母
/ 斜線可以去掉特殊意義
16)、重定向和管道符号(|) > 覆寫 >>追加 cat (讀取檔案)
>定向 把要輸出到螢幕的内容儲存下來,定向到一個指定的檔案中 ,發生覆寫
ls > file1 将顯示的内容寫入file1裡
Cat file1 > file3 讀取file1到file3裡
cat file1 顯示内容
>>重定向 到另一個地方 不會發生覆寫,會在尾部追加。
Cat file2 >> file3 将file2裡德内容追加到file3中
Cat file3
17)、Tar 指令(歸檔、備份(也可壓縮))
Tar 壓縮檔案 相當于歸檔(不完全是壓縮)有*.tar.zp
壓縮檔案 *.Z *.c *.gz *.Zip等
參數
-c create建立歸檔檔案
-t list顯示歸檔檔案的内容
-x 恢複(顯示)歸檔檔案
-C 儲存歸檔檔案到外部的儲存設備
-f file 指定歸檔檔案的名稱
-F force
-v berbose 顯示執行過程中的詳細資訊
-z 壓縮
1、建立歸檔檔案(備份)
整合需要的檔案和檔案夾(不等于壓縮)
Tar –cvf /etc 自定義的歸檔檔案名稱.tar 需要歸檔的檔案或檔案夾名稱(多個之間用空格分開)
2、檢視歸檔檔案内容(多個歸檔檔案共存)
當passwd huo shadow 被損壞時
[[email protected] home]# tar -tvf user.tar(歸檔檔案名)
3、釋放歸檔檔案(需要還原系統)
從外部裝置拷貝到系統 mnt挂載點
釋放歸檔檔案
Tar -xvf (歸檔檔案名)
18)、壓縮:zip unzip
文法:zip[參數] 壓縮檔案名 被壓縮的檔案或目錄
參數:
-D 不在zip檔案中存儲檔案的目錄資訊
-g 将檔案壓縮後添加到zip檔案中
-m 将特定檔案移入zip檔案中,并且删除特定檔案
-r 遞歸壓縮
[[email protected] home]# zip test.zip test/*
将test目錄下的所有檔案壓縮為test.zip
解壓: unzip [參數] (指定要被解壓的檔案名)
-d 将解壓後的檔案存放到指定的檔案夾下。
-v 檢視壓縮檔案目錄,但不解壓。
-n 不覆寫已經存在的檔案
-o 覆寫已經存在的檔案,但是不需要使用者确認
-j 不重建文檔的目錄結構,把所有檔案解壓到同一目錄下。
19)、gzip gunzip
Linux系統中常見的壓縮和解壓縮的指令,檔案名以“.Gz“為字尾。壓縮後,預設情況下源檔案被壓縮後的檔案所取代。
文法:gzip[參數] 壓縮 (解壓縮) 的檔案
參數:
-c 将輸出寫到标準輸出上,并保留源檔案。
-d 将壓縮檔案解壓
-l 對每個壓縮檔案,顯示壓縮檔案的大小,未壓縮檔案的大小,壓縮比等資訊。
-v 對每一個壓縮和解壓的檔案,顯示檔案名和壓縮比。
-r 遞歸式的查找指定目錄并壓縮其中的所有檔案或者是解壓縮。
[[email protected] home]# gzip -v ls.txt
[[email protected] home]# gzip -dv ls.txt.gz 解壓 -d
[[email protected] home]# gunzip ls.txt.gz 解壓 gunzip
20)、vi編輯器
1、用vi打開一個已經編輯過的檔案 vi test.html
内容為:qqqqqqq
現在:(注意:必須是已經編輯完的檔案并且都要在指令狀态下(ESC))
Esc退出
按鍵:
小寫a 此時輸出的内容在光标所處地之後輸出
小寫i 此時輸出的内容在光标所處地之前輸出
小寫o 此時輸出的内容在光标所處的行之後另起一行輸出
大寫a 此時輸出的内容在光标所處的行尾輸出
大寫i 此時輸出的内容在光标所處的行首輸出
大寫o 此時輸出的内容在光标所處的行之前另起一行輸出
2、ESC指令後 由編輯狀态到指令狀态
退出 :q 儲存退出:shift+Z+Z 強制儲存退出:wq!
3、加上行号 set nu(number) 加行号
取消行号 set nonu
4、Ctrl+d 強制結束輸入
Ctrl+Z
Ctrl+C強制結束執行
5、合并兩個檔案的内容
File1 aaaaaaa
File2 bbbbbbb
現在将file1的内容讀入到file2中
首先打開file1 在指令狀态下(ESC或者進來什麼都沒有操作的情況下)
Shift+:read file2 -> enter 這時就會把file2中的内容複制到光标所在地
6、執行外部指令::r ! 指令
指令狀态下:
:r !date
:r !ls –l 同樣會把應當顯示到螢幕上的内容儲存到該檔案中
7、gg 檔案第一行
Shift+g 檔案尾行
H 目前頁第一行(header)
L 目前頁尾行 (lower)
M 目前頁中間行 (middle)
:set ic 不區分大小寫的查找
按照行号查找
:先要設定行号 :set nu
:行号 (12)
8、替換 s
1) :s/要替換的内容/替換成什麼/
2) :s/要替換的内容/替換成什麼/g
g表示替換目前行中的所有出現的要替換的内容
3) 多行替換:
:2,34s/要替換的内容/替換成什麼/ [g]
10、複制 yy yy前無數字表示複制一行 像這樣:3yy複制3行(複制包括目前光标在向下數3-1行)
粘貼 p
u撤銷 d删除
11、 删除
X 按照字元删除 x nx
dd 按照段落删除
ndd 多段删除
r 替換一次(光标上的那個) abcdefg
R 替換多次abcdefg
12、在檔案裡寫指令
# 表示注釋,
但是在 #! bin/bash這條語句中不是,他代表要用那種shell
在這裡可以寫任意的指令
不過要把它的權限設定為可執行檔案
用到的時候就去執行這個檔案,他會把裡面的指令全部執行,比如可以做一個定時執行的東西
注意:隻有在該檔案為綠色的時候才能被執行,修改它的權限的方法是 chmod 數字權限 檔案名
21)、清屏
Clear