Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

2
别名不会“覆盖” PATH条目吗?
我的最后一行.bash_profile是: alias cp=/usr/local/bin/gcp 但是,这被我的条目压缩了$PATH: $which cp /bin/cp 11:54:32/OCspark $type cp cp is aliased to `/usr/local/bin/gcp' 我以为别名优先于PATH..?

3
Windows上的Ubuntu上的Bash:无法更改(某些)目录颜色
在Windows(10)上的Ubuntu上的新Bash应用程序上,我尝试将目录颜色从蓝色更改为更明显的颜色,但由于某种原因而无法更改某些文件/目录颜色。如何更改所有目录/文件的颜色?我的.bashrc文件当前设置为在文件上具有颜色提示,目录颜色为绿色和其他亮色。设置为: LS_COLORS=$LS_COLORS:'di=1;31:fi=0;31;bd=0;32:fi=0;33:cd=0;96'; export LS_COLORS if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[0;31m\]\u@\h\[\033[0,31m\]:\[\033[0;31m\]\w\[\033[0,31m\]\$ ' 一些文件和文件夹的颜色更改了与我的.bashrc文件相对应的颜色,但其他文件和文件夹由于某些原因没有更改。 一些示例屏幕截图:

2
是否可以检查bash脚本中是否设置了-e?
如果外壳程序功能需要特定的-e / + e设置才能起作用,是否可以在本地设置该设置,然后在退出该功能之前将其恢复为以前的设置? myfunction() { # Query here if -e is set and remember in a variable? # Or push the settings to then pop at the end of the function? set +e dosomething doanotherthing # Restore -e/+e as appropriate, don't just do unconditional set -e }

4
使用内置的Bash运行exec
我定义了一个shell函数(我们称它为clock),我想将其用作另一个命令的包装器,类似于该time函数,例如clock ls -R。 我的shell函数执行一些任务,然后以结尾exec "$@"。 我希望此功能甚至可以与Shell内置程序一起使用,例如clock time ls -R应该输出time内置程序的结果,而不是/usr/bin/time可执行文件的结果。但是exec总是最终改为运行命令。 如何使Bash函数作为包装程序工作,该包装程序还接受shell内置参数作为参数? 编辑:我刚刚得知这time不是内置的Bash,而是与管道相关的特殊保留字。我仍然对内置解决方案感兴趣,即使它不能与结合使用time,但是更通用的解决方案会更好。

1
没有被视为DDoS攻击的安全ping频率是多少?
我试图通过定期ping服务器和Google并比较ping时间来绘制服务器的正常运行时间。我想在一个星期(比如说一个星期)内继续这样做。 我向每组发送5个ping,超时时间为5秒,每组之间的间隔为2分钟。以下是bash命令。 while true; do echo Google; date; ping -c 5 -t 5 www.google.com; sleep 120; echo Outlook; date; ping -c 5 -t 5 https://outlook.office365.com/; sleep 120; done >> pings.txt 我担心服务器是否将此视为DDoS攻击。

1
shell命令前的百分号(%)
我只是将一堆代码粘贴到我的shell中,但是%在运行命令之前忘记删除前导代码。它似乎什么也没做。为什么这对我的shell(zsh)不起作用? > % echo foo 在bash中,我得到以下内容 > % echo foo bash: fg: %: no such job 我只是想确保运行我的命令没有任何副作用。

2
挂接到Ubuntu中的“找不到命令”处理程序
我想挂接到未找到命令的处理程序中 wim@SDFA100461C:~$ thing No command 'thing' found, did you mean: Command 'tping' from package 'lam-runtime' (universe) Command 'thin' from package 'thin' (universe) thing: command not found 我想用自己的脚本覆盖此行为。 具体来说,我想检查命令是否存在于的输出中lsvirtualenv -b,如果存在,我想激活该virtualenv。 我应该从哪里开始黑客攻击?

1
使用sudo运行时如何重定向OS X dtruss输出?
我dtruss在Mac OS X 10.9上运行。一个简单的例子是: sudo -c ls 但我想将dtruss输出捕获到文件中。我看到一些建议可以做的事情: sudo bash -c 'dtruss -c ls >x' 但是,当我这样做时,的输出dtruss仍会转到终端,并且文件列表将从ls重定向到文件。 如何将输出重定向dtruss到文件?

2
bash函数中的别名作用域
我使用一个脚本(我没有写权限)创建一个别名来建立环境。我想创建一个bash函数来设置我的环境,但是别名似乎无法保存到函数主体中。 这是一个最小的示例: # aliases.sh alias fooAlias='echo "this will never work!"' 。 # .bashrc function setupLotsOfThings() { source aliases.sh fooAlias } 。 现在,如果我只是aliases.sh交互式地进行采购,那么事情将按预期进行: [mycomputer]~/ $ source aliases.sh [mycomputer]~/ $ fooAlias this will never work! 但是,如果我改为调用.bashrc中定义的函数,则在获取其定义后它无法识别别名: [mycomputer]~/ $ setupLotsOfThings -bash: fooAlias: command not found 这里发生了什么?alias在函数中使用时,命令范围我缺少什么吗? 编辑:除了最小的示例之外,我还将添加一些细节,以阐明我要完成的工作。 对于我的工作,我在集群和/或网格上开发和运行许多软件。我有几个项目需要完全不同的环境,例如不同的gcc版本,特定的软件版本,配置和数据PATH以及各种环境变量。管理员通常通过定义shell函数或别名来提供脚本来设置各种内容,这些函数将调用其他函数或别名或运行各种脚本。对我来说,这是一个黑匣子。 我想用一个命令设置自己的各种环境。目前,我正在执行以下操作: [mycomputer]~/ $ source /some/environment/setup/script.sh …
9 bash 

2
如何获取脚本生成的所有子进程的列表
内容: 用户向我提供其自定义脚本来运行。这些脚本可以是各种脚本,例如用于启动多个GUI程序,后端服务的脚本。我无法控制脚本的编写方式。这些脚本可以是阻塞类型,即执行等待直到所有子进程(顺序运行的程序)退出 #exaple of blocking script echo "START" first_program second_program echo "DONE" 或非阻塞类型,即在后台派生子进程并退出类似 #example of non-blocking script echo "START" first_program & second_program & echo "DONE" 我想达到什么目的? 用户提供的脚本可以是以上两种类型中的任何一种,也可以是两者的组合。我的工作是运行脚本,并等待脚本启动的所有进程退出,然后关闭该节点。如果是阻塞类型,则情况很简单,即获取脚本执行过程的PID,然后等到ps -ef | grep -ef PID不再有条目。非阻塞脚本是给我带来麻烦的脚本 有没有一种方法可以获取通过执行脚本生成的所有子进程的PID列表?任何指针或提示将不胜感激

2
在iTerm2中使用特定目录打开多个选项卡
我想知道这是否可能。 我想设置一些脚本或命令,这些脚本或命令将打开5个选项卡,每个将打开的选项卡将指定自己的目录 全部在同一窗口中 tab 1: open ~/folderA1 tab 2: open ~/folderA2 tab 3: open ~/folderA3 tab 4: open ~/folderA4 tab 5: open ~/folderA5 这是在Mac OS X中的iTerm2上。 我知道我可以做一些类似CMD + T的操作,然后使用cd ~/folderA1诸如此类的方法打开它们中的每一个,但是如果有我可以设置的命令或执行后它们将立即执行的所有操作的脚本,我很想知道如果有办法的话。
9 macos  bash  iterm2 

4
可以在sendto文件夹中使用Shell脚本吗?
我想使用SendTo文件夹中的bash shell脚本。当我将批处理或exe快捷方式放到SendTo文件夹中时,它会显示在shell Send To上下文子菜单中,但是当快捷方式指向shell脚本时却没有。 我正在测试的操作系统是Win7 Home Premium SP1。该扩展名.sh已与MinGW的bash.exe相关联。 我的shell脚本有一个.sh扩展名,并且我尝试.sh使用此实用程序取消关联该扩展名(我认为MinGW最初对其进行了设置,但这没有用),并尝试使用以下方式将其重新关联为bash: ftype ShellScript=c:\MinGW\msys\1.0\bin\bash.exe -c "'%1' %2" assoc .sh=ShellScript 在admin cmd shell中。尽管这可以在命令提示符和Explorer外壳上运行(通过双击),但它不会显示在Send To菜单中,并且不能通过直接在脚本顶部拖动文件来接受参数。 有人知道我会怎么做吗?

1
计算文件第一栏中的出现次数
我们有这个文件: 1 2 1 3 1 2 3 3 52 1 52 300 还有1000个 我想计算每个值在第一列中出现的次数。 1 3 3 1 52 2 这意味着我们看了1三遍。 如何在Perl,AWK或Bash中做到这一点?
9 linux  bash  perl  awk 

2
定期保存bash历史记录
我设置了bash来将历史记录保存到文件中。只要bash [适当地]退出,它就会执行此操作。由于有时bash无法正常退出,因此历史记录会丢失。 所以问题是我可以设置bash来更定期地保存历史记录吗? 我正在使用Linux内核运行Debian Gnu(版本6,Squeeze)。 bash版本:GNU bash,版本4.1.5(1)-发行版(i486-pc-linux-gnu)
9 linux  bash  gnu 

2
如何关闭tmux中的其他窗口?
我写了一些函数.bashrc以使其tmux易于使用: #!/bin/bash # .bashrc # vim tmux #----- -------------------- tabc() { tmux kill-window; } tabe() { tmux new-window; } tabf() { tmux find-window $@; } tabn() { tmux next-window; } tabo() { ; } # <-- How to `tabonly`? tabp() { tmux previous-window; } qa() { tmux kill-session; } sp() …
9 bash  vim  tmux 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.