專題:Windows 到 Linux 之旅:第 2 部分. 控制台速成班

來源:互聯網
上載者:User
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 管理來說,必須學習在控制台環境下工作。雖然有一些工具可以讓您避免使用控制台,但是您會受到那些工具的很多限制。進入控制台很簡單,使用 maninfo 命令訪問命令文檔也很方便。

參考資料

  • 閱讀 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 聯絡。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.