Articles of bash

我可以做一个ctrl-z没有进程locking?

所以可以说我在CLI上执行一个命令,它产生了一个GUI,我忘记了&。 现在我想要我的shell,所以我打了一个CTRL – Z,但GUI锁! 有没有办法做一个Ctrl-Z没有locking的GUI? 我用的是bash shell,xorg和gnome。 这是一个Ubuntu系统。

Bash脚本来replace文件,如果它有一个特定的string

我有一个文件列表,我想检查一个特定的string。 如果string存在于文件中,我想用新版本replace它。 什么是最简单的方法呢?

如何编写一个为父shell设置别名的bash脚本?

我试图编写一个脚本来为我的bash shell设置别名,但我不想在.bashrc自动获取它 – 我需要在我的terminal的子集中有别名。 是否有可能在脚本中使用别名命令,并使别名命令对脚本运行的shell有效? 期望的function: $ alias # … no output here $ ./my-script $ alias alias foo='bar' alias alpha='beta' …

Bash脚本回声-n

我写了一个bash脚本,我想回显一个string,但没有自动添加到最后的换行符。 阅读手册页上的标志是-n 。 问题是,当我这样做时: echo -n "My string is here" bash脚本中的输出是: -n My string is here 任何想法为什么-n标志被输出,而不是处理。

我怎样才能把历史上的最后一个zsh命令放入剪贴板?

我经常发生这种情况,我只是使用了一个命令,我需要复制/粘贴到不同的terminal窗口/ IM或其他任何东西。 在Mac上,我可以使用pbcopy命令来获取剪贴板中的内容,但是我不知道该如何获取命令。 我想到的是 history | tail -n 1 | perl -ple 's/\d+\s+//' | pbcopy 哪些工作,但它并不真的看起来像干净的解决scheme。 有没有更好的方法来达到最后的命令? 我使用的是zsh ,但是我猜如果有一个bash的解决scheme,它也可以在zsh工作。

bash +如何匹配包含字符和数字的string

请指教 – 我的语法有什么问题? (不应该打印“糟糕的界面”) 备注 – 我使用bash shell ETH_NAME=eth0 ( or any other as eth1 or eth2 …. ) echo $ETH_NAME eth0 [ $ETH_NAME != eth[0-9] ] && echo bad interface

如果我知道进程的PID号码,我可以知道它的名字吗?

如果我有一个进程(在UNIX机器上)的PID号,我怎么知道它的相关进程的名称? 我需要做什么?

脚本来旋转apache博客

我正在寻找一个脚本,将轮streamApache上的博客。 我想在cron上安排脚本,这样它可以定期运行,并为服务器上的所有网站轮转access_log和error_log。 谢谢,马克

如果bash脚本带有不正确的解释器path,该怎么办?

我试图在我们的服务器上安装BugZilla。 问题是,BugZilla的perl脚本将path定义为/usr/bin/perl ,而我的perl安装位于/usr/local/bin/perl 。 我在安装其他应用程序时也遇到了这个问题,我不得不手动编辑解释器path。 你如何处理这样的情况? 编辑:我只是注意到,我们有两个副本的服务器,一个在标准的位置,在/ usr /本地/ bin / perl,但which perl返回前一个path。 顺便说一句,这是我运行bugzilla的Perl脚本时得到的错误 bash: ./checksetup.pl: /usr/bin/perl: bad interpreter: Permission denied

不能从脚本中取消设置envvariables

我试图从脚本中取消所有的环境variables。 脚本运行良好,但如果我运行env它仍然显示所有的variables设置。 如果我从CLI运行命令,它的工作原理和variables未设置。 unset `env | awk -F= '/^\w/ {print $1}' | xargs` 有任何想法如何从脚本运行这个? 另外,有任何想法如何从脚本源/ etc / profile? 这也不pipe用。 我需要设置具有相同名称但不同path的variables,这取决于我的用户需要的实例。 稍后编辑: 好吧,我结束了这个(而不是优雅,但无论)解决scheme: . script 其中包含: unset `env | awk -F= '/^\w/ {print $1}'|egrep -v "HOSTNAME|TERM|SHELL|HISTSIZE|SSH_CLIENT|SSH_TTY|USER|LS_COLORS|KDEDIR|MAIL|PATH|INPUTRC|PWD|LANG|HISTIGNORE|SSH_ASKPASS|TEST|SHLVL|HOME|LD_ASSUME_KERNEL|LOGNAME|SSH_CONNECTION|LESSOPEN|HISTTIMEFORMAT|G_BROKEN_FILENAMES|_"|xargs` source env_variable_file 谢谢!