一、*通配符
ls * : 可以匹配任意一個名稱的文件
ls *.c : 匹配點c後綴的文件
ls test.* :匹配以test.開頭的文件
二、man 指令
一個指令使用手冊<manual > ,可以查看其他指令對應的説明
- -k 根據關鍵字搜索聯機幫助
- num 只在第num章節查找
- -a 將所有章節的都顯⽰出來,⽐如 man printf 它缺省從第⼀章開始搜索,知道就停⽌,⽤a選項,當按下q退出,他會繼續往後⾯搜索,直到所有章節都搜索完畢
如果這樣呢 :
- 是普通的命令
- 是系統調⽤,如open,write之類的(通過這個,⾄少可以很⽅便的查到調⽤這個函數,需要加什麼頭⽂件)
- 是庫函數,如printf,fread4是特殊⽂件,也就是/dev下的各種設備⽂件
- 略
- 是指⽂件的格式,⽐如passwd, 就會説明這個⽂件中各個字段的含義
- 是給遊戲留的,由各個遊戲⾃⼰定義
- 是附件還有⼀些變量,⽐如像environ這種全局變量在這⾥就有説明
- 是系統管理⽤的命令,這些命令只能由root使⽤,如ifconfig
man 默認從手冊1中查到指令,如果找不到就去2中找以次按順序找,如果找不到
三、echo指令
echo "hello Linux" :原封不動的打印
他這裏不像C++裏面字符串要加分號“ ” 一樣, 只要是跟着在他後面的都能打印到屏幕上
這裏的 > :
叫輸出重定向,本來應該寫在顯示器上的內容 ,寫到文件中
把原本應該寫在顯示器文件中的寫到了普通磁盤文件中,他這種寫法是覆蓋的寫入
第一步是清空文件
第二步是寫入新內容
所以如果我們有一個文件存在,不寫入新內容 ,他就會清空文件
這樣 log.txt就什麼都沒有了
那怎樣在保留原有基礎上不清空原有文件,然後再寫入新內容呢
>> : 追加重定項
注意到這裏每次都是換行了,那如果我們不想換行呢?
用 printf 指令 ,這裏的printf是指令,和c++的printf沒有一點關係,注意這裏要想打印字符串就要加分號了,要不然他遇到空格就會停止打印
無論是輸出重定向還是追加重定項,如果寫的目標文件不存在,就會重新創建一個文件
這就不一定非得寫touch
那如果我只寫一個cat呢?cat也是打印
輸入一個 ,打印一個 ,(寫到顯示器文件中),只寫cat就默認從鍵盤中讀,因為鍵盤也是文件
按 ^c 可以停止
< : 輸入重定向
本來應該從鍵盤文件中讀,現在不用從鍵盤文件中讀,而從指定文件中讀取,這叫做輸入重定向
當然不寫這個 輸入重定向效果是一樣的
四、more 指令
功能類似於cat , cat不適合看大文本。如果我想看文本的最後幾行,要一直往下翻,成本太高,cat更適合看小文本而,而more更適合看大文本。他會把一個屏幕佔滿後,停止輸入打印。如果要來繼續,可以按回車想要退出,可以按關鍵是他能帶選項,可以顯示到你想要看的第幾行就停下
test.txt 已經放進去了很多值
他能帶選項,可以顯示到你想要看的第幾行就停下
但缺點就是不能往上,more 只能顯示更多,所以這裏還有另一個指令 less
五、less 指令
那是相比於在保留more 的基礎功能上,可以向上翻,還可以向下翻,由上下鍵來決定
既可以向上看,還可以向下看
六、head 指令
head test.txt : 默認把我們給的文本提取出前十行
可以帶選項,帶數字幾就提取出前幾行來,從頭提出3行 :
七、tail 指令
tail test.txt 提取test.txt 文本的倒數幾行,和head 相反
也可以帶選項
但是如果我們想看一個文本中間的內容呢,可以利用管道文件
: head -1000 test.txt | tail -10
他把hand處理過的數據放到管道中,管道是屬於內存級的,再把管道中的數據給tail
管道可以支持流水線工作,把數據一道道的加工
八、date 顯示
指定格式顯示時間: date +%Y:%m:%d
在顯⽰⽅⾯,使⽤者可以設定欲顯⽰的格式,格式設定為⼀個加號後接數個標記,其中常⽤的標記
列表如下
• %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
Unix時間戳: 是從1970年1⽉1
⽇(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒
時間->時間戳:date +%s
時間戳->時間:date -d@1234
cal 指令 : 顯示日曆
- cal 顯示當月的日曆
- cal -3 顯示3個月的日曆,即當月,前一月,下一月的日曆
- cal 2005 指定顯示2005年的12個月份的日曆
- cal -j 從1月1日開始進行計算,算出當前天在當年中處於第幾天
九、find指令
find 路徑 -name 文件名 可以在指定路徑下搜索指定文件,注意~是家目錄,查找後綴名可以使用*後綴名的方式
whereis 指令 : 在系統特定的路徑下去查找,既可以查找到可執行程序,也可以查到手冊安裝包,壓縮包等
which 指令 :查找指令所在的路徑
十、grep 指令
行文本過濾器
grep 'Linux' log.txt : 他會打開log.text,以Linux作為關鍵字進行過濾,一行一行的過濾,如果匹配的話就打印出來
grep -v 'Linux' log.txt : 打印不包含Linux的行
grep -i : 忽略大小寫
11、zip / unzip 指令
將目錄或文件壓縮成zip格式
如果要壓縮一個大目錄,就要加上-r
zip -r d1.zip d1 log.txt : 把d1這個樹狀的目錄和log.text都壓縮成一個d1.zip壓縮包
unzip d1.zip : 解壓d1.zip
解壓文件容易,怎樣把文件解壓到指定目錄下? -d 指明我們要解壓的目錄
unzip d1.zip -d d2/ : 把d1壓縮包解壓到d2目錄下
12、tar指令
也是打包壓縮,只不過他可以通過增加指令,既可以做到壓縮,也可以做到解壓
- tar czf xxx : 打包壓縮
- tar tzf xxx.tgz : 預覽壓縮的文件
- tar xzf xxx.tgz : 解壓
- tar xzf xxx.tgz -C .. : 解壓到某一路徑下 (這裏是解壓到上一級路徑)
13、bc 指令
bc命令可以很⽅便的進⾏浮點運算
14、uname指令
- uname 可以用來獲取linux主機的所使用的操作系統的版本,硬件名稱等的相關信息
- uname -a 可以詳細輸出所有信息
- uname -r 可以查看體系結構
補充
Tab :Tab鍵可以自動補齊指令,並且會在我們的指令後面加入空格進行分隔
按Tab :
ctrl+c鍵 : 可以將當前運行正常或異常的程序終止退出,終止當前命令行的任務
ctrl+r鍵 : ctrl+r 可以搜索用户歷史輸入的指令 ,Linux會記錄最新的1000條
ctrl+d鍵 : ctrl+d 相當於 exit
指令的原理 :指令的本質是編譯好的程序和腳本,(放在系統的某一路徑下)
以上的shell叫作命令行解釋器
命令行解釋器 :將使用者的命令翻譯給操作系統核心處理,同時將核心處理結果翻譯給使用者
存在的意義 :
- 存在的意義進行命令行解釋
- 防護操作系統對於用户的非法請求進行攔截