2011年10月27日 星期四

Linux指令大全

名稱:cat
使用權限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
說明:把檔案串連接後傳到基本輸出(螢幕或加 > fileName 到另一個檔案)
參數:
-n 或 --number 由 1 開始對所有輸出的行數編號
-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號
-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行
-v 或 --show-nonprinting
範例:
cat -n textfile1 > textfile2 把 textfile1 的檔案內容加上行號後輸入 textfile2 這個檔案裡
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之後將內容附加到 textfile3
名稱 : cd
使用權限 : 所有使用者
使用方式 : cd [dirName]
說明 : 變換工作目錄至 dirName。 其中 dirName 標記法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的 home directory (也就是剛 login 時所在的目錄)。
另外,"~" 也表示為 home directory 的意思,"." 則是表示目前所在的目錄,".." 則表示目前目錄位置的上一層目錄。
範例 : 跳到 /usr/bin/ :
cd /usr/bin
跳到自己的 home directory :
cd ~
跳到目前目錄的上上兩層 :
cd ../..

指令名稱 : chmod
使用權限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
說明 : Linux/Unix 的檔案存取許可權分為三級 : 檔案擁有者、群組、其他。利用 chmod 可以藉以控制檔案如何被他人所存取。
把計 :
mode : 許可權設定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是。
+ 表示增加許可權、- 表示取消許可權、= 表示唯一設定許可權。
r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。
-c : 若該檔案許可權確實已經更改,才顯示其更改動作
-f : 若該檔案許可權無法被更改也不要顯示錯誤訊息
-v : 顯示許可權變更的詳細資料
-R : 對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞回的方式逐個變更)
--help : 顯示輔助說明
--version : 顯示版本
範例 :將檔案 file1.txt 設為所有人皆可讀取 :
chmod ugo+r file1.txt
將檔案 file1.txt 設為所有人皆可讀取 :
chmod a+r file1.txt
將檔案 file1.txt 與 file2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入 :
chmod ug+w,o-w file1.txt file2.txt
將 ex1.py 設定為只有該檔案擁有者可以執行 :
chmod u+x ex1.py
將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 :
chmod -R a+r *
此外chmod也可以用數位來表示許可權如 chmod 777 file
語法為:chmod abc file
其中a,b,c各為一個數位,分別表示User、Group、及Other的許可權。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=7。
範例:
chmod a=rwx file

chmod 777 file
效果相同
chmod ug=rwx,o=x file

chmod 771 file
效果相同

若用chmod 4755 filename可使此程式具有root的許可權

指令名稱 : chown
使用權限 : root
使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...
說明 : Linux/Unix 是多人多工作業系統,所有的檔案皆有擁有者。利用 chown 可以將檔案的擁有者加以改變。一般來說,這個指令只有是由系統管理者(root)所使用,一般使用者沒有許可權可以改變別人的檔案擁有者,也沒有許可權可以自己的檔案擁有者改設為別人。只有系統管理者(root)才有這樣的許可權。
把計 :
user : 新的檔案擁有者的使用者 IDgroup : 新的檔案擁有者的使用者群體(group)-c : 若該檔案擁有者確實已經更改,才顯示其更改動作-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息-h : 只對於連結(link)進行變更,而非該 link 真正指向的檔案-v : 顯示擁有者變更的詳細資料-R : 對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞回的方式逐個變更)--help : 顯示輔助說明--version : 顯示版本
範例 :
將檔案 file1.txt 的擁有者設為 users 群體的使用者 jessie :
chown jessie:users file1.txt
將目前目錄下的所有檔案與子目錄的擁有者皆設為 users 群體的使用者 lamport :
chmod -R lamport:users *

名稱:cp
使用權限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。
把計檉
-a 盡可能將檔案狀態、許可權等資料都照原狀予以複製。
-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經有相同檔名的檔案存在,則在複製前先予以刪除再行複製。
範例:
將檔案 aaa 複製(已存在),並命名為 bbb :
cp aaa bbb
將所有的C語言程式拷貝至 Finished 子目錄中 :
cp *.c Finished

名稱:cut
使用權限:所有使用者
用法:cut -cnum1-num2 filename
說明:顯示每行從開頭算起 num1 到 num2 的文字。
範例:
shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print 開頭算起前 6 個字元
test2
this i

名稱 : find
用法 : find
使用說明 :
將檔案系統內符合 expression 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、許可權等不同資訊的組合,只有完全相符的才會被列出來。
find 根據下列規則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部份為 path,之後的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預設 expression櫨
expression 中可使用的選項有二三十個之多,在此只介紹最常用的部份。
-mount, -xdev : 只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其他檔案系統中的檔案
-amin n : 在過去 n 分鐘內被讀取過
-anewer file : 比檔案 file 更晚被讀取過的檔案
-atime n : 在過去 n 天過讀取過的檔案
-cmin n : 在過去 n 分鐘內被修改過
-cnewer file :比檔案 file 更新的檔案
-ctime n : 在過去 n 天過修改過的檔案
-empty : 空的檔案-gid n or -group name : gid 是 n 或是 group 名稱是 name
-ipath p, -path p : 路徑名稱符合 p 的檔案,ipath 會忽略大小寫
-name name, -iname name : 檔案名稱符合 name 的檔案。iname 會忽略大小寫
-size n : 檔案大小 是 n 單位,b 代表 512 位元組的區塊,c 表示字元數,k 表示 kilo bytes,w 是二個位元組。-type c : 檔案類型是 c 的檔案。
d: 目錄
c: 字型裝置檔案
b: 區塊裝置檔案
p: 具名貯列
f: 一般檔案
l: 符號連結
s: socket
-pid n : process id 是 n 的檔案
你可以使用 ( ) 將運算式分隔,並使用下列運算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
範例:
將目前目錄及其子目錄下所有延伸檔名是 c 的檔案列出來。
# find . -name "*.c"

將目前目錄其其下子目錄中所有一般檔案列出
# find . -ftype f

將目前目錄及其子目錄下所有最近 20 分鐘內更新過的檔案列出
# find . -ctime -20

名稱:less
使用權限:所有使用者
使用方式:
less [Option] filename
說明:
less 的作用與 more 十分相似,都可以用來流覽文字檔案的內容,不同的是 less 允許使用者往回捲動
以流覽已經看過的部份,同時因為 less 並未在一開始就讀入整個檔案,因此在遇上大型檔案的開啟時,會比一般的文書編輯器(如 vi)來的快速。

範例:

指令名稱 : ln
使用權限 : 所有使用者
使用方式 : ln [options] source dist,其中 option 的格式為 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
說明 : Linux/Unix 檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種 : 硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻可以跨越不同的檔案系統。
ln source dist 是產生一個連結(dist)到 source,至於使用硬連結或軟鏈結則由參數決定。
不論是硬連結或軟鏈結都不會將原本的檔案複製一份,只會佔用非常少量的磁碟空間。

-f : 鏈結時先將與 dist 同檔名的檔案刪除-d : 允許系統管理者硬鏈結自己的目錄-i : 在刪除與 dist 同檔名的檔案時先進行詢問-n : 在進行軟連結時,將 dist 視為一般的檔案-s : 進行軟鏈結(symbolic link)-v : 在連結之前顯示其檔名-b : 將在鏈結時會被覆寫或刪除的檔案進行備份-S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾-V METHOD : 指定備份的方式--help : 顯示輔助說明--version : 顯示版本
範例 :
將檔案 yy 產生一個 symbolic link : zz
ln -s yy zz
將檔案 yy 產生一個 hard link : zz
ln yy xx

名稱:locate
使用權限:所有使用者
使用方式: locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
說明:
locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。
在一般的 distribution 之中,資料庫的建立都被放在 contab 中自動執行。一般使用者在使用時只要用
# locate your_file_name
的型式就可以了。 參數:
-u
-U
建立資料庫,-u 會由根目錄開始,-U 則可以指定開始的位置。
-e

排除在尋找的範圍之外。
-l
如果 是 1.則啟動安全模式。在安全模式下,使用者不會看到許可權無法看到的檔案。這會始速度減慢,因為 locate 必須至實際的檔案系統中取得檔案的許可權資料。
-f
將特定的檔案系統排除在外,例如我們沒有到理要把 proc 檔案系統中的檔案放在資料庫中。
-q
安靜模式,不會顯示任何錯誤訊息。
-n
至多顯示 個輸出。
-r
使用正規運算式 做尋找的條件。
-o
指定資料庫存的名稱。
-d
指定資料庫的路徑
-h
顯示輔助訊息
-v
顯示更多的訊息
-V
顯示程式的版本訊息 範例:
locate chdrv : 尋找所有叫 chdrv 的檔案
locate -n 100 a.out : 尋找所有叫 a.out 的檔案,但最多只顯示 100 個
locate -u : 建立資料庫

名稱 : ls
使用權限 : 所有使用者
使用方式 : ls [-alrtAFR] [name...]
說明 : 顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。

-a 顯示所有檔案及目錄 (ls內定將檔案名或目錄名稱開頭為"."的視為隱藏檔,不會列出)
-l 除檔案名稱外,亦將檔案型態、許可權、擁有者、檔案大小等資訊詳細列出
-r 將檔案以相反次序顯示(原定依英文字母次序)
-t 將檔案依建立時間之先後次序列出
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-F 在列出的檔案名稱後加一符號;例如可執行檔則加 "*", 目錄則加 "/"
-R 若目錄下有檔案,則以下之檔案亦皆依序列出
範例:
列出目前工作目錄下所有名稱是 s 開頭的檔案,愈新的排愈後面 :
ls -ltr s*
將 /bin 目錄以下所有目錄及檔案詳細資料列出 :
ls -lR /bin
列出目前工作目錄下所有檔案及目錄;目錄於名稱後加 "/", 可執行檔於名稱後加 "*" :
ls -AF
名稱:more
使用權限:所有使用者
使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
說明:類似 cat ,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明文件,請按 h 。
參數:-num 一次顯示的行數
-d 提示使用者,在畫面下方顯示 [Press space to continue, q to quit.] ,如果使用者按錯鍵,則會顯示 [Press h for instructions.] 而不是 嗶 聲
-l 取消遇見特殊字元 ^L(送紙字元)時會暫停的功能
-f 計算行數時,以實際上的行數,而非自動換行過後的行數(有些單行字數太長的會被擴展為兩行或兩行以上)
-p 不以捲動的方式顯示每一頁,而是先清除螢幕後再顯示內容
-c 跟 -p 相似,不同的是先顯示內容再清除其他舊資料
-s 當遇到有連續兩行以上的空白行,就代換為一行的空白行
-u 不顯示下引號 (根據環境變數 TERM 指定的 terminal 而有所不同)
+/ 在每個檔案顯示前搜尋該字串(pattern),然後從該字串之後開始顯示
+num 從第 num 行開始顯示
fileNames 欲顯示內容的檔案,可為複數個數
範例:
more -s testfile 逐頁顯示 testfile 之檔案內容,如有連續兩行以上空白行則以一行空白行顯示。
more +20 testfile 從第 20 行開始顯示 testfile 之檔案內容。

名稱:mv
使用權限:所有使用者
使用方式:
mv [options] source dest
mv [options] source... directory
說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。
參數:-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
範例:
將檔案 aaa 更名為 bbb :
mv aaa bbb
將所有的C語言程式移至 Finished 子目錄中 :
mv -i *.c

名稱:rm
使用權限:所有使用者
使用方式:rm [options] name...
說明:刪除檔案及目錄。
把計檉
-i 刪除前逐一詢問確認。
-f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-r 將目錄及以下之檔案亦逐一刪除。
範例:
刪除所有C語言程式檔;刪除前逐一詢問確認 :
rm -i *.c
將 Finished 子目錄及子目錄中所有檔案刪除 :
rm -r Finished

名稱:rmdir
使用權限:于目前目錄有適當許可權的所有使用者
使用方式: rmdir [-p] dirName
說明: 刪除空的目錄。
參數: -p 是當子目錄被刪除後使它也成為空目錄的話,則順便一併刪除。
範例:
將工作目錄下,名為 AAA 的子目錄刪除 :
rmdir AAA
在工作目錄下的 BBB 目錄中,刪除名為 Test 的子目錄。若 Test 刪除後,BBB 目錄成為空目錄,則 BBB 亦予刪除。
rmdir -p BBB/Test

名稱:split
使用權限:所有使用者
使用方式:split [OPTION] [INPUT [PREFIX]]
說明:
將一個檔案分割成數個。而從 INPUT 分割輸出成固定大小的檔案,其檔名依序為 PREFIXaa, PREFIXab...;PREFIX 預設值為 `x。若沒有 INPUT 檔或為 `-,則從標準輸入讀進資料。
匡兜檉
-b, --bytes=SIZE
SIZE 值為每一輸出檔案的大小,單位為 byte。
-C, --line-bytes=SIZE
每一輸出檔中,單行的最大 byte 數。
-l, --lines=NUMBER
NUMBER 值為每一輸出檔的列數大小。
-NUMBER
與 -l NUMBER 相同。
--verbose
于每個輸出檔被開啟前,列印出偵錯資訊到標準錯誤輸出。
--help
顯示輔助資訊然後離開。
--version
列出版本資訊然後離開。
SIZE 可加入單位: b 代表 512, k 代表 1K, m 代表 1 Meg。
範例:
PostgresSQL 大型資料庫備份與回存:
因 Postgres 允許表格大過你系統檔案的最大容量,所以要將表格 dump 到單一的檔案可能會有問題,使用 split進行檔案分割。

% pg_dump dbname | split -b 1m - filename.dump.

重新載入

% createdb dbname
% cat filename.dump.* | pgsql dbname

名稱:touch
使用權限:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]

說明:
touch 指令改變檔案的時間記錄。 ls -l 可以顯示檔案的時間記錄。

參數:
a 改變檔案的讀取時間記錄。
m 改變檔案的修改時間記錄。
c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。
f 不使用,是為了與其他 unix 系統的相容性而保留。
r 使用參考檔的時間記錄,與 --file 的效果一樣。
d 設定時間與日期,可以使用各種不同的格式。
t 設定檔案的時間記錄,格式與 date 指令相同。
--no-create 不會建立新檔案。
--help 列出指令格式。
--version 列出版本訊息。

範例:

最簡單的使用方式,將檔案的時候記錄改為現在的時間。若檔案不存在,系統會建立一個新的檔案。
touch file
touch file1 file2
將 file 的時間記錄改為 5 月 6 日 18 點 3 分,西元兩千年。時間的格式可以參考 date 指令,至少需輸入 MMDDHHmm ,就是月日時與分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
將 file 的時間記錄改變成與 referencefile 一樣。
touch -r referencefile file
將 file 的時間記錄改成 5 月 6 日 18 點 3 分,西元兩千年。時間可以使用 am, pm 或是 24 小時的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
名稱 : at
使用權限 : 所有使用者
使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME
說明 : at 可以讓使用者指定在 TIME 這個特定時刻執行某個程式或指令,TIME 的格式是 HH:MM其中的 HH 為小時,MM 為分鐘,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 點鐘)等口語詞。
如果想要指定超過一天內的時間,則可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分鐘,DD 是第幾日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 時間間隔來彈性指定時間,其中的時間間隔可以是 minutes, hours, days, weeks櫨
另外,使用者也可指定 today 或 tomorrow 來表示今天或明天。當指定了時間並按下 enter 之後,at 會進入交談模式並要求輸入指令或程式,當你輸入完後按下 ctrl+D 即可完成所有動作,至於執行的結果將會寄回你的帳號中。
把計 :
-V : 印出版本編號
-q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c... z 以及 A, B, ... Z 共 52 個
-m : 即使程式/指令執行完成後沒有輸出結果, 也要寄封信給使用者
-f file : 讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案後再一次讀入
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 刪除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已經完成但尚未刪除的指定
例子 :
三天后的下午 5 點鐘執行 /bin/ls :
at 5pm + 3 days /bin/ls
三個星期後的下午 5 點鐘執行 /bin/ls :
at 5pm + 2 weeks /bin/ls
明天的 17:20 執行 /bin/date :
at 17:20 tomorrow /bin/date
1999 年的最後一天的最後一分鐘印出 the end of world !
at 23:59 12/31/1999 echo the end of world !

名稱:cal
使用權限:所有使用者
使用方式:cal [-mjy] [month [year]]
說明:
顯示日曆。若只有一個參數,則代表年份(1-9999),顯示該年的年曆。年份必須全部寫出:``cal 89 將不會是顯示 1989 年的年曆。使用兩個參數,則表示月份及年份。若沒有參數則顯示這個月的月曆。
1752 年 9 月第 3 日起改用西洋新曆,因這時大部份的國家都採用新曆,有 10 天被去除,所以該月份的月曆有些不同。在此之前為西洋舊曆。
匡兜檉
-m : 以星期一為每週的第一天方式顯示。
-j : 以凱撒曆顯示,即以一月一日起的天數顯示。
-y : 顯示今年年曆。
範例:
cal : 顯示本月的月曆。

[root@mylinux /root]# date
Tue Aug 15 08:00:18 CST 2000
[root@mylinux /root]# cal
August 2000
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
[root@mylinux /root]#

cal 2001 : 顯示西元 2001 年年曆。
[root@mylinux /root]# cal 2001
2001
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
[root@mylinux /root]#

cal 5 2001 : 顯示西元 2001 年 5 月月曆。

[root@mylinux /root]# cal 5 2001
May 2001
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
[root@mylinux /root]#

cal -m : 以星期一為每週的第一天方式,顯示本月的月曆。

[root@mylinux /root]# cal -m
August 2000
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
[root@mylinux /root]#

cal -jy : 以一月一日起的天數顯示今年的年曆。

[root@mylinux /root]# cal -jy
2000
January February
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 32 33 34 35 36
2 3 4 5 6 7 8 37 38 39 40 41 42 43
9 10 11 12 13 14 15 44 45 46 47 48 49 50
16 17 18 19 20 21 22 51 52 53 54 55 56 57
23 24 25 26 27 28 29 58 59 60
30 31
March April
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
61 62 63 64 92
65 66 67 68 69 70 71 93 94 95 96 97 98 99
72 73 74 75 76 77 78 100 101 102 103 104 105 106
79 80 81 82 83 84 85 107 108 109 110 111 112 113
86 87 88 89 90 91 114 115 116 117 118 119 120
121
May June
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
122 123 124 125 126 127 153 154 155
128 129 130 131 132 133 134 156 157 158 159 160 161 162
135 136 137 138 139 140 141 163 164 165 166 167 168 169
142 143 144 145 146 147 148 170 171 172 173 174 175 176
149 150 151 152 177 178 179 180 181 182
July August
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
183 214 215 216 217 218
184 185 186 187 188 189 190 219 220 221 222 223 224 225
191 192 193 194 195 196 197 226 227 228 229 230 231 232
198 199 200 201 202 203 204 233 234 235 236 237 238 239
205 206 207 208 209 210 211 240 241 242 243 244
212 213
September October
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
245 246 275 276 277 278 279 280 281
247 248 249 250 251 252 253 282 283 284 285 286 287 288
254 255 256 257 258 259 260 289 290 291 292 293 294 295
261 262 263 264 265 266 267 296 297 298 299 300 301 302
268 269 270 271 272 273 274 303 304 305
November December
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
306 307 308 309 336 337
310 311 312 313 314 315 316 338 339 340 341 342 343 344
317 318 319 320 321 322 323 345 346 347 348 349 350 351
324 325 326 327 328 329 330 352 353 354 355 356 357 358
331 332 333 334 335 359 360 361 362 363 364 365
366
[root@mylinux /root]#

名稱 : crontab
使用權限 : 所有使用者
使用方式 :
crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
說明 :
crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定 user 的時程表,這個前提是你必須要有其許可權(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。
餐數 :
-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
-r : 刪除目前的時程表
-l : 列出目前的時程表
時程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程式。
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推
使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表。
例子 :
每月每天每小時的第 0 分鐘執行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
週一到週五每天下午 5:00 寄一封信給 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha"
20 0-23/2 * * * echo "haha"
注意 :
當程式在你所指定的時間執行後,系統會寄一封信給你,顯示該程式執行的內容,若是你不希望收到這樣的信,請在每一行空一格之後加上 > /dev/null 2>&1 即可。
名稱 : date
使用權限 : 所有使用者
使用方式 :
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
說明 :
date 可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號後接數個標記,其中可用的標記清單如下 :
時間方面 :
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..61)
%T : 直接顯示時間 (24 小時制)
%X : 相當於 %H:%M:%S
%Z : 顯示時區
日期方面 :
%a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最後兩位元數位 (00.99)
%Y : 完整年份 (0000..9999)
若是不以加號作為開頭,則表示要設定時間,而時間格式為 MMDDhhmm[[CC]YY][.ss],其中 MM 為月份,DD 為日,hh 為小時,mm 為分鐘,CC 為年份前兩位元數位,YY 為年份後兩位元數位,ss 為秒數
把計 :
-d datestr : 顯示 datestr 中所設定的時間 (非系統時間)
--help : 顯示輔助訊息
-s datestr : 將系統時間設為 datestr 中所設定的時間
-u : 顯示目前的格林威治時間
--version : 顯示版本編號
例子 :
顯示時間後跳行,再顯示目前日期 :
date +%T%n%D
顯示月份與日數 :
date +%B %d
顯示日期與設定時間(12:34:56) :
date --date 12:34:56
注意 :
當你不希望出現無意義的 0 時(比如說 1999/03/07),則可以在標記中插入 - 符號,比如說 date +%-H:%-M:%-S 會把時分秒中無意義的 0 給去掉,像是原本的 08:09:04 會變為 8:9:4。另外,只有取得許可權者(比如說 root)才能設定系統時間。
當你以 root 身分更改了系統時間之後,請記得以 clock -w 來將系統時間寫入 CMOS 中,這樣下次重新開機時系統時間才會持續抱持最新的正確值。

名稱 : sleep
使用權限 : 所有使用者
使用方式 : sleep [--help] [--version] number[smhd]
說明 : sleep 可以用來將目前動作延遲一段時間
參數說明 :
--help : 顯示輔助訊息
--version : 顯示版本編號
number : 時間長度,後面可接 s、m、h 或 d
其中 s 為秒,m 為 分鐘,h 為小時,d 為日數
例子 :
顯示目前時間後延遲 1 分鐘,之後再次顯示時間 :
date;sleep 1m;date

名稱: time
使用權限: 所有使用者
使用方式: time [options] COMMAND [arguments]
說明: time 指令的用途,在於量測特定指令執行時所需消耗的時間及系統資源等資訊。例如 CPU 時間、記憶體、輸入輸出等等。需要特別注意的是,部分資訊在 Linux 上顯示不出來。這是因為在 Linux 上部分資源的分配函式與 time 指令所預設的方式並不相同,以致於 time 指令無法取得這些資料。
把計檉
-o or --output=FILE
設定結果輸出檔。這個選項會將 time 的輸出寫入 所指定的檔案中。如果檔案已經存在,系統將覆寫其內容。
-a or --append
配合 -o 使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容。
-f FORMAT or --format=FORMAT
以 FORMAT 字串設定顯示方式。當這個選項沒有被設定的時候,會用系統預設的格式。不過你可以用環境變數 time 來設定這個格式,如此一來就不必每次登入系統都要設定一次。
一般設定上,你可以用
t
表示跳欄,或者是用
n
表示換行。每一項資料要用 % 做為前導。如果要在字串中使用百分比符號,就用 。(學過 C 語言的人大概會覺得很熟悉)
time 指令可以顯示的資源有四大項,分別是:
Time resources
Memory resources
IO resources
Command info
詳細的內容如下:

Time Resources
E 執行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數位並不代表實際的 CPU 時間。
e 執行指令所花費的時間,單位是秒。請注意這個數位並不代表實際的 CPU 時間。
S 指令執行時在核心模式(kernel mode)所花費的時間,單位是秒。
U 指令執行時在使用者模式(user mode)所花費的時間,單位是秒。
P 執行指令時 CPU 的佔用比例。其實這個數位就是核心模式加上使用者模式的 CPU 時間除以總時間。

Memory Resources
M 執行時所佔用的實體記憶體的最大值。單位是 KB
t 執行時所佔用的實體記憶體的平均值,單位是 KB
K 執行程式所佔用的記憶體總量(stack+data+text)的平均大小,單位是 KB
D 執行程式的自有資料區(unshared data area)的平均大小,單位是 KB
p 執行程式的自有堆疊(unshared stack)的平均大小,單位是 KB
X 執行程式間共用內容(shared text)的平均值,單位是 KB
Z 系統記憶體頁的大小,單位是 byte。對同一個系統來說這是個常數

IO Resources
F 此程式的主要記憶體頁錯誤發生次數。所謂的主要記憶體頁錯誤是指某一記憶體頁已經置換到置換檔(swap file)中,而且已經分配給其他程式。此時該頁的內容必須從置換檔裡再讀出來。
R 此程式的次要記憶體頁錯誤發生次數。所謂的次要記憶體頁錯誤是指某一記憶體頁雖然已經置換到置換檔中,但尚未分配給其他程式。此時該頁的內容並未被破壞,不必從置換檔裡讀出來
W 此程式被交換到置換檔的次數
c 此程式被強迫中斷(像是分配到的 CPU 時間耗盡)的次數
w 此程式自願中斷(像是在等待某一個 I/O 執行完畢,像是磁碟讀取等等)的次數
I 此程式所輸入的檔案數
O 此程式所輸出的檔案數
r 此程式所收到的 Socket Message
s 此程式所送出的 Socket Message
k 此程式所收到的信號 ( Signal )數量

Command Info
C 執行時的參數以及指令名稱
x 指令的結束代碼 ( Exit Status )

-p or --portability
這個選項會自動把顯示格式設定成為:
real %e
user %U
sys %S
這麼做的目的是為了與 POSIX 規格相容。
-v or --verbose
這個選項會把所有程式中用到的資源通通列出來,不但如一般英文語句,還有說明。對不想花時間去熟習格式設定或是剛剛開始接觸這個指令的人相當有用。
範例:
利用下面的指令
time -v ps -aux
我們可以獲得執行 ps -aux 的結果和所花費的系統資源。如下面所列的資料:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
Command being timed: "ps -aux"
User time (seconds): 0.05
System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46
Voluntary context switches: 0
Involuntary context switches: 0
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0

名稱: uptime
使用權限: 所有使用者
使用方式: uptime [-V]
說明: uptime 提供使用者下面的資訊,不需其他參數:
現在的時間
系統開機運轉到現在經過的時間
連線的使用者數量
最近一分鐘,五分鐘和十五分鐘的系統負載
參數: -V 顯示版本資訊。
範例: uptime
其結果為:
10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
名稱:chfn
使用權限:所有使用者
用法:shell>> chfn
說明:提供使用者更改個人資訊,用於 finger and mail username
範例:
shell>> chfn
Changing finger information for user
Password: [del]
Name[]:Johnney Huang ### 提供 finger 時的資料
Office[]:NCCU
Office Phone[]: [del]
Home Phone[]: [del]

名稱:chsh
使用權限:所有使用者
用法:shell>> chsh
說明:更改使用者 shell 設定
範例:
shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的 shell]
[del]
shell>> chsh -l ### 展示 /etc/shells 檔案內容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh

” finger [返回]
名稱: finger
使用權限: 所有使用者
使用方式: finger [options] user[@address]
說明:finger 可以讓使用者查詢一些其他使用者的資料。會列出來的資料有:
Login Name
User Name
Home directory
Shell
Login status
mail status
.plan
.project
.forward
其中 .plan ,.project 和 .forward 就是使用者在他的 Home Directory 裡的 .plan , .project 和 .forward 等檔案裡的資料。如果沒有就沒有。finger 指令並不限定於在同一伺服器上查詢,也可以尋找某一個遠端伺服器上的使用者。只要給一個像是 E-mail address 一般的位址即可。
把計檉
-l
多行顯示。
-s
單行顯示。這個選項只顯示登入名稱,真實姓名,終端機名稱,閒置時間,登入時間,辦公室號碼及電話號碼。如果所查詢的使用者是遠端伺服器的使用者,這個選項無效。
範例:下列指令可以查詢本機管理員的資料:
finger root
其結果如下:
Login: root Name: root
Directory: /root Shell: /bin/bash
Never logged in.
No mail.
No Plan.

名稱:last
使用權限:所有使用者
使用方式:shell>> last [options]
說明:顯示系統開機以來獲是從每月初登入者的訊息
把計檉
-R 省略 hostname 的欄位
-num 展示前 num 個
username 展示 username 的登入訊息
tty 限制登入訊息包含終端機代號
範例:
shell>> last -R -2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in
wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp

shell>> last -2 minery
minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02)
wtmp begins Tue Aug 1 09:01:10 2000

名稱:login
這個命令都不會就不要幹算了!呵呵我也不在這裡多費筆墨耽誤大家美好青春了^_^

名稱:passwd
使用權限:所有使用者
使用方式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
說明:用來更改使用者的密碼
參數:
-k
-l
-u
-f
-d 關閉使用者的密碼認證功能, 使用者在登入時將可以不用輸入密碼, 只有具備 root 許可權的使用者方可使用.
-S 顯示指定使用者的密碼認證種類, 只有具備 root 許可權的使用者方可使用.
[username] 指定帳號名稱.


相關下載:
流覽網上本帖子最新內容

--------------------------------------------------------------------------------
Copyright Java開發者------www.ChinaJavaWorld.com
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
回復人:wuchensir 回復時間:Thu Sep 05 13:34:12 CST 2002
回復內容:
名稱 : who
使用權線 : 所有使用者都可使用
使用方式 : who - [husfV] [user]
說明 : 顯示系統中有那些使用者正在上面,顯示的資料包含了使用者 ID,使用的終端機,從那邊連上來的,上線時間,呆滯時間,CPU 使用量,動作等等。
把計 :
-h : 不要顯示標題列
-u : 不要顯示使用者的動作/工作
-s : 使用簡短的格式來顯示
-f : 不要顯示使用者的上線位置
-V : 顯示程式版本
名稱:/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] [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
使用者將不能利用交談式指令來對行程下命令 :
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

名稱: tr
### 1.比方說要把目錄下所有的大寫檔名換為小寫檔名?
似乎有很多方式,"tr"是其中一種:
#!/bin/sh
dir="/tmp/testdir";
files=`find $dir -type f`;
for i in $files
do
dir_name=`dirname $i`;
ori_filename=`basename $i`
new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null;
#echo $new_filename;
mv $dir_name/$ori_filename $dir_name/$new_filename
done

### 2.自己試驗中...lowercase to uppercase
tr abcdef...[del] ABCDE...[del]
tr a-z A-Z
tr [:lower:] [:upper:]
shell>> echo "this is a test" | tr a-z A-Z > www
shell>> cat www
THIS IS A TEST
### 3.去掉不想要的字串
shell>> tr -d this ### 去掉有關 t.e.s.t
this
man
man
test
e
### 4.取代字串
shell>> tr -s "this" "TEST"
this
TEST
th
TE

指令:clear
用途:清除螢幕用。
使用方法:在 console 上輸入 clear。

名稱: reset, tset
使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]
使用說明:
reset 其實和 tset 是一同個命令,它的用途是設定終端機的狀態。一般而言,這個命令會自動的從環境變數、命令列或是其他的組態檔決定目前終端機的型態。如果指定型態是 ? 的話,這個程式會要求使用者輸入終端機的型別。
由於這個程式會將終端機設回原始的狀態,除了在 login 時使用外,當系統終端機因為程式不正常執行而進入一些奇怪的狀態時,你也可以用它來重設終端機o 例如不小心把二進位元元檔用 cat 指令進到終端機,常會有終端機不再回應鍵盤輸入,或是回應一些奇怪字元的問題。此時就可以用 reset 將終端機回復至原始狀態。選項說明:

-p
將終端機類別顯示在螢幕上,但不做設定的動作。這個命令可以用來取得目前終端機的類別。
-e ch
將 erase 字元設成 ch
-i ch
將中斷字元設成 ch
-k ch
將刪除一行的字元設成 ch
-I
不要做設定的動作,如果沒有使用選項 -Q 的話,erase、中斷及刪除字元的目前值依然會送到螢幕上。
-Q
不要顯示 erase、中斷及刪除字元的值到螢幕上。
-r
將終端機類別印在螢幕上。
-s
將設定 TERM 用的命令用字串的型式送到終端機中,通常在 .login 或 .profile 中用
範例:
讓使用者輸入一個終端機型別並將終端機設到該型別的預設狀態。
# reset ?

將 erase 字元設定 control-h
# reset -e ^B

將設定用的字串顯示在螢幕上
# reset -s
Erase is control-B (^B).
Kill is control-U (^U).
Interrupt is control-C (^C).
TERM=xterm;
名稱:compress
使用權限:所有使用者

使用方式:compress [-dfvcV] [-b maxbits] [file ...]

說明:
compress 是一個相當古老的 unix 檔案壓縮指令,壓縮後的檔案會加上一個 .Z 延伸檔名以區別未壓縮的檔案,壓縮後的檔案可以以 uncompress 解壓。若要將數個檔案壓成一個壓縮檔,必須先將檔案 tar 起來再壓縮。由於 gzip 可以產生更理想的壓縮比例,一般人多已改用 gzip 為檔案壓縮工具。

參數:
c 輸出結果至標準輸出設備(一般指螢幕)
f 強迫寫入檔案,若目的檔已經存在,則會被覆蓋 (force)
v 將程式執行的訊息印在螢幕上 (verbose)
b 設定共同字串數的上限,以位元計算,可以設定的值為 9 至 16 bits 。由於值越大,能使用的共同字串就 越多,壓縮比例就越大,所以一般使用預設值 16 bits (bits)
d 將壓縮檔解壓縮
V 列出版本訊息

範例:

將 source.dat 壓縮成 source.dat.Z ,若 source.dat.Z 已經存在,內容則會被壓縮檔覆蓋。

compress -f source.dat

將 source.dat 壓縮成 source.dat.Z ,並列印出壓縮比例。
-v 與 -f 可以一起使用

compress -vf source.dat

將壓縮後的資料輸出後再導入 target.dat.Z 可以改變壓縮檔名。

compress -c source.dat > target.dat.Z

-b 的值越大,壓縮比例就越大,範圍是 9-16 ,預設值是 16 。

compress -b 12 source.dat

將 source.dat.Z 解壓成 source.dat ,若檔案已經存在,使用者按 y 以確定覆蓋檔案,若使用 -df 程式則會自動覆蓋檔案。由於系統會自動加入 .Z 為延伸檔名,所以 source.dat 會自動當作 source.dat.Z 處理。

compress -d source.dat
compress -d source.dat.Z

名稱: lpd
使用權限: 所有使用者
使用方式:lpd [-l] [#port]
lpd 是一個常駐的印表機管理程式,它會根據 /etc/printcap 的內容來管理本地或遠端的印表機。/etc/printcap 中定義的每一個印表機必須在 /var/lpd 中有一個相對應的目錄,目錄中以 cf 開頭的檔案表示一個等待送到適當裝置的印表工作。這個檔案通常是由 lpr 所產生。
lpr 和 lpd 組成了一個可以離線工作的系統,當你使用 lpr 時,印表機不需要能立即可用,甚至不用存在。lpd 會自動監視印表機的狀況,當印表機上線後,便立即將檔案送交處理。這個得所有的應用程式不必等待印表機完成前一工作。
參數:

-l: 將一些除錯訊息顯示在標準輸出上。
#port: 一般而言,lpd 會使用 getservbyname 取得適當的 TCP/IP port,你可以使用這個參數強迫 lpd 使用指定的 port。
範例:
這個程式通常是由 /etc/rc.d 中的程式在系統啟始階段執行。

名稱 lpq
-- 顯示清單機貯列中未完成的工作 用法
lpq [l] [P] [user]
說明
lpq 會顯示由 lpd 所管理的列表機貯列中未完成的專案。
範例
範例 1. 顯示所有在 lp 清單機貯列中的工作

# lpq -PlpRank Owner Job Files Total Size1st root 238 (standard input) 1428646 bytes

相關函數
lpr,lpc,lpd

名稱: lpr
使用權限: 所有使用者
使用方式:lpr [ -P printer ]
將檔案或是由標準輸入送進來的資料送到印表機貯列之中,印表機管理程式 lpd 會在稍後將這個檔案送給適當的程式或裝置處理。lpr 可以用來將料資送給本地或是遠端的主機來處理。
參數:

-p Printer: 將資料送至指定的印表機 Printer,預設值為 lp。
範例:
將 www.c 和 kkk.c 送到印表機 lp。
lpr -Plp www.c kkk.c

名稱: lprm
-- 將一個工作由印表機貯列中移除 用法
/usr/bin/lprm [P] [file...]
說明
尚未完成的印表機工作會被放在印表機貯列之中,這個命令可用來將常未送到印表機的工作取消。由於每一個印表機都有一個獨立的貯列,你可以用 -P 這個命令設定想要作用的印列機。如果沒有設定的話,會使用系統預設的印表機。
這個命令會檢查使用者是否有足夠的許可權刪除指定的檔案,一般而言,只有檔案的擁有者或是系統管理員才有這個許可權。
範例
將印表機 hpprinter 中的第 1123 號工作移除

lprm -Phpprinter 1123

將第 1011 號工作由預設印表機中移除

lprm 1011

名稱: fdformat
使用權限: 所有使用者
使用方式:fdformat [-n] device
使用說明 :
對指定的軟碟機裝置進行低階格式化。使用這個指令對軟碟格式化的時候,最好指定像是下面的裝置:

/dev/fd0d360 磁碟機 A: ,磁片為 360KB 磁碟
/dev/fd0h1440 磁碟機 A: ,磁片為 1.4MB 磁碟
/dev/fd1h1200 磁碟機 B: ,磁片為 1.2MB 磁碟
如果使用像是 /dev/fd0 之類的裝置,如果裡面的磁碟不是標準容量,格式化可能會失敗。在這種情況之下,使用者可以用 setfdprm 指令先行指定必要參數。
參數:

-n 關閉確認功能。這個選項會關閉格式化之後的確認步驟。
範例:
fdformat -n /dev/fd0h1440
將磁碟機 A 的磁片格式化成 1.4MB 的磁片。並且省略確認的步驟。

名稱: mformat
使用權限: 所有使用者
使用方式:
mformat [-t cylinders] [-h heads] [-s sectors] [-l volume_label] [-F] [-I fsVer-sion] [-S sizecode] [-2 sectors_on_track_0] [-M software_sector_size] [-a] [-X] [-C] [-H hidden_sectors] [-r root_sectors] [-B boot_sector] [-0 rate_on_track_0] [-A rate_on_other_tracks] [-1] [-k] drive:
在已經做過低階格式化的磁片上建立 DOS 檔案系統。如果在編譯 mtools 的時候把 USE_2M 的參數打開,部分與 2M 格式相關的參數就會發生作用。否則這些參數(像是 S,2,1,M)不會發生作用。
參數:
-t 磁柱(synlider)數
-h 磁頭(head)數
-s 每一磁軌的磁區數
-l 標籤
-F 將磁碟格式化為 FAT32 格式,不過這個參數還在實驗中。
-I 設定 FAT32 中的版本號。這當然也還在實驗中。
-S 磁區大小代碼,計算方式為 sector = 2^(大小代碼+7)
-c 磁叢(cluster)的磁區數。如果所給定的數位會導致磁叢數超過 FAT 表的限制,mformat 會自動放大磁區數。
-s
-M 軟體磁區大小。這個數位就是系統回報的磁區大小。通常是和實際的大小相同。
-a 如果加上這個參數,mformat 會產生一組 Atari 系統的序號給這塊軟碟。
-X 將軟碟格式化成 XDF 格式。使用前必須先用 xdfcopy 指令對軟碟作低階格式化的動作。
-C 產生一個可以安裝 MS-DOS 檔案系統的磁碟影像檔(disk image)。當然對一個實體磁碟機下這個參數是沒有意義的。
-H 隱藏磁區的數目。這通常適用在格式化硬碟的分割區時,因為通常一個分割區的前面還有分割表。這個參數未經測試,能不用就不用。
-n 磁碟序號
-r 根目錄的大小,單位是磁區數。這個參數只對 FAT12 和 FAT16 有效。
-B 使用所指定的檔案或是設備的開機磁區做為這片磁片或分割區的開機磁區。當然當中的硬體參數會隨之更動。
-k 儘量保持原有的開機磁區。
-0 第 0 軌的資料傳輸率
-A 第 0 軌以外的資料傳輸率
-2 使用 2m 格式
-1 不使用 2m 格式
範例:
mformat a:
這樣會用預設值把 a: (就是 /dev/fd0)裡的磁碟片格式化。

名稱: mkdosfs
使用權限: 所有使用者
使用方式: mkdosfs [ -c | -l filename ]
[ -f number_of_FATs ]
[ -F FAT_size ]
[ -i volume_id ]
[ -m message_file ]
[ -n volume_name ]
[ -r root_dir_entry ]
[ -s sector_per_cluster ]
[ -v ]
device
[ block_count ]

說明: 建立 DOS 檔案系統。 device 指你想要建立 DOS 檔案系統的裝置代號。像是 /dev/hda1 等等。 block_count 則是你希望配置的區塊數。如果 block_count 沒有指定則系統會自動替你計算符合該裝置大小的區塊數。
參數:

-c 建立檔案系統之前先檢查是否有壞軌。
-l 從得定的檔案中讀取壞軌記錄。
-f 指定檔案配置表(FAT , File Allocation Table)的數量。預設值為 2 。目前 Linux 的 FAT 檔案系統不支援超過 2 個 FAT 表。通常這個不需要改。
-F 指定 FAT 表的大小,通常是 12 或是 16 個位元組。12 位元組通常用於磁碟片,16 位元組用於一般硬碟的分割區,也就是所謂的 FAT16 格式。這個值通常系統會自己選定適當的值。在磁碟片上用 FAT16 通常不會發生作用,反之在硬碟上用 FAT12 亦然。
-i 指定 Volume ID。一般是一個 4 個位元組的數位,像是 2e203a47 。如果不給系統會自己產生。
-m 當使用者試圖用這片磁片或是分割區開機,而上面沒有作業系統時,系統會給使用者一段警告訊息。這個參數就是用來變更這個訊息的。你可以先用檔案編輯好,然後用這個參數指定,或是用
-m -
這樣系統會要求你直接輸入這段文字。要特別注意的是,檔案裡的字串長度不要超過 418 個字,包括展開的跳欄符號(TAB)和分行符號號(分行符號號在 DOS 底下算兩個字元!)
-n 指定 Volume Name,就是磁碟標籤。如同在 DOS 底下的 format 指令一樣,給不給都可以。沒有預設值。
-r 指定根目錄底下的最大檔案數。這裡所謂的檔案數包括目錄。預設值是在軟碟上是 112 或是 224 ,在硬碟上是 512。沒事不要改這個數位。
-s 每一個磁叢(cluster)的磁區數。必須是 2 的次方數。不過除非你知道你在作什麼,這個值不要亂給。
-v 提供額外的訊息
範例:
mkdosfs -n Tester /dev/fd0 將 A 槽裡的磁碟片格式化為 DOS 格式,並將標籤設為 Tester

linux指令大全-Linux 常用指令集-Linux 基本指令

安裝 Linux:

  • 準備兩張磁片:
    • bootdisk:
      • rawrite  
      • bare.i    
      • A     
    • rootdisks:
      • rawrite   
      • color.gz
      • A   
  • Fips (安裝程式所附) 或Fdisk 硬碟
  • bootdisk 放進磁碟機後重新開機;出現boot: 時按
  • rootdisks,出現slackware login: 時輸入root
  • # fdisk /dev/hdb        (表示要fdisk第二顆硬碟)
  • fdisk指令:
    • a:設定由那個分割區開機
    • c:設定dos相容標記
    • d:砍掉一個分割區
    • l:列出所有fdisk看得懂的分割區型別
    • m:輔助說明
    • n:增加一個新的分割區
    • p:列出目前分割區的狀態
    • q:不儲存並離開
    • t:設定一個分割區代號
    • u:改變硬碟資料的顯示方式
    • v:查看全部分割的記錄
    • w:儲存並離開
    • x:其它功能
  • # setup    (執行安裝程式)
  • 選擇 TARGET選項:指定安裝目的地的硬碟分割區、format、2048
  • SOURCE選項:選擇安裝程式來源,一般為CD-ROM (可選ATAPI/IDE);選擇custom後輸入/slack31/slakware (依光碟片的路徑而會有所不同)
  • DISK SETS:選擇要安裝的元件
  • INSTALL:安裝 (一般都選擇MENU)
  • 製作開機磁片、設定modem、設定mouse、設定cdrom、設定字型 (m1.fnt)、設定LILO開機、設定網路、設定mail型式、設定時區、重新開機 (輸入 shutdown -r now;不要按reset)
使用者資料/etc/passwd
切換虛擬主控台alt + F1、alt + F2、………
Linux 的 shell(類似DOS之command.com):
tcsh bash (內定為bash)
鍵入
exit 可回到上一層 shell 或離開系統
檔案、目錄代表顏色/etc/DIR_COLORS
目錄 (藍色)
一般檔案 (白色)
可執行檔 (青綠色)
圖檔 (粉紅色)
符號連結檔 (靛色)
系統的設備檔 黃色
壓縮檔 (紅色)
 

檔案屬性
性質
檔案雍有者
群組使用者
其它使用者
d
rwx
r-x
--x
表示檔案雍有者可讀、可寫可執行;群組使用者可讀可執行;其它使用者可執行
目錄的使用權限:
  • r--:只能讀;可以ls看目錄下有什麼檔案而不能編輯或讀取檔案
  • -w-:只能寫;但還不能建目錄或拷貝檔案進去
  • -x:可以cd進去此目錄,但無法使用 ls
  • rw-:可以ls看此目錄中有那些檔案;但是無法進去此目錄、無法使用ls -l、無法編輯目錄、無法拷貝檔案進去
  • r-x:可以cd進去此目錄、可以使用 ls、但無法拷貝檔案進去
  • -wx:可以cd進去此目錄、可以拷貝檔案進去;無法使用 ls
  • 性質:- 一般檔案    ;    d 目錄     ;    l 符號連結檔    ;     c 字元設備
    b 區塊設備 (如硬碟);s 一個socket (如/dev/printer印表機);p 一個pipe
linux根目錄下的目錄說明:
[align]
目錄名稱
說明
bin
系統的一些重要執行檔
Kill、cp、df
boot
系統開機的一些載入檔
 
cdrom
光碟機裡的資料被掛上來的地方
 
dosc
開機時把dos檔案系統掛上來的地方
 
etc
系統設定檔
 
home
使用者的自家目錄所在、ftp server
 
lib
基本函數庫
 
Lost+found
系統檢查結果
 
mnt
可以掛上其它檔案系統
 
proc
整個系統運作資訊
 
root
系統管理者的自家目錄所在
 
sbin
一些設定的可執行程式、設定網路
 
tmp
雜七雜八的東西
 
usr
應用程式
X-window
var
記載著各種系統上的變數的地方
 
vmlinuz
系統核心檔案
 

/proc 下的檔案介紹:
  • more cpuinfo:顯示有關cpu的訊息
  • more devices:區塊設備、字元設備
  • more filesystems:目前核心技援的檔案系統
  • more dma:直接記憶體存取
  • more interrupts:中斷向量值、中斷次數
  • more ioports:系統中每個設備的輸出/輸入埠的位址範圍
  • more meminfo:記憶體分配狀態
  • more pci:顯示PCI介面訊息
終端機資料設定檔/etc/termcap
export TERM=vt100    (設定終端機為vt100;bash shell)
如何設定指令的別名例:將 ls -l 設定成dir
alias dir='ls -l'        (以後下dir指令相當於下 ls -l 指令)
如何更改系統提示符號
ps1='參數'    (一般指令列的提示符號)
ps2='參數'    (當指令太長需換行時第二行的提示符號)
ps1的參數:
  • \h主機名稱
  • \w 當時目錄所在
  • \s shell的名稱
  • \$ 如果是使用者為root時顯示#;其它使用者顯示$
  • \t 以時間來表示
  • \d 以日期來表示
  • \u 目前的使用者代號
  • \# 指令的序能
  • \! 指令的歷史序號
  • \\ 顯示\符號
  • 字串:顯示此字串
linux之shell scripts (類似dos之批次檔)
例:製做類似dos之diskcopy外部指令
檔案名稱:diskcopy

#!/bin/sh

echo -n "Insert source disk in first floppy drive,then hit enter"
read ans;
dd if=/dev/fd0 of=/tmp/dcopy$$
echo -n "Remove source disk and insert other disk ,then hit enter" read ans;
dd of=/dev/fd0 if=/tmp/dcopy$$
/bin/rm -f /tmp/dcopy$$ 備註:不用副檔名;需更改檔案屬性為可執行;例 chmod 755 diskcopy
ls:列出檔案資訊 → 類似dos之dir
  • -l:列出詳細的檔案資訊
  • -a:列出全部檔案包括隱藏檔
  • -R:遞回列出檔案及子目錄其下的所有子目錄和檔案
  • -x:以多欄方式列出,字母順序由左而右
  • -i:以i -node來列出,會列出每個檔案在磁碟中的編號
  • -m:列出檔案時以逗號 , 來分隔
  • -n:把群組及檔案擁有者名稱轉成數字代碼
  • -t:依檔案的修改時間排序 (由新而舊)
  • -u:依檔案上次的存取時間排序 (需與t配合)
  • -s:檔案的大小以區塊為單位 (每個區塊block = 512 bytes)
  • -o:用顏色來顯示各種類別的檔案
  • -r:以相反的英文字母順序顯示
  • -d:只顯示目錄訊息而非目錄下的檔案
ln 製作捷徑檔:
ln -參數 已存在的檔案 要連結成的檔案 ln -參數 原來的目錄 要連結的目錄 參數說明:
  • 不加:預設值;只限於相同檔案系統間的連結,且不能連結目錄
  • s:可作不同檔案系統間的連結,且能連結目錄
  • f:如果要連結成的檔案已存在,則砍掉這個已存在的檔案
  • n:如果要連結成的檔案已存在,則停止連結,不會砍掉該檔案
cat顯示檔案內容    (類似dos之type)
cat -參數 檔名
若不加參數:即 cat 新檔案 (類似dos之copy con 新檔名)
ctrl + d 結束並儲存
more顯示檔案的內容,如果超過一頁則暫停    (類似dos之more)
more -參數 檔名
指令 | more    (類似dos之指令|more;如type 檔名|more)
參數說明:
  • p:先清除螢幕再列出
  • c:每頁都清除螢幕一次再從螢幕最頂端列出
  • s:如果檔案中有許多連續空白列時,只顯示一列
  • l:忽略檔案中的跳頁符號
mv更改、移動目錄或檔案 (類似dos之ren、move)
mv -參數 來源檔 (或目錄) 目的檔 (或目錄)
參數說明:
  • b:移動之前先做備份
  • v:做完移動之後顯示所做的移動情形
  • f:強迫性移動,不會詢問使用者是否確認
pwd顯示目前工作目錄路徑
passwd改變密碼
rm刪除檔案或目錄        (類似dos之del、deltree)
rm -參數 檔案或目錄
  • r:刪除其下的檔案及目錄    (類似dos之deltree)
  • i:刪除時提出警告
  • f:刪除時不提出警告
  • d:刪除目錄,即使該目錄並非空目錄
cp複製檔案        (類似dos之copy)
cp -參數 來源檔 (或目錄) 目的檔 (或目錄)
  • a:拷貝目錄,保留所有的資訊,包括連結的檔
  • d:保留連結的檔案
  • s:製造符號連結
  • f:拷貝時若相同檔名的檔案直接複蓋不提出警告
  • i:拷貝時若相同檔名的檔案不直接複蓋而會提出警告
  • l:不拷貝,但是連結檔案
  • p:保留檔案的修改時間及存取權限
  • r:拷貝時包含目錄及目錄下的檔案
mkdir建立子目錄    (類似dos之md)
mkdir -參數 目錄名稱
  • p:連續建立兩個以上不存在的目錄
  • m:設定這個目錄的存取權限
cd 子目錄名稱 → 轉移目錄 (類似dos之cd)
  • cd ~ → 回自家目錄
  • ..為上一層目錄
  • 分隔符號為/非dos的\
rmdir刪除子目錄,必須為空目錄 (類似dos之rd)
rmkdir -參數 子目錄名稱
p:若刪除此目錄之後,其上層目錄變成空目錄,則一併刪除
grep用關鍵字找尋檔案
grep -參數 '字串' 要尋找的來源檔案
  • 數字:列出找到字串的檔案名稱和字串前後幾行的內容
  • A 數字:列出找到字串的檔案名稱和字串後幾行的內容
  • B 數字:列出找到字串的檔案名稱和字串前幾行的內容
  • c:顯示找到該字串的個數,不會顯示檔案內容
  • h:不會顯示檔名,只會顯示內容
  • i:忽略大小寫
  • L:只顯示檔名一次
  • m:只找尋字串完全相同者
dd字碼轉換程式 將軟碟上的資料寫成一個檔,或把一個檔寫入磁碟
dd if=輸入檔或設備名稱 of=輸出檔或設備名稱
skip=blocks → 跳過讀入緩衝區的區塊數 bs=bytes → 設定讀/寫緩衝區的bytes cbs=bytes → 一次轉換的bytes ibs=bytes → 讀入緩衝區的bytes obs=bytes → 寫入緩衝區的bytes count=blocks → 只寫入block數 conu=
  • ascii → 將EBCDIC碼轉成ASCII
  • ebcdic → 將ASCII碼轉成EBCDIC
  • ibm → 將ASCII碼轉成IBM
  • block → 將變動位元轉成固定字元
  • ublock → 將固定位元轉成變動字元
  • lcase → 將大寫變小寫
  • ucase → 將小寫變大寫
  • swab → 將每一組bytes的資料做交換
  • noerror → 忽略錯誤
  • notrunc → 不要打斷 truntate 的輸出檔
  • sync → 對ibs所指定的區塊大小填入空白
df查詢硬碟使用量
  • a:顯示全部的檔案系統和各分割區的磁碟使用情形
  • i:顯示i -nodes的使用量
  • k:大小用k來表示 (預設值)
  • t:顯示某一個檔案系統的所有分割區磁碟使用量
  • x:顯示不是某一個檔案系統的所有分割區磁碟使用量
  • T:顯示每個分割區所屬的檔案系統名稱
du查詢檔案或目錄的磁碟使用空間
  • a:顯示全部目錄和其次目錄下的每個檔案所佔的磁碟空間
  • b:大小用bytes來表示 (預設值為k bytes)
  • c:最後再加上總計 (預設值)
  • l:計算所有檔案大小
  • s:只顯示各檔案大小的總合
  • x:只計算同屬同一個檔案系統的檔案
  • L:計算所有的檔案大小
find找尋檔案、目錄
find 【起始目錄】 -name 【欲找的檔名】 -print
從起始目錄開始尋找檔案;使用萬用字元*時須在檔名兩端加"
fsck檢查、修復linux檔案系統
fsck -參數 分割區名稱
  • a:自動修復
  • r:執行時會詢問
  • V:顯示處理時的每一個步驟
  • t:指定一個檔案系統
  • n:不要真正執行,只看執行時會做那些動做
mount掛上檔案系統
mount -參數 設備名稱 存放目錄
mount ip位址:/所提供的目錄 存放目錄
  • 設備名稱:如/dev/hda2、/dev/fd0
  • 存放目錄:必須是已存在的目錄
  • 不加參數:顯示目前已經掛上來的檔案系統、目錄
  • a:掛上/etc/fstab下所述全部的檔案系統
  • t:指定所掛上來的檔案系統的名稱 (見/proc/filesystems)
  • n:掛上檔案系統時不會把檔案系統的資料寫入/etc/mtab中
  • w:檔案系統設定為可讀寫
  • r:掛上來的檔案系統設定為唯讀
  • 例:mount -t iso9660 /dev/hdd /cdrom
掛上光碟機,把光碟機之資料放入/cdrom目錄之中
umount卸下已掛上的檔案系統
umount 已經掛上的目錄或設備名稱 例:umount /cdrom → 卸下/cdrom目錄
mke2fs製作檔案系統 (類似dos之format)
mke2fs -參數 設備名稱
adduser新增使用者
chmod改變檔案權限屬性
chmod □□□ 檔名    → □□□ 代表雍有者;群組;全體使用者 例:111 101 101 → □□□ = 755;
雍有者可讀、寫、執行;群組及全體使用者可讀、執行
chown更改某個檔案或目錄的擁有者或擁有群組
chown -參數 擁有者 (或擁有群組) 檔案
  • R:將目錄下之檔案及其子目錄一併更改擁有者
  • v:執行完後顯示訊息
su將一個普通使用者提昇為超級使用者
who顯示目前線上使用者
  • -m:顯示本身的資料
  • -q:顯示使用者帳號和線上人數
  • -i:顯示使用者的閒置時間
  • -w:顯示線上使用者能否用write傳送訊息給他
w顯示目前線上使用者     (可顯示正在執行的指令)
vall <檔案名稱:傳送訊息給線上所有使用者 (root專用)
write傳送訊息給線上某一位使用者
           write 使用者帳號 終端機名稱
mesg y 或 mesg n設定是否讓別人傳送訊息給自已
talk 使用者帳號 終端機名稱:與別人聊天
sync把記憶體中的資料寫入硬碟
date顯示日期、時間
shutdown關機
shutdown -參數 時間 訊息
  • k:並非真正關機,只是送出訊息
  • r:關機後重新開機
  • h:關機後不重新開機
  • f:快速關機
  • n:快速關機,不要經過init的程序
  • c:取消關時的程序
  • t:在警告訊息和刪除信號間做停留
  • 時間可用now或任意數字 (代表分鐘)
reboot快速關機 (類似按 Alt + Ctrl + Del 鍵
top查看系統狀態;每隔幾秒更新一次,按 Ctrl + c 結束
ps查看系統中正在執行的程式之程序資料
  • -l:長格式顯示
  • -u:顯示使用者名稱和起始時間
  • -i:顯示各程式的詳細執行情況
  • -s:顯示各程式的訊號名稱
  • -v:顯示虛擬記憶體使用情況
  • -m:顯示記憶體分配情形
  • -f:顯示執行的路行群
  • -a:其它使用者執行的程式一併顯示出來
  • -x:顯示所有程序
  • -r:顯示前景執行的程式
  • -c:只顯示執行程式的名字
  • -e:顯示執行程式的環境變數
  • -f:不顯示標題欄
  • -w:若訊息一列無法容納,則換列顯示
kill終止程式之執行 (配合ps指令)
kill 程序號碼 (pid)    → 強迫終止程式之執行 kill -l     → 列出所有的信號
uname查詢linux版本 (/proc/uname)
free查詢目前記憶體的使用情形
uptime顯示目前的使用者和平均的系統負荷
ftp檔案傳送
ftp IPAddress
ftp 127.0.0.1 → 連進自已的電腦
  • !:暫時離開ftp回到自已的電腦,exit回到ftp
  • bin:以binary模式ftp
  • get:下載檔案 → get 檔名 【新檔名】
  • mget:下載多個檔案 → mget 檔名 → 可使用 * 或 ?
  • put:上傳檔案 → put 檔名 【新檔名】
  • mput:上傳多個檔案
  • prompt:對答模式開關 → 預設值為 off
  • bye:結束ftp
telnet連到別台機器
telnet IPAddress
telnet 127.0.0.1 → 連進自已的電腦
rlogin連到別台機器
rlogin -l 簽入的帳號 IP
netstat查詢網路目前狀況
  • -a:全部列出
  • -c:每隔幾秒鐘重新列一遍
  • -i:界面狀態
  • -n:以網路IP位址代替名稱列出網路連接情形
  • -o:列出時間狀態
  • -r:列出網路的路徑表
  • -t:列出tcp協定的連接情形
  • -u:列出udp協定的連接情形
  • -v:列出版本
  • -w:列出raw程序連結的資訊
  • -x:列出有關unix網域socket的資訊
nslookup查詢一台機器的IP位址及其對應的網域名稱
finger列出某人的線上資料
finger -參數 使用者名稱
  • s:使用短格式顯示使用者的各項資訊
  • l:使用長格式顯示使用者的各項資訊
  • p:使用長格式顯示時不列出計畫檔和專案檔
ping查詢網路上某台主機是否開著
ping -參數 主機位址
  • c 次數:送幾次封包給這台主機,然後等待回應
  • d:設定SO_DEBUG選項
  • f:大量且快速的送網路封包給一台主機,看它的回應
  • i 秒數:設定幾秒鐘送一次封包給一台主機,預設值1秒
  • q:不顯示傳送封包的資訊,只顯示最後結果
  • l 次數:在次數內,以最快速的方式送封包給一台主機
man查詢某個指令的輔助說明 → man 指令名稱
help查詢某個內建指令的說明 (bash shell) → help 內建指令名稱
whereis尋找某個指令的檔案位置 → whereis 指令名稱
locate找尋檔案 → locate 相關字
whatis查詢某個指令的用途 → whatis 指令名稱
at設定某一個時間執行某一個指令
crontab設定每天或每月定期執行的指令
nohup設定退出系統後,程式仍不被終止
echo印出字串
clear清除螢幕
指令&     → 將該程式弄到背景執行
cal 月 年:顯示月曆
  • -j:顯示查詢的那一天為每年的第幾天
  • -y:顯示整年的月曆
如何在一塊網路卡上Bind多個IP:/sbin/ifconfig eth0:1 210.202.165.1 up

2011年10月16日 星期日

網路命令一覽表(絕對實用)

當你打開流覽器,自由地遊覽於浩如煙海的互聯網世界之時,是否也沉迷於下載各種實用軟體?其中也許有很大一部分就是網路工具吧!但請你不要忽視你的面前——Windows(包括Win98和NT)作系統中本來就帶有不少的網路實用工具,雖然比較簡單,卻並不簡陋。本著“簡單就是美”的原則,下面就為你展現Windows網路實用工具的風采……

Ping

Ping是個使用頻率極高的實用程式,用於確定本地主機是否能與另一台主機交換(發送與接收)資料報。根據返回的資訊,你就可以推斷TCP/IP參數是否設置得正確以及運行是否正常。需要注意的是:成功地與另一台主機進行一次或兩次數據報交換並不表示TCP/IP配置就是正確的,你必須執行大量的本地主機與遠端主機的資料報交換,才能確信TCP/IP的正確性。

簡單的說,Ping就是一個測試程式,如果Ping運行正確,你大體上就可以排除網路訪問層、網卡、MODEM的輸入輸出線路、電纜和路由器等存在的故障,從而減小了問題的範圍。但由於可以自定義所發資料報的大小及無休止的高速發送,Ping也被某些別有用心的人作為DDOS(拒絕服務攻擊)的工具,前段時間Yahoo就是被駭客利用數百台可以高速接入互聯網的電腦連續發送大量Ping資料報而癱瘓的。

按照缺省設置,Windows上運行的Ping命令發送4個ICMP(網間控制報文協定)回送請求,每個32位元組資料,如果一切正常,你應能得到4個回送應答。

Ping能夠以毫秒為單位顯示發送回送請求到返回回送應答之間的時間量。如果應答時間短,表示資料報不必通過太多的路由器或網路連接速度比較快。Ping還能顯示TTL(Time To Live存在時間)值,你可以通過TTL值推算一下資料包已經通過了多少個路由器:源地點TTL起始值(就是比返回TTL略大的一個2的乘方數)-返回時TTL值。例如,返回TTL值為119,那麼可以推算資料報離開源位址的TTL起始值為128,而源地點到目標地點要通過9個路由器網段(128-119);如果返回TTL值為246,TTL起始值就是256,源地點到目標地點要通過9個路由器網段。

通過Ping檢測網路故障的典型次序

正常情況下,當你使用Ping命令來查找問題所在或檢驗網路運行情況時,你需要使用許多Ping命令,如果所有都運行正確,你就可以相信基本的連通性和配置參數沒有問題;如果某些Ping命令出現運行故障,它也可以指明到何處去查找問題。下面就給出一個典型的檢測次序及對應的可能故障:

ping 127.0.0.1——這個Ping命令被送到本地電腦的IP軟體,該命令永不退出該電腦。如果沒有做到這一點,就表示TCP/IP的安裝或運行存在某些最基本的問題。

ping 本機IP——這個命令被送到你電腦所配置的IP位址,你的電腦始終都應該對該Ping命令作出應答,如果沒有,則表示本地配置或安裝存在問題。出現此問題時,局域網用戶請斷開網路電纜,然後重新發送該命令。如果網線斷開後本命令正確,則表示另一台電腦可能配置了相同的IP位址。

ping 局域網內其他IP——這個命令應該離開你的電腦,經過網卡及網路電纜到達其他電腦,再返回。收到回送應答表明本地網路中的網卡和載體運行正確。但如果收到0個回送應答,那麼表示子網路遮罩(進行子網分割時,將IP位址的網路部分與主機部分分開的代碼)不正確或網卡配置錯誤或電纜系統有問題。

ping 閘道IP——這個命令如果應答正確,表示局域網中的閘道路由器正在運行並能夠作出應答。

ping 遠端IP——如果收到4個應答,表示成功的使用了缺省閘道。對於撥號上網用戶則表示能夠成功的訪問Internet(但不排除ISP的DNS會有問題)。

ping localhost——localhost是個作系統的網路保留名,它是127.0.0.1的別名,每太電腦都應該能夠將該名字轉換成該位址。如果沒有做到這一帶內,則表示主機檔(/Windows/host)中存在問題。

ping www.yahoo.com——對這個功能變數名稱執行Ping命令,你的電腦必須先將功能變數名稱轉換成IP位址,通常是通過DNS伺服器 如果這裏出現故障,則表示DNS伺服器的IP位址配置不正確或DNS伺服器有故障(對於撥號上網用戶,某些ISP已經不需要設置DNS伺服器了)。順便說一句:你也可以利用該命令實現功能變數名稱對IP位址的轉換功能。

如果上面所列出的所有Ping命令都能正常運行,那麼你對你的電腦進行本地和遠端通信的功能基本上就可以放心了。但是,這些命令的成功並不表示你所有的網路配置都沒有問題,例如,某些子網路遮罩錯誤就可能無法用這些方法檢測到。

Ping命令的常用參數選項

ping IP -t——連續對IP位址執行Ping命令,直到被用戶以Ctrl+C中斷。

ping IP -l 2000——指定Ping命令中的資料長度為2000位元組,而不是缺省的32位元組。

ping IP -n——執行特定次數的Ping命令。

Netstat

Netstat用於顯示與IP、TCP、UDP和ICMP協定相關的統計資料,一般用於檢驗本機各埠的網路連接情況。

如果你的電腦有時候接受到的資料報會導致出錯資料刪除或故障,你不必感到奇怪,TCP/IP可以容許這些類型的錯誤,並能夠自動重發資料報。但如果累計的出錯情況數目占到所接收的IP資料報相當大的百分比,或者它的數目正迅速增加,那麼你就應該使用Netstat查一查為什麼會出現這些情況了。

Netstat的一些常用選項:

netstat -s——本選項能夠按照各個協定分別顯示其統計資料。如果你的應用程式(如Web流覽器)運行速度比較慢,或者不能顯示Web頁之類的資料,那麼你就可以用本選項來查看一下所顯示的資訊。你需要仔細查看統計資料的各行,找到出錯的關鍵字,進而確定問題所在。

netstat -e——本選項用於顯示關於乙太網的統計資料。它列出的專案包括傳送的資料報的總位元組數、錯誤數、刪除數、資料報的數量和廣播的數量。這些統計資料既有發送的資料報數量,也有接收的資料報數量。這個選項可以用來統計一些基本的網路流量)。

netstat -r——本選項可以顯示關於路由表的資訊,類似於後面所講使用route print命令時看到的 資訊。除了顯示有效路由外,還顯示當前有效的連接。

netstat -a——本選項顯示一個所有的有效連接資訊列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請求(LISTENING)的那些連接。

netstat -n——顯示所有已建立的有效連接。

Netstat的妙用

經常上網的人一般都使用ICQ的,不知道你有沒有被一些討厭的人騷擾得不敢上線,想投訴卻又不知從和下手?其實,你只要知道對方的IP,就可以向他所屬的ISP投訴了。但怎樣才能通過ICQ知道對方的IP呢?如果對方在設置ICQ時選擇了不顯示IP位址,那你是無法在資訊欄中看到的。其實,你只需要通過Netstat就可以很方便的做到這一點:當他通過ICQ或其他的工具與你相連時(例如你給他發一條ICQ資訊或他給你發一條資訊),你立刻在DOS Prompt下輸入netstat -n或netstat -a就可以看到對方上網時所用的IP或ISP功能變數名稱了。甚至連所用Port都完全暴露了,如果你想給他一些教訓,這些資訊已經足夠……

IPConfig

IPConfig實用程式和它的等價圖形用戶介面——Windows 95/98中的WinIPCfg可用於顯示當前的TCP/IP配置的設置值。這些資訊一般用來檢驗人工配置的TCP/IP設置是否正確。但是,如果你的電腦和所在的局域網使用了動態主機配置協定(Dynamic Host Configuration Protocol,DHCP——Windows NT下的一種把較少的IP位址分配給較多主機使用的協定,類似於撥號上網的動態IP分配),這個程式所顯示的資訊也許更加實用。這時,IPConfig可以讓你瞭解你的電腦是否成功的租用到一個IP位址,如果租用到則可以瞭解它目前分配到的是什麼位址。瞭解電腦當前的IP位址、子網路遮罩和缺省閘道實際上是進行測試和故障分析的必要專案。

最常用的選項:

ipconfig——當使用IPConfig時不帶任何參數選項,那麼它為每個已經配置了的介面顯示IP位址、子網路遮罩和缺省閘道值

ipconfig /all——當使用all選項時,IPConfig能為DNS和WINS伺服器顯示它已配置且所要使用的附加資訊(如IP位址等),並且顯示內置於本地網卡中的物理位址(MAC)。如果IP地址是從DHCP伺服器租用的,IPConfig將顯示DHCP伺服器的IP位址和租用地址預計失效的日期(有關DHCP伺服器的相關內容請詳見其他有關NT伺服器的書籍或詢問你的網管),其輸出資訊見圖6的下半部分。

ipconfig /release和ipconfig /renew——這是兩個附加選項,只能在向DHCP伺服器租用其IP位址的電腦上起作用。如果你輸入ipconfig /release,那麼所有介面的租用IP位址便重新交付給DHCP伺服器(歸還IP位址)。如果你輸入ipconfig /renew,那麼本地電腦便設法與DHCP伺服器取得聯繫,並租用一個IP地址。請注意,大多數情況下網卡將被重新賦予和以前所賦予的相同的IP位址。

如果你使用的是Windows 95/98,那麼你應該更習慣使用winipcfg而不是ipconfig,因為它是一個圖形用戶介面,而且所顯示的資訊與ipconfig相同,並且也提供發佈和更新動態IP位址的選項 如果你購買了Windows NT Resource Kit(NT資源包),那麼Windows NT也包含了一個圖形替代介面,該實用程式的名字是wntipcfg,和Windows 95/98的winipcfg類似。

ARP(位址轉換協定)

ARP是一個重要的TCP/IP協議,並且用於確定對應IP位址的網卡物理位址。實用arp命令,你能夠查看本地電腦或另一台電腦的ARP快取記憶體中的當前內容。此外,使用arp命令,也可以用人工方式輸入靜態的網卡物理/IP位址對,你可能會使用這種方式為缺省閘道和本端伺服器等常用主機進行這項作,有助於減少網路上的信息量。

按照缺省設置,ARP快取記憶體中的專案是動態的,每當發送一個指定地點的資料報且快取記憶體中不存在當前專案時,ARP便會自動添加該項目。一旦快取記憶體的專案被輸入,它們就已經開始走向失效狀態。例如,在Windows NT網路中,如果輸入專案後不進一步使用,物理/IP位址對就會在2至10分鐘內失效。因此,如果ARP快取記憶體中項目很少或根本沒有時,請不要奇怪,通過另一台電腦或路由器的ping命令即可添加。所以,需要通過arp命令查看快取記憶體中的內容時,請最好先ping 此台電腦(不能是本機發送ping命令)。

常用命令選項:

arp -a或arp -g——用於查看快取記憶體中的所有項目。-a和-g參數的結果是一樣的,多年來-g一直是UNIX平臺上用來顯示ARP快取記憶體中所有專案的選項,而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統的-g選項。

arp -a IP——如果你有多個網卡,那麼使用arp -a加上介面的IP位址,就可以只顯示與該介面相關的ARP緩存項目。

arp -s IP 物理位址——你可以向ARP快取記憶體中人工輸入一個靜態專案。該專案在電腦引導過程中將保持有效狀態,或者在出現錯誤時,人工配置的物理位址將自動更新該項目。

arp -d IP——使用本命令能夠人工刪除一個靜態專案。




看到這裏,你也許已經有些累了……其實對於一般用戶來說也已經足夠——你可以用ipconfig和ping命令來查看自己的網路配置並判斷是否正確、可以用netstat查看別人與你所建立的連接並找出ICQ使用者所隱藏的IP資訊、可以用arp查看網卡的MAC位址——這些已足已讓你丟掉菜鳥的頭銜。如果你並不滿足,那就“硬著頭皮”(下面的內容可能有些枯燥)繼續Follow me……

Tracert

當資料報從你的電腦經過多個閘道傳送到目的地時,Tracert命令可以用來跟蹤資料報使用的路由(路徑)。該實用程式跟蹤的路徑是源電腦到目的地的一條路徑,不能保證或認為資料報總遵循這個路徑。如果你的配置使用DNS,那麼你常常會從所產生的應答中得到城市、位址和常見通信公司的名字。Tracert是一個運行得比較慢的命令(如果你指定的目標位址比較遠),每個路由器你大約需要給它15秒鐘
Tracert的使用很簡單,只需要在tracert後面跟一個IP位址或URL,Tracert會進行相應的功能變數名稱轉換的。Tracert一般用來檢測故障的位置,你可以用tracert IP在哪個環節上出了問題,雖然還是沒有確定是什麼問題,但它已經告訴了我們問題所在的地方,你也就可以很有把握的告訴別人——某某出了問題。

Route

大多數主機一般都是駐留在只連接一台路由器的網段上。由於只有一台路由器,因此不存在使用哪一台路由器將資料報發表到遠端電腦上去的問題,該路由器的IP地址可作為該網段上所有電腦的缺省閘道來輸入。

但是,當網路上擁有兩個或多個路由器時,你就不一定想只依賴缺省閘道了。實際上你可能想讓你的某些遠端IP位址通過某個特定的路由器來傳遞,而其他的遠端IP則通過另一個路由器來傳遞。

在這種情況下,你需要相應的路由資訊,這些資訊儲存在路由表中,每個主機和每個路由器都配有自己獨一無二的路由表。大多數路由器使用專門的路由協定來交換和動態更新路由器之間的路由表。但在有些情況下,必須人工將專案添加到路由器和主機上的路由表中。Route就是用來顯示、人工添加和修改路由表項目的。

一般使用選項:

route print——本命令用於顯示路由表中的當前項目,在單路由器網段上的輸出結果如圖12,由於用IP位址配置了網卡,因此所有的這些項目都是自動添加的。

route add——使用本命令,可以將信路由項目添加給路由表。例如,如果要設定一個到目的網路209.98.32.33的路由,其間要經過5個路由器網段,首先要經過本地網路上的一個路由器,器IP為202.96.123.5,子網路遮罩為255.255.255.224,那麼你應該輸入以下命令:

route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5

route change——你可以使用本命令來修改資料的傳輸路由,不過,你不能使用本命令來改變資料的目的地。下面這個例子可以將資料的路由改到另一個路由器,它採用一條包含3個網段的更直的路徑:

route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3

route delete——使用本命令可以從路由表中刪除路由。例如:route delete 209.98.32.33


NBTStat

NBTStat(TCP/IP上的NetBIOS統計資料)實用程式用於提供關於關於NetBIOS的統計資料。運用NetBIOS,你可以查看本地電腦或遠端電腦上的NetBIOS名字表格。

常用選項:

nbtstat -n——顯示寄存在本地的名字和服務程式

nbtstat -c——本命令用於顯示NetBIOS名字快取記憶體的內容。NetBIOS名字快取記憶體用於寸放與本電腦最近進行通信的其他電腦的NetBIOS名字和IP位址對。

nbtstat -r——本命令用於清除和重新載入NetBIOS名字快取記憶體。

nbtstat -a IP——通過IP顯示另一台電腦的物理位址和名字列表,你所顯示的內容就像對方電腦自己運行nbtstat -n一樣

nbtstat -s IP——顯示實用其IP位址的另一台電腦的NetBIOS連接表。

Net

Net命令有很多函數用於實用和核查電腦之間的NetBIOS連接。這裏我只介紹最常用的兩個:net view和net use。

net view UNC——運用此命令,你可以查看目標伺服器上的共用點名字。任何局域網裏的人都可以發出此命令,而且不需要提供用戶ID或口令。UNC名字總是以\\開頭,後面跟隨目標電腦的名字。例如,net view \\lx就是查看主機名為lx的電腦的共用點(見圖15)。

net use 本地盤符 目標電腦共用點——本命令用於建立或取消到達特定共用點的映射驅動器的連接(如果需要,你必須提供用戶ID或口令)。例如,你輸入net use f: \\lx\mp3就是將映射驅動器F:連接到\\lx\mp3共用點上,今後你直接訪問F:就可以訪問\\lx\mp3共用點,這和你右擊“我的電腦”選擇映射網路驅動器類似。

2011年9月29日 星期四

ARP是什麼?

ARP是Address Resolution Protocol 的縮寫

只能在區域網路內使用,用來解析網路裝置的 MAC 位址

ARP 是 TCP/IP 設計者利用乙太網的廣播性質﹐設計出來的位址解釋協定。它的主要特性和優點是它的位址對應關係是動態的﹐它以查詢的方式來獲得 IP 位址和實體位址的對應。它的工作原理非常簡單:
 

1. 首先﹐每一台主機都會在 ARP 快取緩衝區 (ARP Cache)中建立一個 ARP 表格﹐用來記錄 IP 位址和實體位址的對應關係。這個 Table 的每一筆資料會根據自身的存活時間遞減而最終消失﹐以確保資料的真實性。
 

2. 當發送主機有一個封包要傳送給目的主機的時候﹐並且獲得目的主機的 IP 位址﹔那發送主機會先檢查自己的 ARP 表格中有沒有該 IP 位址的實體位址對應。如果有﹐就直接使用此位址來傳送框包﹔如果沒有﹐則向網路發出一個 ARP Request 廣播封包﹐查詢目的主機的實體位址。這個封包會包含發送端的 IP 位址和實體位址資料。
 

3. 這時﹐網路上所有的主機都會收到這個廣播封包﹐會檢查封包的 IP 欄位是否和自己的 IP 位址一致。如果不是則忽略﹔如果是則會先將發送端的實體位址和 IP 資料更新到自己的 ARP 表格去﹐如果已經有該 IP 的對應﹐則用新資料覆蓋原來的﹔然後再回應一個 ARP Reply 封包給對方﹐告知發送主機關於自己的實體位址﹔

4. 當發送端接到 ARP Reply 之後﹐也會更新自己的 ARP 表格﹔然後就可以用此紀錄進行傳送。


5. 如果發送端沒有得到 ARP Reply ﹐則宣告查詢失敗。

ARP 的查詢過程
前面說的 ARP 表格﹐只有在 TCP/IP 協定被載入核心之後才會建立﹐如果 TCP/IP 協定被卸載或關閉機器﹐那麼表格就會被清空﹔到下次協定載入或開機的時候再重新建立﹐而同時會向網路發出一個 ARP 廣播﹐告訴其它機器它的目前位址是什麼﹐以便所有機器都能保持最正確的資料。

然而﹐ARP cache 的大小是有所限制的﹐如果超過了界限﹐那麼越長時間沒被使用過渡資料就必須清理掉﹐以騰出空間來儲存更新的資料。所以﹐當機器收到 ARP equest 封包時﹐如果查詢對象不是自己﹐則不會根據發送端位址資料來更新自己的 ARP 表格﹐而是完全忽略該封包。同時﹐每筆存在 cache 中的資料﹐都不是永久保存的﹕每筆資料再更新的時候﹐都會被賦予一個存活倒數計時值﹐如果在倒數時間到達的時候﹐該資料就會被清掉。然而﹐如果該資料在倒數時間到達之前被使用過﹐則計時值會被重新賦予。

當然了﹐ARP 尚有一套機制來處理當 ARP 表格資料不符合實際位址資料的狀況(例如﹐在當前連線尚未結束前﹐收到目的端的位址資料更新訊息)﹔或是目的主機太忙碌而未能回答 ARP 請求等狀況。

2011年9月25日 星期日

wpmu出現404的解決方法

可以參考幾個方法解決
當全部都不能用時
http://witmax.cn/apache-url-rewrite.html

當部分可以用時
這個是 WPMU專用
http://www.dapig.cn/view/4155.html


設定擋位置在
 cd /etc/httpd/conf
 vim httpd.conf

 修改後執行
/etc/init.d/httpd restart

2011年9月2日 星期五

iPad JB後會去裝的外掛軟體

 目前不管您的iPad 是IOS 是 3.2.2  還是  3.2.1 都可以 使用LimeRa1n 來破解您的iPad
 大致上來說現在破解iPad 會去裝的外掛軟體如下:

1.iAcces HD 輸入法:不用懷疑,沒安裝它就不會有繁體中文輸入法。嚴格來說這也是一套非常超值的軟體,除了繁體注音、手寫、以外,它還支援倉頡、無蝦米跟速成。相信不管您對輸入法的要求多奇怪,它都可以滿足您的需求。大概是現在的iPad 破解後必裝的外掛軟體之一。

2.Yourtube 下載影片的外掛:本來這外掛只是讓你可以在Youtube除了觀看還可以下載影片到你的iPad,但事實上它還有其他的轉化是應用。比如說你自己用其他裝置拍的影片要放到iPad還要轉檔幹嘛的很麻煩,有了它以後您就可以上傳您的影片到Youtube在用這外掛抓下來了。

3.Sbsetting 有點類似開關總管的外掛:不管你是哪一種iDevice,這套也都是機乎必裝。因為太方便了,連DATA都可以關掉!!

4.BackGrounder  真正的多工運作外掛:iPhone IOS 4的那個多工事實上算是假多工,它只是幫你把軟體在後台擺著。iPad 破解後裝了這玩意才是真正的多工,但是要注意的是每多一個軟體同時運作,就多一份耗電以及記憶體耗用,一定要慎選同時運作的軟體。

5.GoodReader 這不算外掛:這是一個非常好用的PDF閱讀軟體,不管你是要看免費的商業週刊、壹週刊等期它電子雜誌,一定要試試看這套軟體。

6.iFile 檔案總管:很像PC上面的檔案總管。你覺得iPad很不自由嗎?那這套外掛軟體可以讓你自行調整內部檔案位置喔。

7.Appsnyc & iNstallous :這就不多說了,嚴重侵犯眾多智慧財產權的盜版幫兇,建議不要安裝喔。