五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

8.1 shell介紹
8.2 命令歷史
8.3 命令補全和別名
8.4 通配符
8.5 輸入輸出重定向


8.1 shell介紹

shell是一個命令解釋器,提供用戶和機器之間的交互
支持特定語法,比如邏輯判斷、循環(if for whell)
每個用戶都可以有自己特定的shell
CentOS7默認shell爲bash(Bourne Agin Shell)
還有zsh、ksh等

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

yum list |grep zsh 搜索yum 中是否有zsh

# yum list |grep ksh

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.


8.2 命令歷史

shell的屬性 特性

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
我們輸入的命令可以用向上的方向鍵來查看歷史命令 ,這些歷史命令存儲在用戶的家目錄下
1. # ls /root/.bash_history 歷史命令保存在用戶家目錄的.bash_history文件中
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
2. # history 查看存儲了多少命令

history -c 清空內存裏面的命令歷史 ,並不會刪除配置文件.bash_history中的歷史命令

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
這個文件裏最大存儲爲1000條命令
1000條命令是由系統自帶的環境變量決定的
3. # echo $HISTSIZE 環境變量HISTSIZE 決定了歷史命令的保存數量
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
我們剛敲過的命令暫時是存在內存裏面的,不會保存在歷史命令文件中,只有退出終端後 纔會保存在歷史命令文件中


4.變量HISTSIZE 去哪裏更改呢? 在 /etc/profile 中更改
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
HISTSIZE=1000
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
5. # source /etc/profile 更改數量之後需要運行這個命令纔會使我們更改的配置文件生效
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
6. # HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 定義格式 會記錄日期和時間
Y--年份 m--月份 d--日期 H--小時 M--分鐘 S--秒
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
如何更改命令格式的具體步驟哦~~~~
如果讓記錄時間和日期的歷史命令生效需要把這個命令放在 ---- # vi /etc/profile 中然後------把 # HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 放在HISTSIZE 下----- # source /etc/profile---重新打開終端--# echo $ HISTTIMEFORMAT---# history
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

讓命令歷史永久保存 我們可以給它增加一個隱藏的權限
7. # chattr +a ~/.bash_history 永久保存
給.bash_history加一個a權限,不能刪除,可以追加
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
只有當用戶正常退出當前shell時,在當前shell中運行的命令纔會保存至.bash_history文件中
正常退出 輸入 exit 或者 logout 可以正常退出 如果直接關閉服務器我們輸出的歷史命令是不會保存的
8.# !! :連續兩個!表示執行上一條命令(輸入的最後一個命令)

!n n代表數字 運行第n條命令

     # !echo: !echo表示執行命令歷史中最近一次以echo開頭的命令(從下往上找)

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.


8.3 命令補全和別名

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.


補全

1. tab鍵
不僅可以補全命令 也可以補全路徑(命令開頭 如果多的話要按兩下,)
2.# yum install -y bash-completion 參數補全需要安裝bash-completion
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
安裝完包之後 還需要重啓一下電腦 參數補全纔可以生效

reboot 重啓

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.


別名

1.alias 給命令重新起個名字

alias 別名='原本命令' 給命令更改別名

# unalias 別名  取消自定義的別名

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

alias 查詢alias 用法

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
2.配置別名的文件在什麼地方 第一個在用戶的家目錄下 # .bashrc 還有一些是在 /etc/profile.d/

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

8.4 通配符

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
1.# ls *.txt 星號用來匹配零個或多個任意字符
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
2.# ls ?. txt 問號表示一個字符
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
3.# ls [0-3].txt -------- [ ]裏面表示範圍,只要是在這個範圍內都列出來
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
4.# ls {1,2,,3}.txt ------------{ }這個也表示範圍,不過裏面的數字或者是字母要用 ,隔開
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

8.5 輸入輸出重定向

> 輸出 <輸入

cat 1.txt >2.txt 把1.txt的內容重定向到2.txt裏面 ( 2.txt裏面的文件就會刪除掉 重新寫入1.txt的內容 ,1.txt內容不變)
cat 1.txt >>2.txt 把1.txt的內容追加到2.txt裏面 ( 2.txt裏面的文件不會刪除並且追加寫入1.txt的內容 ,1.txt內容不變)
2> 錯誤重定向
2>>錯誤追加重定向
&> 正確和錯誤
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.
五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

wc -l < 1.txt 把1.txt的內容輸入到wc-l這條命令裏面去

右邊是文件   左邊只能是命令

五週第三次課 8.1 shell介紹 8.2 命令歷史 8.3 命令補全和別名 8.4 通配符 8.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章