資料介紹
為剛接觸 Linux 文件命令的初學者提供的速成教程
雖然 GUI 桌面(如 KDE 和 GNOME)能夠幫助用戶利用 Linux 特性,而無需關于命令行接口的功能知識,但還是經常會需要更多的功能和靈活性。而且,基本熟悉這些命令對于在 shell 腳本中正確地使某些功能自動化仍然是必需的。
這篇文章是關于 Linux 文件命令的一個“速成教程”,它是為那些剛接觸這個操作系統(tǒng)或者只是需要補充這方面知識的用戶提供的。它包含了對一些更有用的命令的一個簡明的概述以及關于它們的最強大的應用的指導。下面包含的信息 — 結合一些實驗 — 將使您能夠容易地掌握這些基本的命令。(注意:當涉及到一個與 Oracle 集群文件系統(tǒng) (OCFS) 結合的內核時,這些命令中的某些命令的行為可能會稍微有所不同。在此情況下,Oracle 提供了一個 OCFS 工具集,該工具集可以為文件命令應用提供一個更好的選擇。)
注意,這里包含的所有示例都在 SUSE Linux 8.0 Professional 上進行了測試。雖然沒有理由相信它們在其它的系統(tǒng)上將不能工作,但如果出現(xiàn)問題,您應當查看您的文檔,以了解可能的變化。
背景概念
在深入研究規(guī)范之前,讓我們回顧一些基礎知識。
文件和命令
在 Linux/UNIX 操作系統(tǒng)中,所有事物都被當作文件來處理:硬件設備(包括鍵盤和終端)、目錄、命令本身,當然還有文件。這個奇怪的慣例實際上是 Linux/UNIX 的能力和靈活性的基礎。
大多數(shù)(幾乎是全部)的命令形式如下:
command [option] [source file(s)] [target file]
獲取幫助
最有用的命令之一是那些提供幫助的命令(特別是對那些學習 Linux 的人而言)。Linux 中的兩個重要的信息來源是聯(lián)機參考手冊,或 man 頁面和 whatis 工具。您可以用 whatis 命令來訪問一個不熟悉的命令的 man 頁面。
$ whatis echo
要了解關于這個命令的更多信息,可以使用:
$ man echo
如果您不知道某個特殊任務所需的命令,您可以用 man -k (也稱為 apropos)和一個主題來生成可能的命令。例如:
$ man -k files
一個很有用但常常被忽視的命令可以提供關于使用 man 本身的信息:
$ man man
您可以用 SPACEBAR 來瀏覽任意的 man 頁面;UP ARROW 將向上翻滾文件。。要退出,則輸入 q,!,或 CTRL-Z。
用戶類別
記得那句名言“所有動物一例平等但有些動物比其他動物更加平等”嗎?在 Linux 世界中,根用戶掌管一切。
根用戶可以以另一個用戶名 su (源自 “superuser”)登錄。要執(zhí)行諸如添加一個新用戶、打印機或文件系統(tǒng)之類的任務,必須作為根用戶登錄或者用 su 命令和根用戶密碼切換到超級用戶。系統(tǒng)文件(包括控制初始化過程的系統(tǒng)文件)歸根用戶所有。雖然可能允許普通用戶對它們進行讀操作,但出于系統(tǒng)安全性的原因,編輯的權利將留給根用戶。
BASH shell
雖然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默認 shell。它結合了與它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。
BASH 內置的命令 history 默認記錄最后輸入的 500 條命令??梢酝ㄟ^在命令提示符下輸入 history 來查看它們。要檢索某個特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN ARROW,或在歷史列表中輸入它的編號,并在編號前面加上 “!”,例如:
$ !49
您還可以通過一條命令在歷史列表中離位置最靠前的項目的距離來執(zhí)行該命令:如果在歷史列表中有 53 個事件,$ !-3 將執(zhí)行事件號 51。
像 UNIX/Linux 世界的其它 shell 一樣,BASH 使用了特殊的環(huán)境變量來方便系統(tǒng)管理。例如:
HOME,用戶主目錄
PATH,Linux 用來搜索您輸入的命令的可執(zhí)行鏡像的搜索路徑
HISTSIZE,系統(tǒng)保存的歷史事件的數(shù)量
除了這些保留的關鍵字之外,您還可以定義您自己的環(huán)境變量。例如,Oracle 使用 ORACLE_HOME (還有其它一些變量),要使 Oracle 安裝成功完成,必須在您的環(huán)境中設置這些變量。
可以在提示符下臨時設置變量:
$HISTSIZE=100
或者,在 /etc/profile (需要根用戶權限)中進行系統(tǒng)范圍的永久設置,或在 .profile 中進行局部永久設置。
可以通過 echo 命令,并用一個 $ 符號來訪問一個環(huán)境變量的值,進而查看該值。
$ echo $HOME
/home/bluher
可以用 env 命令來查看當前所有的環(huán)境變量。
正則表達式和通配符
許多 Linux 命令使用通配符 * 和 ? 來匹配任意數(shù)量的字符或分別匹配任意的單個字符;正則模式匹配表達式利用一個句點 (。) 來匹配除“換行符”之外的任意單個字符。這兩種情況下都使用方括號 ([ ]) 來匹配除“*”號之外的字符組。不過,* 號在各種情況下有類似但不同的意義:雖然它在 shell 中將匹配一個或更多的字符,但在正則表達式中,它匹配上述字符的零個或更多的實例。一些命令(如 egrep 和 awk)使用了一組更廣泛的特殊字符來進行模式匹配。
文件處理命令
剖析一個文件列表
ls 命令用來查看用戶有執(zhí)行權限的任意目錄中的文件列表,該命令有許多有趣的選項。例如:
$ ls -liah *
22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile
19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out
925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh
上面的列表顯示 8 列:
第 1 列指示文件的 inode,因為我們使用了 -i 選項。剩下的列通過 -l 選項來進行正常顯示。
第 2 列顯示文件類型和文件訪問權限。
第3 列顯示鏈接數(shù),包括目錄。
第 4 和第 5 列顯示文件的所有者和組所有者。這里,所有者 “bluher” 屬于組 “users”。
第 6 列顯示文件大?。▎挝粸樗@示的單位,而不是默認的字節(jié)數(shù),因為我們使用了 -h 選項。
第 7 列顯示日期(它看起來像是三列),包括月、日和年,以及當天的時間。
第 8 列顯示文件名。在選項列表中使用 -a 將使列表中包含隱藏文件(如 .profile)的列表。
處理文件
可以移動 (mv)、復制 (cp) 或刪除 (rm) 文件和目錄。明智地使用 -i 選項,以獲得確認通常是個不錯的主意。
$ cp -i ls.out ls2.out
cp:overwrite `ls2.out‘?
mv 命令允許使用 -b 選項,這將在移動文件之前作一個備份拷貝。rm 和 cp 接受功能強大但卻危險的 -r 選項,它將在一個目錄和它的文件上遞歸執(zhí)行。
$ rm -ir Test
rm:descend into directory `Test’? y
可以用 mkdir 來創(chuàng)建目錄,用 rmdir 來刪除目錄。不過,因為不能用 rmdir 來刪除包含文件的目錄,所以使用 rm 加 -r 選項通常要更方便些。
出于安全的原因,所有的文件都有所有權和保護。文件訪問權限(或文件模式)包含之前提到的相同的 10 個字符:
第一個字符指示文件類型。最常見的是 - 代表文件,d 代表目錄,而 l 代表鏈接。
接下來的 9 個字符是三種用戶類別的訪問權限:文件所有者(字符 2-4),用戶組 (5-7) 和其它 (8-10),其中 r 表示讀權限,w 表示寫權限,x 指示一個文件上的執(zhí)行權限。破折號 - 如果出現(xiàn)在這九個位置的任意一個,則指示這個操作對該類別的用戶禁止。
可以使用 chmod 命令通過字符符號或二進制掩碼來設置訪問權限。要使用二進制掩碼,必須將三個權限組的字符表示轉換成二進制格式,然后轉換成八進制格式:
用戶類別: 所有者 用戶組 其它
字符表示: rwx r-x r--
二進制表示: 111 101 100
八進制表示: 7 5 4
將寫權限賦予用戶組,您可以使用:
chmod g+w test.sh or chmod 774 test.sh
用 umask 命令,在 /etc/init.dev 文件中進行系統(tǒng)范圍內的、或在 .profile 文件中進行的本地的文件權限默認設置。這個命令指示用 777 減去這個數(shù)字來獲取默認的權限:
$ umask 022
這將為用戶創(chuàng)建的所有新文件生成一個默認的文件權限 755。
可以用 chown 來修改文件的所有權:
$ chown bluher ls.out
這里,bluher 是新的文件所有者。類似地,組成員資格將按以下方式修改:
$ chgrp devgrp ls.out
這里,devgrp 是新的用戶組。
ls 不提供哪些文件是文本的,哪些文件是二進制的的信息。要了解這個信息,您可以使用 file * 命令。
雖然 GUI 桌面(如 KDE 和 GNOME)能夠幫助用戶利用 Linux 特性,而無需關于命令行接口的功能知識,但還是經常會需要更多的功能和靈活性。而且,基本熟悉這些命令對于在 shell 腳本中正確地使某些功能自動化仍然是必需的。
這篇文章是關于 Linux 文件命令的一個“速成教程”,它是為那些剛接觸這個操作系統(tǒng)或者只是需要補充這方面知識的用戶提供的。它包含了對一些更有用的命令的一個簡明的概述以及關于它們的最強大的應用的指導。下面包含的信息 — 結合一些實驗 — 將使您能夠容易地掌握這些基本的命令。(注意:當涉及到一個與 Oracle 集群文件系統(tǒng) (OCFS) 結合的內核時,這些命令中的某些命令的行為可能會稍微有所不同。在此情況下,Oracle 提供了一個 OCFS 工具集,該工具集可以為文件命令應用提供一個更好的選擇。)
注意,這里包含的所有示例都在 SUSE Linux 8.0 Professional 上進行了測試。雖然沒有理由相信它們在其它的系統(tǒng)上將不能工作,但如果出現(xiàn)問題,您應當查看您的文檔,以了解可能的變化。
背景概念
在深入研究規(guī)范之前,讓我們回顧一些基礎知識。
文件和命令
在 Linux/UNIX 操作系統(tǒng)中,所有事物都被當作文件來處理:硬件設備(包括鍵盤和終端)、目錄、命令本身,當然還有文件。這個奇怪的慣例實際上是 Linux/UNIX 的能力和靈活性的基礎。
大多數(shù)(幾乎是全部)的命令形式如下:
command [option] [source file(s)] [target file]
獲取幫助
最有用的命令之一是那些提供幫助的命令(特別是對那些學習 Linux 的人而言)。Linux 中的兩個重要的信息來源是聯(lián)機參考手冊,或 man 頁面和 whatis 工具。您可以用 whatis 命令來訪問一個不熟悉的命令的 man 頁面。
$ whatis echo
要了解關于這個命令的更多信息,可以使用:
$ man echo
如果您不知道某個特殊任務所需的命令,您可以用 man -k (也稱為 apropos)和一個主題來生成可能的命令。例如:
$ man -k files
一個很有用但常常被忽視的命令可以提供關于使用 man 本身的信息:
$ man man
您可以用 SPACEBAR 來瀏覽任意的 man 頁面;UP ARROW 將向上翻滾文件。。要退出,則輸入 q,!,或 CTRL-Z。
用戶類別
記得那句名言“所有動物一例平等但有些動物比其他動物更加平等”嗎?在 Linux 世界中,根用戶掌管一切。
根用戶可以以另一個用戶名 su (源自 “superuser”)登錄。要執(zhí)行諸如添加一個新用戶、打印機或文件系統(tǒng)之類的任務,必須作為根用戶登錄或者用 su 命令和根用戶密碼切換到超級用戶。系統(tǒng)文件(包括控制初始化過程的系統(tǒng)文件)歸根用戶所有。雖然可能允許普通用戶對它們進行讀操作,但出于系統(tǒng)安全性的原因,編輯的權利將留給根用戶。
BASH shell
雖然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默認 shell。它結合了與它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。
BASH 內置的命令 history 默認記錄最后輸入的 500 條命令??梢酝ㄟ^在命令提示符下輸入 history 來查看它們。要檢索某個特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN ARROW,或在歷史列表中輸入它的編號,并在編號前面加上 “!”,例如:
$ !49
您還可以通過一條命令在歷史列表中離位置最靠前的項目的距離來執(zhí)行該命令:如果在歷史列表中有 53 個事件,$ !-3 將執(zhí)行事件號 51。
像 UNIX/Linux 世界的其它 shell 一樣,BASH 使用了特殊的環(huán)境變量來方便系統(tǒng)管理。例如:
HOME,用戶主目錄
PATH,Linux 用來搜索您輸入的命令的可執(zhí)行鏡像的搜索路徑
HISTSIZE,系統(tǒng)保存的歷史事件的數(shù)量
除了這些保留的關鍵字之外,您還可以定義您自己的環(huán)境變量。例如,Oracle 使用 ORACLE_HOME (還有其它一些變量),要使 Oracle 安裝成功完成,必須在您的環(huán)境中設置這些變量。
可以在提示符下臨時設置變量:
$HISTSIZE=100
或者,在 /etc/profile (需要根用戶權限)中進行系統(tǒng)范圍的永久設置,或在 .profile 中進行局部永久設置。
可以通過 echo 命令,并用一個 $ 符號來訪問一個環(huán)境變量的值,進而查看該值。
$ echo $HOME
/home/bluher
可以用 env 命令來查看當前所有的環(huán)境變量。
正則表達式和通配符
許多 Linux 命令使用通配符 * 和 ? 來匹配任意數(shù)量的字符或分別匹配任意的單個字符;正則模式匹配表達式利用一個句點 (。) 來匹配除“換行符”之外的任意單個字符。這兩種情況下都使用方括號 ([ ]) 來匹配除“*”號之外的字符組。不過,* 號在各種情況下有類似但不同的意義:雖然它在 shell 中將匹配一個或更多的字符,但在正則表達式中,它匹配上述字符的零個或更多的實例。一些命令(如 egrep 和 awk)使用了一組更廣泛的特殊字符來進行模式匹配。
文件處理命令
剖析一個文件列表
ls 命令用來查看用戶有執(zhí)行權限的任意目錄中的文件列表,該命令有許多有趣的選項。例如:
$ ls -liah *
22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile
19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out
925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh
上面的列表顯示 8 列:
第 1 列指示文件的 inode,因為我們使用了 -i 選項。剩下的列通過 -l 選項來進行正常顯示。
第 2 列顯示文件類型和文件訪問權限。
第3 列顯示鏈接數(shù),包括目錄。
第 4 和第 5 列顯示文件的所有者和組所有者。這里,所有者 “bluher” 屬于組 “users”。
第 6 列顯示文件大?。▎挝粸樗@示的單位,而不是默認的字節(jié)數(shù),因為我們使用了 -h 選項。
第 7 列顯示日期(它看起來像是三列),包括月、日和年,以及當天的時間。
第 8 列顯示文件名。在選項列表中使用 -a 將使列表中包含隱藏文件(如 .profile)的列表。
處理文件
可以移動 (mv)、復制 (cp) 或刪除 (rm) 文件和目錄。明智地使用 -i 選項,以獲得確認通常是個不錯的主意。
$ cp -i ls.out ls2.out
cp:overwrite `ls2.out‘?
mv 命令允許使用 -b 選項,這將在移動文件之前作一個備份拷貝。rm 和 cp 接受功能強大但卻危險的 -r 選項,它將在一個目錄和它的文件上遞歸執(zhí)行。
$ rm -ir Test
rm:descend into directory `Test’? y
可以用 mkdir 來創(chuàng)建目錄,用 rmdir 來刪除目錄。不過,因為不能用 rmdir 來刪除包含文件的目錄,所以使用 rm 加 -r 選項通常要更方便些。
出于安全的原因,所有的文件都有所有權和保護。文件訪問權限(或文件模式)包含之前提到的相同的 10 個字符:
第一個字符指示文件類型。最常見的是 - 代表文件,d 代表目錄,而 l 代表鏈接。
接下來的 9 個字符是三種用戶類別的訪問權限:文件所有者(字符 2-4),用戶組 (5-7) 和其它 (8-10),其中 r 表示讀權限,w 表示寫權限,x 指示一個文件上的執(zhí)行權限。破折號 - 如果出現(xiàn)在這九個位置的任意一個,則指示這個操作對該類別的用戶禁止。
可以使用 chmod 命令通過字符符號或二進制掩碼來設置訪問權限。要使用二進制掩碼,必須將三個權限組的字符表示轉換成二進制格式,然后轉換成八進制格式:
用戶類別: 所有者 用戶組 其它
字符表示: rwx r-x r--
二進制表示: 111 101 100
八進制表示: 7 5 4
將寫權限賦予用戶組,您可以使用:
chmod g+w test.sh or chmod 774 test.sh
用 umask 命令,在 /etc/init.dev 文件中進行系統(tǒng)范圍內的、或在 .profile 文件中進行的本地的文件權限默認設置。這個命令指示用 777 減去這個數(shù)字來獲取默認的權限:
$ umask 022
這將為用戶創(chuàng)建的所有新文件生成一個默認的文件權限 755。
可以用 chown 來修改文件的所有權:
$ chown bluher ls.out
這里,bluher 是新的文件所有者。類似地,組成員資格將按以下方式修改:
$ chgrp devgrp ls.out
這里,devgrp 是新的用戶組。
ls 不提供哪些文件是文本的,哪些文件是二進制的的信息。要了解這個信息,您可以使用 file * 命令。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式Linux開發(fā)教程:Linux常見命令(上篇)
- Linux操作系統(tǒng)的CP命令源代碼匯總 4次下載
- LINUX操作系統(tǒng)的安裝與Linux常用文件命令 3次下載
- Linux系統(tǒng)命令及shell腳本實踐指南 29次下載
- Linux系統(tǒng)中EXP命令詳解質量匯總 1次下載
- 使用Linux命令lsof查看進程打開和查看文件的說明 0次下載
- Linux教程之Linux命令、編程器、Shell編程、實例大全pdf免費下載 21次下載
- Linux教程之常用Linux命令的詳細資料免費下載 14次下載
- Linux教程之網絡配置文件與配置方法及常用網絡操作命令 9次下載
- Linux基礎教程之linux命令的gzip詳解和使用實例資料免費下載 4次下載
- Linux文件查找命令find,xargs詳述 0次下載
- Linux.文件系統(tǒng)的精通指南 7次下載
- Linux必學的命令大全集
- linux shell命令/unix shell命令教程
- linux中常用命令與基本管理(北大青鳥)
- 測試工程師都在用的Linux命令清單(建議收藏) 599次閱讀
- 一文掌握Linux命令 508次閱讀
- Linux常用命令大全 1.7k次閱讀
- Linux文件管理命令詳解 965次閱讀
- Linux系統(tǒng)中shell命令解析 1.4k次閱讀
- Linux lsof命令的基本用法 2.5k次閱讀
- Linux文件目錄快速自動跳轉命令 1.7k次閱讀
- 如何在Linux使用rpm命令 2.4k次閱讀
- Linux cat命令詳解 1.1w次閱讀
- 如何使用cp和rsync命令復制文件和目錄 7.8k次閱讀
- 如何在Linux使用touch命令 2.8k次閱讀
- Linux中的35個find命令用法 4.3k次閱讀
- Linux gunzip命令解析 gunzip解壓文件的方法 1.4w次閱讀
- Linux常用的100+命令大全詳解長文(典藏版) 6k次閱讀
- Linux文件管理命令語法、參數(shù)、實例全匯總 4.6k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關型降壓3.5A單節(jié)鋰電池充電管理電路技術手冊
- 0.74 MB | 1次下載 | 免費
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測距模塊產品手冊
- 0.43 MB | 1次下載 | 免費
- 8SDFM 激光測距模塊模組手冊
- 0.54 MB | 1次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創(chuàng)新應用
- 3.11 MB | 43次下載 | 免費
- 3RV1126B系列開發(fā)板產品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構、3路千兆網,賦能多元化工業(yè)場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯(lián)網、人工智能項目案例及入門學習資源包
- 10.55 MB | 8次下載 | 免費
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論