Linux 基礎指令初識

01. ls 指令

語法ls [選項] [目錄或檔案]

功能:對於目錄,該命令列出該目錄下的所有子目錄與檔案。對於檔案,將列出檔名以及其他資訊

  • -a 列出目錄下的所有檔案,包括以 . 開頭的隱含檔案。
  • -d 將目錄象檔案一樣顯示,而不是顯示其下的檔案。 如:ls –d 指定目錄
  • -l 列出檔案的詳細資訊。
  • -n 用數字的 UID,GID 代替名稱。
  • -F 在每個檔名後附上一個字元以說明該檔案的型別,“*”表示可執行的普通檔案;“/”表示目錄;“@”表

    示符號連結;“|”表示FIFOs;“=”表示套接字(sockets)。(目錄型別識別)
  • -r 對目錄反向排序。
  • -t 以時間排序。
  • -s 在l檔名後輸出該檔案的大小。
  • -R 列出所有子目錄下的檔案。(遞迴)
  • -1 一行只輸出一個檔案。
  • 如果ls後面不新增路徑,就表示當前目錄,如果添加了路徑,則表示所新增路徑相關的資訊!

示例

  • ls & ls -a : 檢視當前目錄,就相當於Windows中的開啟一個資料夾所顯示的內容。

    在上述圖片中,我們會發現有 . 以及 .. 的存在,那麼他們到底表示什麼呢?
    - . 表示當前目錄
    - .. 表示上一層目錄
  • ls -l & ll : 顯示詳細資訊,其中 ls -a 與 ll 是等價的!

    注意:在指令中,各個引數是可以互相搭配的如 ls -al一樣

  • ls -R列出所有子目錄下的檔案。(遞迴)

    同時類似於此效果的指令,我們也可以使用tree

    對於類似的命令怎麼安裝,具體在後面幾節會詳細說到 !

02. pwd命令

語法: pwd

功能:顯示使用者當前所在的目錄

示例

03. cd 指令

語法: cd 目錄名

功能:改變工作目錄。將當前工作目錄改變到指定的目錄下。

舉例

04. touch指令

語法: touch [選項]... 檔案...

功能: 新建一個不存在的檔案。

示例:



05. echo 指令

功能:在顯示器上顯示一段文字,一般起到一個提示的作用

格式echo [ -n ] 字串

引數:n 表示輸出文字後不換行

注意

  • 字串能加引號,也能不加引號。
  • 用echo命令輸出加引號的字串時,將字串原樣輸出;
  • 用echo命令輸出不加引號的字串時,將字串中的各個單詞作為字串輸出,各字串之間用一個空格分割。

示例

06. mkdir指令

語法mkdir [選項] dirname...

功能:在當前目錄下建立一個名為 “dirname”的目錄

常用選項

  • -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立

    好那些尚不存在的目錄,即一次可以建立多個目錄;

示例

07. rmdir指令 && rm 指令

07.1 rmdir 指令

rmdir是一個與mkdir相對應的命令。mkdir是建立目錄,而rmdir是刪除命令。

語法rmdir [-p] [dirName]

適用物件:具有當前目錄操作許可權的所有使用者

功能:刪除空目錄

常用選項

-p 當子目錄被刪除後如果父目錄也變成空目錄的話,就連帶父目錄一起刪除。

示例


07.2 rm指令

**rm **命令可以同時刪除檔案或目錄

語法rm [-f-i-r-v] [dirName/dir]

適用物件:所有使用者

功能:刪除檔案或目錄

常用選項:

  • -f 即使檔案屬性為只讀(即防寫),亦直接刪除 -> 強制刪除
  • -i 刪除前逐一詢問確認
  • -r 刪除目錄及其下所有檔案

示例:

在使用rm命令時我們可以使用萬用字元*來簡便我們的書寫。

警告:

-- 慎用 rm -rf 檔案/資料夾這條命令,使用前要三思而後行!-- 禁用 rm -rf /* (可以在虛擬機器上玩著試試.jpg)

08. man指令

在Linux中man可以幫助我們檢視一些幫助文件,就如我們曾經在編寫C語言程式碼時會去查閱一些官方文件如:

C++ 參考手冊

cplusplus

man 語法: man [選項] 命令

常用選項:

  • -k 根據關鍵字搜尋聯機幫助 num 只在第num章節找
  • -a 將所有章節的都顯示出來,比如 man printf 它預設從第一章開始搜尋,知道就停止,用a選項,當按 下q退出,他會繼續往後面搜尋,直到所有章節都搜尋完畢。
解釋一下,面手冊分為8章
1 是普通的命令
2 是系統呼叫,如open,write之類的(通過這個,至少可以很方便的查到呼叫這個函式,需要加什麼頭文
件)
3 是庫函式,如printf,fread4是特殊檔案,也就是/dev下的各種裝置檔案
5 是指檔案的格式,比如passwd, 就會說明這個檔案中各個欄位的含義
6 是給遊戲留的,由各個遊戲自己定義
7 是附件還有一些變數,比如向environ這種全域性變數在這裡就有說明
8 是系統管理用的命令,這些命令只能由root使用,如ifconfig (cnetos7 並沒有自帶此命令,需要安裝)

示例:

09. cp指令

語法:cp [選項] 原始檔或目錄 目標檔案或目錄

功能: 複製檔案或目錄

說明: cp指令用於複製檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,

則它會把前面指定的所有檔案或目錄複製到此目錄中。若同時指定多個檔案或目錄,而最後的目的地並非一個已存

在的目錄,則會出現錯誤資訊

常用選項

  • -f 或 --force 強行復制檔案或目錄, 不論目的檔案或目錄是否已經存在
  • -i 或 --interactive 覆蓋檔案之前先詢問使用者
  • -r遞迴處理,將指定目錄下的檔案與子目錄一併處理。若原始檔或目錄的形態,不屬於目錄或符號鏈

    接,則一律視為普通檔案處理

示例

10. mv指令

mv 命令是move的縮寫,可以用來移動檔案或者將檔案改名(move (rename) files),是Linux系統下常用的命

令,經常用來備份檔案或者目錄。

語法: mv [選項] 原始檔或目錄 目標檔案或目錄

功能:

  1. 視mv命令中第二個引數型別的不同(是目標檔案還是目標目錄),mv命令將檔案重新命名或將其移至一個新的

    目錄中。
  2. 當第二個引數型別是檔案時,mv命令完成檔案重新命名,此時,原始檔只能有一個(也可以是源目錄名),它

    將所給的原始檔或目錄重新命名為給定的目標檔名。
  3. 當第二個引數是已存在的目錄名稱時,原始檔或目錄引數可以有多個,mv命令將各引數指定的原始檔均移至

    目標目錄中。

常用選項

  • -f :force 強制的意思,如果目標檔案已經存在,不會詢問而直接覆蓋
  • -i :若目標檔案 (destination) 已經存在時,就會詢問是否覆蓋!

示例

11. cat指令

語法:cat [選項] [檔案]

功能: 檢視目標檔案的內容

常用選項

  • -b 對非空輸出行編號
  • -n 對輸出的所有行編號
  • -s 不輸出多行空行
與之相對應有一個 tac 命令 -> 它的作用是逆序輸出檔案的內容
但tac命令無 -n 選項
tac
用法:tac [選項]... [檔案]...
Write each FILE to standard output, last line first.
With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too.
-b, --before 在行前而非行尾新增分隔標誌
-r, --regex 將分隔標誌視作正則表示式來解析
-s, --separator=字串 使用指定字串代替換行作為分隔標誌
--help 顯示此幫助資訊並退出
--version 顯示版本資訊並退出

示例

12. more & less 指令

假設 某日誌 有100000行,我們想檢視這個檔案的內容,若我們使用cat命令,這將會非常不友好!
示例:

12.1 more 指令

語法:more [選項] [檔案]

功能:more命令,功能類似 cat

常用選項:

  • q 退出more

示例

12.2 less 指令

less 工具也是對檔案或其它輸出進行分頁顯示的工具,應該說是linux正統檢視檔案內容的工具,功能極
其強大。
less 的用法比起 more 更加的有彈性。在 more 的時候,我們並沒有辦法向前面翻, 只能往後面看
但若使用了 less 時,就可以使用 [pageup][pagedown] 等按鍵的功能來往前往後翻看檔案,更容易用
來檢視一個檔案的內容!
除此之外,在 less 裡頭可以擁有更多的搜尋功能,不止可以向下搜,也可以向上搜。

語法: less [引數] 檔案

功能

less與more類似,但使用less可以隨意瀏覽檔案,而more僅能向前移動,卻不能向後移動,而且less在檢視之前

不會載入整個檔案。

選項

  • -i 忽略搜尋時的大小寫
  • -N 顯示每行的行號
  • /字串:向下搜尋“字串”的功能
  • ?字串:向上搜尋“字串”的功能
  • n:重複前一個搜尋(與 / 或 ? 有關)
  • N:反向重複前一個搜尋(與 / 或 ? 有關)
  • q:quit

13. head & tail 指令

head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊
head 用來顯示檔案的開頭至標準輸出中,
而 tail 想當然爾就是看檔案的結尾。

13.1 head 指令

語法: head [引數]... [檔案]...

功能:head 用來顯示檔案的開頭至標準輸出中,預設head命令列印其相應檔案的開頭10行。

選項

  • -n<行數> 顯示的行數

示例:

13.2 tail 指令

tail 命令從指定點開始將檔案寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日誌檔案,tail -

f filename會把filename裡最尾部的內容顯示在螢幕上,並且不但重新整理,使你看到最新的檔案內容.

語法: tail[必要引數] [選擇引數] [檔案]

功能: 用於顯示指定檔案末尾內容,不指定檔案時,作為輸入資訊進行處理。常用檢視日誌檔案。

選項

  • -f 迴圈讀取
  • -n<行數> 顯示行數

示例:

14. grep 指令

語法: grep [選項] 搜尋字串 檔案

功能: 在檔案中搜索字串,將找到的行打印出來

常用選項:

  • -i :忽略大小寫的不同,所以大小寫視為相同
  • -n :順便輸出行號
  • -v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行

示例:

15. | && > && >>

15.1 | 管道符

在一些時候我們只想在一些特定輸出中檢視是否有我們所需要的東西,但此時我們又不想檢視整個檔案,這時我們就可以使用 | 來幫助我們進行篩選

示例:

15.2 > 重定向

在日常的輸出資訊都是在螢幕中輸出的,我們可以使用 >給它定向輸入到檔案裡去。

示例:

15.3 >> 追加

往檔案中繼續追加內容

示例

16. zip/unzip指令

語法: zip 壓縮檔案.zip 目錄或檔案

功能: 將目錄或檔案壓縮成zip格式

常用選項

-r 遞 歸處理,將指定目錄下的所有檔案和子目錄一併處理

-d 自定義解壓目錄

舉例:

17. tar指令

也是一個打包命令

格式: tar [-cxtzjvf] 檔案與目錄 ....

引數

  • -c :建立一個壓縮檔案的引數指令(create 的意思);
  • -x :解開一個壓縮檔案的引數指令!
  • -t :檢視 tarfile 裡面的檔案!
  • -z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
  • -j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
  • -v :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!
  • -f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加引數!
  • -C : 解壓到指定目錄

示例

範例一:將整個 /etc 目錄下的檔案全部打包成為 `/tmp/etc.tar`
[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==僅打包,不壓縮!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包後,以 gzip 壓縮
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包後,以 bzip2 壓縮
特別注意,在引數 f 之後的檔案檔名是自己取的,我們習慣上都用 .tar 來作為辨識。
如果加 z 引數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file ~
如果加 j 引數,則以 .tar.bz2 來作為附檔名啊~
上述指令在執行的時候,會顯示一個警告訊息:
『`tar: Removing leading `/" from member names`』那是關於絕對路徑的特殊設定。 範例二:查閱上述 /tmp/etc.tar.gz 檔案內有哪些檔案?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
由於我們使用 gzip 壓縮,所以要查閱該 tar file 內的檔案時,就得要加上 z 這個引數了!這很重要的! 範例三:將 /tmp/etc.tar.gz 檔案解壓縮在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
在預設的情況下,我們可以將壓縮檔在任何地方解開的!以這個範例來說,
我先將工作目錄變換到 /usr/local/src 底下,並且解開 /tmp/etc.tar.gz ,
則解開的目錄會在 /usr/local/src/etc 呢!另外,如果您進入 /usr/local/src/etc
則會發現,該目錄下的檔案屬性與 /etc/ 可能會有所不同喔! 範例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內的 etc/passwd 解開而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透過 tar -ztvf 來查閱 tarfile 內的檔名稱,如果單隻要一個檔案,
就可以透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了! 範例五:將 /etc/ 內的所有檔案備份下來,並且儲存其許可權!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
這個 -p 的屬性是很重要的,尤其是當您要保留原本檔案的屬性時! 範例六:在 /home 當中,比 2005/06/01 新的檔案才備份
[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

因博主水平有限,錯誤之處,還請多多指正