我曾经PS=$将 shell 提示符更改为$,但是当我重新启动 shell 时,我必须再次执行此操作。有没有办法永久更改 shell 提示?
bpython 中的一项功能称为倒带。
是否有一些类似的键绑定?
我知道您可以在 Mac 上启动时运行应用程序,但是您可以在启动时运行 Automator 操作、服务、shell 脚本或 AppleScript 吗?
我也知道您可以将所有这些保存为一个应用程序,但我不希望它在 Dock 中打开。
我想将上一个命令的历史编号以及退出代码添加到我的提示中。
目前,
%h[%?]
Run Code Online (Sandbox Code Playgroud)
给我当前的历史编号,以及最后的退出代码。我真正想要的是扩展%h-1,但我不确定这是否可能?
我在对 make 输出进行 grep 过滤时遇到问题。特别是,
make target 2>&1 | grep -E --color=never "^make.*"
Run Code Online (Sandbox Code Playgroud)
按预期工作,但以下内容不会向控制台打印输出:
make target 2>&1 | grep -E --color=never "^make.*" | cat
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗?为什么第一个命令输出而不是第二个?是否与某种 IO 缓冲有关?还是我只是愚蠢?
[编辑]: cat只是我要使用的实际命令的最小测试用例占位符。
[编辑]:这似乎不是 grep 的问题,因为用ack替换它会导致相同的行为。
[编辑]: cat 是占位符的脚本:
#!/bin/bash
cat - \
| grep -E --color=never "^.*warning:.*|^.*error:.*|^make.*[Ee]rror.*|^make.*" \
| hilite.sh -r "^.*warning:.*" -f yellow -B \
| hilite.sh -r "^.*error:.*" -f red -B \
| hilite.sh -r "^make.*[Ee]rror.*" -f red -B \
| hilite.sh -r "^make.*" -f magenta
Run Code Online (Sandbox Code Playgroud)
[编辑]: …
可能的重复:
意外的killall行为
如果killall killall从终端运行命令(我使用 KDE 4 的 Konsole),它说它找不到任何进程。
killall运行,寻找一个被调用的进程killall,应该找到它自己并杀死它,但它没有这样做。为什么?
在 OSX 上我做
sudo route delete default
sudo route add default 192.168.178.1
Run Code Online (Sandbox Code Playgroud)
更改我的默认网关。
在使用这些运行 sh 文件时,我每次都被要求输入密码。我运行的
sh changegw.sh.
我如何事先传递我的密码?
我在chmod 644 /usr/*Mac OSX 10.6 的安装上运行。
现在,从chmod到所有其他命令,一切都不起作用。显然这些命令在 中/usr/bin,我没有执行权限chmod来给自己执行权限。
我已经安装了 CentOS。我想删除 bzip2,所以我在 shell 中输入这个命令:
yum remove bzip2 bzip2-libs
Run Code Online (Sandbox Code Playgroud)
然后删除了近 500 个包,我无法输入任何命令。例如:
ls
-bash: /bin/ls no such file or directory
Run Code Online (Sandbox Code Playgroud)
如何重新安装丢失的软件包?
如何声明函数局部变量?定期声明的变量被导出到全局范围。例子:
$ cat t.sh
function locals_test()
{
x="bar"
}
$ echo $x
$ locals_test
$ echo $x
bar
Run Code Online (Sandbox Code Playgroud)