曆史指令與指令補全
- 曆史指令:
選項:[[email protected] ~]# history [選項] [曆史指令儲存檔案]
:清空曆史指令-c
:把緩存中的曆史指令寫入曆史指令儲存檔案,檔案為-w
曆史指令預設會儲存1000條,可以在環境變量配置檔案~/.bash_ history
/etc/profile
中進行修改。
我們打開看一下:
這個就是我們的曆史指令儲存的條數。如果超過了這個數值,它就會删除第一條指令,儲存新的指令。Linux——Bash的基本功能 -
曆史指令的調用:
使用上、下箭頭調用以前的曆史指令
使用
!n
重複執行第n條曆史指令。
使用
!!
重複執行上一條指令
使用
重複執行最後一條以該字串開頭的指令!字串
-
指令與檔案補全:
在Bash中,指令與檔案補全是非常友善與常用的功能,我們隻要在輸入指令或檔案時,按 “Tab” 鍵就會自動進行補全。
指令别名與常用快捷鍵
- 指令别名
:設定指令别名[[email protected] ~]# alias 别名='原指令'
:查詢指令别名[[email protected] ~]# alias
Linux——Bash的基本功能 -
指令執行時順序:
1.第一順位執行用絕對路徑或相對路徑執行的指令。
2.第二順位執行别名。
3.第三順位執行Bash的内部指令。
4.第四順位執行按照$PATH環境變量定義的目錄查找順序找到的第一個指令。
-
讓别名永久生效
用指令行定義的指令的别名隻會臨時生效,當計算機重新開機的時候,定義就會失效。我們要想使得定義的别名永久生效,需要修改相應使用者家目錄下的檔案:
檔案。/~/.bashrc
Linux——Bash的基本功能 - bash常用快捷鍵
快捷鍵 作用 ctrl+A 把光标移動到指令行開頭。如果我們輸入的指令過長,想要把光标移動到指令行開頭時使用。 ctrl+E 把光标移動到指令行結尾。 ctrl+C 強制終止目前的指令。 ctrl+L 清屏,相當于clear指令。 ctrl+U 删除或剪切光标之前的指令。我輸入了一行很長的指令,不用使用倒退鍵一個一個字元的删除,使用這個快捷鍵會更加友善 ctrl+K 删除或剪切光标之後的内容。 ctrl+Y 粘貼ctrl+U或ctrl+K剪切的内容。 ctrl+R 在曆史指令中搜尋,按下ctrl+R之後,就會出現搜尋界面,隻要輸入搜尋内容,就會從曆史指令中搜尋。 ctrl+D 退出目前終端。 ctrl+Z 暫停,并放入背景。 ctrl+S 暫停螢幕輸出。 ctrl+Q 恢複螢幕輸出。
輸入輸出重定向
- 标準輸入輸出
裝置類型 裝置檔案名 檔案描述符 鍵盤 /dev/stdin 顯示器 /dev/stdout 1 顯示器 /dev/stderr 2 - 輸出重定向
Linux——Bash的基本功能 - 輸入重定向
選項:[[email protected] ~]# wc [選項] [檔案名]
:統計位元組數-c
:統計單詞數-w
-l
:統計行數
用法:
把檔案作為指令的輸入指令 < 檔案
辨別符:把辨別符之間内容作為 指令的輸入指令 << 辨別符
多指令順序執行與管道符
- 多指令順序執行
Linux——Bash的基本功能
示例:
- 指令:
ls;date;cd /user;pwd
Linux——Bash的基本功能 -
我們在這裡引入一個新的指令:dd。
指令格式:
選項:dd if=輸入檔案 of=輸出檔案 bs=位元組數 count=個數
指定源檔案或源裝置if=輸入檔案
指定目标檔案或目标裝置of=輸出檔案
指定一次輸入/輸出多少位元組,即把這些位元組看做 一個資料塊bs=位元組數
count=個數
指定輸入/輸出多少個資料塊
指令:
我們看一下執行的結果:date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date
Linux——Bash的基本功能 - 指令:
ls && echo yes
Linux——Bash的基本功能 - 指令:
ls test || echo no
Linux——Bash的基本功能 - 指令:
ls test && echo yes || echo no
Linux——Bash的基本功能
-
管道符
指令格式:
含義:指令1的正确輸出作為指令2的操作對象指令1 | 指令2
示例:
- 指令:
ll -a /etc/ | more
Linux——Bash的基本功能 - 我們引入一個新的指令:
格式:grep
選項:grep [選項] "搜尋内容" 檔案名
: 忽略大小寫-i
: 輸出行号-n
: 反向查找-v
--color=auto
搜尋出的關鍵字用顔色顯示
指令:
作用:檢視目前計算機有多少遠端連接配接。netstat -an | grep "ESTABLISHED"
通配符與其他特殊符号
通配符
通配符 | 作 用 |
---|---|
| 比對一個任意字元 |
| 比對0個或任意多個任意字元,也就是可以比對任何内容 |
| 比對中括号中任意一個字元。例如: 代表一定比對一個字元,或者是a,或者是b,或者是c。 |
| 比對中括号中任意一個字元,-代表一個範圍。例如: 代表比對一個小寫字母。 |
| 邏輯非,表示比對不是中括号内的一個字元。例如: 代表比對一個不是數字的字元。 |
示例:
cd /tmp/
rm -rf *
touch abc
touch abcd
touch 012
touch 0abc
ls ?abc
ls [0-9]*
ls [^0-9]*
其他常用特殊符号
符号 | 作用 |
---|---|
| 單引号。在單引号中所有的特殊符号,如“$”和“`”(反引号)都沒有特殊含義。 |
| 雙引号。在雙引号中特殊符号都沒有特殊含義,但是 、 和 是例外,擁有“調用變量的值”、“引用指令”和“轉義符”的特殊含義。 |
`` | 反引号。反引号括起來的内容是系統指令,在Bash中會先執行它。和 ( ) 作 用 一 樣 , 不 過 推 薦 使 用 ()作用一樣,不過推薦使用 ()作用一樣,不過推薦使用(),因為反引号非常容易看錯。 |
$() | 和反引号作用一樣,用來引用系統指令。 |
# | 在Shell腳本中,#開頭的行代表注釋。 |
$ | 用于調用變量的值,如需要調用變量name的值時,需要用$name的方式得到變量的值。 |
\ | 轉義符,跟在\之後的特殊符号将失去特殊含義,變為普通字元。如$将輸出“$”符号,而不當做是變量引用。 |
示例:
echo `ls`
echo $(date)
name=sc
echo '$name'
echo "$name"
echo ‘$(date)'
echo “$(date)"
end.