linux常用命令(轉)

ba發表於2007-08-17
linux常用命令(轉)[@more@]linux常用命令
稱:/etc/aliases
使用許可權:系統管理者
使用方式: 請用 newaliases 更新資料庫
說明:
sendmail 會使用一個在 /etc/aliases 中的檔案做使用者名稱轉換的動作。當 sendmail 收到一個要送給 xxx 的信時,它會依據 aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如 mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫 redlinux@link.ece.uci.edu 的 mailinglist,但實際上並沒有一個叫 redlinux 的使用者。實際 aliases 檔的內容是將送給這個使用者的信都收給 mailing list 處理程式負責分送的工作。

/etc/aliases 是一個文字模式的檔案,sendmail 需要一個二進位格式的 /etc/aliases.db。newaliases 的功能傳是將 /etc/aliases 轉換成一個 sendmail 所能瞭解的資料庫。範例:
# newaliases

下面命令會做相同的事,
# sendmail -bi

相關命令:
mail, mailq, newaliases, sendmail

” mail [返回]
名稱:mail

使用許可權:所有使用者

使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]

說明:
mail 不僅只是一個指令, mail 還是一個電子郵件程式,不過利用 mail 來讀信的人應該很少吧!對於系統管理者來說 mail 就很有用,因為管理者可以用 mail 寫成 script ,定期寄一些備忘錄提醒系統的使用者。

引數:
i 忽略 tty 的中斷訊號。 (interrupt)
I 強迫設成互動模式。 (Interactive)
v 列印出訊息,例如送信的地點、狀態等等。 (verbose)
n 不讀入 mail.rc 設定檔。
s 郵件標題。
c cc 郵件地址。
b bcc 郵件地址。

範例:

將信件送給一個或以上的電子郵件地址,由於沒有加入其他的選項,使用者必須輸入標題與信件的內容等。而 user2 沒有主機位置,就會送給郵件伺服器的 user2 使用者。
mail user1@email.address
mail user1@email.address user2

將 mail.txt 的內容寄給 user2 同時 cc 給 user1 。如果將這一行指令設成 cronjob 就可以定時將備忘錄寄給系統使用者。

mail -s 標題 -c user1 user2 < mail.txt

指令:mesg
使用許可權 : 所有使用者

使用方式 : mesg [y|n]

說明 : 決定是否允許其他人傳訊息到自己的終端機介面

把計 ?

y : 允許訊息傳到終端機介面上。
n : 不允許訊息傳到終端機介面上 。
如果沒有設定,則訊息傳遞與否則由終端機介面目前狀態而定。

例子 :
改變目前訊息設定,改成不允許訊息傳到終端機介面上 :
mesg n
與 mesg 相關的指令有: talk,write,wall。
名稱:/etc/aliases
使用許可權:系統管理者
使用方式: newaliases
說明:
sendmail 會使用一個在 /etc/aliases 中的檔案做使用者名稱轉換的動作。當 sendmail 收到一個要送給 xxx 的信時,它會依據 aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如 mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫 redlinux@link.ece.uci.edu 的 mailinglist,但實際上並沒有一個叫 redlinux 的使用者。實際 aliases 檔的內容是將送給這個使用者的信都收給 mailing list 處理程式負責分送的工作。

/etc/aliases 是一個文字模式的檔案,sendmail 需要一個二進位格式的 /etc/aliases.db。newaliases 的功能傳是將 /etc/aliases 轉換成一個 sendmail 所能瞭解的資料庫。

引數:沒有任何引數。 範例:
# newaliases

下面命令會做相同的事,
# sendmail -bi

相關命令:
mail, mailq, newaliases, sendmail
名稱 : talk
使用許可權 : 所有使用者

使用方式 :

talk person [ttyname]
說明 : 與其他使用者對談

把計 :
person : 預備對談的使用者帳號,如果該使用者在其他機器上,則可輸入 person@machine.name
ttyname : 如果使用者同時有兩個以上的 tty 連線,可以自行選擇合適的 tty 傳訊息

例子.1 :

與現在機器上的使用者Rollaend對談,此時 Rollaend 只有一個連線 :
talk Rollaend

接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入 `talk jzlee`即可開始對談,結束請按 ctrl+c

例子.2 :與linuxfab.cx上的使用者Rollaend對談,使用pts/2來對談 :
talk Rollaend@linuxfab.cx pts/2


接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入 `talk jzlee@jzlee.home`即可開始對談,結束請按 ctrl+c

注意 : 若螢幕的字會出現不正常的字元,試著按 ctrl+l 更新螢幕畫面。

名稱 : wall
使用許可權 : 所有使用者

使用方式 :
wall [ message ]
使用說明:
wall 會將訊息傳給每一個 mesg 設定為 yes 的上線使用者。當使用終端機介面做為標準傳入時, 訊息結束時需加上 EOF (通常用 Ctrl+D)?

例子 :

傳訊息"hi" 給每一個使用者 :
wall hi
名稱 : write
使用許可權 : 所有使用者

使用方式 :

write user [ttyname]
說明 : 傳訊息給其他使用者

把計 :

user : 預備傳訊息的使用者帳號
ttyname : 如果使用者同時有兩個以上的 tty 連線,可以自行選擇合適的 tty 傳訊息

例子.1 :

傳訊息給 Rollaend,此時 Rollaend 只有一個連線 :
write Rollaend

接下來就是將訊息打上去,結束請按 ctrl+c

例子.2 :傳訊息給 Rollaend,Rollaend 的連線有 pts/2,pts/3 :
write Rollaend pts/2

接下來就是將訊息打上去,結束請按 ctrl+c

注意 : 若對方設定 mesg n,則此時訊席將無法傳給對方

名稱: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) : 列出所有可用的訊號名稱
範例:

將 pid 為 323 的行程砍掉 (kill) :
kill -9 323

將 pid 為 456 的行程重跑 (restart) :
kill -HUP 456

名稱:nice
使用許可權:所有使用者

使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]

說明:以更改過的優先序來執行程式, 如果未指定程式, 則會印出目前的排程優先序, 內定的 adjustment 為 10, 範圍為 -20 (最高優先序) 到 19 (最低優先序)


把計?

-n adjustment, -adjustment, --adjustment=adjustment 皆為將該原有優先序的增加 adjustment
--help 顯示求助訊息
--version 顯示版本資訊
範例:
將 ls 的優先序加 1 並執行 :
nice -n 1 ls

將 ls 的優先序加 10 並執行 :
nice ls將 ls 的優先序加 10 並執行

注意 : 優先序 (priority) 為作業系統用來決定 CPU 分配的引數,Linux 使用『回合制(round-robin)』的演演算法來做 CPU 排程,優先序越高,所可能獲得的 CPU時間就越多。

名稱:ps
使用許可權:所有使用者
使用方式:ps [options] [--help]
說明:顯示瞬間行程 (process) 的動態
引數:
ps 的引數非常多, 在此僅列出幾個常用的引數並大略介紹含義
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程

au(x) 輸出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程擁有者
PID: pid
%CPU: 佔用的 CPU 使用率
%MEM: 佔用的記憶體使用率
VSZ: 佔用的虛擬記憶體大小
RSS: 佔用的記憶體大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 該行程的狀態:
D: 不可中斷的靜止 (通悸□□縝b進行 I/O 動作)
R: 正在執行中
S: 靜止狀態
T: 暫停執行
Z: 不存在但暫時無法消除
W: 沒有足夠的記憶體分頁可分配
<:>N: 低優先序的行程
L: 有記憶體分頁分配並鎖在記憶體內 (即時系統或捱A I/O)
START: 行程開始時間
TIME: 執行的時間
COMMAND:所執行的指令
範例:
ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
% ps -A
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
.......
% ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
........
名稱:pstree
使用許可權:所有使用者
使用方式:
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
pstree -V
說明:將所有行程以樹狀圖顯示, 樹狀圖將會以 pid (如果有指定) 或是以 init 這個基本行程為根 (root) ,如果有指定使用者 id , 則樹狀圖會只顯示該使用者所擁有的行程
引數:
-a 顯示該行程的完整指令及引數, 如果是被記憶體置換出去的行程則會加上括號
-c 如果有重覆的行程名, 則分開列出 (預設值是會在前面加上 *
範例:
pstree

init-+-amd
|-apmd
|-atd
|-httpd---10*[httpd]
%pstree -p
init(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree -c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
| |-httpd
| |-httpd
| |-httpd
....
名稱:renice
使用許可權:所有使用者

使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

說明:重新指定一個或多個行程(Process)的優先序(一個或多個將根據所下的引數而定)

把計?

-p pid 重新指定行程的 id 為 pid 的行程的優先序
-g pgrp 重新指定行程群組(process group)的 id 為 pgrp 的行程 (一個或多個) 的優先序
-u user 重新指定行程擁有者為 user 的行程的優先序
範例:
將行程 id 為 987 及 32 的行程與行程擁有者為 daemon 及 root 的優先序號碼加 1 :
renice +1 987 -u daemon root -p 32

注意 : 每一個行程(Process)都有一個唯一的 (unique) id?

名稱:top
使用許可權:所有使用者

使用方式:top [-] [d delay] [q] [c] [S] [s] [n]

說明:即時顯示 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

使用者將不能利用交談式指令來對行程下命令 :
top -s

將更新顯示二次的結果輸入到名稱為 top.log 的檔案裡 :
top -n 2 -b < top.log

名稱:skill

使用許可權:所有使用者

使用方式: skill [signal to send] [options] 選擇程式的規則

說明:

送個訊號給正在執行的程式,預設的訊息為 TERM (中斷) , 較常使用的訊息為 HUP , INT , KILL , STOP , CONT ,和 0

訊息有三種寫法:分別為 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的訊息。

一般引數:

-f 快速模式/尚未完成

-i 互動模式/ 每個動作將要被確認

-v 詳細輸出/ 列出所選擇程式的資訊

-w 智慧警告訊息/ 尚未完成

-n 沒有動作/ 顯示程式代號

引數:選擇程式的規則可以是, 終端機代號,使用者名稱,程式代號,命令名稱。

-t 終端機代號 ( tty 或 pty )

-u 使用者名稱

-p 程式代號 ( pid )

-c 命令名稱 可使用的訊號:

以下列出已知的訊號名稱,訊號代號,功能。

名稱 (代號) 功能/ 描述

ALRM 14 離開

HUP 1 離開

INT 2 離開

KILL 9 離開/ 強迫關閉

PIPE 13 離開

POLL 離開

PROF 離開

TERM 15 離開

USR1 離開

USR2 離開

VTALRM 離開

STKFLT 離開/ 只適用於i386, m68k, arm 和 ppc 硬體

UNUSED 離開/ 只適用於i386, m68k, arm 和 ppc 硬體

TSTP 停止 /產生與內容相關的行為

TTIN 停止 /產生與內容相關的行為

TTOU 停止 /產生與內容相關的行為

STOP 停止 /強迫關閉

CONT 從新啟動 /如果在停止狀態則從新啟動,否則忽略

PWR 忽略 /在某些系統中會離開

WINCH 忽略

CHLD 忽略

ABRT 6 核心

FPE 8 核心

ILL 4 核心

QUIT 3 核心

SEGV 11 核心

TRAP 5 核心

SYS 核心 /或許尚未實作

EMT 核心 /或許尚未實作

BUS 核心 /核心失敗

XCPU 核心 /核心失敗

XFSZ 核心 /核心失敗

範例:
停止所有在 PTY 裝置上的程式
skill -KILL -v pts/*

停止三個使用者 user1 , user2 , user3
skill -STOP user1 user2 user3

其他相關的命令: kill
名稱:expr
使用許可權:所有使用者
### 字串長度

shell>> expr length "this is a test"
14
### 數字商數
shell>> expr 14 % 9
5
### 從位置處抓取字串
shell>> expr substr "this is a test" 3 5
is is
### 數字串 only the first character
shell>> expr index "testforthegame" e
2
### 字串真實重現
shell>> expr quote thisisatestformela
thisisatestformela

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-963279/,如需轉載,請註明出處,否則將追究法律責任。