系统与管理命令--终端类命令

tty

  显示当前用户终端的名字. 注意每一个单独的xterm 窗口都被算作一个不同的终端.

bash$ tty
/dev/pts/1

stty

  stty命令修改终端命令行的相关设置.

  语法

stty (选项)(参数)

  选项

-a: 以容易阅读的方式打印当前的所有配置.
-g: 以stty可读方式打印当前的所有配置.

  参数
  终端设置:指定终端命令行的设置选项.

  实例

# 在命令行下,禁止输出大写的方法:
stty inclc          # 开启
stty -inclc         # 关闭

# 在命令行下禁止输出小写:
stty olcuc          # 开启
stty -olcuc         # 关闭

# 打印出终端的行数和列数:
stty size

# 改变Ctrl+D的方法:
stty eof "string"
# 系统默认是Ctrl+D来表示文件的结束,而通过这种方法,可以改变!

# 屏蔽显示.
stty -echo          # 禁止回显
stty echo           # 打开回显

# 测试方法:
stty -echo; read; stty echo; read

# 忽略回车符:
stty igncr          # 开启
stty -igncr         # 恢复

# 定时输入:
timeout_read()
{
    timeout=$1
    old_stty_settings=`stty -g`
    stty -icanon min 0 time 100
    eval read varname
    stty "$old_stty_settings"
}

# 更简单的方法就是利用read命令的-t选项:
read -t 10 varname

例:设置一个擦除字符.

#!/bin/bash
#erase.sh: 在读取输入时使用"stty"来设置一个擦除字符.

echo -n "What's your name? "
read name                       # 试试使用退格键来删除输入的字符.

echo "Your name is $name."

stty erase '#'                  # 将"hashmark"(#)设置为退格字符.
echo -n "what's your name? "
read name                       # 使用#来删除最后键入的字符.
echo "Your name is $name."

stty erase '^?'                 # 警告:即使在脚本退出后,新的键入值还是保持着这个设置
                                #+可以使用stty erase '^#'进行恢复.

exit 0 

例:保护密码:关闭终端对于密码的echo.

#!/bin/bash
# secret_pw.sh: 保护密码不被显示.

echo
echo -n "Enter password: "
read passwd
echo
echo "Password is $passwd."

echo && echo                        # 在一个"与列表"中产生两个换行.

stty -echo                          # 关闭屏幕的echo.

echo -n "Enter password: "
read passwd
echo
echo "Password is $passwd."
echo

stty echo                           # 回复屏幕的echo.

exit 0

例:按键检测.

#!/bin/bash
# keypress.sh: 检测用户按键("hot keys").

echo

old_tty_settings=$(stty -g)            # 保持老的设置.
stty -icanon
keypress=$(head -c1)				# 或者使用$(dd bs=1 count=1 2>/dev/null)

# head -c1    是数字1不是字母l.  head -c1 ???
echo
echo "Key pressed was \"$keypress\" "
echo

stty "$old_tty_settings"           # 恢复原来的设置.

exit 0

setterm

  设置特定的终端属性. 这个命令将向它所在终端的 stdout 发送一个字符串, 这个字符串将修改终端的行为.

bash$ setterm -cursor off
bash$
bash$ setterm -cursor on
bash$_

  setterm命令可以放在脚本中用来修改写入到 stdout 上的文本的外观.


tset

  显示或初始化终端设置. 可以把它看成一个功能比较弱的stty命令.

tset -r
Terminal type is xterm-256color. 

setserial

  设置或者显示串口参数. 这个脚本只能被root用户来运行, 并且通常都在系统安装脚本中使用.


getty, agetty

  一个终端的初始化过程通常都是使用getty或agetty来建立, 这样才能让用户登录. 这些命令并不用在用户的shell脚本中. 它们的行为与stty很相似.


mesg

  mesg命令用于设置当前终端的写权限,即是否让其他用户向本终端发信息 . 将mesg设置y时,其他用户可利用write命令将信息直接显示在您的屏幕上.

  i 当你正在编写文本文件的时候, 在文本中间突然来了一个莫名其妙的消息,你会觉得非常烦人. 在多用户的网络环境下, 如果你不想被打断, 那么你必须关闭其他用户对你终端的写权限.

  语法

mesg (参数)

  参数
  y/n: y表示运行当前终端写信息,n表示禁止向当前终端写信息.

  实例

root# mesg y    # 允许系统用户将信息直接显示在你的屏幕上.
root# mesg n    # 不允许系统用户将信息直接显示在你的屏幕上.

wall

  wall命令用于向系统当前所有打开的终端上输出信息 . 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户.(比如:当系统有问题的时候, 管理可以警告系统上的所有人暂时离开)

  ! 如果某个特定终端使用mesg来禁止了写权限, 那么wall将不会给它发消息.

  语法

wall (参数)

  参数
  消息: 指定广播消息.

  实例

root# wall this is a test line

Broadcast message from root (pts/1) (Fri Dec 20 11:36:51 2013):

this is a test line
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值