8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.5 輸入輸出重
shell是系統跟計算機硬件交互時使用的中間介質,它只是系統的一個工具。
用戶直接面對的不是計算機硬件而是shell,用戶把指令告訴shell,然後shell再傳輸給系統內核,接著內核再去支配計算機硬件去執行各種操作。
8.2 命令歷史
linux是會有記錄的,預設可以記錄1000條歷史命令。這些命令保存在用戶的家目錄中的.bash_history文件中。有一點需要你知道的是,只有當用戶正常退出當前shell時,在當前shell中運行的命令才會保存至.bash_history文件中。
1) !! 連續兩個 ‘!’, 表示執行上一條指令;
[root@localhost ~]# pwd
[root@localhost ~]# !!
pwd
/root
2) !n 這裏的n是數字,表示執行命令歷史中第n條指令,例如 !1002 表示執行命令歷史中第1002個命令;
[root@localhost ~]# history |grep 1002
1002 pwd
1015 history |grep 1002
[root@localhost ~]# !1002
pwd
/root
history 命令如果未改動過環境變量,默認可以把最近1000條命令歷史打印出來。
3) !字符串 (字符串大於等於1),例如 !pw 表示執行命令歷史中最近一次以 ‘pw’ 為開頭的指令。
[root@localhost ~]# !pw
pwd
8.3 命令補全和別名
命令補全就是按tab鍵,它可以幫你補全一個指令,也可以幫你補全一個路徑或者一個文件名。連續按兩次tab鍵,系統則會把所有的指令或者文件名都列出來。
別名
前面也出現過alias的介紹,這個就是bash所特有的功能之一了。我們可以通過alias把一個常用的並且很長的指令別名一個簡潔易記的指令。如果不想用了,還可以用unalias解除別名功能。直接敲alias會看到目前系統預設的alias.
alias語法很簡單, alias [命令別名]=[‘具體的命令‘]
alias lgx=‘pwd‘
lgx
/root
unalias lgx
lgx
bash: lgx: command not found
8.4 通配符
在bash下,可以使用 * 來匹配零個或多個字符,而用 ? 匹配一個字符。
[root@localhost ~]# ls -d test*
test1.txt test2 test3 test.pl test.txt
[root@localhost ~]# ls -d test?
test2 test3
8.5 輸入輸出重定向
輸入重定向用於改變命令的輸入,輸出重定向用於改變命令的輸出。輸出重定向更為常用,它經常用於將命令的結果輸入到文件中,而不是屏幕上。輸入重定向的命令是<,輸出重定向的命令是>,另外還有錯誤重定向2>,以及追加重定向>>.
mkdir /tmp/10
cd /tmp/10
head /etc/passwd > 1.txt
echo "123" >> 1.txt
cat 1.txt
8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.5 輸入輸出重