标签: shell

为什么有时我会在 shell 上看到奇怪的退格行为?

我使用 bash shell,有时突然,我的Backspace钥匙停止工作(当这种情况发生时Ctrl+Backspace仍然工作正常)

我不确定为什么会发生这种情况,但它也会延续到我从 shell 使用的任何 vim 会话。令我惊讶的是,获得一个新的外壳并没有帮助,而且问题似乎像开始时一样突然消失。

这就是键入的字符的样子,每次按键都会在外壳Backspace上显示为^?

$ cat filem^?namr^?e
Run Code Online (Sandbox Code Playgroud)

有人知道可能会发生什么吗?我怎样才能恢复正常行为?

linux unix bash shell backspace

3
推荐指数
1
解决办法
6311
查看次数

scp 包含要复制到不同主机、从不同主机或在不同主机之间复制的文件范围

工作正常:

==> scp my_log-bin.01393[0-9] root@192.168.103.66:/backup/  
Run Code Online (Sandbox Code Playgroud)

错误 - 没有这样的文件或目录:

==> scp my_log-bin.0139[30-99] root@192.168.103.66:/backup/ 
Run Code Online (Sandbox Code Playgroud)

linux shell

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

使用目录列表从文件中删除目录

我在文本文件中有一个目录列表,每个目录都需要删除。我如何将该列表读入命令(rm -rrmdir)?

bash shell rm

3
推荐指数
1
解决办法
5927
查看次数

比较并忽略一个文件中缺少的行

我想比较两个文件并忽略一个文件中存在但另一个文件中缺失的行。

例如

文件1:

foo
bar
baz
bat
Run Code Online (Sandbox Code Playgroud)

文件2:

foo
ball
bat
Run Code Online (Sandbox Code Playgroud)

我当前正在运行以下 diff 命令

diff File1 File2 --changed-group-format='%>' --unchanged-group-format=''
Run Code Online (Sandbox Code Playgroud)

在这种情况下会产生

bar
baz
Run Code Online (Sandbox Code Playgroud)

作为输出,即仅缺少或冲突的行。我只想打印冲突的行,即忽略 File2 中缺少一行而 File1 中存在一行的情况(而不是相反)。有什么方法可以使用 diff 来做这样的事情还是我必须求助于其他工具?如果是这样,你会推荐什么?

cygwin bash diff shell

3
推荐指数
1
解决办法
5376
查看次数

动态构建 shell 变量

我需要动态创建变量名,如下所示(简化示例):

#!/bin/sh

IDX=1
SERIES1="a b c d e f g"
SERIES2="h i j k l m n"

# How to get this value contains $SERIES1 or $SERIES2
# depending on the value of $IDX
CURRENT=${SERIES\${IDX}} # doesn't work, just an example
Run Code Online (Sandbox Code Playgroud)

如果IDX=1我期望有

echo $CURRENT
Run Code Online (Sandbox Code Playgroud)

显示

a b c d e f g
Run Code Online (Sandbox Code Playgroud)

如果IDX=2要显示

h i j k l m n
Run Code Online (Sandbox Code Playgroud)

我需要在循环中使用它来处理来自另一个脚本的不确定数量的 SERIES。

编辑 目前使用shshell,但如果需要,我可以使用不同的 shell(即使这意味着我可能需要转换一些东西,但没关系)

我的问题是:如何将所需的系列分配给CURRENT

我尝试了什么?上面的例子(不起作用)和其他风格,例如:

CURRENT=$${SERIES$${IDX}}
CURRENT=${SERIES${IDX}}
Run Code Online (Sandbox Code Playgroud)

编辑2

我正在去某件事的路上:

eval echo …
Run Code Online (Sandbox Code Playgroud)

linux shell

3
推荐指数
1
解决办法
3664
查看次数

回顾性地查看另一个 shell 的 bash 输出

我有从 Linux 上的 shell 运行的 python 进程。目前我无法物理访问这台机器,只能通过 ssh 连接。
我知道 python 进程停止了,我怀疑这个 shell 中存在错误跟踪。
我可以获得 shell 的 pid,但我找不到显示此 shell 中内容的方法。基本上,我正在寻找一种方法来读取已经存在的内容,并且不会丢失此输出或关闭外壳。什么是 Linux 工具可以对已经运行的 shell 中发生的事情有第二个看法?

linux bash shell

3
推荐指数
1
解决办法
554
查看次数

如何使用 wget 下载整个站点,包括其图像

我正在尝试使用以下方式下载整个网站wget

wget -r http://whatever/

wget -m http://whatever/

但它只下载带有文本的页面,没有图像。如何下载带有文本和图像的页面?我在这里缺少什么?

shell wget

3
推荐指数
1
解决办法
3385
查看次数

“是”命令用于什么?

在我的 Linux 4.15 机器上,我发现这个yes命令看起来完全没用——它输出一个作为参数传递的字符串(默认'y':),直到被杀死。而且……就是这样。

name@machine:~$ yes
y
y
[...]
y
y
^C
Run Code Online (Sandbox Code Playgroud)

我很难找出可能的用例,特别是考虑到 simplewhile true; do echo y; done具有类似的行为并且更具可读性(但我也找不到任何用例)。

这个命令可以用来做什么?它来自哪里?手册页和完整文档都没有回答这些问题!

linux bash shell command-line

3
推荐指数
1
解决办法
240
查看次数

如何将meld与windows shell集成?

我从使用 mint 转移到 Windows 10。我已经为 Windows 安装了 meld。在 Windows 资源管理器中选择两个文件后,如何在右键单击时显示“融合”?

shell meld windows-10

3
推荐指数
1
解决办法
645
查看次数

为什么粘贴的文本会在 macOS Catalina 的终端中突出显示?

在 macOS Catalina 上,当我复制文本并粘贴到终端时,文本会突出显示(基本上,文本中有 ANSI 颜色代码)。我不知道此功能何时包含在内,但是有没有办法禁用它?

terminal shell copy-paste macos macos-catalina

3
推荐指数
1
解决办法
267
查看次数