1. 程式人生 > >shell介紹、歷史命令、命令補全和別名、通配符、輸入輸出重定向

shell介紹、歷史命令、命令補全和別名、通配符、輸入輸出重定向

linux

shell介紹

shell是系統跟計算機硬件交互時使用的中間介質,它只是系統的一個工具。在計算機硬件之間還有一層東西——系統內核。如果把計算機硬件比作一個人的軀體,那系統內核就是人的大腦。至於shell,把它比作人的五官似乎更貼切些。言歸正傳,用戶直接面對的不是計算機硬件而是shell,用戶把指令告訴shell,然後shell再傳給系統內核,接著內核再去支配計算機硬件去執行各種操作。


Red Hat/CentOS默認安裝的shell版本是bash(即Bourne Again Shell),它是sh(Bourne Shell)的增強版本。Bourne Shell是最早流行起來的一個shell版本。其創始人是Steven Bourne,為了紀念他而將其命名為Bourne Shell,簡稱sh。




命令歷史

我們執行過的命令Linux都會記錄,預計可以記錄1000條歷史命令。這些命令保存在用戶的家目錄的.bash_history文件中。但需要註意的是,只有當用戶正常退出當前shell時,在當前shell中運行的命令才會保存至.bash_history文件中。


[root@localhost ~]# history

技術分享


echo $HISTSIZE 查看目前可以保存多少條歷史命令

history -c 清空內存中的歷史命令。而./root/.bash_history中的歷史命令還在。

技術分享


通過vi /etc/profile中 更改HISTSIZE的數值可以更改歷史命令條數。

技術分享


需重啟或執行source /etc/profile 生效,再查看變為5000了。

技術分享


記錄命令運行時間

執行HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"

技術分享

現在可看到命令執行的時間了。


但只是臨時生效,如果換一個終端或重啟終端後失效,要永久生效,需要將HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" 命令添加到/etc/profile 文件中。

技術分享


永久保存輸入的命令歷史

給文件加上隱藏權限a(只能追加,不能刪除修改。)

chattr +a /root/.bash_history


與命令歷史相關的特殊字符:

!!:連續兩個!表示執行上一條命令。

技術分享


!n:n表示數字,表示執行命令歷史中的第n條命令。例如,!15

技術分享


!字符串: 例如!cd表示執行命令歷史中最近一次以cd開頭的命令

技術分享


命令補全

按tab鍵可以幫我們補全一個指令、一個路徑或者一個文件名。連續按兩次tab鍵,系統則會把所有的命令或者文件名都列出來。當前僅僅支持命令補全,參數是不支持補全的。

技術分享





別名

通過alias把一個常用的並且很長的指令另取名為一個簡單易記的指令。輸入alias查看哪些命令用了別名。

技術分享


alias 命令別名=‘具體命令‘ 自定義命令的別名

技術分享


unalias可以解除別名功能

技術分享





通配符

在bash下,可以使用 * 來匹配零個或多個字符,用?匹配一個字符。

技術分享







輸入輸出重定向

輸入重定向用於改變命令的輸入,輸出重定向用於改變命令的輸出。輸出重定向更為常用,它經常用於命令的結果輸入到文件中,而不是屏幕上。輸入重定向的命令<,輸出重定向的命令是>。另外,還有錯誤重定向命令2>以及追加重定向命令>>,例:

技術分享


技術分享

本文出自 “運維之路” 博客,請務必保留此出處http://ccj168.blog.51cto.com/13163491/1982134

shell介紹、歷史命令、命令補全和別名、通配符、輸入輸出重定向