Articles of bash

Python / usr / bin / env:糟糕的解释器:不是目录

我犯了一个错误。 我安装了Python 3,然后执行了下面的命令,将Python的默认版本Python作为Python3 sudo ln -fs /opt/Python-3.4.1/python /usr/bin/python 但是我想回到python2.7,我做到了 sudo ln -fs /usr/bin/python2.7/python /usr/bin/python 现在,当我想用​​Python里面运行一个bash脚本,我有这个错误: / usr / bin / env:糟糕的解释器:不是目录 当我运行这个命令时: ls -l /usr/bin/env 我有这个红色的结果: lrwxrwxrwx 1 root root 25 Jun 12 13:37 / usr / bin / env – > /usr/bin/python2.7/python 事实上,当我进入这个目录时,我没有env可执行文件,而是一个断开的链接。 我在互联网上找不到解决scheme。 你可以帮帮我吗 ? 我开始为自己的错误感到难过。 谢谢

如果其他列的AWK写入到新列的基础上

我有一个列A,B,C,D的CSV文件。 D列包含0到1的值。我想用AWK在列D中的值写入一个新的E列。 例如: 如果列D中的值<0.7,则列E中的值= 0。 如果列D> = 0.7中的值,则列E = 1中的值。 我能够打印列E的输出,但不知道如何写入到一个新的列。 它可能写我的代码的输出到一个新的文件,然后粘贴回旧文件,但我想知道是否有一个更有效的方法。 这是我的代码: awk -F"," 'NR>1 {if ($3>=0.7) $4= "1"; else if ($3<0.7) $4= "0"; print $4;}' test_file.csv

像使用shell的用户一样运行脚本

当我写一个cronjob,服务脚本或守护一个命令时,我经常会让他们调用一个bash脚本或运行一个bash命令。 问题是这些命令的执行与我在loginshell中运行它们的行为有所不同。 差异归结为环境variables和login和shell的工作方式,我不明白的许多其他微妙之处。 有没有办法运行bash命令,让他们的行为,就像他们会,如果我已经login并运行它们。 我需要一个傻瓜certificate过程,我可以设置一个脚本来运行一个bash命令,可以在这些情况下理想地工作: 在cronjob中调用 在服务(init.d / systemd)脚本中调用 作为后台进程运行(如使用&和nohup) – configurationstderr和stdout的redirect 可configuration的用户 例如,经常运行: su -c 'nohup $MY_CMD > /var/log/out.txt 2>&1 &' $MY_USER会在应用程序中导致错误,而不是shell命令本身,因为应用程序要处理在壳和非壳不同。 我怎么欺骗应用程序认为它是通过loginshell调用的? 虽然这种方法当然不是以生产为导向的,或者说是安全的,但是我通常会发现自己处于最后一刻的情况,在这种情况下,我必须得到一个在后台自动运行的命令(并且只有一个小时的时间来计算)作为某个用户,命令本身只有在我的shell中手动运行它才有效。 我也想避免使用通过SSH连接传递命令,或者调用一个SSH连接。 像ssh $USER@127.0.0.1 '$CMD'这样的东西将要求我加载SSH密钥到我宁愿避免做的机器上。 不知道它是否重要,但我的主要目标平台是Centos 6(将为所有* nix的广义解决scheme)。 奖励点数,如果我还可以捕获由脚本产生的所有进程的PID,所以我可以在以后自动化的方式杀死他们。

linux命令的输出没有被控制台压制

我正在使用下面的命令来删除“其他”用户的写入权限: df –local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type f -perm -0002 | awk -F"/" {'if ($5!="tmp") print $0'} | xargs chmod ow 我需要从控制台中禁止所有错误和输出消息。 但是我仍然得到这个消息: find: /data0101/track_logs/IMEI_TRACK_9_20141127_01010014.LOG: No such file or directory find: /data0101/track_logs/IMEI_TRACK_4_20141123_01010014.LOG: No such file or directory find: /data0101/track_logs/IMEI_TRACK_7_20141122_01010014.LOG: No such file or directory […]

在Bash中,为什么`cd //`工作(并且等于`cd /`)?

在Bash /terminal中, cd /可以把你带到你的根目录,这是相当有名的,不pipe你以前在哪里: brian@brian-linux:~/redis-3.0.3$ cd / brian@brian-linux:/$ pwd / brian@brian-linux:/$ ls bin dev initrd.img.old libx32 opt sbin usr boot etc lib lost+found proc srv var cdrom home lib32 media root sys vmlinuz data initrd.img lib64 mnt run tmp vmlinuz.old brian@brian-linux:/$ 今天我偶然发现了一个有趣的发现: 在Bash中, cd //把你带到目录// ,这跟根目录是一样的,但仍然被描述为// : brian@brian-linux:~/redis-3.0.3$ cd // brian@brian-linux://$ ls bin dev initrd.img.old […]

python +如何validation在python下的linux命令是否成功

如何在python脚本中捕获命令的标准输出 例如,我想检查tar命令是否成功,结果将返回stndStatus值 import commands def runCommandAndReturnValue(): status,output = commands.getstatusoutput(" tar xvf Test.tar ") return stndStatus 其他的例子 – 它像$? 在shell脚本中,所以stndStatus将是$的值?

Linux命令输出没有被redirect

为什么在这种情况下输出不会被redirect呢? 用户没有写入/ proc的权限,因此错误,但为什么错误不会去/ dev / null? $echo "core_%e.%p" > /proc/sys/kernel/core_pattern 2>&1 > /dev/null -bash: /proc/sys/kernel/core_pattern: Permission denied

在shell脚本中设置环境variables以在远程服务器上运行

我有一个脚本,将自动在Hive中运行查询。 我可以把脚本留在本地机器上,或者把它放在网关机器上。 如果我在远程机器上,我可以像运行update_table ssh user@gatewaymachinexyz.com './update_table.sh' 但是,当我这样做时,它不能识别远程计算机上设置的环境variables。 如果我通过SSHlogin到远程机器,并运行./update_table.sh它运行良好。 如何从本地机器运行时识别环境variables?

在pipe道awk语句之间传递variables

我有这个打印后台处理程序系统称为PPR,其中,控制用户打印余额。 给定用户的命令“ppuser show username”打印这样的信息。 [root@localhost ~]# ppuser show dpacheco Name: dpacheco Fullname: Balance: 99.00 Cutoff point: 0.00 Last Modified: Wed Oct 1 11:37:58 2014 Account lifetime: 365 Credit revoked: FALSE 我需要输出所有系统用户(PPR用户与/ etc / passwd中列出的相同)的“ 用户名;余额 ”对的列表。 为了做到这一点,我写了这个命令… cat /etc/passwd | awk -F : '$user=$1 {system("ppuser show "$user)}'| awk '$1 ~ /Balance/ {print $user;$2}' 解释.. 输出passwd的内容。 […]

列出帐户未被locking的用户

我创build了一个脚本,列出服务器中的用户列表,并通过电子邮件发送给他们。 我可以从多个主机获取用户列表,还可以在发送列表之前过滤名为ignore.txt(具有不需要的用户)的文件。 现在的挑战是, /etc/passwd具有账户被locking(不活动)的用户。 是否可以编辑下面的脚本并发送活动用户的列表,以及帐户被locking的用户列表? 新报告应反映活跃用户的列表以及禁用/locking用户的列表。 我目前的脚本如下: #!/bin/ksh #title :user.list.script.ksh #description :This script collects list of users from the server #note :Multiple hosts can be added #HOSTS format: HOSTS="00.00.00.00-DEV" #example "hostname-DEV" FILE=/home/zaira/report.txt #list will be saved in report.txt date > $FILE echo >> $FILE for host in $HOSTS; do ip=$(echo $host|cut -d '-' -f 1) […]