在BSD系统上配置tty

时间:2019-01-28 19:23:06

标签: tty xterm bsd openbsd netbsd

对于在Linux debian-linux 4.19.0-1-amd64#1 SMP Debian 4.19.12-1(2018-12-22)x86_64 GNU / Linux和xfce上的命令,我得到了:

alain@debian-linux:~$ dbus-send --system --type=method_call --print-reply --dest
=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListActivatable  
Names

在带有xfce的OpenBSD LeOpenBSD 6.4 GENERIC.MP#364 amd64上的相同命令我得到了:

ktop/DBus org.freedesktop.DBus.ListActivatableNames   <

在linux上,在屏幕末尾,我们转到下一行。
在BSD(OpenBSD-NetBSD)上,命令行继续在同一行上,并且第一个单词消失了。
在xfce-terminal-emulator,xterm或TTY(Alt-Ctrl-F3)中是相同的

我尝试在defaut部分的gettytab中添加am,但无济于事。
Termcap手册页说:
如果在光标到达右边距时显示内容回绕到下一行的开头,则它应该具有am功能。
我该怎么办?

2 个答案:

答案 0 :(得分:1)

简短答案

如果您希望当前的shell没有此功能

set +o emacs

如果您想生成一个没有此功能的新外壳程序

ksh +o emacs

长答案

此行为主要是由于OpenBSD支持的外壳input interactive editing mode

  

在这些编辑模式下,如果一行的长度大于屏幕宽度(请参阅COLUMNS参数),则最后一列中将显示'>','+'或'<'字符,表示还有更多字符在当前位置之后,之前,之后或之前。该行将根据需要水平滚动。

如果要删除此功能,可以使用shksh中的set内置命令。您也可以在调用过程中使用+o

删除此标志

最后,如果要检查当前shell上是否启用了某些交互式编辑模式,则可以不带参数地调用set -oset +o。它将为您提供类似的信息,请使用set -o命令:

$ set -o
Current option settings
allexport      off  keyword        off  notify         off  verbose        off 
braceexpand    on   login          on   nounset        off  vi             off 
bgnice         off  markdirs       off  physical       off  viraw          off 
csh-history    off  monitor        on   posix          off  vi-show8       off 
emacs          off  noclobber      off  privileged     off  vi-tabcomplete on  
errexit        off  noexec         off  restricted     off  vi-esccomplete off 
gmacs          off  noglob         off  sh             off  xtrace         off 
ignoreeof      off  nohup          on   stdin          on   
interactive    on   nolog          off  trackall       off

,这里是set +o命令:

$ set +o
set +o allexport -o braceexpand +o bgnice +o csh-history +o emacs +o errexit 
+o gmacs +o ignoreeof -o interactive +o keyword -o login +o markdirs -o monitor 
+o noclobber +o noexec +o noglob -o nohup +o nolog +o notify +o nounset 
+o physical +o posix +o privileged +o restricted +o sh -o stdin +o trackall 
+o verbose +o vi +o viraw +o vi-show8 -o vi-tabcomplete +o vi-esccomplete 
+o xtrace

答案 1 :(得分:0)

我认为您实际描述的可能是Linux和大多数BSD所使用的两个截然不同的shell与它们截然不同的命令行编辑实现之间的区别。

这可能与各种终端仿真器实现之间的差异无关;也没有描述这些终端仿真的终端功能数据库之间的差异。

在BSD系统上,默认外壳程序的命令行编辑器根据光标的位置在屏幕的整个宽度上滚动整个画面。在某些Linux系统上,我已经看到默认外壳程序的命令行编辑器将长行换行以继续下一行。