1. 程式人生 > >Linux Shell 與Linux常用命令

Linux Shell 與Linux常用命令

例如 echo命令 編程語言 core rm -rf lin 表達式 gnome 可執行文件

  Linux的人際交互分為圖形界面方式和命令行方式。

  Linux本身只是一個操作系統內核,而由X Window圖形用戶接口為Linux提供圖形用戶界面功能。可以把X Window理解為一個運行在Linux操作系統上的應用程序,不同用戶根據自己需要為自己配置不同的X Window。X Window可分為KDE和Gnome兩大類,此外 ubuntu還提供了Unity圖形界面。

  shell,俗稱“殼”,用以和“核”區別,是指“提供使用者使用界面”的軟件(命令解釋器),類似於windows下的cmd,用來接受用戶命令。實際上,X Window也是shell的一種,只不過狹義的shell只用來表示以命令行形式提供的shell。

  常見的shell包括ash/bash/ksh/csh/zsh 5種。ubuntu發行版本使用的bash。

  啟動shell時,先讀取/etc/bash.bashrc文件對整個linux系統進行配置,再讀取~/.bashrc文件對當前用戶進行配置,如果這兩個文件有沖突,後者為準。(這類似於vim的配置文件/etc/vim/vimrc和~/.vimrc)

  用戶可以安裝多個shell。與Linux內核類似,shell只提供一個計算機和用戶交互的”內核“,其具體的命令輸入輸出交流還是要通過終端(Terminal)完成。系統在啟動時,會自動啟動多個終端,如ubuntu會啟用7個終端,1~6號終端是直接運行的一個”真實終端“,7號終端交給X Window使用,是圖形界面下的終端,使用Ctrl+Alt+Fn在不同終端間切換(Fn=F1~F6)。註意,真實終端下通常無法顯示中文字符。

  ——還可用通過SSH/Telnet實現遠程控制shell。Telnet是一種TCP/IP協議,是Internet遠程登錄服務的標準協議和主要方式,SSH協議則為Telnet提供的遠程主機工作能力提供安全保障。遠程登錄工具:PuttyMan。

  shell的工作方式:1--作為命令行提供用戶控制內核完成工作——“交互式”

          2--作為一種編程語言供開發者使用

  第一種方式很簡單,與windows cmd類似,介紹一下第二種方式:Linux下存在一種特殊的可執行文件,內容是各種命令組成的純文本文件(腳本文件),用以完成重復性較強的工作,shell對這種文件進行時別,並自動執行,是一種”非交互式“的工作方式。

  shell和用戶交互是在終端以字符串形式的輸入命令和輸出反饋實現的。輸入命令格式為:

      命令 選項 參數

  選項必須以減號開頭,Linux以此區分選項和參數。

  shell的通配符主要用於模式匹配,比如文件名匹配、路徑名搜索、字符串查找等,常用的有*、?和括在[ ]裏的字符序列。*表示任意字符串,?表示任意一個字符,[ ]裏的字序列表示文件名中[ ]處的字符必須在字符序列的指示範圍內。

  例如:*.c 表示所有當前目錄下所有.c文件,??表示當前目錄下所有文件名長為2個字符的文件,a[bc]d指示文件名為abd或acd的文件,a[b-d]e指示文件名為abe,ace,ade的文件。

  shell中的引號有單引號、雙引號、和反引號三種,單引號內部的字符序列全部作為普通字符被處理,雙引號沒有單引號那麽“絕”,它還是會識別一些引號內的特殊字符,例如“$"、”\"、“`”,即當雙引號中的字符序列中含有這幾種特殊字符時,這些特殊字符的含義仍會被解釋。反引號括起來的字符序列會被shell解釋為命令行,在執行時,首先執行該命令行,並將其輸出結果取代整個反引號部分(包括兩個反引號)。

  例如:特殊字符$用以引用變量的值,則對於環境變量PATH,$PATH獲取了PATH的值,即一系列目錄。而若定義一個字符串string,將$PATH用單引號括起來賦給string,那麽$string就僅獲取了“$PATH”這個單純的字符串,而不會將PAT解釋為一系列目錄。可以用echo命令來查看這些它們的獲取結果。

  反引號的嵌套使用,內層的反引號需要用反斜杠轉義:

    string="-a"

    abc=`ls \`echo $string\``

    echo $abc

  

  Linux的一些常用命令(只做一下整理):

    mkdir 文件名 ——創建目錄

    rmdir 文件名 ——刪除目錄,只能刪除空目錄,若要刪除非空目錄,需要用“ rm -rf 文件名”;使用選項-p可以同時刪除空目錄上的空父目錄。

    pwd ——當前工作目錄

    cd 目錄 ——切換當前工作目錄 ,其中,.表示當前工作目錄,..表示當前工作目錄的上一級目錄,/表示根目錄,~表示當前用戶home目錄。

    ls 選項 文件目錄列表 ——顯示目錄下的文件信息,-a顯示全部文件(包括隱藏文件),-l顯示文件詳細信息,-p在輸出文件名的後面加上一個字符說明該文件類型,-1一行只輸出一個文件

    find 目錄列表 匹配標準 ——用於查找文件。常用的有"find 目錄 -name 文件名",查找目錄下的指定文件名文件,該文件名中加入通配符可實現模糊查找;(我在測試 find -name選項時出現了錯誤提示“路徑必須在表達式之前”,解釋如下圖)

    技術分享圖片

    cat 選項 文件列表 ——用以在命令行顯示文件內容,-n可以在文件每行前顯示行號;-v 以特殊形式顯示控制字符,配以-T表示將TAB顯示為uI,配以-E表示在每一行末尾顯示一個$字符。其次,“cat 文件a 文件b > 文件c”還可以把文件b的內容連接到文件a後並將連接後的內容寫入到新文件c中。

    cp 選項 源文件或目錄 目標文件或目錄 ——用於文件和目錄復制。-i可以在復制操作會導致已有文件被覆蓋時發出提示請求確認操作,是一種交互式拷貝,更安全。

    mv …… ——移動(相當於剪切操作)或者重命名。

    wc …… ——統計文件內容

    rm …… ——刪除文件

    ps …… ——顯示進程列表,-aux詳細輸出,-w加寬顯示,以完整顯示進程信息,可疊加寫 如www表示加寬三次,通常最多寫三次

    kill …… ——輸出特定指令給指定進程號PID的進程,默認為終止該進程

    ifconfig …… ——IP地址管理

    man ——幫助

    shutdown、halt、reboot ——用於關機和重啟

    uname ——查看內核

    lsb_release ——查看發行版版本號,該命令需要安裝lsb_core

    

    

    

Linux Shell 與Linux常用命令