Windows 到 Linux 之旅:第 2 部分. 控制檯速成班(轉)

post0發表於2007-08-09
Windows 到 Linux 之旅:第 2 部分. 控制檯速成班(轉)[@more@]

Linux 控制檯快速指南

級別: 初級

Chris Walden (cmwalden-at-us.ibm.com)

電子商務架構師,IBM Developer Relations

2004 年 1 月

IBM 電子商務架構師 Chris Walden 將透過他在 developerWorks 上發表的九篇系列文章來指導您如何在 Linux 環境中運用您的 Windows 操作技巧。本部分將介紹各種不同的 shell 和一些最基本的 Linux 命令。

Linux 中的所有管理任務都可以在控制檯中完成。許多情況下,使用控制檯比使用圖形化的程式更快捷,而且還可能實現額外的功能。不僅如此,所有的控制檯任務都可以寫到指令碼中,這樣就可以自動執行。為了真正地駕馭您的 Linux 環境,您將希望掌握如何在控制檯中工作。如果您曾經使用過 DOS/Windows,本文將引導您開始使用 Linux 控制檯。

進入控制檯

如果您的系統引導進入文字模式(為了降低服務開銷,伺服器通常是這樣配置的),那麼您在以文字形式登入後就已經在控制檯中了。在典型的 Linux 系統中,透過組合鍵 Ctrl + Alt + (F1 - F6) 您可以切換到另外的控制檯。每一個控制檯是系統中一個完全獨立的會話,不同的使用者可以同時使用。

這一多控制檯的特點與 Windows 中的多桌面不同。在 Linux 中,每一個控制檯可以分別由完全不同的使用者來控制。例如,您可能在控制檯 1 中以 root 身份登入,而在控制檯 2 中以 joeuser 身份登入。兩個控制檯在各自的使用者空間中執行不同的程式。與此類似,不同的使用者可以遠端登入到同一個 Windows 系統中。就這一點來說,Linux 更像是主機而不是簡單的伺服器或工作站。

如果您是在圖形模式下,那麼您可以開啟一個 終端 (terminal) 以進入控制檯視窗。通常在桌面的任務條上會有終端的按鈕。您也可以從上下文選單(在桌面上單擊右鍵)開啟終端 。

命令

在控制檯中可以使用的命令很多。其中有一些實際上只在編寫指令碼時才會用到。這裡介紹一些您最可能用到的命令。不要忘記,所有的命令和選項都區分大小寫。-R 與 -r 不同,會去執行不同的操作。控制檯命令幾乎全都是小寫的。

cd

使用我們所熟悉的 cd 命令可以在目錄間切換。一定注意的是在 Linux 中用的是正斜槓 (/),而不是您所熟悉的反斜槓 ()。反斜槓也用到了,但只是用來說明命令需要換行繼續,這樣可以提高比較長的命令的可讀性。

ls

ls 命令用於列出一個目錄下的所有檔案。可以使用許多不同的開關更改列表的表示形式:

列出檔案

ls -l 以長格式列出檔案,包括檔案大小、日期和時間、屬性

ls -t 對檔案以時間排序

ls -S 對檔案以大小排序

ls -r 與一個排序開關組合起來使用,逆序排列。ls -t 將最新的檔案顯示在列表的頂部。ls -t將最新的檔案顯示在底部。

ls -h 易讀格式。使用 k、M、G 等來標識檔案的大小,而不是以位元組為單位。

ls -a 顯示目錄中所有的檔案,包括隱藏檔案

cp

使用 cp 命令來複制檔案。這個命令與 DOS 下的 copy 命令基本一樣。基本的開關如下:

複製檔案

cp -R 遞迴地複製檔案;當需要複製整個目錄時會用到

cp -f 強制複製並覆蓋已有的檔案,不詢問使用者

cp -l 連結檔案,而不是複製;見下面的說明

使用複製命令建立連結

用 cp 命令可以建立指向一個檔案或者整個檔案結構的硬連結。使用 -l 開關來指明操作是連結複製。所有的目錄仍作為目錄建立,但所有的檔案會被設定為硬連結。

cp -lR /data/accounting/payroll /data/management/hr

上面的命令將把整個目錄結構及其下面的檔案從 /data/accounting/payroll 複製到 /data/management/hr/payroll。目錄結構下的所有檔案將被設定為硬連結。這樣使一個檔案在同一個檔案系統中可以具備不同的檢視。這也是有用的安全技術,使得在不同的目錄下對同一檔案有不同的訪問許可權。

mv

使用 mv 命令來移動和重新命名檔案。這個命令的工作方式基本上與 DOS 中的 move 命令一樣,不過它可以移動整個目錄結構及所有檔案。

cat

使用 cat 命令來檢視檔案的內容。它相當於 DOS 中的 type 命令。它將把檔案的內容轉儲到另一個檔案、螢幕或者其他命令。cat 是concatenate 的簡寫,還可以將一系列的檔案合併為一個大檔案。

more

使用命令 more 可以以分頁的方式檢視檔案。它基本上與 DOS 中的 more 命令相同。

less

less 命令也是用來檢視檔案,但是它支援上下滾屏以及在文件中進行文字搜尋。

vi

有一些人可能會說 vi 表示“virtually impossible”。它是 Unix 中的一個歷史悠久的文字編輯器。vi 並不真正直觀,但是現在幾乎所有的類 Unix 環境中都有 vi。對於 Linux 中安裝的版本有一個內建的教程,一旦您熟悉了 vi,只需幾次擊鍵就可以完成不可思議的任務。說實話,沒有任何編輯器能夠取代 vi 來編輯密碼和配置檔案。

man

使用 man 命令來檢視命令的文件。man 是 manual 的縮寫。幾乎每一個命令都有相應的文件。要深入瞭解 man,請輸入以下命令:

man man

info

info 命令與 man 命令類似,不過它提供了超連結文字,可以更方便地瀏覽文件。

哪個 shell?

DOS/Windows 與 Linux 的最重要的區別之一是 Linux 的命令 shell 是與作業系統相分離的一層。不同的 shell 環境影響您具備不同的功能,比如可編輯的命令列和歷史命令回查等。shell 還決定了指令碼中函式的語法。在 DOS/Windows 中,編寫指令碼程式只有一種情況,那就是使用效率低下的 .BAT 檔案。它的確可以完成很多功能,但除了完成那些基本的任務,複雜些的任務就需要指令碼編寫者具有極強的創造性。在 Linux 中,指令碼中可以有迴圈,不僅可以執行基本的條件語句,很多在程式語言中才有的功能它都具備。如果您擅長編寫 .BAT 檔案,那麼 shell 指令碼更會使您大展才華。

預設的 shell 是每個使用者帳號的一個引數。Linux 中典型的預設 shell 是 /bin/bash,不過也可以用其他的 shell。每個 shell 的 man 文件實際上都非常好,都對各種 shell 及其使用進行了詳細的說明。僅僅閱讀下面的解釋是不夠的,應該從下面列出的 shell 中選擇一個,去檢視它的 man 文件。

bash

bash shell 是 Bourne shell 的一個免費版本,它是最早的 Unix shell,包括許多附加的特點。Bash 有可編輯的命令列,可以回查歷史命令,支援 tab 鍵補齊以使使用者避免輸入長的檔名。

csh

C shell 使用的是“類C”語法,借鑑了 Bourne shell 的許多特點,只是內部 shell 命令集有所不同。

ksh

Korn shell 的語法與 Bourne shell 相同,同時具備了 C shell 的易用特點。許多安裝指令碼都使用 ksh,即使您不把它作為您的主 shell,您也應該在系統中安裝它。

tcsh

TC shell 是 C shell 的一個增強版本,與 C shell 完全相容。

zsh

Z shell 是 Korn shell 的一個增強版本,具備 bash shell 的許多特色。

Shell 規則

您只需在控制檯中執行相應的命令就可以隨時切換 shell。只要在檔案頂部放置一個井號 (#!) 指向需要的 shell,指令碼就可以指定想要執行的 shell。當指令碼執行的時候,不管使用者所處的 shell 環境是什麼,它都會在正確的 shell 環境中執行。下面例子中的這行程式碼指出指令碼需要在 C shell 下執行:

#!/bin/csh

給我做連結,這樣就更安全!

Linux 檔案系統最重要的特點之一是它的檔案連結。連結是對檔案的引用,這樣您可以讓檔案在檔案系統中多處被看到。不過,在 Linux 中,連結可以如同原始檔案一樣來對待。連結可以與普通的檔案一樣被執行、編輯和訪問。對系統中的其他應用程式而言,連結就是它所對應的原始檔案。當您透過連結對檔案進行編輯時,您編輯的實際上是原始檔案。連結不是副本。有兩種型別的連結:硬連結和符號連結。

硬連結 只能引用同一檔案系統中的檔案。它引用的是檔案在檔案系統中的物理索引(也稱為 inode)。當您移動或刪除原始檔案時,硬連結不會被破壞,因為它所引用的是檔案的物理資料而不是檔案在檔案結構中的位置。硬連結的檔案不需要使用者有訪問原始檔案的許可權,也不會顯示原始檔案的位置,這樣有助於檔案的安全。如果您刪除的檔案有相應的硬連結,那麼這個檔案依然會保留,直到所有對它的引用都被刪除。

符號連結 是一個指標,指向檔案在檔案系統中的位置。符號連結可以跨檔案系統,甚至可以指向遠端檔案系統中的檔案。符號連結只是指明瞭原始檔案的位置,使用者需要對原始檔案的位置有訪問許可權才可以使用連結。如果原始檔案被刪除,所有指向它的符號連結也就都被破壞了。它們會指向檔案系統中並不存在的一個位置。

兩種連結都可以透過命令 ln 來建立。ln 預設建立的是硬連結。使用 -s 開關可以建立符號連結。

# Create a hard link from MyFile in the current

# directory to /YourDir/MyFile

ln MyFile /YourDir

# Create a symbolic (soft) link from MyFile in

# the current directory to /YourDir/YourFile

ln -s MyFile /YourDir/Yourfile

在上面的例子中,MyFile、/YourDir/MyFile 和 /YourDir/Yourfile 會被看成是同一個檔案。

走出您的 shell

對 Linux 管理來說,必須學習在控制檯環境下工作。雖然有一些工具可以讓您避免使用控制檯,但是您會受到那些工具的很多限制。進入控制檯很簡單,使用 man 和 info 命令訪問命令文件也很方便。

參考資料

* 閱讀 Windows 到 Linux 之旅系列文章 的其他部分(developerWorks, 2003 年 11 月)。

* 遵循教程“vi 入門 -- 巧表單方法” (developerWorks ),來開始使用 vi 編輯器。

* “針對 Linux 開發新手的基本任務” (developerWorks, 2001 年 7 月) 深入淺出地介紹瞭如何在 Linux 下工作,涉及的主題包括開啟 shell 視窗、新增使用者和組,以及掛載和缷載 CD-ROM。

* “Linux 使用者技術 FAQ”(developerWorks, 2001 年 7 月)也可以幫助您順利地從 Windows 過渡到 Linux。

* “Linux 客戶機有多好?”講述了作者的工作環境由 Windows 轉到 Linux 時的經驗。同時還有一篇文章“為 Windows 使用者準備的簡明 Linux 詞彙表”也是有用的參考資料。

* 在 GNU Manuals Online 網頁上您可以找到很多線上幫助網頁。

* From DOS/Windows to Linux HOWTO 為那些具有 DOS 或 Windows 背景的人提供了一些快速上手的資料。

* AllCommands.com 是一個與眾不同的站點,幫助您從各種作業系統的引用和交叉引用命令。

* 教程“LPI certification 101 exam prep, Part 1: Linux fundamentals”介紹了 bash、標準 Linux 命令,等等。

* 透過“Bash 例項”系列文章更深入地學習 shell 指令碼 (developerWorks )。

* 雖然是為 AIX 使用者所寫的,但是 System User's Guide: Operating System and Devices - Shells 參考與書籍的章節,包括 AIX Commands Reference - man Command 中的許多內容同樣適用於 Linux。

* 要開始在 Linux 上使用 IBM 的軟體產品,為您的 Linux 應用開發加油提速 將為您提供最好的參考資料。您可以找到關於 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多種應用軟體的安裝提示和參考資料。您還可以登入獲得免費的 Linux Software Evaluation Kit,裡面有試用軟體和培訓資料。

* 透過developerWorks 上的 從這裡開始學習 Linux 一文繼續學習 Linux 基本概念。

* 在 developerWorks Linux 專區可以找到更多 為 Linux 開發者準備的參考資料。

關於作者

Chris Walden 是位於德克薩斯州奧斯汀的 IBM Developer Relations Technical Consulting(也稱為 dragonslayers)的一名電子商務架構師,該公司為 IBM 商業夥伴提供教育、實現和諮詢。他致力於 Linux 相關工作,一有機會就向身邊的人宣傳 Linux 的種種好處。除了完成他的架構師的職責之外,他還精通 Linux 基礎設施伺服器的各個領域,包括混合平臺使用者環境下的檔案、列印以及其他應用服務等。Chris 有 10 年的計算機行業經驗,從現場支援到 Web 應用開發和顧問,各個領域他都曾涉足。您可以透過 cmwalden-at-us.ibm.com 與 Chris 聯絡
<source>

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

相關文章