shell基礎知識4--別名、採集終端信息

別名就是一種便捷方式,能夠爲用戶省去輸入一長串命令序列的麻煩。下面咱們會看到如何
使用 alias 命令建立別名。
直接使用alias就是顯示當前有哪些別名,不然就是建立別名node

[root@dns-node2 ~]# alias   # 顯示別名
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'

[root@dns-node2 ~]# alias mycmd='ls /root'  # 建立別名
[root@dns-node2 ~]# mycmd
anaconda-ks.cfg  Desktop  Documents  Downloads  install.log

在命令行建立別名是暫時的,一旦關閉當前這個終端,設置過的別名就失效了,爲了永久生效,咱們須要導入到/etc/profile 或者~/.bashrc下shell

[root@dns-node2 ~]# echo "alias mycmd='ls /root'" >>/root/.bashrc

想要破解別名的話,就使用\來轉義
舉個例子:bash

[root@dns-node2 ~]# \mycmd
-bash: mycmd: command not found
[root@dns-node2 ~]# \ls  # 非別名是無效的即便加上\
anaconda-ks.cfg  Desktop  Documents  Downloads  install.log  install.log.syslog  Music  ossec-hids-2.8.3  ossec-hids-2.8.3.tar.gz  Pictures  Public  Templates  Videos
[root@dns-node2 ~]# \ll
-bash: ll: command not found

採集終端信息

編寫命令行shell腳本時,老是免不了處理當前終端的相關信息,好比行數、列數、光標位置、
遮蓋的密碼字段等。
tput 和 stty 是兩款不錯的工具ide

tput

1.獲取終端的行數和列數:工具

tput cols
tput lines

2.打印出當前的終端名:命令行

tput longname

3.將光標移動到座標(100,100)處:code

tput cup 100 100

4.設置終端背景色:dns

tput setb n

其中, n 能夠在0到7之間取值。
5.設置終端前景色:cmd

tput setf n

其中, n 能夠在0到7之間取值。file

6.設置文本樣式爲粗體:

tput bold

7.設置下劃線的起止:

tput smul
tput rmul

8.刪除從當前光標位置到行尾的全部內容:

tput ed

9.輸入密碼時,腳本不該該顯示輸入內容。在下面的例子中,咱們將看到如何使用 stty 來
實現這一需求:

stty -echo  # 此時隱藏全部的輸入
stty echo   # 顯示全部的

9.1.具體參考的例子:

#!/bin/sh
#Filename: password.sh
echo -e "Enter password: "
#  在讀取密碼前禁止回顯
stty -echo
read password
#  從新容許回顯
stty echo
echo
echo Password read
有趣的倒計時
#!/bin/bash
#文件名: sleep.sh
echo 倒計時10秒
echo 
tput sc    # 存儲光標的位置
# 循環40秒
for count in {10..0}
do
    tput rc   # 恢復以前存儲的光標的位置
    tput ed   # 清除從當前光標位置到行尾之間的全部內容,行被清空以後,腳本就能夠顯示出新的值。
    echo -n "倒計時 $count"
    sleep 1
done
相關文章
相關標籤/搜索