Articles of bash

PYTHONPATH不适用于GNU / Linux上的sudo(适用于root)

编辑:为根工作,sudo是问题。 参见下文。 我有我自己的库的目录,例如我的Python库位于/home/name/lib/py 。 我已经将这个目录添加到Python的PATH中 ,通过/etc/bash.bashrc下行添加到/etc/bash.bashrc : export PYTHONPATH=$PYTHONPATH:/home/name/lib/py 它适用于所有用户(包括root)。 但是它不适用于sudo。 有什么办法可以让sudo使用/etc/bash.bashrc吗? 编辑:更多信息: 我已经将PYTHONPATH添加到sudoers文件中,如下所示: Defaults env_keep += "HOME PYTHONPATH" 。 它sitll不起作用。 env | grep PYTHON: PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=/home/name/lib/py sudo env | grep PYTHON: PYTHONDONTWRITEBYTECODE=1 sudo echo $PYTHONPATH: /home/name/lib/py

解释find -mtime命令

我试图删除除最近的所有date日志。 在我执行一个脚本来删除这些文件之前,我想要testing我的命令以确保我能够提供准确的结果。 执行这些命令时,date是: Sep 1 00:53:44 AST 2014 目录列表: Aug 27 23:59 testfile.2014-08-27.log Aug 28 23:59 testfile.2014-08-28.log Aug 29 23:59 testfile.2014-08-29.log Aug 30 23:59 testfile.2014-08-30.log Aug 31 23:59 testfile.2014-08-31.log Sep 1 00:29 testfile.log 我以为-mtime +1应该列出一天之内的所有文件。 为什么不列出8-30.log? find . -type f -mtime +1 -name "testfile*log" ./testfile.2014-08-27.log ./testfile.2014-08-28.log ./testfile.2014-08-29.log 这是预期的效果,但这只是反复试验而已。 这是0说什么? find . -type f -mtime +0 […]

用variablesreplace文本

我怎样才能做到这一点? sed -i 's/wiki_host/$host_name/g' /root/bin/sync 它将用文本$host_namereplacewiki_host 。 但是我想用variables的内容replace它 我试了一下 sed -i 's/wiki_host/${host_name}/g' /root/bin/sync 它也不起作用。

bash双括号问题

我对bash脚本非常陌生,在使用双括号时遇到了一个问题。 我似乎无法让他们在Ubuntu服务器11.10工作。 我的脚本在if_test.sh。 #!/bin/bash if [[ "14"=="14" ]]; then echo "FOO" fi 当我运行这个简单的shell脚本时,我得到的输出是:if_test.sh:5:[[:not found 从terminal运行bash –version后,我似乎在运行GNU bash 4.2.10版。 任何帮助将不胜感激。 谢谢!

干净的服务器感染c3284d病毒,使用search和replace

我与臭名昭着的c3284d病毒有关。 它修改了几乎所有可以find的html / php / js文件。 我已经更改了服务器上的所有密码和用户,所以如果这是一个被盗用的帐户,它应该已经解决了这个问题,但是我仍然在努力完全删除它。 我能够使用简单的sudo grep -R "#c3284d#" /home命令find所有受感染的文件。 但是我需要一个快速的方法来search和replace它。 病毒签名是这样的: “#c3284d#” 回波(gzinflate(BASE64_DECODE( “VVHBboMwDL1X6j / kZtA6GKgMdaOVummHnfYB6xQFYkokmqSJS + nfD1hXbb7ZfvZ7fi585ZSlzXzWCcf4ka2ZNNXpgJqiyqEgfGtxzAJQtRMHhHAxn7EhuB6w4JG2RE6VJ0J4ns / 48ZPrrwC8q2DBoCGyT3HcoHBkamtajDRS3B / ayDYWwmki8nQZGtZ4RcpMa0XpTXtbeQWclaRm7CaPtv9LNgkrjZPoBlItOrUXZFx08ui2 + / EUpSX2H3UA8kHkIlmmZZ5lSZ5Kkad1nS9FIqo0S1YrCNkdS / 7parGmkfU + y1b5D / HNorNThAEUUnVMyfUOOJdOyG4HmyIeipvpxBt8j3S18 + XyLoNfNISRsBa1fG1UKwN + HIeK + Pqabw ==”))); “#/ c3284d#” 当回声线可以改变,但总是以#c32..#开始,并以#/c3….# 。 我只是想把它换成什么都没有。

有5个脚本在任何给定的时间运行

我有一个bash脚本(在CentOS 6.4下运行)启动90个不同的 PHP脚本,即。 #!/bin/bash php path1/some_job_1.php& php path2/some_job_2.php& php path3/some_job_3.php& php path4/some_job_4.php& php path5/some_job_5.php php path6/some_job_6.php& php path7/some_job_7.php& php path8/some_job_8.php& php path9/some_job_9.php& php path10/some_job_10.php … exit 0 为了避免重载我的服务器,我使用符号& ,它的工作,但我的目标是总是有5个脚本在同一时间运行 有没有办法做到这一点?

如何在没有填充磁盘空间的情况下在tar归档文件中的grep模式

我有一个很大的〜5GB的tar档案。 我想在所有文件上grep一个模式(也打印有模式的文件的名字),但是不想通过提取压缩文件来填满我的磁盘空间。 无论如何,我可以做到这一点? 我试过这些,但是这不会给我包含模式的文件名,只是匹配的行: tar -O -xf test.tar.gz | grep 'this' tar -xf test.tar.gz –to-command='grep awesome' tar的这个特性还logging在哪里? tar xf test.tar $ FILE

什么是eval / bash -c,而不是仅仅评估一个variables?

假设你有下面的命令存储在一个variables中: COMMAND='echo hello' 有什么区别 $ eval "$COMMAND" hello $ bash -c "$COMMAND" hello $ $COMMAND hello ? 为什么最后的版本几乎从来没有使用,如果它更短,(据我所知)做的是完全一样的东西?

Bashjoin命令

Infile1: 1 a 3 c 4 d 6 f Infile2: 1 a 2 b 5 e 6 f 7 g 8 h 如何使用unix join命令join这些文件以获得此输出: 1 aa 2 b 3 c 4 d 5 e 6 ff 7 g 8 h Dogbanes答案工作,但…当我申请dogbanes答案在这个文件: 27 27 28 22 29 37 30 15 31 21 32 13 33 18 […]

在意外标记附近的语法错误' – bash

我在我的Mac上写了一个示例脚本 #!/bin/bash test() { echo "Example" } test exit 0 这显示示例工作正常 当我在RedHat机器上运行这个脚本时,它说 语法错误附近的意外令牌' 我检查了可用的bash cat /etc/shells which bash shows /bin/bash 有没有人遇到同样的问题? 提前致谢 !