标签: escape-characters

如何在shell中转义引号?

我在 bash 中转义字符时遇到问题。我想在不同用户下运行命令时转义单引号和双引号。出于这个问题的目的,假设我想在屏幕上回显以下内容:

'single quote phrase' "double quote phrase"
Run Code Online (Sandbox Code Playgroud)

如果我还需要切换到其他用户,我该如何转义所有特殊字符:

sudo su USER -c "echo \"'single quote phrase' \"double quote phrase\"\""
Run Code Online (Sandbox Code Playgroud)

当然,这不会产生正确的结果。

shell quoting escape-characters

113
推荐指数
4
解决办法
31万
查看次数

Vim 对复制粘贴攻击免疫吗?

永远不应该从 web 粘贴到你的终端。相反,您应该粘贴到文本编辑器,检查命令,然后粘贴到终端。

没关系,但是如果 Vim 是我的文本编辑器呢?是否可以伪造将 Vim 切换到命令模式并执行恶意命令的内容?

security vim special-characters clipboard escape-characters

113
推荐指数
1
解决办法
9863
查看次数

为什么 Ctrl-D (EOF) 退出 shell?

您是否真的通过输入此转义序列来“结束文件”,即交互式 shell 会话是否被 shell 视为真正的文件流,就像任何其他文件流一样?如果是,是哪个文件?

或者,Ctrl+D信号只是一个占位符,表示“用户已完成输入,您可以终止”?

shell escape-characters

89
推荐指数
2
解决办法
11万
查看次数

从脚本输出中删除控制字符(包括控制台代码/颜色)

我可以使用“脚本”命令在命令行记录交互式会话。但是,这包括所有控制字符颜色代码。我可以使用“col -b”删除控制字符(如退格键),但找不到删除颜色代码的简单方法。

请注意,我想以正常方式使用命令行,所以不想在那里禁用颜色 - 我只想从脚本输出中删除它们。此外,我知道可以尝试并尝试找到一个正则表达式来解决问题,但我希望有一个更简单(更可靠 - 如果我在开发正则表达式时不知道代码怎么办?)解决方案。

要显示问题:

spl62 tmp:脚本
脚本启动,文件是打字稿
spl62 lepl: ls
add-licence.sed build-example.sh commit-test push-docs.sh
add-licence.sh build.sh delete-licence.sed setup.py
asn build-test.sh delete-licence.sh src
build-doc.sh 清理 doc-src test.ini
spl62 lepl:退出
脚本完成,文件是打字稿
spl62 tmp: cat -v 打字稿
脚本开始于 2011 年 6 月 9 日星期四上午 09:47:27 CLT
spl62 lepl: ls^M
^[[0m^[[00madd-licence.sed^[[0m ^[[00;32mbuild-example.sh^[[0m ^[[00mcommit-test^[[0m ^[[00;32mpush-docs.sh] ^[[0米^米
^[[00;32madd-licence.sh^[[0m ^[[00;32mbuild.sh^[[0m ^[[00mdelete-licence.sed^[[0m ^[[00msetup.py^[[0m^M]
^[[01;34masn^[[0m ^[[00;32mbuild-test.sh^[[0m ^[[00;32mdelete-licence.sh^[[0m ^[[01;34msrc^[[0m^M]
^[[00;32mbuild-doc.sh^[[0m ^[[00;32mclean^[[0m ^[[01;34mdoc-src^[[0m ^[[00mtest.ini^[[0m^M]
spl62 lepl: 退出^M

脚本完成于 2011 年 6 月 9 日星期四上午 09:47:29 …

colors terminal text-processing escape-characters typescript

80
推荐指数
6
解决办法
6万
查看次数

如何清除 Gnome 终端历史记录?

当我们在终端中使用clearcommand 或Ctrl+L时,它会清除终端,但我们仍然可以回滚以查看上次使用的命令。有没有办法彻底清除终端?

command-history terminal gnome-terminal escape-characters

59
推荐指数
4
解决办法
7万
查看次数

在哪里可以找到用于在 bash 中重新映射快捷方式的终端键代码列表?

例如:

"\e[1;5C"
"\e[Z"
"\e-1\C-i"
Run Code Online (Sandbox Code Playgroud)

我只知道点点滴滴,比如\e代表转义和C-Ctrl,但这些数字 ( 1) 和字母 ( Z) 是什么?什么;[-迹象?

是否只有反复试验,或者是否有完整的 bash 键代码列表及其语法解释?

keyboard-shortcuts terminal readline escape-characters

53
推荐指数
3
解决办法
3万
查看次数

当我在控制台登录屏幕上按向上箭头时,我得到 ^[[A 有什么原因吗?

每当我在控制台登录时,我都会up故意按箭头以查看以前键入的命令。但我看到了这一点^[[A

但是当我Ctrl Alt Print Screen Scroll Lock Pause Break Page Up Page Down Win按键时没有回显任何字符。

背后的原因可能是什么?

^[[A某种字符是否意味着什么?

在此处输入图片说明

linux login keyboard escape-characters console

45
推荐指数
4
解决办法
4万
查看次数

当我通过管道传输到另一个进程时,我的 ANSI 转义码去哪里了?我可以保留它们吗?

有时我想通过管道传输进程的颜色编码输出,例如。grep ...但是当我将它输送到另一个进程时,例如。sed,颜色代码丢失了......

有什么方法可以保持这些代码完好无损吗?

这是一个丢失彩色输出的示例:

echo barney | grep barney | sed -n 1,$\ p   
Run Code Online (Sandbox Code Playgroud)

command-line colors pipe escape-characters

41
推荐指数
1
解决办法
8338
查看次数

退出后,某些工具(例如 nano ,less)如何设法在终端中不留下任何内容?

每当我在 shell 中使用类似寻呼机less或编辑器nano(我的 shell 是 GNU bash)时,我都会看到一种我无法完全解释的行为,这与我可以使用其他工具(如catls. 我想问一下这种行为是怎么产生的。

不容易解释的行为是,通常所有输出到 stdout/stderr 最终都被记录在终端模拟器后台缓冲区中,所以我可以向后滚动,而在使用lessor的情况下(对我来说不太正常)nano,输出由终端模拟器显示,但在退出程序时,内容“神奇地消失”。

我想举两个例子:

  • seq 1 200 (在后台缓冲区中生成 200 行)
  • seq 1 200 | less (让我翻页 200 行,但最终“清理”并在后台缓冲区中没有记录任何内容)

我的怀疑是某种转义代码在起作用,我很感激有人指出我对这种观察到的行为差异的解释。

由于一些评论和答案是措辞的,就好像我希望改变行为一样,这“很高兴知道”,但实际上所需的答案应该是对机制的描述,而不是改变它的方法。

pager terminal escape-characters

41
推荐指数
3
解决办法
2948
查看次数

如何让终端以粗体显示user@machine?

我在一些屏幕截图(不记得网络上的哪个位置)中看到终端可以[username@machine /]$用粗体显示。我也很期待得到这个,因为我总是发现自己在长输出中滚动,很难找到我命令后的第一行。

如何使用户名等为粗体或彩色?

bash prompt escape-characters

35
推荐指数
3
解决办法
8万
查看次数