當前位置:成語大全網 - 英語詞典 - Linux下如何檢測硬盤和內存(源代碼)

Linux下如何檢測硬盤和內存(源代碼)

linux命令詳解詞典

cat cd

chmod chown

cp cut

名稱: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

使用說明:

將檔案系統內符合 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

 

名稱: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