天天看點

linux檔案與目錄的基本操作、linux指令(cp、tar、歸檔、ls、cd、tr、su、more、less、vi、cat等)

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

繼續閱讀