Linux指令速成
在書店和網絡中會有許多關於linux操作指令的書籍和頁面,許多介紹的都很全面,我們要想系統的掌握這方面的知識,這些資料是很不錯的選擇。但是作爲一個初學着,或者想要在較短的時間內就能簡單的應用linux,這樣做似乎會比較慢,其實我們大可不必儲備很多操作知識才去進行應用,就像我們學習認字一樣,當我們學的字還很少時,我們雖然寫不成文章,但是我們可以組詞、造句子、寫便條、識別一些簡單的標識。這也符合2/8法則說的那樣,在這些指令中有80%是我們不常用到的,常用的只有20%,我們就可以把這80%的深入內容稍後學習,先學習那20%的常用內容,就可以進行應用。在應用中加強所學的知識,同時再慢慢學習剩下的那80%的內容,這樣即實現了儘快上手又能在實踐中加強所學的內容。
初學者要注意幾個問題:linux指令的使用要涉及到權限問題,因爲linux支持多用戶模式這樣會造成一定混亂,所以要設置用戶的權限,一些管理命令只有root用戶可以使用,例如:userad、userdel等。或者當我們想在非用戶目錄下實現一些有權限許可的操作時也會受到限制,例如:我們是一個普通用戶先要在其它用戶的私有文件夾下建立文件,雖然普通用戶有mkdir指令的使用權限,但是在其它用戶的私有目錄下是不能使用的。其次linux還涉及參數的使用可以實現不同的功能。
下面就我的學習經驗簡單介紹一下一些linux的必備指令。我把所學的指令大體分爲四個方面:系統管理、磁盤管理、文件管理、其它。
一.系統管理
通常的系統管理工作主要是:開關機管理、用戶管理、進程管理以及一些信息查看
1.halt
權限 :系統管理者
格式 :halt -參數
功能 :若系統的 runlevel 爲 0 或 6 ,則關機,否則以 shutdown 指令(加上 -h 參數) 來取代
參數:
-n : 在關機前不做將記憶體資料寫回硬盤的動作
-w : 並不會真的關機,只是把記錄寫到 /var/log/wtmp 檔案裏
-d : 不把記錄寫到 /var/log/wtmp 檔案裏(-n 這個參數包含了 -d) -f : 強迫關機, 不呼叫 shutdown 這個指令
-i : 在關機之前先把所有網絡相關的裝置先停止
-p : 當關機的時候,順便做關閉電源(poweroff)的動作
示例:
halt -p 關機後關閉電源。
halt -d 關機但不留下紀錄。
2.reboot
權限 :系統管理者
格式 :reboot –參數
功能 :若系統的 runlevel 爲 0 或 6 ,則重新開機,否則以 shutdown 指令(加上 -r 參數)來取代
參數:
-n : 在重開機前不做將記憶體資料寫回硬盤的動作
-w : 並不會真的重開機,只是把記錄寫到 /var/log/wtmp 檔案裏
-d : 不把記錄寫到 /var/log/wtmp 檔案裏(-n 這個參數包含了 -d) -f : 強迫重開機,不呼叫 shutdown 這個指令
-i : 在重開機之前先把所有網絡相關的裝置先停止
示例:
reboot 重開機。
reboot -w 做個重開機的模擬(只有紀錄並不會真的重開機)。
3. shutdown
權限 : 系統管理者
格式 : shutdown [-t seconds] [-rkhncfF] time [message]
功能 : shutdown 可以用來進行關機程序,並且在關機以前傳送訊息給所有使用者正在執行的程序,shutdown 也可以用來重開機。
參數 :
-t seconds : 設定在幾秒鐘之後進行關機程序
-k : 並不會真的關機,只是將警告訊息傳送給所有隻用者
-r : 關機後重新開機
-h : 關機後停機
-n : 不採用正常程序來關機,用強迫的方式殺掉所有執行中的程序後自行關機
-c : 取消目前已經進行中的關機動作
-f : 關機時,不做 fcsk 動作(檢查 Linux 檔系統)
-F : 關機時,強迫進行 fsck 動作
time : 設定關機的時間
message : 傳送給所有使用者的警告訊息
4.adduser
權限 :系統管理員
格式 :adduser –參數 相應內容
功能 :新增使用者帳號或更新預設的使用者資料
參數 :
-c comment 新使用者位於密碼檔(通常是 /etc/passwd)的註解資料
-d home_dir 設定使用者的家目錄爲 home_dir ,預設值爲預設的 home 後面加上使用者帳號 loginid
-e expire_date 設定此帳號的使用期限(格式爲 YYYY-MM-DD),預設值爲永久有效
-f inactive_time
adduser是增加使用者.
相對的,也有刪除使用者的指令,userdel.
語法:userdel [login ID]
5.su
權限:所有使用者
格式:su –參數 相應的內容
說明:變更爲其他使用者的身份,除 root 外,需要鍵入該使用者的密碼
參數:
-f 或 --fast 不必讀啓動檔(如 csh.cshrc 等),僅用於 csh 或 tcsh
-m -p 或 --preserve-environment 執行 su 時不改變環境變數
-c command 或 --command=command 變更爲帳號爲 USER 的使用者並執行指令(command)後再變回原來使用者
-s shell 或 --shell=shell 指定要執行的 shell (bash csh tcsh 等),預設值爲 /etc/passwd 內的該使用者(USER) shell
--help 顯示說明文件
--version 顯示版本資訊
- -l 或 --login 這個參數加了之後,就好像是重新 login 爲該使用者一樣,大部份環境變數(HOME SHELL USER等等)都是以該使用者(USER)爲主,並且工作目錄也會改變,如果沒有指定 USER ,內定是 root
USER 欲變更的使用者帳號
ARG 傳入新的 shell 參數
示例:
su -c ls root 變更帳號爲 root 並在執行 ls 指令後退出變回原使用者。
su root -f 變更帳號爲 root 並傳入 -f 參數給新執行的 shell。
su - clsung 變更帳號爲 clsung 並改變工作目錄至 clsung 的家目錄(home dir)。
6.ps
權限:所有使用者
格式:ps [options] [--help]
功能:顯示瞬間行程 (process) 的動態
參數:ps 的參數也是非常多的, 在此僅列出幾個常用的參數
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
示例:
ps
7.top
權限:所有使用者
格式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
功能:實時顯示 process 的動態
參數:
d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s
q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行
c : 切換顯示模式,共有兩種模式,一是隻顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來
s : 安全模式,將交談式指令取消, 避免潛在的危機
i : 不顯示任何閒置 (idle) 或無用 (zombie) 的行程
n : 更新的次數,完成後將會退出 top
b : 批次檔模式,搭配 "n" 參數一起使用,可以用來將 top 的結果輸出到檔案內
示例:
top -n 10
8.kill
權限:所有使用者
格式:
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
功能:kill 送出一個特定的信號 (signal) 給行程 id 爲 pid 的行程根據該信號而做特定的動作, 若沒有指定, 預設是送出終止 (TERM) 的信號
參數:
-s (signal) : 其中可用的訊號有 HUP (1), KILL (9), TERM (15), 分別代表著重跑, 砍掉, 結束; 詳細的信號可以用 kill -l
-p : 印出 pid , 並不送出信號
-l (signal) : 列出所有可用的信號名稱
示例:
kill -9 323(將 pid 爲 323 的行程關閉(kill) )
kill -HUP 456(將 pid 爲 456 的行程重啓(restart) )
9.who
權限: 所有使用者都可使用
格式: who - [husfV] [user]
功能: 顯示系統中有那些使用者正在上面,顯示的資料包含了使用者 ID,使用的終端機,從那邊連上來的,上線時間,呆滯時間,CPU 使用量,動作等等。
參數:
-h : 不要顯示標題列
-u : 不要顯示使用者的動作/工作
-s : 使用簡短的格式來顯示
-f : 不要顯示使用者的上線位置
-V : 顯示程序版本