linux一直學的很拖拖拉拉的,以前學了,不常用,不寫筆記,基本忘了,又的重新來一次。
Shell是什麼
Shell是一個命令解釋器,它爲用戶提供了一向Linux內核發送請求以便運行程序的界面系統程序,用戶可以用shell來啓動、掛起、停止甚至是編寫一些程序。
Bash的基本功能
1歷史命令
當在服務器出問題,需要查看上一次操作,以判斷問題。可以通過歷史命令查看。
#history [選項][l歷史命令保存文件]
選項:
-c: 清空歷史命令
-w:把緩存中的歷史命令寫入歷史命令保存文件
歷史命令默認會保存1000條,可以在環境變量配置文件/etc/profile中進行修改。
/home/bash_history
上下鍵切換以前的歷史命令
"!n"重複執行第n條歷史命令
"!!"重複執行上一條命令
"!字串"重複執行最後一條以該字串開頭的命令
2 命令與文件補全
使用tab鍵補全
3別名和快捷鍵
命令別名
設定命令別名
#alias 別名 = '原命令'
例如將vi設置爲vim的別名,使用命令vi的時候就表示使用vim。(這個是根據每個人的習慣來設置的)
#alias vi=’vim‘
查詢命令別名
#alias
命令執行時書順序:
1第一順位執行用絕對路徑或相對路徑執行的命令
2第二順位執行別名
3第三順位執行Bash的內部命令
4第四順位執行按照$PATH環境變量定義的目錄查找順序找到的第一個命令
讓別名永久生效,需要修改配置文件
#vi /root/.bashrc
刪除別名
#unalias 別名
常用快捷鍵
ctrl+c:強制終止當前的命令
ctrl+l:清屏,相當於clear
ctrl+u:刪除或剪切光標之前的命令,輸入一個很長命令後,不用使用退格鍵一個一個字符的刪除,使用這個快捷鍵更加方便
ctrl+y:粘貼ctrl+u剪切下來的內容
ctrl+r:在歷史命令中搜索,按下ctrl+r之後,就會出現搜索界面,只要輸入搜索內容,就會從歷史命令中搜索。
ctrl+d:退出當前終端
常用命令還是需要試試才能熟悉
4輸入輸出重定向
1標準輸入輸出
就是計算機的輸入設備和計算機的輸出設備
輸入輸出重定向就是不執行標準輸入輸出,用文件的方式來輸入輸出
2輸出重定向
輸出重定向:不讓它輸出到屏幕中讓它輸出到文件當中
linux做定時任務時,把命令結果保存在文件裏,給管理員查看,以便檢查。
知道錯誤命令幹嘛還輸出啊,所以常用的是下面的方式。
把正確的和錯誤的都輸入同一個文件。
前4種都是一樣的,都是把錯誤和正確輸出到一個文件裏面。
&>/dev/null將錯誤直接丟入垃圾箱
最後一種把正確的和錯誤的分開來寫。
3輸入重定向
就是不以鍵盤的方式來輸入,而已文件的方式來輸入
輸入重定向沒有輸出重定向常用,給源碼打補丁用
用wc進行演示
wc統計鍵盤數
ctrl+d顯示計算結果
#wc [選項][文件名]
選項:
-c 統計字節數
-w 統計單詞數
-l 統計行數
輸入重定向格式
命令<文件 把文件作爲命令的輸入
用命令<<文件的方式:
wc<<hello不在是ctrl+d結束,而是再次遇到hello結束
5多命令順序執行
簡化執行操作,多個命令一起執行。
“:”的作用:
連接多個沒有關係的命令,在執行dd命令的時候有幫助
dd命令在linux中執行磁盤或者 數據複製,但是它不是cp;cp只複製文件,dd命令能複製特殊文件和特殊命令,還能複製分區和硬盤,還複製硬盤或者分區的文件系統,可以當作磁盤對口命令來對待,dd主要用於磁盤的複製。
例子:
測試創建一個10M的文件需要多久
#dd if=輸入文件 of=輸出文件 bs=字節數 count=個數
選項:
if = 輸入文件 指定源文件或者源設備
of=輸出文件 指定目標文件或者設備
bs=字節數 指定一次輸入\輸出多少字節,即把這些字節看做一個數據塊
count=個數 指定輸入\輸出多少個數據塊
創建一個10M的文件只需要0.034s
&&與||的例子:
6.管道符
格式:
#命令1 | 命令2
作用:
命令1的正確輸出作爲命令2的操作對象
例子:
#ll -a /etc/ | more
more本來是用於文件的,現在可以用於命令的操作,/etc/顯示內容非常多,用more可以很好的分頁
#grep [選項] "搜索內容” 文件名
作用:
搜索關鍵字用顏色顯示
選項:
-i : 忽略大小寫
-n: 輸出行號
-v: 反向查找
--color = auto 搜索出的關鍵字用顏色顯示