Questions tagged «terminal»

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

2
程序如何输出到STDOUT / STDERR以外的其他位置?如何避免呢?
显然,我不知道所有可供使用的输出目标。我知道stdout(&1)和stderr(&2)。但是,在重定向两个描述符之后,有时我的控制台中仍然会输出一些输出! 我能想到的最简单的例子是GNU Parallel。每次使用它,我都会看到一个引用通知。即使我这样做&2>1 > file,我仍然会看到通知。 这同样适用于emerge:当我运行emerge并且存在一些问题时,某些信息不会被打印到stdoutnor上stdin,因为我将它们重定向并且仍然可以通过。 我主要使用来解决这些问题script,但我仍然想知道是什么导致了此问题。

3
终端的长度和宽度如何通过SSH和telnet转发?
当我查看终端仿真器的长度和宽度时,stty size它的长度为271个字符,高度为71行。当我通过SSH登录另一台服务器并执行时stty size,它的长度也为271个字符,高度为71行。我什至可以登录某些Cisco IOS设备,终端仍然长271个字符,高71行: C1841#show terminal | i Len|Wid Length: 71 lines, Width: 271 columns C1841# 现在,如果我在本地计算机上调整终端仿真器(Gnome终端)窗口的大小,则stty size远程服务器和IOS中的“显示终端”都将显示不同的行长和行数。终端的长度和宽度如何通过SSH和telnet转发?
15 ssh  terminal  telnet  stty 


4
在tmux和剪贴板之间复制/粘贴文本选择
我正在运行最新版本的tmux(来自git存储库)和xclip(0.12),并且我希望能够使用类似Emacs的键盘绑定在中的文本周围移动copy-mode,将(M-w)选择复制到剪贴板,以及粘贴(C-y从/)复制到复制缓冲区到剪贴板。 到目前为止,我已经能够使用粘贴文本C-y,并copy-mode使用类似Emacs的键盘绑定来移动文本,但是我仍然无法从tmux缓冲区复制文本(例如copy-mode) 我发现此线程可将整个缓冲区复制到剪贴板(反之亦然),但似乎不适用于我。 另外,在tmux-users邮件列表中,我被告知,最新版本的tmux(仅在git repo中)提供了一个名为的命令copy-pipe。手册页说明了有关此命令的以下内容: 中的一个命令接受一个参数copy-pipe,它复制选择并将其通过管道传递给命令。例如,以下将绑定“ C-q”以将选择内容复制到/ tmp以及粘贴缓冲区中: bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out" 看起来copy-pipe应该部分地用于将选择传递给另一个命令。在此说明和命令中似乎也有一些错别字(什么是temacs-copy?) 无论哪种方式,我想做的是: 复制中: 进入复印模式 移动到我想要使用Emacs导航命令(即复制的文本C-f,C-b,M-f,M-b,C-a,C-e等来移动光标)。没有任何前缀。 选定的文本复制到与剪贴板:M-w(无前缀要么) 贴上: 我希望能够键入C-y(而不必输入copy-mode)以将文本粘贴到终端中(也没有前缀) 我尝试了以下方法来运气不佳: bind-key -n M-w run "tmux save-buffer - | xclip -i -selection clipboard" 但是,粘贴效果很好: bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer" 奇怪的是,我知道xclip …

4
使用bash脚本获取控制台宽度
我遇到一个试图通过使用脚本来获取终端大小的问题。通常,我会tput cols在控制台内使用该命令,但是我希望能够通过严格使用脚本来完成此功能。 到目前为止,我能够检测正在运行的控制台并获取其文件路径。但是,我正在努力使用此信息来获取控制台的宽度。我尝试使用命令tput,但是我对Linux /脚本是相当陌生的,因此并不真正知道该怎么做。 这样做的原因是我希望能够设置一个cron条目,每隔一段时间就通知控制台其宽度/列。 到目前为止,这是我的代码: tty.sh #!/bin/bash #Get PID of terminal #terminal.txt holds most recent PID of console in use value=$(</home/test/Documents/terminal.txt) #Get tty using the PID from terminal.txt TERMINAL="$(ps h -p $value -o tty)" echo $TERMINAL #Use tty to get full filepath for terminal in use TERMINALPATH=/dev/$TERMINAL echo $TERMINALPATH …

4
zsh可以访问上次运行程序的标准输出吗?
我经常使用find或locate查找有关路径的信息。 (~) locate foobar.mmpz /home/progo/lmms/projects/foobar.mmpz 下一步通常是打开文件或以其他方式操作文件。在像上面这样的快乐情况下,我可以这样做: (~) ls `!!` ls `locate foobar.mmpz` /home/progo/lmms/projects/foobar.mmpz 但是,当有许多行输出时,没有人会太高兴,其中某些行可能不是路径或其他类似的东西。此外,重新运行可能浪费的命令也不是一件容易的事。 是否有办法连接zsh将stdout存储到数组中以供以后处理?毕竟,将流重定向到用户是Shell的工作。我在想它可以将前N行和后N行存储在变量中,以便像$?其他变量一样立即使用。 好的,这很酷:https : //unix.stackexchange.com/a/59704/5674。我现在正在询问有关zsh的专门知识(并将代码移植到zsh),以便在每次运行后都进行这种捕获。
15 terminal  zsh  output 


4
复制并粘贴到终端中,无需SHIFT
我所知道的所有终端仿真器Ctrl都用于发送控制代码,例如Ctrl+ C和Ctrl+ Z。在大多数系统上,这与常见的键盘快捷键冲突。 因此,在除OS X之外的所有这些系统上,CtrlShift都用于复制粘贴等等,我发现这确实很烦人。如果每次我不小心打开Firefox检查器时都得到一分钱,我会很富有。 我试图模仿苹果使用Cmd键盘快捷键的行为,但这实际上不可能在整个台式机上实现。 另一种选择是使用另一种组合来发送控制代码。是否有任何支持此功能的终端模拟器? 我发现Sakura允许为按键组合设置修改器,但不能为控制字符设置修改器。另一个理想的功能是不混乱的换行,但这是次要的。

5
在终端中打开一个文本文件,并在更改后自动刷新它
每次更改时,如何在终端中打开具有即时自动刷新功能的文本文件? 我看vim有:set autoread,但它需要一些基本的输入(如按键内vim),以触发刷新。 我希望自动刷新免提。是否有一些技巧可以做到这一点? 我正在使用Crunchbang 11,但对终端非常满意。
15 terminal  text 

2
全屏应用后清除GNU屏幕
在正常的xterm(不确定“真正的”终端)上工作时,关闭诸如man或vim之类的全屏程序时,它会消失,并离开屏幕,以便您可以看到您的提示以及以前的提示,包括您在何处启动了关闭的程序。 但是,当我在GNU屏幕上运行时,关闭程序时不会清除它,而只是向上移动以显示提示。对我来说,这很丑陋,我想知道是否可以恢复“正常”行为。 我知道我可以自己手动清除屏幕,但是a)我不想清除屏幕,b)会导致屏幕完全清晰,而不是我想要的(虽然可能更好,但如果效果还不错) 。

5
如何调用前一个命令(不执行)以进行更改?
我不记得在不运行命令的情况下可以获得最后一个命令的技巧: 假设我希望能够在按向上箭头键并修改命令时访问命令!1255。那么,调用该命令,使其在命令行中显示但不执行,然后通过向上箭头键进行访问的诀窍是什么呢? 我尝试放置回显,但是在命令之前有一个回显,我不记得如何正确执行它。

5
Ubuntu的老式终端
因此,我刚被介绍给Cathode for OSX,我完全被它1970年代的复古风格所吸引。有谁知道我可以下载的任何程序/软件包以使我的终端具有如此出色的外观?如果没有可用的软件包,是否存在可以在Ubuntu 14.04终端上更改的设置? 对于那些不了解阴极的人,我将发布一张图像,以提及我希望在终端上拥有的图像: 可在以下链接上找到有关阴极的详细信息: 阴极信息

6
Telnet发送Ctrl-C
我使用telnet连接到终端服务器,该服务器代理到RS-232端口的通信。 不幸的是,在使用某些设备时,无法发送CTRL+ C字符(0x03)。似乎没有发送字符,而是本地客户端捕获了击键,而我处于“其他模式”。我想要的只是发送一个角色。 为了调试,我一直在玩: ^] toggle termdata 和 ^] toggle options 当我在不起作用的终端服务器上按CTRL+ 时,会发生以下情况C: telnet 10.10.129.101 2012 Trying 10.10.129.101... Connected to termserv-val3 (10.10.129.101). Escape character is '^]'. ^] telnet> toggle options Will show option processing. ^] telnet> toggle termdata Will print hexadecimal representation of terminal traffic. SENT IAC IP SENT DO …

4
从ncurses应用程序调用的脚本输出中的转义序列
我目前正在我的家庭服务器上的tmux会话中将mcabber作为我的Jabber客户端(使用ncurses)运行。我在本地将iTerm2作为终端仿真器运行,它支持通过字符转义序列触发咆哮通知。 注意:echo此问题中的所有内容都类似printf %b,或echo -e在bash和GNU中工作echo。 例如,echo "\e]9;foobar\007"使iTerm2发送带有文本“ foobar”的Growl消息。 但是,在tmux会话中,转义序列会被吃掉。因此,\Ptmux可以像这样使用专有字符转义序列: echo "\ePtmux;\e\e]9;foobar\007\e\\" 这会在tmux会话中触发咆哮消息。 但是,当我在收到新消息时触发的mcabber事件脚本中使用此命令时,不会触发任何通知,就像将回声发送到错误的终端一样。 我想这与触发脚本的mcabber有关,它是一个ncurses应用程序,因此我普通bash脚本的输出丢失了,而iTerm 2却看不到它。 在回应发现的一些想法之前,我还尝试打电话给打sm而未成功 tput smcup echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\" tput rmcup 我想这不起作用,因为问题不是切换回“真实终端窗口”,而是将输出直接定向到ncurses窗口。 关于这个有什么想法吗?

3
如何记录我在终端中输入的所有内容
我是一个刚开始学习Fedora 13的新手,我只是想知道是否有可能将我在终端中键入的内容重定向到文件,以便我可以从文件中看到特定的命令给出了此输出。 因此,无论我做什么,都应将其保存到文件中。

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.