我是靠谱客的博主 苹果网络,最近开发中收集的这篇文章主要介绍系统与管理命令--终端类命令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

最后

以上就是苹果网络为你收集整理的系统与管理命令--终端类命令的全部内容,希望文章能够帮你解决系统与管理命令--终端类命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部