Tag: bash

终端自动完成function只能从头开始匹配?

例如,如果我输入“ apt- ”并按Tab键,我可以在下面找到“ apt-get ”。但如果我输入“ get ”,则“ apt-get ”不会出现。 我怎么能不仅从一开始就匹配?

搜索已知sha1总和的文件

我必须找到已知sha1 sum的特定文件。 我知道文件应该在哪个文件夹中,但是有子文件夹(最大深度为4)。 我知道文件名的更多或更少部分(包含单词“project”和“screenshoot”),但有各种可能的文件格式(.ods,.docx,.pdf …)。 当然,我知道它有什么样的总和。 怎么找到它? 我必须为大约15个文件执行此操作。

并行查找并执行多个脚本

天儿真好, 我整个上午都试图解决这个问题,但没有成功。 我想在特定文件夹中搜索某些脚本并并行执行它们。 脚本有不同的名称,但都以“run.sh”结尾。 低于我的尝试没有成功。 第一种方法是将find与-execdir结合使用。 然而,这是有效的,脚本以sequantial方式执行。 我希望所有脚本同时执行(并行)。 似乎没有选择用-execdir来实现这一点 find . -name “*run.sh” -type f -execdir ‘nohup’ {} ‘&’ \; 然后,我尝试使用xargs,因为有一个并行选项(-P)。 我还没有尝试过并行选项,因为我无法让xargs在各自的子文件夹中运行脚本。 下面的命令执行所有脚本,但是在我运行命令的文件夹中执行此操作,因此脚本本身不起作用。 脚本必须在自己的子文件夹中执行。 在上面的示例中,-execdir正在执行此操作而不是-exec。 如何使用xargs实现这一目标? nohup find . -name “*run.sh” -type f | xargs -0 -I{} bash -cf\ \{\} 要么 nohup find . -name “*run.sh” -type f | xargs -0 -I{} bash -c “f […]

如何更换/修复乱搞/ bin / sh和/ bin /破折号

我已经损坏了我的/ bin / sh并且不知道如何替换它。 我不小心复制了它。 我怎样才能解决这个问题? 我正在运行Ubuntu Server 11.10,没有X. 更新:我尝试了由Eliah友情提供的修复,但我想我也复制了/ bin / dash! 更新:输出cd /bin; file sh dash bash; md5sum sh dash bash cd /bin; file sh dash bash; md5sum sh dash bash sh: symbolic link to `dash’ dash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux […]

For循环语法bash脚本

有没有办法在bash脚本中实现这样的东西? pureips=”10.3.1.111 10.3.1.112 10.3.1.114″; pureservers=”abc”; for ip,server in $pureips,$pureservers; do echo “$server | $ip “; done 谢谢。

在屏幕守护程序模式下运行命令

我正在尝试使用该命令在屏幕模式下运行命令 screen -dmS screen_name sed -i ‘s/a/b/’g some-file.txt 什么都没发生。 当我在脚本中放入相同的命令并运行命令时: screen -dmS screen_name bash -c /path/to/script 有用。 我的问题是,我可以在守护进程模式下运行命令而无需先将其放入脚本中吗? 基本上,我需要这个守护进程function,因为它有助于并行运行多个命令,方法是将每个命令放在一个单独的屏幕守护程序上并行运行多个sed命令并在程序完成后自动终止。 谢谢

awk – 比较两个文件中的2个文件和打印列

我刚才发布了类似的东西,我想,提供的代码可以帮助解决我的问题,但不幸的是我无法根据我的需要调整它: awk – 比较两个文件中的文件和打印行 所以,我又有两个以制表符分隔的文件。 file_1.txt apple 2.5 5 7.2 great 3.8 10 3.6 see 7.6 3 4.9 tree 5.4 11 5 back 8.9 2 2.1 file_2.txt apple :::N back :::ADJ back :::N around :::ADV great :::ADJ bee :::N see :::V tree :::N 输出应如下所示: apple :::N 2.5 5 7.2 great :::ADJ 3.8 10 3.6 back […]

Bash历史记录不包含重启后的所有历史记录和空白,如何解决?

我最近从13.04升级到13.10并且意识到我的终端bash历史记录没有重新启动。 cat ~/.bash_history给了我一个权限被拒绝的错误。 我,可能是不必要或错误的,发出了一个chmod 777 ~/.bash_history来看看这是否会有所帮助……虽然我可以chmod 777 ~/.bash_history并阅读一些内容但它包含的历史并不多。 在读取bash历史未被保留之后,我也尝试了sudo rm ~/.bash_history 奇怪的是,在这样做之后,我输入了一些测试命令, ls , ls -lah ……并且在按下向上箭头返回历史记录时它包含了这两个命令以及来自远程时间的奇怪历史记录。过去但很少有结果,而不是我当天早些时候输入的数百个命令。 是否有存储bash历史的新地方? 如何删除〜/ .bash_history不能摆脱以某种方式挥之不去的命令? 我不确定,但我相信我的root bash历史是正常的。 我的用户bash历史记录正在给我带来麻烦。 任何有关追踪和解决此问题的帮助和指导表示赞赏。

如何检查diff命令失败的原因?

我正在运行diff –brief -r /home/mateusz/ /media/mateusz/Database/backup_test_tmp_folder/home/mateusz/ command,其中包含错误代码2.根据文档“如果输入相同,退出状态为0,1如果不同,2如果有问题。“ 不幸的是,命令退出而没有给出任何线索为什么它失败了。 我尝试使用straces但不幸的是我无法根据生产的日志诊断任何东西(最后150行的3.5GB strace文件发布到https://gist.github.com/matkoniecz/15ed855bd3f161ad6354c7d637234804 – 以及与sudo运行的差异产生78KB的strace log后失败了。 我考虑修改diff命令以在死亡和返回2之前输出一些解释,但鉴于我的程序不太可能缺乏对这种调试的支持似乎表明有更好的解决方案(希望它不是“学习如何解释” strace的“)。 那么我应该如何检查为什么我的diff命令失败了? 是否有比strace更好的工具或者为diff命令添加printf调试?

递归删除最旧的文件,直到达到最大限制

我试图修改Sergiy的脚本以递归行动(目前它只删除1个文件,但我希望删除所有文件,直到达到最大文件限制)。 但我无法弄明白。 我觉得我应该能够修改第一个函数(“删除最旧的”)以读取多个时间戳并将其传递给下一行,但我不熟悉此命令,并且无法找到任何信息。 任何想法,将不胜感激!