Linux Shell 用法(一)5.採集終端信息

採集終端信息

編寫命令行shell腳本時,總是免不了處理當前終端的相關信息,比如行數、列數、光標位置、遮蓋的密碼字段等。tput和stty是兩款終端處理工具。
下面是一些tput命令的功能演示。

  1. 獲取終端的行數和列數:
tput cols
tput lines
  1. 打印出當前的終端名:
tput longname
  1. 將光標移動到座標(100,100)處:
tput cup 100 100
  1. 設置終端背景色:
tput setb n

其中,n可以在0到7之間取值。

  1. 設置終端前景色:
tput setf n

其中,n可以在0到7之間取值

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

tput bold

7.設置下劃線的起止:

tput smul
tput rmul

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

tput ed

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


#!/bin/sh
#Filename: password.sh echo -e "Enter password: " # 在讀取密碼前禁止回顯
stty -echo
read password
# 重新允許回顯
stty echo
echo
echo Password read.

stty命令的選項-echo禁止將輸出發送到終端,而選項echo則允許發送輸出。

別名

別名就是一種便捷方式,可以爲用戶省去輸入一長串命令序列的麻煩。下面我們會看到如何
使用alias命令創建別名。
(1) 創建別名。

$ alias new_command='command sequence'

下面的命令爲apt-get install創建了一個別名:

$ alias install='sudo apt-get install' 

定義好別名之後,我們就可以用install來代替sudo apt-get install了。
(2) alias命令的效果只是暫時的。一旦關閉當前終端,所有設置過的別名就失效了。爲了 使別名在所有的shell中都可用,可以將其定義放入~/.bashrc文件中。每當一個新的交互式 shell進程生成時,都會執行 ~/.bashrc中的命令。

$ echo 'alias cmd="command seq"' >> ~/.bashrc

(3) 如果需要刪除別名,只需將其對應的定義(如果有的話)從~/.bashrc中刪除,或者使用 unalias命令。也可以使用alias example=,這會取消別名example。
(4) 我們可以創建一個別名rm,它能夠刪除原始文件,同時在backup目錄中保留副本。

alias rm='cp $@ ~/backup && rm $@'

(5)忽略當前定義的別名

$ \command

(6)列舉別名
alias命令可以列出當前定義的所有別名:

$ aliasalias lc='ls -color=auto'

alias ll=‘ls -l’
alias vi=‘vim’

發佈了44 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章