小编jon*_*rry的帖子

将 watch 命令与包含引号的参数一起使用

我正在尝试使用包含引号的命令让 watch 正常工作,并且 watch 手册页对引号的工作方式不是很详细。举一个具体的例子,我如何在 watch 中运行以下命令:

ps -ef | awk -F' ' '{print $2}'
Run Code Online (Sandbox Code Playgroud)

我试过了:

watch "ps -ef | awk -F' ' '{print $2}'"
Run Code Online (Sandbox Code Playgroud)

watch 'ps -ef | awk -F\' \' \'{print $2}\''
Run Code Online (Sandbox Code Playgroud)

但这些都不能正常工作。

unix bash watch

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

在 bash 中反向历史搜索后跟箭头键会导致光标显示在错误的位置

我注意到很多次当我通过CTRL+从命令行反向搜索历史时r,如果我想编辑命令,有时当我按下箭头键或输入CTRL+aCTRL+时,光标会跳到错误的位置e. 它跳转到的特定位置似乎是一个偏移量,等于我在PS1.

这会造成困难,因为光标的实际位置与屏幕上呈现的不同;对命令的未来编辑呈现为就好像光标位于它跳转到的位置一样,但实际命令保留了正确的位置而没有任何跳转。

有谁知道是什么导致了这个或如何解决它?

编辑:如果我PS1在问题末尾添加换行符似乎会消失。但是,我更愿意在与提示相同的行中输入命令。

bash

10
推荐指数
2
解决办法
1869
查看次数

如何通过管道从`tail -f`读取一行,然后终止?

我想通过对文件的更改进行跟踪tail -f,然后grep在终止之前打印出与命令匹配的第一行。什么是最简单的方法来做到这一点?到目前为止,我一直在尝试这样的事情:

tail -f foo.log | grep 'bar' | head -1
Run Code Online (Sandbox Code Playgroud)

然而,管道只是挂起,大概是由于缓冲。我也试过

tail -f foo.log | grep --line-buffered 'bar' | head -1
Run Code Online (Sandbox Code Playgroud)

这会打印出该行,但除非我点击 ^C,否则该过程不会终止,大概是因为需要第二行输入来终止head -1。解决这个问题的最佳方法是什么?

unix bash

9
推荐指数
1
解决办法
5758
查看次数

创建一个键盘快捷键,映射到 Fedora 键盘上的向下/向上箭头

我想将 Alt+N 和 Alt+P 分别映射到向下箭头和向上箭头。我想这样做是因为 eclipse 中的各种弹出对话框要求用户键入箭头键,并且 eclipse 中定义的快捷方式(例如,line-down)在这些对话框中无效。

在 Eclipse 中完成此任务的最简单方法是什么?设置为全局的而不仅仅是 Eclipse 应该没问题。

linux fedora keyboard-shortcuts

5
推荐指数
1
解决办法
1318
查看次数

除非模式变得更具体,否则查找会错过与 glob 模式的匹配

我曾经find在我的机器上搜索一个文件,如下所示:

find / -name version-1.0.*
Run Code Online (Sandbox Code Playgroud)

结果是我的主目录中只有一个文件version-1.0.23. 但是,如果我运行以下命令:

find / -name version-1.0.1*
Run Code Online (Sandbox Code Playgroud)

结果是/data/somelongpath/version-1.0.19

为什么会从第一种情况的结果中省略第二个结果?

linux bash find

4
推荐指数
1
解决办法
1509
查看次数

如何在没有密码的情况下进行 ssh(设置 ssh 密钥不起作用)?

我想在没有密码的情况下进行 ssh、scp、git fetch 等操作。我看到了之前的问题,并关闭了有关此问题的问题,但建议似乎是使用 ssh 密钥。但是,在设置 ssh 密钥后,我仍然被要求输入密码(不是要求我的私钥密码;而是要求我的登录密码)。我应该如何设置它以便它只使用我的私钥进行身份验证?

linux ssh

3
推荐指数
2
解决办法
3939
查看次数

尝试使用编辑 /etc/network/interfaces 的脚本重置本地 IP 地址

我正在尝试编写一个设置本地 IP 地址的脚本。这是我到目前为止:

#!/bin/sh
echo -n \
"# interfaces(5) file used by ifup(8) and ifdown(8)\n"\
"auto lo\n"\
"iface lo inet loopback\n"\
"auto eth0\n"\
"iface eth0 inet static\n"\
"  address 192.168.2.130\n"\
"  netmask 255.255.255.0\n"\
"  gateway 192.168.2.1\n"\
"  dns-nameservers 8.8.8.8\n"\
> /etc/network/interfaces
/sbin/ifup eth0
Run Code Online (Sandbox Code Playgroud)

该文件/etc/network/interfaces看起来格式合理,但该ifup命令导致以下错误:

RTNETLINK answers: File exists
Failed to bring up eth0.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

networking linux

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

覆盖具有多行输出的 bash 命令的终端输出?

我有一个 bash 命令,我想每秒运行一次并保持输出显示在屏幕上。我可以执行以下操作:

while "true"; do foo; sleep 1; done
Run Code Online (Sandbox Code Playgroud)

但这会产生分散注意力的滚动。或者,我可以执行以下操作:

while "true"; do clear; foo; sleep 1; done
Run Code Online (Sandbox Code Playgroud)

但这会导致输出在清除和写入时闪烁。有没有一种好方法可以让命令的输出覆盖终端上的内容?

unix bash

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

mac osx 上的 git bash-completion 按照标准安装说明不起作用

我阅读了一堆关于为 git 安装 bash-completion 的说明,并确定了 macport 解决方案,例如,这里提到的:How to get git-completion.bash to work on Mac OS X?

但是,这不起作用,我必须调用source /opt/local/etc/bash_completion.d/git或将其放入我的 .bashrc 以激活 git bash 完成。我错过了什么吗?似乎特定完成包的采购应该更加自动化,而且我发现网上没有人在他们的说明中列出了这一点,以使 git bash-completion 在 mac os 上工作。

bash git macos

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

标签 统计

bash ×6

linux ×4

unix ×3

fedora ×1

find ×1

git ×1

keyboard-shortcuts ×1

macos ×1

networking ×1

ssh ×1

watch ×1