Linux常用基本指令
- Linux指令的歷史背景
- 前言說明
- 一、 ls 列出文件中的所有內容
- 常用選項
- 二、pwd 顯示當前所在目錄進程
- 三、cd 將當前工作目錄改變到指定的目錄下
- 常用樣例
- 四、touch 1. 更改文檔或目錄的日期時間 2. 新建一個不存在的文件
- 常用選項
- 四、mkdir 1. 更改文檔或目錄的日期時間 2. 新建一個不存在的文件
- 常用選項:
- 五、rmdir 刪除空目錄
- 常用選項:
- 六、rm 同時刪除文件或目錄
- 常用選項:
- 七、man 同時刪除文件或目錄
- 常用選項
- 八、cp 復制文件或目錄
- 常用選項:
- 九、mv 移動文件 [ move ] 或 將文件改名 [ move (rename) files ]
- 常用選項:
- 十、cat 查看目標文件的內容 [ 短文件 ]
- tac 逆向輸出文件內容
- 常用選項:
- 十一、more 閱覽數據 [ 大文件(大的日志文件) ]
- 常用選項:
- 十二、less 上下任意翻閱數據
- 常用選項:
- 十三、.head 顯示檔案的開頭 至標準輸出中 (默認開頭前10行)
- 常用選項:
- 十四、tail 顯示指定文件末尾內容
- 常用選項:
- **提取中間文件**
- 時間相關的指令
- 十四、date 顯示指定文件末尾內容
- 3. **時間戳**
- 常用選項:
- 十三、Cal 顯示公歷(陽歷)日歷 等時間信息
- 常用選項:
- 十四、find 在目錄結構中搜索文件
- 常用選項:
- 十五、grep 在文件中搜索字符串,將找到的行打印出來
- 常用選項:
- 十六、zip/unzip 將目錄或文件壓縮成zip格式
- 常用選項:
- 十七、tar 打包/解包,不打開它,直接看內容
- 常用選項:
- 十八、bc 浮點運算
- 十九、uname –r 獲取電腦和操作系統的相關信息
- 常用選項:
- 熱鍵
- 二十、`[Tab]` 『命令補全』;『檔案補齊』
- 二十一、`[Ctrl]-c` 讓當前的程序『停掉』
- 二十二、`[Ctrl]-d` 『鍵盤輸入結束(End Of File, EOF 戒 End OfInput)』; 取代『exit』
- 二十三、關機
- 擴展命令
- 安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
- 文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
- 系統管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
- 網絡操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
- 系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
- 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
- shell命令以及運行原理
Linux指令的歷史背景
問大家一個問題:歷史上先出現的鍵盤還是鼠標?
答:是鍵盤
-
早期 使用Linux的都是相關的技術人員,因此并不用考慮普通人民是否能看的懂是否會用
所以只需要鍵盤,敲代碼即可。決定了操作系統早期進行交互時只能是指令操作。 -
而后來隨著Linux應用于商業化,為了鋪開人民大眾的市場,所以Linux需要以某種方式讓人們看懂
-
就衍生出了 現在大家手機,電腦都能看的到的圖形化界面
后來隨著喬布斯和比爾蓋茨將圖形化界面版的操作系統推向全球。圖形化界面后,便需要鼠標去點擊圖標進行操作。
前言說明
綠色顏色標識 的 為語法
a [ all ] 所有
d [ director ] 目錄
f [ force ] 強制
i [ interactive ]
i [ ignore ] 忽略
r [ recursive ] 遞歸
q [ quit ] 退出
一、 ls 列出文件中的所有內容
ls [選項] [目錄或文件]
功能:對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息。
常用選項
-
-a
: [ all ] 列出目錄下的所有文件,包括以.
開頭的 隱含文件 -
-d
: [ director ] 將目錄像文件一樣顯示,而不是顯示其下的文件。 如:ls –d 指定目錄 -
-l
: 列出文件更詳細的信息。
-ll
= ’ls-l
’
-
-r
: 對目錄反向排序。 -
-t
: 以時間排序。 -
-s
:在l文件名后輸出該文件的大小。(大小排序,如何找到目錄下最大的文件) -
-R
: 列出所有子目錄下的文件。(遞歸) -
-1
: 一行只輸出一個文件。
-i
: 輸出文件的 i 節點的索引信息。 如 ls –ai 指定文件-k
: 以 k 字節的形式表示文件的大小。ls –alk 指定文件-n
: 用數字的 UID,GID 代替名稱。 (介紹 UID, GID)-F
: 在每個文件名后附上一個字符以說明該文件的類型,“*
”表示可執行的普通文件;“/
”表示目錄;“@
”表示符號鏈接;“|
”表示FIFOs;“=
”表示套接字(sockets)。(目錄類型識別)
二、pwd 顯示當前所在目錄進程
process work director (顯示當前進程的目錄)
pwd
三、cd 將當前工作目錄改變到指定的目錄下
cd [目錄名]
功能:改變工作目錄。將當前工作目錄改變到指定的目錄下。
常用樣例
cd ~
進入用戶 家目錄cd -
返回 最近訪問目錄cd . .
返回 上級目錄cd /home/nini/linux/
絕對路徑cd . . /day02/
相對路徑
這里有涉及到絕對路徑和相對路徑的問題,有需要的可自行點開后方鏈接 ( )中的第5點進行查閱
四、touch 1. 更改文檔或目錄的日期時間 2. 新建一個不存在的文件
touch [選項] 文件
功能:
- 更改文檔或目錄的日期時間,包括 存取時間 和 更改時間
- 新建一個不存在的文件 。
常用選項
-a
或–time=atime或–time=access或–time=use 只更改存取時間。-c
或–no-create 不建立任何文檔。-d
使用指定的日期時間,而非現在的時間。-f
此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。-m
或–time=mtime或–time=modify 只更改變動時間。-r
把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。-t
使用指定的 日期時間,而非現在的時間
四、mkdir 1. 更改文檔或目錄的日期時間 2. 新建一個不存在的文件
mkdir [選項] [目錄名]
功能:在當前目錄下創建一個名為 “dirname”的目錄
常用選項:
- -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后, 系統將自動建立好那些尚不存在的目錄 ,即一次可以建立多個目錄
mkdir –p test/test1 : 遞歸建立多個目錄
五、rmdir 刪除空目錄
rmdir是一個與mkdir相對應的命令。mkdir是建立目錄,而rmdir是刪除命令
rmdir [-p] [dirName]
適用對象:具有當前目錄操作權限的所有使用者
功能:刪除空目錄
常用選項:
- -p 當子目錄被刪除后如果父目錄也變成空目錄的話,就連帶父目錄一起刪除。
mkdir –p test/test1 : 遞歸建立多個目錄
六、rm 同時刪除文件或目錄
rmdir是一個與mkdir相對應的命令。mkdir是建立目錄,而rmdir是刪除命令
rm [-f-i-r-v] [dirName/dir]
適用對象:所有使用者
功能:刪除文件或目錄
常用選項:
-f
即使文件屬性為只讀(即寫保護),亦直接刪除-i
刪除前逐一詢問確認-r
[ 遞歸 ] 刪除目錄及其下所有文件
七、man 同時刪除文件或目錄
Linux的命令有很多參數,我們不可能全記住,我們可以通過查看聯機手冊獲取幫助。訪問Linux手冊頁的命令是
man [選項] 命令
適用對象:所有使用者
功能:刪除文件或目錄
常用選項
-k
根據關鍵字搜索聯機幫助num
只在第num章節找-a
將所有章節的都顯示出來,比如 man printf 它缺省從第一章開始搜索,知道就停止,用a選項,當按下q
退出,他會繼續往后面搜索,直到所有章節都搜索完畢。
解釋一下, man手冊
分為8章
- 是普通的命令
- 是系統調用,如open,write之類的(通過這個,至少可以很方便的查到調用這個函數,需要加什么頭文
件) - 是庫函數,如printf,fread4是特殊文件,也就是/dev下的各種設備文件
- 是指文件的格式,比如passwd, 就會說明這個文件中各個字段的含義
- 是給游戲留的,由各個游戲自己定義
- 是附件還有一些變量,比如向environ這種全局變量在這里就有說明
- 是系統管理用的命令,這些命令只能由root使用,如ifconfig
八、cp 復制文件或目錄
-
同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中。
-
若同時指定多個文件或目錄,而最后的目的地并非一個已存在的目錄,則會出現錯誤信息
cp [選項] 源文件或目錄 目標文件或目錄
適用對象:所有使用者
功能:復制文件或目錄
常用選項:
-f
或--force
強行復制文件或目錄, 不論目的文件或目錄是否已經存在-i
或--interactive
覆蓋文件之前先詢問用戶-r
遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理-R
或--recursive
遞歸處理,將指定目錄下的文件及子目錄一并處理
九、mv 移動文件 [ move ] 或 將文件改名 [ move (rename) files ]
mv [ move ],是Linux系統下常用的命令,經常用來 備份文件或者目錄
mv [選項] 源文件或目錄 目標文件或目錄
功能:
-
視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。
-
當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。
-
當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。
常用選項:
-f
:force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋-i
:若目標文件 (destination) 已經存在時,就會詢問是否覆蓋
十、cat 查看目標文件的內容 [ 短文件 ]
文件稍大一點,就容易刷屏
cat [選項][文件]
tac 逆向輸出文件內容
常用選項:
-
-b
對非空輸出行編號
-
-n
對輸出的所有行編號
-
-s
不輸出多行空行
十一、more 閱覽數據 [ 大文件(大的日志文件) ]
more 只能向前翻閱文件,不能向后退
more [選項] [文件]
[atong@LiWenTong ~]$ ls -l / | more
total 162
drwxr-xr-x 2 root root 4096 Apr 25 05:39 bin
drwxr-xr-x 4 root root 1024 Apr 25 04:11boot
drwxr-xr-x 9 root root 3820 May 4 23:20 dev
drwxr-xr-x 84 root root 4096 May 5 00:37 etc
常用選項:
-n
對輸出的所有行編號q
退出more
- less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極其強大。
- less 的用法比起 more 更加的有彈性。在 more 的時候,我們并沒有辦法向前面翻, 只能往后面看
- 但若使用了 less 時,就可以使用
[pageup]
[pagedown]
等按鍵的功能來往前往后翻看文件,更容易用來查看一個文件的內容! - 除此之外,在 less 里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜
十二、less 上下任意翻閱數據
less [參數] 文件
功能:
less與more類似,但使用less可以隨意瀏覽文件,而more僅能向前移動,卻不能向后移動,而且less在查看之前不會加載整個文件。
常用選項:
-i
忽略搜索時的大小寫
-N
顯示每行的行號
/
字符串:向下搜索“字符串” 的功能
?
字符串:向上搜索“字符串” 的功能
n
:重復前一個搜索(與/
或 ?
有關)
N
:反向重復前一個搜索(與 /
或 ?
有關)
q
: quit
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來 顯示開頭或結尾某個數量的文字區塊, head 用來顯示檔案的開頭至標準輸出中, 而 tail 想當然爾就是看檔案的結尾 。
十三、.head 顯示檔案的開頭 至標準輸出中 (默認開頭前10行)
head [參數]… [文件]
常用選項:
-n
<行數> 顯示的行數
十四、tail 顯示指定文件末尾內容
tail[必要參數][選擇參數][文件]
不指定文件時,作為輸入信息進行處理。常用查看日志文件。
tail命令的-f選項可以方便的查閱正在改變的日志文件
常用選項:
-f
循環讀取-n
<行數> 顯示的行數
提取中間文件
有一個文件共有100行內容,請取出第50行內容
seq 1 100 > test # 生成1到100的序列裝入test
-
方法1
head -n50 test > tmp #將前50行裝入臨時文件tmp
tail -n1 tmp #得到中建行 -
方法2 命令行管道
head -n50 test | tail -n1
時間相關的指令
十四、date 顯示指定文件末尾內容
date 指定格式顯示時間: date +%Y:%m:%d
date [OPTION] [+FORMAT]
- 在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中常用的標記列表如下
%H
: 小時(00…23) hour
%M
: 分鐘(00…59) minute
%S
: 秒(00…61) second
%X
: 相當于 %H : %M : %S
%d
: 日 (01…31) date
%m
: 月份 (01…12) month
%Y
: 完整年份 (0000…9999) year
%F
: 相當于 %Y - %m - %d
- 設定時間方面
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的午夜)開始所經過的秒數,不考慮閏秒。
常用選項:
-f
循環讀取-n
<行數> 顯示的行數
十三、Cal 顯示公歷(陽歷)日歷 等時間信息
cal命令可以用來顯示公歷(陽歷)日歷。公歷是現在國際通用的歷法,又稱格列歷,通稱陽歷。“陽歷”又名“太陽歷”,系以地球繞行太陽一周為一年,為西方各國所通用,故又名“西歷”。
cal [參數] [月份] [年份]
常用選項:
-3
顯示系統 前一個月,當前月,下一個月 的月歷-j
顯示在當年中的第幾天(一年日期按天算,從1月1號算起,默認顯示 當前月在一年中的天數)-y
顯示 當前年份 的日歷
十四、find 在目錄結構中搜索文件
- Linux下find命令在目錄結構中搜索文件,并執行指定的操作。
- Linux下find命令提供了相當多的查找條件,功能很強大。由于find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。
- 即使系統中含有 網絡文件系統( NFS),find命令在該文件系統中同樣有效,只要你具有相應的權限。
- 在運行一個非常消耗資源的find命令時,很多人都傾向于把它放在后臺執行,因為遍歷一個大的文件系統可能會花費很長的時間(這里是指30G字節以上的文件系統)
find [pathname] [-options]
功能:用于在文件樹中查找文件,并作出相應的處理(可能訪問磁盤)
常用選項:
-name
按照文件名查找文件
十五、grep 在文件中搜索字符串,將找到的行打印出來
grep [選項] 搜尋字符串 文件
功能:在文件中搜索字符串,將找到的行打印出來
常用選項:
-i
:[ ignore ]忽略大小寫的不同,所以大小寫視為相同-n
:順便輸出行號-v
:反向選擇,亦即顯示出沒有 ‘搜尋字符串’ 內容的那一行
十六、zip/unzip 將目錄或文件壓縮成zip格式
zip [壓縮文件.zip] [要壓縮的目錄或文件]
功能: 將目錄或文件 壓縮成 zip格式
將test2目錄壓縮:zip test2.zip test2/*
解壓到tmp目錄:unzip test2.zip -d /tmp
常用選項:
-r
遞歸處理,將指定目錄下的所有文件和子目錄一并處理
十七、tar 打包/解包,不打開它,直接看內容
tar [-cxtzjvf] [文件與目錄]
功能: 將目錄或文件 壓縮成 zip格式
常用選項:
-c
:建立一個壓縮文件的參數指令(create 的意思);-x
:解開一個壓縮文件的參數指令!-t
:查看 tarfile 里面的文件!-z
:是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?-j
:是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?-v
:壓縮的過程中顯示文件!這個常用,但不建議用在背景執行過程!-f
:使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數!-C
: 解壓到指定目錄
十八、bc 浮點運算
十九、uname –r 獲取電腦和操作系統的相關信息
uname可顯示linux主機所用的操作系統的版本、硬件的名稱等基本信息
uname [選項]
常用選項:
-a
或–all
詳細輸出所有信息,依次為內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類型,硬件平臺類型,操作系統名稱
熱鍵
二十、[Tab]
『命令補全』;『檔案補齊』
二十一、[Ctrl]-c
讓當前的程序『停掉』
二十二、[Ctrl]-d
『鍵盤輸入結束(End Of File, EOF 戒 End OfInput)』; 取代『exit』
二十三、關機
shutdown [選項]
常見選項:
-h
: 將系統的服務停掉后,立即關機。-r
: 在將系統的服務停掉之后就重新啟動-t [sec]
: -t 后面加秒數,過幾秒后關機
擴展命令
安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
系統管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
網絡操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
shell命令以及運行原理
Linux嚴格意義上說的是一個操作系統,我們稱之為 “核心(kernel)” ,但我們一般用戶,不能直接使用kernel。
而是通過kernel的“外殼”程序,也就是所謂的shell,來與kernel溝通。如何理解?為什么不能直接使用kernel?
從技術角度,Shell的最簡單定義:命令行解釋器(command Interpreter)主要包含:
- 將使用者的命令翻譯給核心(kernel)處理。
- 同時,將核心的處理結果翻譯給使用者。
對比windows GUI,我們操作windows 不是直接操作windows內核,而是通過圖形接口,點擊,從而完成我們的操作(比如進入D盤的操作,我們通常是雙擊D盤盤符.或者運行起來一個應用程序)。
shell 對于Linux,有相同的作用,主要是對我們的指令進行解析,解析指令給Linux內核。反饋結果在通過內核運行出結果,通過shell解析給用戶。
- 幫助理解:如果說你是一個悶騷且害羞的程序員,那shell就像媒婆,操作系統內核就是你們村頭漂亮的且有讓你心動的MM小花。你看上了小花,但是有不好意思直接表白,那就讓你你家人找媒婆幫你提親,所有的事情你都直接跟媒婆溝通,由媒婆轉達你的意思給小花,而我們找到媒婆姓王,所以我們叫它王婆,它對應我們常使用的bash。