shell編程總結

                                                                           Shell編程總結

1. Ls  

用來查看目錄的內容

-a    列舉目錄中的全部文件,包括隱藏文件

-l   列舉目錄內容的細節,包括權限(模式)、所有者、組羣、大小、創       建日期、文件是否是到系統其它地方的鏈接,以及鏈接的指向。

-f    文件類型(File type)。在每一個列舉項目之後添加一個符號。這些         符號包括:/ 表明是一個目錄;@ 表明是到其它文件的符號鏈接;* 表       明是一個可執行文件。

-r   逆向(reverse)。從後向前地列舉目錄中的內容

-R   遞歸(recursive)。該選項遞歸地列舉所有目錄(在當前目錄之下)      的內容。

-s   大小(size)。按文件大小排序。

2. touch    

生成新的空文件或者改變現有文件的時間戳     

-t     設定時間與日期,格式與date相同,yyyyMMddhhmm

3.who

who查看有哪些人登陸了系統

whoam i 查看自己的賬戶信息

whichls 查看ls程序所在的路徑。

 

3. mkdir  

建立一個目錄,同時設置目錄權限
    mkdirf1
創建目錄f1

-p: 可以是一個路徑名稱(多層文件)。

例:

$ mkdir –p d2/d3   在當前目錄中建立目錄d2和d2下的d3目錄,也就  是連續建兩個目錄。

5.pwd

pwd 顯示當前目錄

 

6.cd

    cd回到起始目錄,也即剛登陸到系統的目錄,cd後面無參數

    cd / 回到根目錄

    cd .. 返回上一級目錄

    cd- 返回到最近使用的目錄

7. rm

 

        rm -rf f1 刪除目錄f1及其子目錄,即使目錄不空

         rm-rf f1/* 刪除目錄f1下的所有內容,但不刪除f1本身

         rm -rf * 刪除當前目錄下所有文件,包括子文件加及其中的文件,-r表示遞歸,-f表示    強制刪除,不詢問。

         rmdirf1 刪除空目錄f1

 

8. cat

         cat e1 瀏覽文件e1的內容

          cat e1 e2瀏覽多個文件的內容

          cat -n e1瀏覽文件e1的內容並顯示行號

 

9. grep

在一個或多個文件中搜索是否包含給定的字符串

grep ‘the’ 1.txt

             -a:以文本文件方式搜索

             -c 計算找到的符合行的次數

             -i 忽略大小寫

            -n 順便輸出行號

             -v 反向選擇,即找 沒有搜索字符串的行

 

10. head 

head命令在屏幕上顯示指定文件的開頭若干行,行數由參數值來確定

        –n,表示顯示從第一行開始的n行內容

 

11. tail

tail命令在屏幕上顯示指定文件的末尾10行

tail f.c

-n,顯示後幾行

例:tail -5 f.c

 

12. find


查找符合條件的文件或目錄

find /etc -name*ab*  包含ab的

find /etc –name ab*   ab開頭的

 

13、rmdir             

刪除空目錄

dirname表示目錄名。該命令從一個目錄中刪除一個或多個子目錄項。

注意:一個目錄被刪除之前必須是空的。刪除某目錄時也必須具有對父目錄的寫權限

- p  : 刪除指定目錄後,該目錄的上層目錄已變成空目錄時,將其一併刪除

注意:   是遞歸刪除,即先刪除內層後,外層爲空,則一併刪除

 

14、cp      

實現文件和目錄的複製。即將源文件或目錄複製到目標文件或目錄中

cp [選項] 源文件或目錄 目標文件或目錄

注意:不寫絕對路徑,表明是當前目錄下

-a:遞歸地將源目錄下的所有子目錄及其文件都複製到目標目錄中,並且保留文件鏈接 和文件屬性不變。它等效於-dpR。

-i:在覆蓋目標文件之前先給出提示,要求用戶予以確認。回答y,將覆蓋目標文件。    這是交互式複製。

-R,-r:遞歸複製目錄,即將源目錄下的所有文件及其各級子目錄都複製到目標位置。

 

15、mv

對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中

-i,--interactive     交互式操作。如果源文件與目標文件或目標目錄中的文 件同名,則詢問用戶是否覆蓋目標文件。用戶輸入“y”,表示將覆蓋目標文       件;輸入“n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。

-f    與“-i”相反,它禁止交互式操作。在覆蓋已有的目標文件時,不給任       何提示。

 

16、Shutdown

關閉或者重啓Linux系統;允許用戶在指定的一個時間點或者一個指定的時間段之後關  閉或重啓Linux系統

–h:關機

-r:重啓


17、Df

查看磁盤空間的使用情況

     -a 列出所有的文件系統,包括系統特有的/proc等文件系統。

     -k 以KB爲單位顯示個文件系統

     -m 以mb爲單位顯示各文件系統

     -h 以gb格式顯示

     -T 顯示物理文件系統的文件格式類型。

     -i 以inode數量來顯示

 

18、Du

查看某個目錄所佔空間大小

         a 列出目錄和文件的大小

         -h 以易讀方式表示大小

         -s 只列出總量而不列出子目錄大小

19、Free

查看系統內存的使用情況,包括已用的、剩餘的物理內存和交換內存,以及共享內存和         被內核使用的緩存區

-b:字節爲單位

-k:千字節爲單位

-m:兆字節爲單位


20、passwd

爲已有用戶修改密碼

21、sudo

臨時爲普通用戶授權爲超級用戶的命令,將sudo放到要執行的命令前即可,授權時間   在5分鐘左右,過期後會再次要求輸入密碼

22、Echo

在標準輸出設備-顯示器上輸出一段文字。

例:

echo “hello”

23、Clear

清空屏幕上的信息,清屏後命令提示符移動到屏幕左上角。

24、Who

列出所有正在使用系統的用戶、所用終端名和註冊到系統的時間

25、Date

在屏幕上顯示或設置系統的日期和時間

26、More

該命令一次顯示一屏文本,滿屏後停下來,並且在屏幕的底部出現一個提示信息,給出         至今已顯示的該文件的百分比.

27、Less

允許用戶向前或向後瀏覽文件,而more命令只能向前瀏覽。

 

28、bzip2/bunzip2

擴展文件名爲.bz2的壓縮/解壓工具

29、gzip/gunzip:

       擴展文件名爲.gz的壓縮/解壓工具

30、zip/unzip     

擴展文件名爲.zip的壓縮/解壓工具

31、tar:   

      打包壓縮

    -c              歸檔文件

    -x              壓縮文件

    -z              gzip壓縮文件

    -j              bzip2壓縮文件

    -v              顯示壓縮或解壓縮過程 v(view)

    -f              使用檔名

例:

tar -cvf/home/abc.tar /home/abc              只打包,不壓縮

tar -zcvf/home/abc.tar.gz /home/abc        打包,並用gzip壓縮

tar -jcvf/home/abc.tar.bz2 /home/abc      打包,並用bzip2壓縮

當然,如果想解壓縮,就直接替換上面的命令  tar -cvf  / tar -zcvf  / tar -jcvf 中的“c” 換成“x” 就可以了。

32.Eixt

立即退出正在執行的shell腳本,並設定退出值。

 

 

 

 

九九乘法表的表示方法

1、for的倆種方法

1

for((i=1;i<=9;i++))

do

for((j=1;j<=i;j++))

 do

echo -ne"$i*$j=$((i*j))\t"

done

Echo

done

 

2

for i  in {1,2,3,4,5,6,7,8,9}

do

    for j in {1,2,3,4,5,6,7,8,9}

    do

        ((p=$i*$j))

        echo -ne $i\*$j=$p"\t"

    done

echo

done    

2、while的表示方法

i=1;

j=1;

while((i<=9))

do

 while((j<=i))

 do

  let "temp=i*j"

  echo -ne "$i*$j=$temp\t"

  let j++

  done

  let i++

  let j=1

  echo ""

Done

3、until的表述方法

i=1

until ((i>9))

do

 let j=1

 until ((j>i))

 do

 let "temp=i*j"

 echo -ne "$i*$j=$temp\t"

 let j++

done

 let i++

 echo ""

done

 

                       

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章