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