我是靠谱客的博主 苹果网络,这篇文章主要介绍系统与管理命令--终端类命令,现在分享给大家,希望可以做个参考。

tty

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

复制代码
1
2
bash$ tty /dev/pts/1

stty

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

  语法

复制代码
1
stty (选项)(参数)

  选项

复制代码
1
2
-a: 以容易阅读的方式打印当前的所有配置. -g: 以stty可读方式打印当前的所有配置.

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

  实例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 在命令行下,禁止输出大写的方法: 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

例:设置一个擦除字符.

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/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.

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/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

例:按键检测.

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/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 发送一个字符串, 这个字符串将修改终端的行为.

复制代码
1
2
3
4
bash$ setterm -cursor off bash$ bash$ setterm -cursor on bash$_

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


tset

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

复制代码
1
2
tset -r Terminal type is xterm-256color.

setserial

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


getty, agetty

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


mesg

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

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

  语法

复制代码
1
mesg (参数)

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

  实例

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

wall

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

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

  语法

复制代码
1
wall (参数)

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

  实例

复制代码
1
2
3
4
5
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

最后

以上就是苹果网络最近收集整理的关于系统与管理命令--终端类命令的全部内容,更多相关系统与管理命令--终端类命令内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部