小编Bra*_*iam的帖子

在 zsh 中的 $PATH 缓存中重建自动完成索引(或任何名称)和二进制文件

安装新软件后,使用 zsh 已打开的终端将不知道新命令,也无法为这些命令生成自动完成。显然打开一个新终端可以解决这个问题,但是可以重建索引(或任何你称之为的东西)以便自动完成可以在旧终端上工作吗?

我试过了,compinit但这没有帮助。另外,有没有一种不依赖于shell的方法?很高兴有一种方法来验证答案(除了卸载并重新安装它)。

我的意思是在输入命令名称的几个字符后,我可以按Tab,然后zsh应该做剩下的工作来调出全名。

zsh autocomplete

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

显示匹配之前的所有文件

grep --before-context 5 在比赛前显示 5 行。

我想在比赛前展示一切。
这样做grep --before-context 99999999会工作,但它不是很......专业。

如何显示匹配的所有文件?

text-processing

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

杀死所有后台作业

是否有比以下更紧凑的杀死后台作业的形式:

for i in {1..5}; do kill %$i; done
Run Code Online (Sandbox Code Playgroud)

此外,{1..5} 显然有一个硬编码的幻数,我怎样才能使它成为“N”,而 N 是正确的数字,而不做:

$(jobs | wc -l)
Run Code Online (Sandbox Code Playgroud)

我实际上在 PS1 中使用 \j 来获取托管作业的数量,这是否等效?

bash

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

从行中删除最后一个字符

我想从一行中删除最后一个字符:

[root@ozzesh ~]#df -h | awk  '{ print $5 }'
Use%
22%
1%
1%
59%
51%
63%
5%
Run Code Online (Sandbox Code Playgroud)

预期结果:

Use
22
1
1
59
51
63
5
Run Code Online (Sandbox Code Playgroud)

text-processing

84
推荐指数
5
解决办法
28万
查看次数

为什么下面的脚本会删除自己?

如果您创建一个包含以下内容的可执行文件并运行它,它会自行删除。
这是如何运作的?

#!/bin/rm
Run Code Online (Sandbox Code Playgroud)

executable shell-script rm files shebang

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

如何使用 Terminal.app 在 tmux 中向上或向下翻页?

当我在时tmux只显示一部分文本。如果我尝试向上或向下滚动,控制台会向上滚动而不是实际文本。如果我按 CTRL+b 后跟[,我会在状态栏中看到*tmux,如果我按向上或向下箭头,我实际上可以逐行向上/向下移动文本。当我按下时,q我会在状态行中看到bash

当我CTRL+b跟随Page UPPage控制台上升或下降但不是文本时。

如何一次向上或向下滚动多行文本?

ssh tmux terminal.app

83
推荐指数
5
解决办法
14万
查看次数

从 SSL 证书获取通用名称 (CN)?

我有一个 PEM 格式的 SSL CRT 文件。有没有办法可以从命令行中的证书中提取通用名称 (CN)?

openssl certificates

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

当文件丢失时,rm 没有报告吗?

我有一个 bash 脚本,我想从各个目录中删除文件。通常,它们不会在那里,因为它们不是生成的,这很好。有没有办法让脚本不报告该错误,但如果 rm 有其他一些输出来报告该错误?

或者,是否有更好的命令来删除噪音较小的文件?

rm

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

如何在 64 位 Debian/Ubuntu 上运行 32 位程序?

我有一个 64 位(amd64 aka x86_64)Debian 或 Ubuntu 安装。我偶尔需要运行 32 位 (i386/i686) 程序,或者为 32 位系统编译程序。我怎样才能做到这一点,而不是大惊小怪?

奖励:如果我想使用较旧或较新版本的发行版运行或测试怎么办?

64bit ubuntu virtual-machine debian 32bit

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

crontab 的 @reboot 只对 root 有效?

man 5 crontab 关于如何使用 crontab 在启动时运行脚本非常清楚:

   These special time specification "nicknames" are supported, which replace the 5 initial time and date
   fields, and are prefixed by the `@` character:
   @reboot    :    Run once after reboot.
Run Code Online (Sandbox Code Playgroud)

所以我很高兴地在我的 crontab 中添加了一行(在我的用户帐户下,而不是 root 下):

@reboot     /home/me/myscript.sh
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,myscript.sh 不会在机器重新启动时运行。(如果我从命令行调用它,它运行良好,所以这不是权限问题)

我错过了什么?


更新以回答@Anthon 的问题:

  1. Oracle-linux 版本:5.8(uname:2.6.32-300.39.2.el5uek #1 SMP)
  2. Cron 版本:vixie-cron-4.1-81.el5.x86_64
  3. 是的,/home 挂载分区。看起来这就是问题所在。我该如何解决这个问题?
  4. 目前,myscript.sh仅将文本消息回显到/home/me.

cron reboot

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