重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
ln
創新互聯公司長期為上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為萬榮企業提供專業的做網站、成都網站建設,萬榮網站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發。
作者: 日期:2003-05-28 13:14:40 瀏覽次數:
ln(link)
功能說明:連接文件或目錄。
語法:ln [-bdfinsv][-S 字尾備份字符串][-V 備份方式][--help][--version][源文件或目錄][目標文件或目錄] 或 ln [-bdfinsv][-S 字尾備份字符串][-V 備份方式][--help][--version][源文件或目錄...][目的目錄]
補充說明:ln指令用在連接文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則會把前面指定的所有文件或目錄復制到該目錄中。若同時指定多個文件或目錄,且最后的目的地并非是一個已存在的目錄,則會出現錯誤信息。
參數:
-b或--backup 刪除,覆蓋目標文件之前的備份。
-d或-F或--directory 建立目錄的硬連接。
-f或--force 強行建立文件或目錄的連接,不論文件或目錄是否存在。
-i或--interactive 覆蓋既有文件之前先詢問用戶。
-n或--no-dereference 把符號連接的目的目錄視為一般文件。
-s或--symbolic 對源文件建立符號連接,而非硬連接。
-S字尾備份字符串或--suffix=字尾備份字符串 用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,預設的字尾備份字符串是符號"~",您可通過"-S"參數來改變它。
-v或--verbose 顯示指令執行過程。
-V備份方式或--version-control=備份方式 用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,這個字符串不僅可用"-S"參數變更,當使用"-V"參數備份方式指定不同備份方式時,也會產生不同字尾的備份字符串。
--help 在線幫助。
--version 顯示版本信息。
這種問題網上的例子很多的,如果還有不明白,在網上自己多查查
名稱: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 里。
范例:
把 textfile1 的檔案內容加上行號后輸入 textfile2 這個檔案里
cat -n textfile1 textfile2
把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之后將內容附加到 textfile3 里。
cat -b textfile1 textfile2 textfile3
cat /dev/null /etc/test.txt 此為清空/etc/test.txt檔案內容
cat 也可以用來制作 image file。例如要制作軟碟的 image file,將軟碟放好后打
cat /dev/fd0 OUTFILE
相反的,如果想把 image file 寫到軟碟,請打
cat IMG_FILE /dev/fd0
注:
1. OUTFILE 指輸出的 image 檔名。
2. IMG_FILE 指 image file。
3. 若從 image file 寫回 device 時,device 容量需與相當。
4. 通常用在制作開機磁片。
名稱 : cd
使用權限 : 所有使用者
使用方式 : cd [dirName]
說明 : 變換工作目錄至 dirName。 其中 dirName 表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的 home directory (也就是剛 login 時所在的目錄)。
另外,"~" 也表示為 home directory 的意思,"." 則是表示目前所在的目錄,".." 則表示目前目錄位置的上一層目錄。
范例 : 跳到 /usr/bin/ :
cd /usr/bin
跳到自己的 home directory :
cd ~
跳到目前目錄的上上兩層 :
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
cut其實很有用
-c m-n 表示顯示每一行的第m個字元到第n個字元。例如:
---------file-----------
liubi 23 14000
---------file-----------
# cut -c 3-9,12-20 file
liubi 14000
-f m-n 表示顯示第m欄到第n欄(使用tab分隔)。例如:
---------file-----------
liubi 23 14000
---------file-----------
# cut -f 1,3 file
liubi 14000
名稱 : 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
find . -name "*" -exec grep xxx {} -print |morexxx為你想要找的字符串
名稱: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 : 建立數據庫
locate命令可以在搜尋數據庫時快速找到檔案,數據庫由updatedb程序來更新,updatedb是由cron daemon周期性建立的,locate命令在搜尋數據庫時比由整個由硬盤資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)
locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的數據庫內,尋找合乎范本樣式條件的檔案或目錄錄,可以使用特殊字元(如”*”或”?”等)來指定范本樣式,如指定范本為kcpa*ner, locate會找出所有起始字串為kcpa且結尾為ner的檔案或目錄,如名稱為kcpartner若目錄錄名稱為kcpa_ner則會列出該目錄下包括子目錄在內的所有檔案。
locate指令和find找尋檔案的功能類似,但locate是透過update程序將硬盤中的所有檔案和目錄資料先建立一個索引數據庫,在執行loacte時直接找該索引,查詢速度會較快,索引數據庫一般是由操作系統管理,但也可以直接下達update強迫系統立即修改索引數據庫。
不過第一次在執行update后再使用locate尋找檔案常會失敗,此時就要執行slocate ˉu該命令(也可執行updatedb指令,其效果相同)來更新slocate數據庫,該命令會在/usr/sbin下產生slocate執行檔,再由locate到此數據庫尋找所要找的資料。
名稱 : ls
使用權限 : 所有使用者
使用方式 : ls [-alrtAFR] [name...]
說明 : 顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。
參數 :
-a 顯示所有檔案及目錄 (ls內定將檔案名或目錄名稱開頭為"."的視為隱藏檔,不會列出)
-l 除檔案名稱外,亦將檔案型態、權限、擁有者、檔案大小等資訊詳細列出
-r 將檔案以相反次序顯示(原定依英文字母次序)
-t 將檔案依建立時間之先后次序列出
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-F 在列出的檔案名稱后加一符號;例如可執行檔則加 "*", 目錄則加 "/"
-R 若目錄下有檔案,則以下之檔案亦皆依序列出
范例:
列出目前工作目錄下所有名稱是 s 開頭的檔案,愈新的排愈后面 :
ls -ltr s*
將 /bin 目錄以下所有目錄及檔案詳細資料列出 :
ls -lR /bin
列出目前工作目錄下所有檔案及目錄;目錄于名稱后加 "/", 可執行檔于名稱后加 "*" :
ls -AF
名稱: mkdir
使用權限:于目前目錄有適當權限的所有使用者
使用方式:mkdir [-p] dirName
說明:建立名稱為 dirName 之子目錄。
參數:-p 確保目錄名稱存在,不存在的就建一個。
范例:
在工作目錄下,建立一個名為 AAA 的子目錄 :
mkdir AAA
在工作目錄下的 BBB 目錄中,建立一個名為 Test 的子目錄。若 BBB 目錄原本不存在,則建立一個。(注:本例若不加 -p,且原本 BBB目錄不存在,則產生錯誤。)
mkdir -p BBB/Test
名稱: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
touch 也可以制造一個空檔(0 byte).例如DHCP Server所需的/etc/dhcpd.leases,dhcpd 必須要有這個檔案才能運作正常.[root@/root]#touch /etc/dhcpd.leases[root@/root]#ls -l /etc/dhcpd.leases-rw-r--r-- 1 root root 0 Jul 3 05:50 /etc/dhcpd.leases
記得上一次重灌前把/etc下的設定檔tar起來,重灌好之后把原有設定還原,卻發現系統檢查設定檔的時間有問題,這個時候用
find /etc -name * -exec touch {};
就可以把設定檔的時間更新到與現在一致了。
chgrp命令
功能∶改變文件或目錄所屬的組。
語法∶chgrp [選項] group filename
該命令改變指定指定文件所屬的用戶組。其中group可以是用戶組ID,也可以是 /etc/group文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列 表,支持通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件 的組。
LN(1) LN(1)
NAME
ln -在文件之間建立連接
總覽
ln [options] source [dest]
ln [options] source...directory
POSIX 選項:
[-f]
GNU 選項(縮寫):
[-bdfinsvF] [-S backup-suffix] [-V {numbered, existing, simple}]
[--help] [--version] [--]
描述
在Unix世界里有兩個’link’(連接)概念,一般稱之為硬連接和軟連接。 一個硬
連接僅僅是一個文件名。(一個文件可以有好幾個文件名,只有將 最后一個文件
名從磁盤上刪除,才能把這個文件刪掉。文件名的個數是由 ls(1)來確定的。 所
有的文件名都處于同一個狀態,也就沒有什么源名字 之說。通常文件系統里的一
個文件的所有名字包含著一樣的數據信息,不 過這樣也不是必需的。)一個軟連
接(或符號連接)是完全不同的:它是 一個包含了路徑信息的小小的指定文件。
因此,軟連接可以指向不同文件 系統里的文件(比如由NFS裝載的不同機器文 件
系統上的文件),甚至可以 指向一個不一定確實存在的文件。在軟連接文件被訪
問(系統調用open(2) 或stat(2))的時候,操作系統用該文件所包含的路徑替換
該文件的訪問介 入點,從而實現對所指文件的訪問。(用命令rm(1)和unlink(2)
可以刪除 連接,但不是刪除該文件所指向的文件。 系 統 指 定 調 用lstat(2)
和readlink(2) 來讀取連接文件與其所指文件的狀態。到底是對軟連接文件操作
,還是對被 指向文件操作,由于不同操作系統件存在不同的系統調用,而存在著
差異。)
ln 在文件間產生連接。缺省時,產生硬連接,有-s選項,則產生符號(軟)連接
。
如果僅僅只給出一個文件名,那么ln將在當前目錄里產生這個文件的連接,也 就
是說,以該文件(的最后一個)名稱等同的名字在當前目錄里產生一個連接(GNU
范圍內);如果最后一個參數是一個已存在的目錄名, ln 將在那個目錄里給 每
一 個 源 文 件 用 以 與 源 文 件 相 同 的文件名產生連接,(不同情況見以
下--no-dereference的描述);如果只給出兩個文件名,ln將產生源文件的連 接
;如果最后一個參數不是一個目錄名或多于兩個文件名,則報錯。
缺 省時,ln不刪除已存在的文件或符號連接。(因此,它可以被用來鎖定目標文
件,即當dest已經不存在時)但選項-f可以強制執行。
在已存在的實現中,只有超級用戶才能建立目錄的硬連接。 POSIX 禁止系 統 調
用link(2)和ln建立目錄的硬連接(但是允許在不同的文件系統間建立硬連接)。
POSIX 選項
-f 刪除已存在的目的文件。
GNU 選項
-d, -F, --directory
允許超級用戶建立目錄硬連接。
-f, --force
刪除已存在的目的文件。
-i, --interactive
提示是否刪除已存在的目的文件。
-n, --no-dereference
當所給出的目的文件名是一個目錄的符號連接時,將其視為一般文件處理
。
當目的目錄名是一個確實存在的目錄(不是一個符號連接)時,不進行模
糊處理,而在那個目錄里建立連接。但是當所指定的目的目錄名是一個符
號連接時,有兩種方式來對待用戶的要求。 ln 會視目的為一個普通目錄
,并且在里面建立連接。或者如同符號連接本身一樣地視其為一個非目錄
。 這種情況下,ln 將在建立新連接之前刪除或備份這個符號連接。缺省
地,把符號連接視為普通目錄來對待。
-s, --symbolic
建立符號連接以替代硬連接。在不支持符號連接的系統上,這個選項僅僅
會產生一個錯誤提示而已。
-v, --verbose
在建立連接前顯示所操作的文件名。
GNU 備份選項
對 于 想備份那些有可能被覆蓋、改寫或者被破壞的文件, GNU提供了比如:cp,
mv, ln, install和patch等命令。可以使用-b參數生成備份文件。備份文件的 名
稱 由-V 參 數指定。假如備份文件的名稱是通過原文件名加后綴而得到,那么要
用-S參數來指定這個后綴。
-b, --backup
備份文件。
-S SUFFIX,-suffix=SUFFIX
在備份文件后添加"SUFFIX"(你的后綴)。如果不使用該參數,則使用環境
變 量 SIM_PLE_BACHUP_SUFFIX,如果該環境變量沒有設置,則缺省地使
用’~’。
-V METHOD,-version-control=METHOD
指定備份文件如何命名。參數"METHOD"可以是’numbered’(或’t’),如 果
不 使用該參數,則使用環境變量VERSION_CONTROL,如果該環境變量沒有
設置,則缺省地使用
正確有效的METHOD參數對應于Emacs變量’version-control’。(唯一被 承
認的縮寫):
t, numbered 產生數字標記形式的備份文件。
nil, existiong 對已有數字標記備份的文件進行數字備份,而簡單備份
其他類型文件。
never, simple 總是進行簡單備份。
GNU 標準參數
-help 在標準輸出上顯示使用信息并順利退出。
-version
在標準輸出上顯示版本信息并順利退出
-- 終端參數列表。
環境變量
變量LANG, LC_ALL, LC_COLLATE, LC_CTYPE和LC_MESSAGES具有通常意義。 在GNU
版本里,變量 SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制備份文件的命名。
遵循
POSIX 1003.2,盡管POSIX 1003.2(1996)沒有討論軟連接。軟連接在BSD中有介紹
,在System V release3(或更老版本)系統中不出現。
另見
ls(1), rm(1), link(2), lstat(2), open(2), readlink(2), stat(2),
unlink(2)
注意
本文出自應用文檔-4.0,其他版本肯定會有微小差別。任何添加或糾錯意見請寄
:aeb@cwi.nl。程序Bugs請告知:fileutils-bugs@gnu.ai.mit.edu
[中文版維護人]
Surran email
[中文版最新更新]
2000/10/19
[中國Linux論壇man手冊頁翻譯計劃]
GNU fileutils 4.0 November 1998 LN(1)
1、首先有一個目錄dir, 執行ln -s dir dir_link 創建目錄的軟鏈接。
2、重新創建mkdir源目錄,目錄軟鏈接重新生效。
3、執行命令ln dir dir_hard,創建目錄的硬鏈接。
4、執行命令ln -s file file_link,創建文件file的軟鏈接file_link。
5、執行命令ln file file_hard創建文件file的硬鏈接file_hard。
6、修改硬鏈接file_hard、cat file,同時更新到源文件中即可。
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
Linux必學的60個命令(3)-系統管理
由 zhanjun 在 周四, 2006-04-13 12:41 提交
Linux必學的60個命令:系統管理相關命令
Linux必學的系統管理命令
作者:曹元其 發文時間:2004.10.18
對于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
用法 : 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..]