寫在前面
上一篇文章,我們學(xué)習(xí)了Linux的一些常用指令,
學(xué)習(xí)了如何理解Linux系統(tǒng),介紹了對Linux系統(tǒng)的理解:Linux下一切皆文件
介紹了重定向還有管道相關(guān)的知識。這里是上一篇博客的鏈接:http://t.csdn.cn/2d6fc
接下來我會對Linux常用指令進(jìn)行收尾,并談一談如何理解指令。
目錄
寫在前面
1. date
描述:
用法:
例子:
例1:
例2:
例3:
例4:
2. cal
描述:
用法:
例子:
例1:
例2:
?3. find(重要)
描述:
用法:
例子:
例1:
例2:
例3:
4. grep(非常重要)
描述:
用法:
例子:
例1:
例2:
例3:
例4:
5. zip/unzip
描述:
用法:
例子:
例1:
例2:
例3:
6. tar
描述:
用法:
例子:
例1:
例2:
例3:
?7. bc
描述:
用法:
例子:
例1:
例2:
8. uname
描述:
用法:
例子:
例1:
例2:
?9. 常用快捷鍵介紹
tab 補齊功能
Ctrl d?
Ctrl r 查找歷史命令
上下鍵查找最近使用過的命令
history
10. shutdown
指令原理的理解
指令的運行原理:
解析:
總結(jié):
寫在最后:
1. date
描述:
date指令可以用來查看時間。
用法:
date
選項:有很多,我待會兒會實操介紹
例子:
例1:
直接使用date指令:
?
例2:
攜帶選項,自己設(shè)置格式:
Y代表年,m代表月,d代表日,H代表小時,M代表分鐘,C代表秒。?
例3:
查看時間戳:
?補充:
什么是時間戳?
時間戳是從1970年1月1日開始計算到現(xiàn)在的秒數(shù)。
我們?yōu)槭裁葱枰獣r間戳?
就程序員而言,以后我們工作,寫代碼都會需要攜帶日志信息,
而日志信息包括了時間信息,而使用我們現(xiàn)在的時間并不太準(zhǔn)確,
為什么呢?因為世界各地之間是有時差的。
所以日志信息包括的時間是使用這個統(tǒng)一的時間戳。
例4:
如何將時間戳轉(zhuǎn)換成具體時間:
在date后面加上 -d @時間戳 即可,我這里前面攜帶了自定義的格式。
2. cal
描述:
查看日歷(西歷)
用法:
cal 查看本月日歷
cal + 年份 查看該年的日歷
例子:
例1:
直接用cal。
?
例2:
cal + 年份
?3. find(重要)
描述:
查找文件
用法:
find + 路徑 + -name + 文件名
例子:
例1:
比如說,查找根目錄下所有叫 test 的文件:
操作系統(tǒng)就遞歸搜索了所有叫 test 的文件。?
例2:
查找指定地址下的 ls 命令
?(注:我們之前有講過,其實指令就是一個可執(zhí)行程序,所以我們能在指定目錄下找到他們)?
例3:
奇怪的現(xiàn)象:
?我們在 /usr 目錄下面查找 ls 指令的時候,出現(xiàn)了 Permission denied 這樣的提示,
其實是在查找的過程中出現(xiàn)了一些不允許進(jìn)入的區(qū)域,就是有些地方被禁止(用戶)訪問了。
4. grep(非常重要)
描述:
查找文件內(nèi)容。
用法:
選項:
-i 無視大小寫
-n 順便輸出行號
-v 反向選擇(就是顯示出你沒搜索的內(nèi)容)
例子:
例1:
?我用 shell 腳本寫了一些東西進(jìn) log.txt 文件中
腳本提供:cnt=0; while [ $cnt -le 100 ]; do echo "hello linux $cnt"; let cnt++; done > log.txt
使用 grep 查找所有帶有 9 的內(nèi)容:
例2:
測試 -n?
?測試 -v
不難觀察出,我們看不到 9。
例3:
我們還能通過 grep 指令批量查找文件內(nèi)容:
再創(chuàng)建一個文件:(并輸入99)
?通過 grep 查找當(dāng)前目錄下所有文件的 99 都在哪里:
?
(注:* 是通配符)
例4:
通過 grep 查找根目錄下所有文件的main函數(shù)在哪一行:
grep -nR "int main() " ~
?為了不讓它刷屏啊,我就中途停止了,
我們可以看到他確實能將所有包含int main()的信息查找出來。
(注:~ 就是根目錄的意思(之前的文章有提到過))
其實grep之后還有很多應(yīng)用的場景,我們以后還會經(jīng)常見到它。
5. zip/unzip
描述:
壓縮和解壓的指令。
用法:
zip + 壓縮后的文件名 + 被壓縮文件名
選項:
-r 遞歸壓縮
-d 指定目錄
例子:
例1:
首先我想補充一些內(nèi)容,我們?yōu)槭裁匆獕嚎s文件,
1. 我們將文件打包壓縮到一起,可以很方便我們發(fā)送給其他人,就算丟失,也是全部都丟了;
如果我們一下子傳輸一堆文件,容易出現(xiàn)有一些文件丟失了,那就非常難受,不知道丟了那個文件
2. 壓縮后的文件比較小,更容易傳輸
那廢話不多說,現(xiàn)在開始:
使用 zip 打包目錄和文件:
我們先創(chuàng)建一些文件:
?打包壓縮:
?解壓:
?我們把這個壓縮文件在上級目錄解壓,發(fā)現(xiàn)確實解壓出來了。
結(jié)果一查看,d1里面什么都沒有,這是為什么呢?
(注:如果你的Linux里面沒有zip,下載指令:yum install -y unzip zip(要在root用戶下載))?
例2:
對于目錄,我們需要遞歸打包壓縮:
?我們還是一樣的操作,在上級目錄解壓該文件:
查看:
?
例3:
解包解壓到指定目錄:
?解包到 test 目錄下面了。
6. tar
描述:
主要功能:打包壓縮、預(yù)覽、解壓解包。
用法:
tar + czf + 壓縮后文件名 + 文件名?= 打包壓縮
tar + tzf + 文件名 = 預(yù)覽
tar + xzf + 文件名 = 解壓解包
例子:
例1:
打包壓縮:
?
例2:
預(yù)覽:
?
例3:
解包解壓:
?7. bc
描述:
計算器。
用法:
bc
例子:
例1:
直接bc:
你可以隨意計算。?
例2:
其實我們還可以用管道:
?這樣也可以調(diào)用計算器。
8. uname
描述:
uname用來獲取電腦和操作系統(tǒng)的相關(guān)信息。
用法:
選項:
-r 查看操作系統(tǒng)內(nèi)核版本
-a 查看基本信息
例子:
例1:
-r 和 -a 選項:
?我們可以看到 3.10.0 這個其實就是我們的內(nèi)核版本,x86_64位機(jī)器。
例2:
擴(kuò)展:我們還有命令可以查看CPU信息:
lscpu 命令:
?9. 常用快捷鍵介紹
之前我已經(jīng)介紹了 Ctrl c 結(jié)束當(dāng)前程序,
還有一些好用的快捷鍵,
tab 補齊功能
比如說,我有一個命令忘記了:(clear命令)?
雙擊 tab 鍵:
?會有提示,其他命令也是如此,你可以試試。
另外,
tab 鍵的補齊非常好用,平時進(jìn)入目錄的時候,也可以用 tab 鍵補齊。
Ctrl d?
一直按Ctrl d可以直接退出xshell。
Ctrl r 查找歷史命令
我使用該命令:
只輸入了while,他就自動幫我找到了之前使用的腳步,非常好用。
上下鍵查找最近使用過的命令
這個我就不演示了,大家知道就行,
非常好用。
history
實際上,為什么我們能查找到曾經(jīng)用過命令呢,因為Linux幫我們存起來了,
用history我們就能查看:(太長了,我就截一小段)
10. shutdown
這個是關(guān)機(jī)指令,直接輸入就能關(guān)機(jī),
但是我想說:Linux服務(wù)器永不關(guān)機(jī),記住這個點,
因為我們以后工作,也是不會關(guān)機(jī)的。
指令原理的理解
經(jīng)過上述的學(xué)習(xí)以及之前文章的學(xué)習(xí),我們總算是把常見常用的指令都學(xué)習(xí)了一遍,
在這其中我也穿插了不少對于Linux操作系統(tǒng)的理解,那么現(xiàn)在我們也來理解一下指令。
指令的運行原理:
我們來看看我們平時輸指令的地方:
輸入指令的過程,本質(zhì)就是輸入字符串。
我們之前也有講過如何理解指令,
指令的本質(zhì)其實就是編譯好的程序和腳本,
一定是存放在系統(tǒng)的某一個地方。(之前也找過在哪)?
圖中的那一行其實叫做 bash 命令行。
先說結(jié)論:我們輸入指令到 bash 命令行,命令行解釋器告訴操作系統(tǒng),
然后操作系統(tǒng)處理結(jié)果返回給命令行解釋器,命令行解釋器再將結(jié)果告訴用戶。
那么這是個什么原理呢?
解析:
我們輸入的所有指令,最終都要在OS內(nèi)部運行,
但是OS的操作難度很高,普通人很難說直接去操作我們的OS,
這個時候就出現(xiàn)了:圖形化界面 / 命令行解釋器
平時我們用的Windows系統(tǒng)就是圖形化界面,我們現(xiàn)在用的Linux就是命令行解釋器
也就是圖中的 bash 命令行,就是我們這個版本的命令行解釋器。
這就有了上面說的,命令行解釋器將用戶的命令翻譯給操作系統(tǒng),
同時,也將操作系統(tǒng)的處理結(jié)果翻譯給用戶。
不僅如此,命令行解釋器還能保護(hù)系統(tǒng),它可以駁回用戶的錯誤/非法操作。
像這樣:(找不到命令)
就像一個外殼一樣保護(hù)這操作系統(tǒng):(如圖)
?我們將命令行解釋器統(tǒng)稱為shell,
舉個例子,如果說shell是學(xué)生的總稱,
那么我們的 bash 命令行就是一個大一學(xué)生張三
其他類型的命令行解釋器例如 sh 就是大二學(xué)生李四
他們都是學(xué)生。他們都是shell。
?等以后學(xué)了進(jìn)程,我會帶著你們自己實現(xiàn)一個shell,到時候我們能對它有更深的理解。
總結(jié):
文章將常用的指令基本講解完了,
最后講述了如何理解指令的運行原理,希望對大家有所幫助。
寫在最后:
以上就是本篇文章的內(nèi)容了,感謝你的閱讀。
如果感到有所收獲的話可以給博主點一個贊哦。文章來源:http://www.zghlxwxcb.cn/news/detail-443852.html
如果文章內(nèi)容有遺漏或者錯誤的地方歡迎私信博主或者在評論區(qū)指出~文章來源地址http://www.zghlxwxcb.cn/news/detail-443852.html
到了這里,關(guān)于【Linux常見指令以及權(quán)限理解】基本指令(3)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!