4月20日
一、什麽是shell
1、shell是一個命令解釋器,提供用戶和機器之間的交互
2、支持特定語法,比如邏輯判斷、循環
3、每個用戶都可以有自己特定的shell
4、CentOS7默認shell為bash(Bourne Agin Shell)
5、 還有zsh、ksh等
bash它是sh(Bourne Shell)的增強版本,Bourn Shell 是最早行起來的一個shell,創始人叫Steven Bourne,為了紀念他所以叫做Bourn Shell,檢稱sh
看系統是否有安裝zsh、ksh,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@aminglinux-01 ~] zsh.x86_64 5.0.2-25.el7 installed autojump-zsh.noarch 22.3.0-3.el7 epel zsh.x86_64 5.0.2-28.el7 base zsh-html.x86_64 5.0.2-28.el7 base zsh-lovers.noarch 0.9.0-1.el7 epel [root@aminglinux-01 ~]# yum list |grep ksh ksh.x86_64 20120801-34.el7 base mksh.x86_64 46-5.el7 base python-XStatic-Rickshaw.noarch 1.5.0.0-4.el7 epel python-moksha-common.noarch 1.2.3-2.el7 epel python-moksha-hub.noarch 1.5.3-2.el7 epel python-moksha-wsgi.noarch 1.2.2-2.el7 epel |
8.2 命令歷史
一、命令歷史:
1、history命令 //查看之前使用的命令。
2、.bash_history //存儲使用過的命令文件,在root的家目錄下
3、變量HISTSIZE 默認值1000 //存儲使用命令數值為1000條
4、/etc/profile中修改變量HISTSIZE //修改存儲命令數值
5、HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " //記錄命令的使用時間
6、永久保存 chattr +a ~/.bash_history
7、!! //執行上一條命令
8、!n //n表示數字 比如:!176 這樣它就會執行命令歷史裏的176這條命令
9、!echo //echo表示你需要找命令歷史裏從下往上找以word開頭的第一條命令執行它。
1.1 history命令
我們敲過的命令,linux是會有記錄的,預設可以記錄1000條歷史命令,這些命令保存在用戶的家目錄中的.bash_history文件中。只有正常退出當前shell時,在當前shell中運行的命令才會保存至.bash_history文件中。
1.2 清空當前命令歷史 history -c
(使用命令history -c 命令可以清空內存中的命令,
文件.bash_history裏的配置文件命令不會清空)
1.3 查看預設命令條數顯示命令: echo $HISTSIZE
1.4 修改記錄的歷史數,可以使用命令:
vim /etc/profile 中修改變量HISTSIZE:
1.4.1 修改後使用命令 :source /etc/profile 讓它生效,
然後再用命令:echo $HISTSIZE 來查看修改結果
1.5 記錄命令的使用時間,可以輸入以下變量即可(只限當前窗口的shell):
HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S ”
1.5.1 如果要在其他的窗口shell中也生效,可以進入 /etc/profile 中添加一行HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S ” 即可
(保存退出後source /etc/profile一下生效):
1.6 永久生效,不讓別人刪除命令:chattr +a ~/.bash_history 添加權限只能追加,不能修改刪除
註意:如果執行了這條命令後,你並沒有正常退出終端,就會導致保存的命令不全。
1.7 !! 表示執行上一條指令
1.8 !n 表示執行命令歷史中第n條指令,如!593條命令
1.9 !echo 表示執行命令歷史中最近一次以 ‘echo’ 為開頭的命令
8.3 命令補全和別名
一、命令補全和別名:
1、tab鍵,敲一下,敲兩下
2、參數補全,安裝bash-completion
3、alias別名給命令重新起個名字
4、 各用戶都有自己配置別名的文件 ~/.bashrc //存放別名的路徑地址
ls /etc/profile.d/ //存放別名的路徑地址
自定義的alias放到~/.bashrc //自定義後別名存放的地址
1.1 命令補全:
按tab鍵,它可以幫你補全一個命令,也可以幫你補全一個路徑或者一個文件名。
連續按兩次tab鍵,系統則會把所有的指令或者文件名都列出來
1.2 參數補全,安裝bash-completion ,命令:yum install -y bash-completion
需要重啟一下才管用 reboot
1.3 alias別名
通過alias把一個常用的並且很長的指令別名一個簡潔易記的指令。如果不想用了,還可以用unalias解除別名功能。直接敲alias會看到目前系統預設的alias.
1.4 alias目前系統預設的別名在:.bashrc 下
其他alias自定義別名,存放於 /etc/profile.d/下
8.4 通配符
一、通配符:
1、ls *.txt //表示查找.txt通配文件
2、ls ?.txt //表示一個任意的字符
3、ls [0-9].txt //列出滿足條件範圍內的文件
4、ls {1,2}.txt //用花括號列出你需要的文件
1.1 1.2在bash下,可以使用 * 來匹配零個或多個字符,而用 ? 匹配一個字符
1.3 也可以使用[0-9a-zA-Z]範圍來匹配,如 : ls [1-3].txt ,
1.4 用花括號列出你需要的文件 ,如 ls {1,2,3,4,5}.txt
8.5 輸入輸出重定向
輸入重定向用於改變命令的輸入,輸出重定向用於改變命令的輸出。
輸出重定向更為常用,它經常用於將命令的結果輸入到文件中,而不是屏幕上。
輸入重定向的命令是<,
輸出重定向的命令是> ,
追加重定向 >> ,
2>是錯誤重定向,
2>>錯誤追加重定向
(>+2> 等於 &>)
一、 輸入輸出重定向,試驗
1、cat 1.txt >2.txt //>它會把命令產生的正確信息輸出到指定文件裏去,刪除之前文件內容重寫。
2、cat 1.txt >> 2.txt //>>把前面命令輸出內容重定向追加到後面命令裏去,不刪除舊的。
3、ls aaa.txt 2> err //它會把命令產生的錯誤信息輸出到指定文件裏去
4、ls aaa.txt 2>> err // 錯誤信息輸出追加重定向
5、wc -l < 1.txt //查看一個文件的行數
1.1 輸出重定向> ,把前面的命令追加到後面的文件裏去,原內容刪除重寫
1.2 追加重定向 >>把前面命令輸出內容重定向追加到後面命令裏去,不刪除舊的。
1.3 2>是錯誤重定向,它會把命令產生的錯誤信息輸出到指定文件裏去,沒有產生錯誤就無效
1.4 2>>錯誤追加重定向,追加一次錯誤信息到文件,&>正確定向和錯誤 定向到一個文件
1.5 輸入重定向的命令是<,左邊必須是命令 ,不可以文件到文件 <
以下是查看文件行數是幾行
4月20日