linux基本命令

來源:互聯網
上載者:User

標籤:io   ar   使用   sp   檔案   on   代碼   bs   ad   

linux基本命令

 

作業系統中用來管理檔案的系統稱為"檔案系統",檔案系統以分組的方式管理檔案,具體的就是通過目錄(或者稱為檔案夾)來管理成千上萬的檔案。 Linux的檔案系統只有一個根目錄(/)而Windows的檔案系統可以有若干個根目錄(例如C、D、E)。目錄是通過目錄路徑來描述的,可以簡單分為 兩類描述方式,一是絕對路徑,二是相對路徑。
   

終端視窗的當前工作目錄可以隨時修改,使用者在任何時候都有一個當前工作目錄,使用者首次登陸使用時的初始目前的目錄是~
whoami命令可以知道目前使用者是誰;

pwd命令可以知道當前工作目錄,pwd以目錄的絕對路徑顯示出當前工作目錄;

linux系統中目錄、檔案大都以路徑描述字串的形式給出。

絕對路徑  從檔案系統的根目錄開始描述目錄路徑,例如/home/libin。所有的絕對路徑都是以根目錄(/)做開頭的路徑
相對路徑  從某一個目錄(一般是目前的目錄)開始描述目錄路徑。
相對路徑的使用更為普遍,通常情況下:
    .    表示目前的目錄自己
    ..    表示目前的目錄的父目錄。
    temp    表示目前的目錄的一個名叫temp的子目錄

注意:“目錄”就是一個目錄,就是一個windows裡面被稱為檔案夾的東東,“目錄路徑”就是“路徑描述字串”,它描述了從一個目錄到達另外一個目錄的路徑,這個描述有絕對路徑和相對路徑兩種方式。


例如:檔案結構

              xyz

            /        \

        abc        def

那麼,

      若目前的目錄是xyz,則相對路徑方式描述def目錄可以直接寫作def

      若目前的目錄是abc,則相對路徑方式描述xyz目錄可以直接寫作..
      若目前的目錄是abc,則相對路徑方式描述def目錄可以寫作../def


clear命令可以把螢幕上的所有內容清除掉

ls命令單獨使用就可以直接顯示目前的目錄下的檔案
ls StandardC命令可以顯示路徑為StandardC的目錄下的檔案,一般用法是ls directory
ls -a directory命令可以顯示路徑為directory的目錄下的所有檔案
ls -l directory命令可以詳細顯示路徑為directory的目錄下的檔案
可以看出,ls命令可以查看指定目錄裡的檔案,使用方法是ls <目錄路徑> ,如果要查看的是目前的目錄下的內容,可以省略路徑。
ls命令支援-a和-l選項,添加-a選項可以顯示指定目錄裡的所有內容,-l選項可以列出詳細情況,-a和-l選項可以合并為-al

cd命令可以把任何一個目錄調整成目前的目錄,使用方法如下
cd <目錄路徑>

mkdir命令可以建立目錄,使用方法如下
mkdir <目錄路徑>   注意:這裡的目錄路徑終點必須是一個還未存在的目錄名,否則mkdir命令會提示使用錯誤。

目前的目錄是/home/libin/StandardC,ls命令查看後發現有子目錄day01,ls day01查看發現day01沒有子目錄了,那麼命令mkdir day01/note day01/code的作用是?

答:給目錄day01建立子目錄note和code


目前的目錄是/home/libin/StandardC/day01,ls ..命令查看後發現只有子目錄day01,那麼mkdir -p ../day02/note ../day02/code的作用是?

答:給目錄day01的父目錄StandardC建立子目錄day02,同時建立day02的子目錄note和code

rmdir命令可以刪除目錄,它只能刪除空目錄,Usage:rmdir <目錄路徑>
rmdir -p a/b/c 等效於連續執行命令rmdir a/b/c rmdir a/b rmdir a 也等效於執行命令rmdir a/b/c a/b a


rm命令可以用於刪除一個非空目錄,Usage: rm -rf <目錄路徑>

touch <檔案路徑>可以建立一個空檔案,例如touch abc.txt。touch命令有兩個作用:一是可以建立一個空檔案,二是可以更新一個已經存在的檔案的修改時間,當然這時touch後面給出的檔案路徑應該描述了一個已經存在的檔案。


rm命令單獨使用就可以刪除一個已存在檔案,Usage: rm <檔案路徑>
cp命令可以把一個檔案複製一份,Usage: cp <檔案路徑1> <檔案路徑2>
mv命令可以實現對檔案的剪下效果,Usage: mv <檔案路徑1> <檔案路徑2>
tar命令可以用來打包歸檔若干檔案或目錄。Usage: tar zcvf archive.tar.gz <directory> <directory> <directory> ....
tar命令本來製作出來就是為了打包歸檔若干檔案或目錄,簡言之其功能就是合并若干個檔案或目錄,之後tar命令又增加了壓縮功能,所以往往tar命令打包歸檔若干檔案或目錄後又會進行壓縮(例如gz壓縮演算法),所以我們往往看到的tar命令打包歸檔所建立檔案命名都是*.tar.gz
tar命令同時也可以對壓縮檔進行解壓縮處理, Usage: zxvf archive.tar.gz  

shell指令檔可以包含多條操作命令,執行指令檔就相當於順序執行內部的所有操作命令。


ln命令可以製作連結檔案,使用方法如下:
ln 檔案路徑1 檔案路徑2
檔案路徑1代表一個已經存在的檔案,檔案路徑2代表一個還不存在的檔案。
這樣使用ln命令所製作的連結叫做永久連結。叫法上與永久連結對應的還有一種“軟連結”,命令ln -s 檔案路徑1 檔案路徑2 製作的連結稱為軟連結。
(PS:每一個檔案都由兩部分組成:一是檔案內容,二是檔案名稱,檔案名稱和檔案內容中間存在一種串連,檔案內容是檔案名稱存在且有效必要條件,也就是說可以草率地說"檔案"="檔案名稱->檔案內容"。一般的作業系統為了提高磁碟操作效率,刪除檔案操作都只是刪除了檔案名稱,取消了檔案名稱和檔案內容的串連,檔案內容不會被立即清理。
 那麼可以實驗得出,
ln永久連結只製作檔案名稱,製作了一個新檔案名稱,使得其和原來的檔案的檔案內容串連。
ln軟連結製作了一個檔案名稱,同時還製作了一個新檔案內容,這新的檔案內容裡面記錄了原來的檔案的檔案名稱串連,所以軟連結是否有效依賴於原檔案名稱是否有效。
可以看出,windows作業系統中提供的“捷徑”製作操作,其實質就是製作ln軟連結。
cp命令建立了新檔案(既包括檔案名稱,也包括檔案內容),cp命令執行同時拷貝了檔案內容和檔案名稱;
)

ps命令,ps命令在終端中單獨使用,可以查看當前終端啟動並執行所有程式,每一個程式都會有進程ID,顯示結果會顯示各命令的PID TTY 和 COMMAND

查看進程命令ps的常用選項:

-a 列出所有的進程。

-w 列出進程時加寬顯示以顯示較多資訊。

-au顯示較詳細的資訊。

-aux顯示所有進程較詳細資料,包括其他使用者的進程。

附:ps -aux 或者 ps -au命令執行結果各列意思:



 

kill命令可以終止一個程式的運行,使用時候需要指明程式的進程ID。

kill可以添加選項-s 用來向作業系統發送訊號。例如kill -9就可以發送代號為9的訊號給作業系統,以圖強制終止指定進程。


kill -l 可以列出linux系統的訊號。編號為1~31的為傳統UNIX支援的訊號,稱 為不可靠訊號(非即時的),編號為32~63的是後來擴充的,稱為可靠訊號(即時訊號)。

 

 

cat, cat命令可以用來顯示整個檔案的內容, Usage: cat <directory>
head, head命令可以顯示檔案自檔案頭起的若干行,預設10行。Usage: head -N <directory>
tail,tail命令可以顯示檔案自尾部起向上若干行,預設10行。Usage: tail -N <directory>
more, more命令可以用來顯示整個檔案內容,但是一次只會顯示一屏內容,敲擊空格鍵可以顯示下一屏。

find, find命令,例如:"find StandardC -name note.txt"是在目錄路徑"StandardC"所描述的目錄下尋找名字為"note.txt"的檔案.

    find命令是基於檔案外在屬性的尋找,例如可以依據檔案大小、檔案名稱等尋找。也就是這樣,她並不能依據檔案內容尋找.Usage: find <開始尋找的目錄> 尋找選項(-name選項表示檔案名稱 -perm選項表示檔案其他屬性)

(p.s. linux中提供了grep命令,這個命令可以給予檔案內部內容進行尋找。要提一下的是Windows,windows中Find命令可以基於檔案內部內容的尋找哦,例如FIND /I diary.txt "I love you "就可以實現在diary.txt檔案裡面尋找I love you 所在行)

命令find的命令選項-name最為常用,除此之外還可以選用其他一些更為靈活的命令選項,find命令選項簡介如下:

-name 按照檔案名稱尋找檔案。

-perm 按照檔案許可權屬性尋找檔案。

-depth 首先在當前指定的目錄尋找,然後再尋找其子目錄。

-prune 使用這一選項可以實現不在當前指定目錄中尋找。當find命令同時有-prune和-depth兩個選項時,-prune選項將被find命令自動忽略。

-mtime -n +n 實現按照檔案更改時間尋找。-n表示檔案更改時間在n天以內,+n表示檔案更改時間在n天以前

-user 按照檔案屬主尋找檔案。

-group 按照檔案屬組尋找檔案。

-nouser 尋找無有效屬主的檔案,也就是說檔案屬主在/etc/passwd中不存在。

-nogroup 尋找無有效屬組的檔案,也就是說檔案屬組在/etc/groups中不存在。

-newer file1 !file2 尋找比檔案file1新但是比檔案file2舊的檔案。

-type 按照檔案類型尋找。

             b 是塊裝置。

             c 是字元裝置。

             p 是管道檔案。

             d 是目錄檔案。

             l  是符號連結(symbol)檔案,也成"軟連結"

             f  是普通檔案。

-size n : [c] 尋找檔案長度為n塊的檔案。加c表示檔案長度以位元組計。


grep, grep命令。grep(global search regular expression(RE) and print out the line, 全面搜尋Regex並把行列印出來)是一個強大的基於檔案內容的搜尋工具,她能通過Regex搜尋文本並把所在行列印出來。

grep命令選項:

-? 表示列印所在行的同時還需要列印所在行上下?行,例如grep -5 version mysql-5.0.45/Makefile

-c,--count表示只列印出匹配的行數,不列印匹配的內容。

-n, --line-number表示需要列印出匹配行的行號。

-v, --revert-match反檢索,只列印不匹配的行。

grep命令舉例:  "grep versions mysql-5.0.45/Makefile"是在檔案路徑"mysql-5.0.45/Makefile"所描述的檔案內容裡面尋找包含字串"versions"的行.grep命令進行的是檔案內容的尋找。Usage: grep 要尋找的字串 檔案路徑




  在命令列中可以使用萬用字元描述路徑的規律以圖簡化命令的編寫,我們不追求嚴格地說:
    ?    表示任意的一個字母或數字
    *    表示任意長度的字串,也就是任意多個任意字母或數字
    []    表示某一個範圍內的字母或數字,例如[2-4]表示2、3、4其中一個字元。
可以看出,?*以及[]事實上就是一個集合,?就是任意一個字元的集合,*就是任意多個字元組成的集合, [2-4]就是元素為2、3、4的一個集合.

  輸入輸出重新導向。linux系統有預設的標準輸入裝置(stdin),有預設的標準輸出裝置(stdout)。我們可以通過輸入/輸出重新導向來更改輸入/輸出裝置。其中:
    <    可以更改輸入裝置
    >或者>>    可以更改輸出裝置
  管道。使用管道‘|‘可以把多個命令串連起來,管道‘|‘前面的命令的輸出會作為管道後面的命令的輸入,例如: ls -l | grep day01

  在命令列中可以一次執行多條命令, 書寫時命令之間須用‘;‘隔開,敲擊斷行符號鍵後命令會以此執行。例如:pwd;ls

  在命令列中可以通過使用‘\‘來把一條命令書寫在多個連續的行中,當命令書寫完成後,敲擊斷行符號鍵後命令會被執行。


上面瞭解了基本shell語句,需要注意的是:

          作業系統可以劃分出兩部分"kernel"和"shell"。kernel是俗稱核心,完成電腦資源的管理,主要包括CPU管理、記憶體管理、檔案管理以及其他i/o裝置資源管理。shell俗稱外殼,她是一種程式設計語言,她可以互動式滴解釋執行命令。作為程式設計語言,她也有自己的語言字元集,有自己的控制流程語句用以控製程序各個運算的執行順序(控制流程結構包括1、順序結構 2、分支結構3、迴圈結構)。當然她也允許定義變數。

          終端中執行echo $SHELL可以查看目前使用者在用的shell類型。shell分好多種,簡介下:

<1>Bourne Shell

       bsh(Bourne Shell)是伯恩(Bourne)為AT&T UNIX所寫,簡稱b-sh(讀作b-shell或者Bourne Shell)是最早最知名的unix shell。如果使用的是Bourne Shell,那麼在終端(Terminal)上往往命令提示字元為$。Bourne Shell的下一版本是Bourne Shell again,簡稱bash

<2>C Shell

      csh(C Shell)是vi作者喬恩在美國加州大學伯克利分校為BSD UNIX建立。相比Bourne Shell,她更類似於C語言。要注意的是文法上C Shell並不相容Bourne Shell。如果使用的是C Shell,那麼在終端(Terminal)上往往命令提示字元為%。C Shell也有一個增強版,名叫tcsh(TC Shell)


注意:一般unix系統終端(Terminal)上root使用者命令提示字元總是#。


  接下來,一個神一樣的工具vi將要出場,初來乍到請你一遍又一遍地通過vimtutor練習vi的使用。基本上通過vi編輯代碼(以抄代碼的速度衡量)速度可以在15分鐘/百行就可以說熟練使用vi了。


vi還有這樣操作,你知道麼?

(1)游標所在英文字元,敲上一個波浪~可以改變英文字元的大小寫。
(2)敲上一個大寫的J就可以將下一行合并到當前行行末,成為同一行。
(3)
1,2co3 拷貝1、2行到第三行之後。
1,2m3  移動1、2行到第三行之後。
1,2d   刪除第1-2行。
1,2y   拷貝1、2行。

linux基本命令

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.