Questions tagged «terminal»

终端是文本输入/输出的环境。在终端内部,运行命令行和文本模式程序(包括shell)。

3
哪些终端仿真器支持tmux控制模式?
tmux具有通过激活的控制模式,-CC以允许终端仿真器控制tmux。iTerm2使用此功能效果非常好,允许tmux窗口显示为单独的iTerm窗口。 还有其他支持控制模式的终端仿真器吗?我对Windows的终端仿真器/ SSH客户端可能会提供这种功能特别感兴趣,但是Linux / Unix也很有趣。
33 terminal  tmux  iterm 

3
使用变量存储PS1的终端颜色代码?
在我的文章中.bashrc,我使用ANSI终端颜色代码对各个位进行着色。看起来像这样: PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ ' 其中virtual_env和git_branch是在stdout上输出内容的bash函数。 现在,为了使其更易于阅读和修改,我想将颜色代码存储在变量中并对其进行引用,而不是将它们直接嵌入PS1。所以我有一堆这样的变量: GREEN="\[\033[32m\]" YELLOW="\[\033[33m\]" RESET="\[\033[0m\]" 我希望能够编写如下内容: PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ ' 但这是行不通的-提示中会显示颜色代码,就像逃脱了一样。如果我使用双引号代替PS1,则颜色可以正常工作,但是提示仅在我这样做时才会更改source ~/.bashrc。 我已经试过我见过的人做其他事情-使用printf,使用单引号的颜色,把\[和\]中PS1,而不是颜色可变的,但似乎没有任何工作。 如何将变量用于颜色代码?

6
清除命令如何工作?
最近,我试图了解有关Shell如何工作的更多信息,并正在研究clear命令的工作方式。该可执行文件位于其中,/usr/bin/clear它似乎打印出一堆空行(等于终端的高度),并将光标置于终端的左上角。 无论终端的大小如何,命令的输出始终相同: $ clear | hexdump -C 00000000 1b 5b 48 1b 5b 32 4a |.[H.[2J| 00000007 并可以使用具有完全相同效果的回声进行复制: $ /bin/echo -e "\x1b\x5b\x48\x1b\x5b\x32\x4a\c" 我真的很好奇这个命令的输出如何转换为清除控制台。
33 shell  terminal 

15
如何在多个选项卡/外壳中同时运行同一Linux命令?
Linux中是否有任何工具/命令可用于在多个选项卡中同时运行命令?我想运行相同的命令:./myprog argument1 argument2同时在多个shell中检查互斥对象在线程程序中是否工作正常。我希望能够增加该程序的实例数量,以便以后使我的代码承受压力。 我有点在寻找像墙一样的东西。我可以考虑使用tty,但是如果我不得不将其扩展到更多的shell的话,这似乎很痛苦。

2
Linux终端如何工作?
如果启动一个终端并调用一个可执行文件(为简单起见,假设它是面向行的),您将从可执行文件中得到对该命令的答复。如何打印给您(用户)?终端会做类似的事情pexpect吗?(轮询等待输出)还是什么?如何通知要输出的输出?终端如何启动程序?(这类似于python的os.fork()吗?)我不知道终端的工作方式,我一直在使用一些终端仿真器,但我仍然不了解所有这些魔术如何工作。我正在查看konsole(kde)和yakuake(可能使用konsole)的来源,我无法了解发生所有魔术的地方。

3
强制GNU屏幕在重新连接时回流到当前端子宽度?
重新连接会话时,我想强制将GNU屏幕重排到现有的终端宽度。在我看来,在将机器升级到CentOS 6之前,这可以正常工作,但是我不知道如何还原它。(TERM=xterm) 每当我重新连接会话时,无论断开会话时处于什么状态,它都会在80列处启动,并同时调整终端的大小(在本例中为Puty)。 我要启动并重新连接: screen -aA -R <session> 我的.screenrc仅包含以下内容以及一些无关的键绑定: term xterm defscrollback 10000 # status line at the bottom hardstatus on hardstatus alwayslastline hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l" caption splitonly "%{.yK}%3n t" caption string "%{.c0}%3n %t" vbell off # Fix fullscreen …


5
如何知道我所处的炮弹的“高度”?
如果我打开一个终端,xterm我将拥有一个外壳。然后,如果我使用ssh或zsh我将有另一个“级别”的外壳程序。有没有办法知道我必须退出Ctrl+D或键入多少次exit才能退出所有这些?我的真正意图是退出除“ root”外壳程序之外的所有内容。 知道终端多路复用器(如screen)对解决方案有什么影响也将是一件很高兴的事情。 PS:请随时更改标题,我不知道这些术语是否正确。
32 shell  terminal 

4
X应用程序在stderr上警告“无法连接到辅助功能总线:”
似乎终端上的每个应用程序都会发出警告和错误消息,即使它运行正常。 Emacs: ** (emacs:5004): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-xxfluS2Izg: Connection refused 表明: ** (evince:5052): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-xxfluS2Izg: Connection refused (evince:4985): Gtk-CRITICAL **: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed (evince:4985): Gtk-CRITICAL **: gtk_widget_show: assertion …
30 terminal  x11  gtk  stderr  bugs 




5
为什么Vim颜色在tmux内部和外部看起来有所不同?
环境: Fedora 25(4.9.12-200.fc25.x86_64) GNOME终端3.22.1使用VTE版本0.46.1 + GNUTLS VIM-Vi IMproved 8.0(2016年9月12日,2017年2月22日16:26:11编译) tmux 2.2 我最近开始使用tmux,并且观察到Vim中的颜色会根据我在tmux内部还是外部运行而变化。下面是查看Git差异时Vim在tmux外部(左)和内部(右)的屏幕截图: 我的TERM变量是 外部tmux: xterm-256color 内部tmux: screen-256color Vim按预期(通过:set term?)报告以下终端类型: 外部tmux: term=xterm-256color 内部tmux: term=screen-256color Vim还报告两个实例都以256色模式运行(通过:set t_Co?): 外部tmux: t_Co=256 内部tmux: t_Co=256 关于让Vim在tmux中以256色模式运行(我发现最好的答案是在这里),还有很多类似的问题,但是鉴于以上信息,我认为这不是我的问题。 如果我在终端类型设置为Vim的情况下运行Vim,则可以在tmux之外复制该问题screen-256color: $ TERM=screen-256color vim 因此,我认为xterm-256color和screen-256color终端功能之间仅存在一些差异会导致颜色差异。这就引起了标题中提出的问题:终端功能中的哪些特定因素导致Vim颜色不同? 我看到了在:set termcap内部和外部运行tmux 之间的差异,但是我很好奇哪个变量实际上导致了行为上的差异。 与上一个问题无关,在tmux内部或外部运行时,Vim颜色是否可以保持一致? 我尝试过的一些事情包括: 显式地将默认终端tmux使用设置~/.tmux.conf为各种值(有些违反了tmux FAQ的建议): 设置-g默认终端“ screen-256color” 设置-g默认终端“ xterm-256color” 设置-g默认终端“ screen.xterm-256color” 设置-g默认终端“ tmux-256color” …
29 terminal  vim  tmux  colors 


4
有没有一种方法可以锁定命令行?
例如,在X会话,我可以使用Ctrl- Alt- L锁屏,所以它会要求输入密码来解锁,并防止有人从我的电脑搞乱。 但是,如果我在一个有开放终端会话的tty的(我可以访问Ctrl- - Alt,F1例如) -那么它没有被锁定,有人仍然可以用它做一些伤害。有没有一种方法可以“锁定”该命令行(可能在其中运行一些后台进程)?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.