Linux基本指令
1. 路徑表示:
./ 目前目錄
../上一級目錄
/ 根目錄
~目前使用者的家目錄
2. ls檢視檔案清單,下面列出常用參數
-a 顯示隐藏檔案
-l 以長格式顯示檔案清單
-d 顯示目錄的詳細資訊
-k 以kB為機關顯示檔案大小
-S 按檔案大小進行排序
-h 以更直覺的方式檢視檔案清單,必須和-l配合使用才有效果
3. ln檔案連結指令,也就是建立快捷方式
ln [option] target link_name
使用-s參數、建立軟連結,不帶任何參數、建立硬連結
*軟硬連結的差別:軟連結就可以直接了解成是快捷方式;硬連結可以看成是源檔案的一個副本,隻不過這個副本會随着源檔案的改變而改變;同時要注意,軟連結可以跨分區建立,但硬連結不可以
4. 檔案名,最多允許有256個字元,不能包含/,同時也不推薦使用系統保留的、有特殊意義的符号(比如?$*等),如果确實需要使用這些特殊符号命名,需要在該特殊符号前面加\屏蔽。Linux中也允許同一目錄中同時出現同名的檔案夾和檔案。
5. mkdir -p /a/b/c:按路徑建立所有目錄
6. cp -R 複制目錄;cp -p 複制時保留權限;cp <file> file.iso 制作CD光牒鏡像
7. rmdir:删除空目錄
8. file:檢視檔案類型 file -L:檢視連結指向的源檔案的檔案類型
9. cat -v:檢視檔案内容并同時顯示其中的控制字元
10. tail -n:使用時,n要換成數字,檢視指定的後n行 tail -f:從行尾開始動态顯示變化的内容
11. head -n:使用時,n要換成數字,檢視指定的前n行
12. more和less:分頁顯示檔案内容,more可以和其他指令通過|合用
13. diff -C n file1 file2:文本内容比較指令,n表示上下文行數(也就是隔n行顯示一次差異,一般設為1即可)
14. 文本統計指令wc
統計某文本檔案的字數:wc -w filename
統計檔案行數:wc -l filename
15. 檢視某年某月的月曆:cal month year
如:cal 2 2015
16. 修改日期:
首先修改時區:tzselect
修改系統日期:date -s MM/DD/YY
修改系統時間:date -s HH:MM:SS
将系統時間同步到硬體時鐘:hwclock --systohc
(将硬體時鐘的時間同步到系統時間:hwclock --hctosys)
*關機時,SUSE會自動将作業系統時間同步給硬體始終
17. 檢視連線登入使用者的詳細資訊:finger
18. 檢視使用者占用資源的情況:w
19. 與連線使用者通信指令:
wall information 向所有使用者發送公告
write user_name 和某使用者進行即時通信
mesg n 拒絕其他使用者的消息
mesg y 接受其他使用者的消息
20. 以root身份運作高權限指令的sudo操作
首先要将指定的使用者放到/etc/sudoers檔案中,具體位置是
root ALL=(ALL) ALL的下面,再加一行與此相同的行,将root改成username即可,比如:username ALL=(ALL) ALL
以後,username就可以通過全路徑的方式執行root才有權限執行的指令,如/sbin/ifconfig指令
*這裡說下上面三個ALL的意義,第一個ALL表示所有用戶端計算機,第二個表示所有使用者,第三個表示所有指令,和前面的使用者名加在 一起,就表示:允許此使用者通過任何終端連接配接,并運作所有使用者的所有檔案和指令。
如果不想給某使用者設定這麼大的權限,可以進行更詳細的設定,詳見:
http://m.blog.csdn.net/blog/u011648187/12995535
http://www.2cto.com/os/201203/122820.html
21. which
顯示某個指令的位置,以絕對路徑的方式
*這裡說下$PATH,當一個使用者輸入一個指令後,系統會在該變量鎖包含的目錄中查找指令并執行對應的指令檔案
22. locate,需要slocate軟體支援;安裝後會在本地建一個索引資料庫,每天更新一次索引,是以,通過這個搜尋有可能搜不到最新變更的檔案。
23. whereis 更擅長搜尋一些特殊檔案,比如二進制檔案、源代碼等。
24. apropos 關鍵字搜尋;他會給出關鍵字都被包含在哪些指令的man手冊中,以供學習
25. echo 回顯指令
-n 輸出結束後不換行,不加的話則換行
-E 禁用轉義字元(預設)
-e 啟用轉義字元
*這裡的轉義字元即指C語言中的轉義字元
此指令使用比較靈活,可以嵌套變量是其輸出目前值,比如:
echo "Host $HOST_DOWN_NAME non-response,time is: `date +'%Y-%m-%d %T'`"
注意date前後的反引号(1左邊的鍵),$後面是一個變量名,如果不存在則輸出空。
配合重定向輸出錯誤資訊:
echo "Input error"1>&2
*注:!号在有些shell裡屬于保留字元
26. 接受使用者輸入指令read [ [option] [parameter] name
option:
a 将輸入的文本按字段放入數組,預設分隔符為空格(或tab),數組下标從0開始;比如:
例:read -a name;echo "your name: ${name[*]}"
也可以隻顯示數組中某幾個元素的内容:
例:read -a name;echo "your name: ${name[0]} ${name[1]}"
d 指定結束符,預設為換行,比如:
例:read -d "$" NAME; echo "Hello $NAME"!
當輸入$号時,預設輸入結束
e 從标準輸入讀取時、使用readline庫擷取輸入,此時可以使用倒退、方向鍵進行簡單行編輯
例:echo -n "Please enter your message:"; read -e MESS;echo "your message is: $MESS"
如果不加-e的話,試圖回退、插入字元會打出莫名其妙的符号;
n 接收指定長度的字元數n;
例:read -n 2 name;echo $name
p 将指定的字元創輸出到标準錯誤,并讀取輸入,比如:
例:read -p "Unexpected error, press y key to continue. " Flag;echo "Being restored, please wati..."
r 将讀取到的字元串按字段放到不同的變量中,bash shell中預設的分隔符為空格、tab,比如:
例:echo -n "Please enter the four strings: "; read -r v1 v2 v3 v4; echo -e "$v1\n$v2\n$v3\n$v4"
如果分隔符不想用空格,可以修改變量IFS來修改分隔符:
IFS="#";echo -n "Please enter the four strings: "; read -r v1 v2 v3 v4; echo -e "$v1\n$v2\n$v3\n$v4"
事後用IFS=" "改回原來的空格為分隔符
s 先鎖住螢幕,然後從标準輸入中讀取字元;一般在需要使用者輸入密碼等敏感資訊時使用,也就是輸入的字元不在螢幕上顯示(但其實已經錄入到對應的變量名中)
例:echo -n "Please enter your password:";read -s Pass; echo -e "\nYour password is: "$Pass
t 如果使用者在指定的時間内沒有輸入動作,則結束讀取狀态
例:DEF=y;echo -n "Please select yes or no[y|n]:"; read -t 3 DEF;echo -e "\nInput timeout, Use the default options[y]."
如果逾時沒有動作,則使用預設值(DEF=y)。
u 從指定的檔案描述符中讀取,如果沒有特别指定,則以換行符作為結束讀取标記,即按行讀取檔案内容
例:詳見29;
27. 郵件指令mail
mail -s 郵件主題 -c 密送位址 -b 抄送位址 username,[email protected] < file.txt
上面的意思是指将file.txt中的内容,以-s後面的主題,發送出去
檢視郵件時,直接輸入mail,會顯示目前的未讀郵件,使用f參數檢視已讀郵件,q為退出目前郵件并将其存入mbox中,x為直接退出
使用mail -f /var/spool/mail/user1檢視使用者user1的未讀郵件
28. 追加指令tee
......| tee -ia a.txt
-i: 忽略内容中的标準錯誤
-a: 以追加的形式将...加到檔案結尾;如果不加該參數則會以覆寫的方式寫入
29. 啟動新shell指令:exec
如下,使用 檔案描述符讀取某檔案前三行的例子:
ifconfig > ifconfig.txt;exec 3<ifconfig.txt ;read -u 3 LINE;read -u 3 LINE1;read -u 3 LINE2;echo -e "$LINE \n $LINE1 \n $LINE2";exec 3<&-
該指令長被用來處理檔案描述符,此時exec不會啟動新shell替代目前shell;在上面的例子中,現将3這個檔案描述符指向ifconfig.txt檔案,之後使用read -u從描述符3中讀取3次,并 用echo輸入讀取到的内容。最後的exec 3<&-表示關閉檔案描述符3。由于使用read指令連續3次讀取檔案的過程中沒有關閉檔案描述符3,是以讀取到的内容是檔案的前三行。
*檔案描述符0、1、2是系統保留的;使用和關閉時要指明,否則可能導緻目前shell關閉;關于檔案描述符更詳細的内容,見:
http://blog.csdn.net/cywosp/article/details/38965239
輸出檔案描述符的例子:
exec 4>name_list;echo -n "Please enter a string:";read NAME1;echo -n "Enter the 2nd string:";read NAME2; echo -e "the first string: "$NAME1"\nThe 2nd string:"$NAME2>&4;exec 4>&-;cat name_list