Linux基本指令(超詳版)
- 1. ls指令
- 2.pwd指令
- 3. cd 指令
- 4.touch指令
- 5mkdir指令
- 6.rmdir指令&&rm指令
- 7.man指令
- 7.cp指令
- 8.mv指令
- 9.echo指令
- 10.cat指令
- 11.more指令
- 12.less指令
- 13.head指令
- 14.tail指令
- 15.date指令
- 16.find指令
- 17.grep指令
- zip(打包壓縮) unzip(解包解壓)tar(打壓+解tgz壓縮包)
- 常用熱鍵
1. ls指令
語法: ls[選項][目錄或文件]
功能:對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息。
常用功能:
-l: 列出文件的詳細信息。
-a: 列出目錄下的所有文件,包括以 . 開頭的隱含文件
-d: 將目錄象文件一樣顯示,而不是顯示其下的文件。 如:ls –d 指定目錄
操作演示:
- ls :顯示當前所處目錄或文件中的文件與目錄名。
2. ls [目錄或文件]:顯示指定目錄或文件中的文件與目錄
注:這里‘ / ’是根目錄
3.ls -l [文件或目錄]:列出文件的詳細信息。當[文件或目錄]為空時,列出當前所處文件或目錄中所有文件或目錄的詳細信息,同時 ls -l可以簡寫成:ll
。
4 ls -a: 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
5.同時指令的選項也是可以疊加的(疊加的指令部分前后):
文件類型:
以d開頭的是目錄
以’ - '開頭的是普通文件文件.
在Linux中以 . 開頭的是隱藏文件!
且在Linux系統中每個文件都都包含兩個隱藏文件 . / . .
這里 . 表示的是當前文件路徑
. .表示上一級文件路徑
2.pwd指令
語法: pwd
功能:顯示用戶當前所在的目錄
3. cd 指令
語法:cd 目錄名
功能:改變工作目錄。將當前工作目錄改變到指定的目錄下。
這里為了更好理解cd指令的操作,我們還需要了解,Linux系統中的文件是如何存放的。
Linux系統中,磁盤上的文件和目錄被組成一棵目錄樹,每個節點都是目錄或文件,且每一個目錄中的文件或目錄不能重名
如圖:
在這里我們可以與Windows系統類比,在Linux中也存在著絕對路徑與相對路徑。 在上圖中我們可以看到每一個子目錄或文件只有一個父目錄,因此對于每一個文件或目錄的絕對路徑是唯一的。同時也因為在同意目錄下,每一個文件和目錄都不能重名,也是我們在使用相對路徑是,也可以準確的找到想要找到的文件。
因此在使用cd指令是的路徑,可以是絕對路徑,也可以是相對路徑。
指令舉例:
cd . . : 返回上級目錄(我們在ls指令中介紹過 每一個文件與目錄都包含 . / . .這兩個隱藏文件,前一個是當前路徑,后一個是上一級路徑 )
.
cd /home/litao/linux/ : 絕對路徑
cd …/day02/ : 相對路徑
cd ~:進入用戶家目(這如果是root用戶,家目錄為/root 。普通用戶為/home/XXX)
cd -:返回最近訪問目錄
4.touch指令
這里為了方便我們查看是否增加了文件,我們可以下載一條指令yum install -y tree.這條指令的作用是可以用 **tree [絕對路徑(相對路徑)]**以樹的結構查看路徑目錄或文件里的子文件。
如:
這里我們可以看出root目錄里有所包含的文件與目錄(不包含隱藏文件或目錄)
語法:touch [選項]… 文件…
功能:touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的文件。(注:touch指令創造的是一個文件!!!)
一次創建多個文件:
touch 文件1 文件2 . . .
5mkdir指令
語法:mkdir [選項] dirname…
功能:在當前目錄下創建一個名為 “dirname”的目錄(注:mkdir創建的是目錄!!!)
常用選項:-p, 。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立
好那些尚不存在的目錄(遞歸創建多級目錄)
舉例:
6.rmdir指令&&rm指令
rmdir是一個與mkdir相對應的命令。mkdir是建立目錄,而rmdir是刪除命令。
語法:rmdir [-p][dirName]
適用對象:具有當前目錄操作權限的所有使用者
功能:刪除空目錄
常用選項
*p 當子目錄被刪除后如果父目錄也變成空目錄的話,就連帶父目錄一起刪除。
舉例:
rm命令可以同時刪除文件或目錄
語法:rm [-f-i-r-v][dirName/dir]
適用對象:所有使用者
功能:刪除文件或目錄**(刪除目錄時,要加上-r選項)**
常用選項:
-f 即使文件屬性為只讀(即寫保護),亦直接刪除
-i 刪除前逐一詢問確認 (這個一般用于普通用戶,因為root用戶,在你刪除文件時,默認會詢問的)
-r 刪除目錄及其下所有文件
舉例:
7.man指令
Linux的命令有很多參數,我們不可能全記住,我們可以通過查看聯機手冊獲取幫助。訪問Linux手冊頁的命令是man
語法: man [選項] 命令
解釋一下,面手冊分為8章
1 是普通的命令
2是系統調用,如open,write之類的(通過這個,至少可以很方便的查到調用這個函數,需要加什么頭文 件) 3是庫函數,如printf,fread
4是特殊文件,也就是/dev下的各種設備文件
5 是指文件的格式,比如passwd, 就會說明這個文件中各個字段的含義
6 是給游戲留的,由各個游戲自己定義
7 是附件還有一些變量,比如向environ這種全局變量在這里就有說明
8 是系統管理用的命令,這些命令只能由root使用,如ifconfig
常用選項:
-k 根據關鍵字搜索聯機幫助
num 只在第num章節找
-a 將所有章節的都顯示出來,比如 man printf 它缺省從第一章開始搜索,知道就停止,用a選項,當按 下q退出,他會繼續往后面搜索,直到所有章節都搜索完畢
注:如果man后面直接跟指令時,它會從手冊的第一章開始,依次往下找,直到找到為止。
man ls
man 3 printf
如果要退出按q即可。
7.cp指令
語法:cp [選項] 源文件或目錄 目標文件或目錄 (注:同意目錄下,每一個文件或目錄名都是唯一的!!!)
功能: 復制文件或目錄
說明:cp指令用于復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中。 若同時指定多個文件或目錄,而最后的目的地并非一個已存 在的目錄,則會出現錯誤信息
常用選項:
-f 或 --force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在
-i 或 --interactive 覆蓋文件之前先詢問用戶
-r遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈 接,則一律視為普通文件處理
-R 或 --recursive遞歸處理,將指定目錄下的文件及子目錄一并處理
8.mv指令
mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
語法: mv [選項] 源文件或目錄 目標文件或目錄
功能:
- 視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的 目錄中。
- 當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它 將所給的源文件或目錄重命名為給定的目標文件名。
- 當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至 目標目錄中。
常用選項:
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i :若目標文件 (destination) 已經存在時,就會詢問
9.echo指令
語法:echo [字符串]
功能:將字符串輸入到屏幕上。
通常在使用它時,配合著 ’ > '(輸出重定向使用)
如:
用法:echo [字符串] > [文件]
功能:當文件存在時,就向文件寫入字符串的內容,若文件不存在就先創建文件,然后在想文件寫入字符串的內容。(注:每次受用輸出重定向時,都會先把原來文件中的內容給覆蓋后,在寫入)
同時我們可以利用輸出重定向(>)的性質:當文件不存在時,就創建一個文件。來創建一個空文件。
10.cat指令
語法:cat [選項][文件]
功能: 查看目標文件的內容(當文件中儲存的數據較少時使用)
常用選項:
-b 對非空輸出行編號
-n 對輸出的所有行編號
-s 不輸出多行空行
11.more指令
語法:more [選項][文件]
功能:more命令,功能類似 cat (當文件儲存數據較大時使用)(按回車(Enter)時,會向下顯示數據,但只能向下顯示,無法查看之前的數據)
常用選項:
-n 對輸出的所有行編號
q 退出more
12.less指令
less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極 其強大。
less 的用法比起more 更加的有彈性。在 more 的時候,我們并沒有辦法向前面翻, 只能往后面看 但若使用了 less 時,就可以使用[pageup][pagedown] 等按鍵的功能來往前往后翻看文件,更容易用 來查看一個文件的內容!
除此之外,在 less里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜。
語法: less [參數] 文件
功能:
less與more類似,但使用less可以隨意瀏覽文件,而more僅能向前移動,卻不能向后移動,而且less在查看之前 不會加載整個文件。
選項:
-i 忽略搜索時的大小寫
-N 顯示每行的行號
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復前一個搜索(與 / 或 ? 有關)
N:反向重復前一個搜索(與 / 或 ? 有關)
q:quit
13.head指令
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的 開頭至標準輸出中,而tail 想當然就是看檔案的結尾。
語法: head [參數]… [文件]…
功能: head
用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行。
選項:
-n<行數> 顯示的行數
14.tail指令
tail 命令從指定點開始將文件寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail - f filename會把filename里最尾部的內容顯示在屏幕上,并且不但刷新,使你看到最新的文件內容.
語法:tail[必要參數][選擇參數][文件]
功能: **用于顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。
選項:
-f 循環讀取
-n<行數> 顯示行數
15.date指令
date 指定格式顯示時間: **date +%Y:%m:%d **
date 用法:date [OPTION]… [+FORMAT] (注: ’ + '后面的FORMAT必須緊跟選項否則就會出錯)
1.在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中常用的標記列表如下
%H : 小時(00…23)
%M : 分鐘(00…59)
%S : 秒(00…61)
%X : 相當于 %H:%M:%S %d : 日 (01…31)
%m :月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相當于 %Y-%m-%d
2.在設定時間方面
date -s //設置當前時間,只有root權限才能設置,其他只能查看。
date -s 20080523 //設置成20080523,這樣會把具體時間設置成空00:00:00
date -s 01:01:01 //設置具體時間,不會對日期做更改
date -s “01:01:01 2008-05-23″ //這樣可以設置全部時間
date -s “01:01:01 20080523″//這樣可以設置全部時間
date -s “2008-05-23 01:01:01″ //這樣可以設置全部時間
date -s “20080523 01:01:01″ //這樣可以設置全部時間3.時間戳
時間->時間戳:date +%s
時間戳->時間:date -d@1508749502 Unix時間戳(英文為Unix epoch, Unix time, POSIX time 或 Unix timestamp)是從1970年1月1(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒
16.find指令
語法: find pathname -options
功能: 用于在文件樹種查找文件,并作出相應的處理(可能訪問磁盤)
常用選項:
-name 按照文件名查找文件
。
name左邊的目錄是查找目錄,右邊是查找文件或目錄
這里補充兩個也是有關查找的指令:which,whereis
which指令
語法: which + 命令
功能:查找命令所在目錄
whereis指令
語法: whereis + 文檔/手冊/壓縮包/命令
功能:查找其所在路徑
17.grep指令
語法: grep [選項] 搜尋字符串 文件
功能: 在文件中搜索字符串,將找到的行打印出來(在默認情況下,是區分大小寫的。當搜索為空時,會把所有內容顯示出來)
常用選項:
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 ‘搜尋字符串’ 內容的那
通常grep指令是通過命令行管道與其他指令一起執行的,因此這里我們再補充幾個指令。
sort指令
語法:sort + 文件
功能:將文件的行內容按照阿斯克碼排序
常用選項:
-r:將排完序的文件內容按行倒敘輸出
uniq指令
語法:uniq + 文件
功能:將消除相鄰的重復行。
常用選項:
-u: 與uniq的默認用法相同,都是消除相鄰的重復行
-d:將文件里相鄰的重復行顯示出來
-c:將計算相鄰重復行的個數并顯示出來
我們可以從圖中可以看到uniq消除重復行是不徹底的(uniq只消除相鄰的重復行),這是我們就要和sort指令結合起來
原因:通過sort指令我們可以把所有的重復行放在一起。
zip(打包壓縮) unzip(解包解壓)tar(打壓+解tgz壓縮包)
zip(打包壓縮)
zip -r my.zip test //對當前目錄中的test進行.zip格式打包壓縮
unzip(解包解壓)
unzip my.zip //解包解壓
unzip myzip -d 路徑 //將zip壓縮包解壓至指定路徑
打包壓縮的優點是變與傳輸,將多個文件和為一個文件,不存在丟失,高效傳輸
tar(tgz包)
1.打包壓縮
tar czvf my.tgz 文件
//c代表創建,z代表壓縮,v代表壓縮過程,f代表創建的壓縮包文件名(后面緊跟這個名字)
2.解包解壓
tar xvzf my.tgz //將my.tgz解壓至當前文件
//x代表解包,v代表壓縮過程,z表示解壓,f代表創建的壓縮包文件名(后面緊跟這個名字)
3.不解壓tgz壓縮包內容
tar tf my.tgz //不解壓看tgz壓縮包內容
4.將tgz解包解壓至指定目錄
tar xvzf my.tgz -C ~ //將my.tgz壓縮包解壓至家目錄
打包壓縮的目的:
節省空間,將多個文件壓縮成一個壓縮包,便于管理,壓縮包可加密,體積小便于傳輸
常用熱鍵
TAB鍵
可以以自動補齊指令。
ctrl+c (終止前臺異常進程)
ctrl+r (搜索歷史命令,左右即可選中)
ctrl+d (退出當前用戶,退出一層)
Iscpu (查看cpu信息)
Ismcm(查看內存信息)
df -h (查看磁盤使用情況)
who (當前Linux在線用戶)
whoami (我是誰,當前用戶名)