歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> 從零開始:Linux基礎教程之命令的使用

從零開始:Linux基礎教程之命令的使用

日期:2017/2/28 10:05:00   编辑:Linux命令
Linux命令
  對於 Linux 新手,或者那些想要重新審視或改進自己對基本 Linux 概念(比如:復制和移動文件、創建符號和硬鏈接、設置文件系統對象所有權和權限以及同管道和重定向一起使用 Linux 的標准文本處理命令)的理解的人來說,本系列連載文章之一是理想的教材。沿著這個方向,我們將一起分享很多心得、技巧和竅門,使該教程甚至對於那些具有豐富經驗的 Linux 老手來說都是“有血有肉”,並且是實用的。
  
  對於初學者而言,本系列文章的許多內容都很新穎,而更有經驗的 Linux 用戶可能會發現本教程是使他們基本的 Linux 技能“爐火純青”的有效途徑。
  
  介紹 bash
  
  shell
  
  如果您使用過 Linux 系統,那麼您知道當登錄時,將會看到像這樣的提示符:
  $
  
  您所看到的特殊的提示符可能看起來很不一樣。它可能包含系統的主機名、當前的工作目錄名,或者兩者都有。但是不管這個特殊的提示符看起來像什麼,有一件事是肯定的。打印出這個提示符的程序叫“shell”,極有可能您的特殊的 shell 是一個叫 bash 的程序。
  
  您在運行 bash 嗎?
  
  您可以通過輸入下面的命令來檢查您是否正在運行 bash:
  
  $ echo $SHELL
  
  /bin/bash
  
  如果上面的命令行報錯或者不會類似地響應我們的示例,那麼您可能正在運行一個不同於 bash 的 shell。
  
  關於 bash
  
  Bash 是“Bourne-again shell”的首字母縮寫,它是大多數 Linux 系統缺省的 shell。shell 的任務是執行您的命令,使您能夠與 Linux 系統進行交互。當您輸完命令,您可以通知 shell 執行 exit 或 logout 命令,在此您將返回到登錄提示符。順便提一下,您還可以通過在 bash 提示符下按 control-D 來注銷。
  
  使用“cd”
  
  您可能已經發現,目不轉睛地盯著bash提示符可不是世界上最讓人感到有勁的事。那麼,讓我們來開始用 bash 來浏覽我們的文件系統。在提示符下,輸入下面的命令(不包括 $):
  
  $ cd /
  
  我們只告訴 bash 您想在 /(也稱為根目錄)中工作;系統上的所有目錄形成一棵樹,/ 被認為是這棵樹的頂部,或者是根。cd設置當前您正在工作的目錄,也稱為“當前工作目錄”。
  
  路徑
  
  要看 bash 的當前工作目錄,您可以輸入:
  
  $ pwd
  
  /
  
  在上面的示例中,cd 的 / 參數叫做路徑。它告訴 cd 我們要轉到什麼地方。特別是,/ 參數是一個絕對路徑,意味著它指定了相對於文件系統樹的根的位置。絕對路徑這裡有幾個其它的絕對路徑:
  
  /dev
  /usr
  /usr/bin
  /usr/local/bin
  
  您可以看到,所有絕對路徑有一個共同點就是,它們都以/開頭。通過路徑/usr/local/bin,我們告訴 cd 進入 / 目錄,接著進入這個目錄之下的usr目錄,然後再進入 local 和 bin。絕對路徑總是通過是否以 / 開頭來判斷。
  
  相對路徑
  
  另一種路徑叫相對路徑。在 Bash 中,cd 以及其它命令總是解釋那些相對於當前目錄的路徑。相對路徑絕不會以 / 開頭。這樣,如果我們在 /usr 中:
  
  $ cd /usr
  
  那麼,我們可以使用相對路徑來轉到 /usr/local/bin 目錄:
  
  $ cd local/bin
  $ pwd
  /usr/local/bin
  
  使用“..”
  
  相對路徑還可以包含一個或多個 .. 目錄。.. 目錄是指向父目錄的專門目錄。那麼,繼續前面的示例:
  
  $ pwd
  /usr/local/bin
  $ cd ..
  $ pwd
  /usr/local
  
  您可以看到,現在我們的當前目錄是 /usr/local。我們能夠“後退”到相對於我們所在的當前目錄的一個目錄。此外,我們還可以將 \\\\\"..\\\\\\" 添加到一個現有的相對路徑中,使我們可以進入與我們已在目錄並排的目錄,例如:
  
  $ pwd
  /usr/local
  $ cd ../share
  $ pwd
  /usr/share
  
  相對路徑示例
  
  相對路徑可以變得相當復雜。這裡有幾個示例,所有的都沒有顯示出結果的目標路徑。請試著推斷一下,輸入這些命令後,您最終將會轉到什麼地方:
  
  $ cd /bin
  $ cd ../usr/share/zoneinfo
  $ cd /usr/X11R6/bin
  $ cd ../lib/X11
  $ cd /usr/bin
  $ cd ../bin/../bin
  
  現在,試驗一次,看看您的推斷是否正確。
  
  理解“.”
  
  在我們結束 cd 的介紹之前,我們還需要討論一些更多的內容。首先,還有另一個叫 . 的專門的目錄。它表示“當前目錄”。然而該目錄不為 cd 命令使用,它通常用來執行一些當前目錄中的程序,如下所示:
  
  $ ./myprog
  
  在上面的示例中,駐留在當前工作目錄中的 myprog 可執行文件將被執行。
  
  cd 和主目錄
  
  如果我們想要轉到主目錄,我們可以輸入:
  
  $ cd
  
  沒有參數,cd 將轉到主目錄,對於超級用戶來說是 /root,對於一般用戶來說通常是
  
  /home/username。但是,如果我們想要指定一個主目錄中的文件,將會怎樣呢?可能我們想要將一個文件參數傳給 myprog 命令。如果該文件在主目錄中,我們可以輸入:
  
  $ ./myprog /home/drobbins/myfile.txt
  
  但是,使用像這樣的絕對路徑並不總是很方便。幸好,我們可以使用 ~(代字符)字符來完成同樣的事:
  
  $ ./myprog ~/myfile.txt
  
  其他用戶的主目錄Bash 將把單獨的 ~ 擴展為指向主目錄,然而您還可以用它來指向其他用戶的主目錄。例如,如果我們想要引用 fred 的主目錄中的名為 fredsfile.txt 的文件,可以輸入:
  
  $ ./myprog ~fred/fredsfile.txt
  
  使用 Linux 命令
  
  介紹 \" ls \"
  
  現在,我們將快速地看一看 ls 命令。很可能,您已經很熟悉 ls,並且知道只輸入 ls 本身將列出當前工作目錄的內容: $">[b]通過指定 -a 選項,您可以看到目錄中的所有文件,包括隱藏文件 — 那些以 . 開頭的文件。您可以在下面的示例中看到,ls -a 將顯示 . 和 .. 專門的目錄鏈接:$">[b]遞歸和索引節點清單。
  
  您可以使用 -d 來查看目錄本身,而您還可以用 -R 來完成相反的工作 — 不僅只查看一個目錄內部,而且要遞歸地查看該目錄內所有的目錄內部!我們將不會有對應該選項的任何示例輸出(因為它一般占很大的篇幅),但是為了感覺一下它是怎樣工作的,您可以試幾個 ls -R 和 ls -Rl 命令。最後,ls 的 -i 選項可以用來在清單中顯示文件系統對象的索引節點號:
  
  $ ls -i /usr
  1409 X11R6 314258 i686-linux
  43090 libexec 13394 sbin
  1417 bin 1513 i686-pc-linux-gnu
  5120 local 13408 share
  8316 distfiles 1517 include
  776 man 23779 src
  43 doc 1386 info 93892 portage
  36737 ssl
  70744 gentoo-x86 1585 lib 5132
  portage.old 784 tmp
  
  理解索引節點,第 1 部分
  
  文件系統的每個對象都分配到一個獨一無二的索引,叫做索引節點號。這可能看起來微不足道,但是理解索引節點對於理解許多文件系統操作來說很重要。例如,請考慮出現在每個目錄中的 . 和 .. 鏈接。為了完全理解 .. 目錄實際上是什麼,我們將先來看一看 /usr/local 的索引節點號:
  
  $ ls -id /usr/local
  5120 /usr/local
  /usr/local
  
  目錄有一個 5120 索引節點號。現在,我們來看一 看 /usr/local/bin/.. 的索引節點號:
  
  $ ls -id /usr/local/bin/..
  5120 /usr/local/bin/..
  
  您可以看到,/usr/local/bin/..具有和/usr/local相同的索引節點號!這就是我們抓住的問題的實質。過去,我們認為 /usr/local 是這個目錄本身。
  
  現在,我們發現索引節點 5120實際上是這個目錄,並且我們發現了指向該索引節點的兩個目錄條目(叫做“鏈接”)。/usr/local 和 /usr/local/bin/..都鏈接到索引節點 5120。雖然索引節點 5120 只在磁盤中的一地方存在,但是多個目錄條目都鏈接到它上面。事實上,通過使用 ls -dl 命令,我們可以看到索引節點 5120 被引用的總次數
  
  $ ls -dl /usr/local
  drwxr-xr-x 8 root root 240 Dec 22 20:
  57 /usr/local
  
  如果我們看一看從左起的第二欄,我們可以看到目錄 /usr/local(索引節點 5120)被引用了 8 次。在我的系統中,引用該索引節點的不同路徑有這些:
  
  /usr/local
  /usr/local/.
  /usr/local/bin/..
  /usr/local/games/..
  /usr/local/lib/..
  /usr/local/sbin/..
  /usr/local/share/..
  /usr/local/src/..
  
  使用 Linux 命令
  
  mkdir
  
  我們來快速地看一看 mkdir 命令,它可以用來創建新目錄。下面的示例創建了三個新目錄:tic、tac 和 toe,都在 /tmp 下:
  
  $ cd /tmp
  $ mkdir tic tac toe
  
  缺省情況下,mkdir 不會為您創建父目錄;鄰接的上一元素的完整路徑必須存在。因此,如果您想要創建目錄 won/der/ful,您將需要發出三個單獨的 mkdir 命令:
  
  $ mkdir won/der/ful
  mkdir: cannot create directory
  `won/der/ful': No such file or directory
  $ mkdir won
  $ mkdir won/der
  $ mk
Copyright © Linux教程網 All Rights Reserved