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

来源:互联网 发布:淘宝女装好店铺推荐 编辑:程序博客网 时间:2024/06/05 17:51

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: 保护密码不被显示.echoecho -n "Enter password: "read passwdechoecho "Password is $passwd."echo && echo                        # 在一个"与列表"中产生两个换行.stty -echo                          # 关闭屏幕的echo.echo -n "Enter password: "read passwdechoecho "Password is $passwd."echostty echo                           # 回复屏幕的echo.exit 0

例:按键检测.

#!/bin/bash# keypress.sh: 检测用户按键("hot keys").echoold_tty_settings=$(stty -g)            # 保持老的设置.stty -icanonkeypress=$(head -c1)# 或者使用$(dd bs=1 count=1 2>/dev/null)# head -c1    是数字1不是字母l.  head -c1 ???echoecho "Key pressed was \"$keypress\" "echostty "$old_tty_settings"           # 恢复原来的设置.exit 0

setterm

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

bash$ setterm -cursor offbash$bash$ setterm -cursor onbash$_

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


tset

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

tset -rTerminal 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 lineBroadcast message from root (pts/1) (Fri Dec 20 11:36:51 2013):this is a test line
原创粉丝点击