Articles of shell

创build永久可执行的别名

我安装了MySQL(MAMP,Mac OS X),但每次从shell中访问时都需要用完整path调用它。 我创build了一个别名: alias mysql='/Applications/MAMP/Library/Bin/mysql ,但这只会持续到terminal/ Bash会话。 什么是build立永久性别名的有效途径? (我需要能够执行来自PHP的命令)。 我应该在Bash启动脚本中设置别名(这是怎么做的?),还是编辑sudoers文件更好? (可以使用这个例子..) 谢谢 – 编辑 – 根据回答: 我只是尝试创build一个~/.bashrc并写下如下: 别名mysql ='/ Applications / MAMP / Library / bin / mysql' 但这似乎没有任何影响。 这个文件有特殊的语法吗?

在bash中随机洗牌文件

我在linux中有一些文件。 例如2和我需要在一个文件中洗牌文件。 例如 $cat file1 line 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 和 $cat file2 linea one linea two linea three linea four linea five linea six linea seven linea eight 后来,我洗牌的两个文件,我可以得到像这样的东西: linea eight line 4 linea five line 1 linea three line 8 linea seven […]

如何在* nixlogin时运行脚本?

我知道我有一次知道如何做到这一点,但是…你如何运行一个脚本(bash是好的)在UNIX上login?

我的shell脚本执行后停止

我正在写一个如下所示的shell脚本: for i in $ACTIONS_DIR/* do if [ -x $i ]; then exec $i nap fi done 现在,我想要实现的是列出$ ACTIONS_DIR中的每个文件,以便能够执行它。 $ ACTIONS_DIR下的每个文件是另一个shell脚本。 现在,这里的问题是,在使用exec之后,脚本停止,并且不会直接进入下一个文件。 任何想法为什么这可能是?

“./somescript.sh”和“”之间的区别是什么? ./somescript.sh”

今天我按照一些说明在Linux中安装一个软件。 有一个脚本需要先运行。 它设置了一些环境variables。 该指示告诉我执行. ./setup.sh . ./setup.sh ,但我通过执行./setup.sh犯了一个错误。 所以env没有设置。 最后我注意到这一点,并继续。 我想知道这两种调用脚本方法的区别。 我对Linux是全新的,所以请尽可能详尽。

为什么不“sortingfile1> file1”工作?

当我想sorting文件,并保存sorting的输出本身,就像这样 sort file1 > file1; file1的内容完全被擦除,而当我试图像这样做“tee”命令 sort file1 | tee file1; 它工作得很好[编辑:“工作正常”,只有对于有幸运的时间的小文件,会导致大数据丢失或无用的进程调度] ,即它覆盖文件1的sorting输出本身,并显示在标准输出。 有人可以解释为什么第一个案件不工作?

在意外标记附近的语法错误'然后'

我input的代码与“Linux命令行:完整简介” (第369页)相同,但提示错误: line 7 `if[ -e "$FILE" ]; then` 代码是这样的: #!/bin/bash #test file exists FILE="1" if[ -e "$FILE" ]; then if[ -f "$FILE" ]; then echo :"$FILE is a regular file" fi if[ -d "$FILE" ]; then echo "$FILE is a directory" fi else echo "$FILE does not exit" exit 1 fi exit 我想知道是什么引入了错误? 我如何修改代码? […]

编写一个bash shell脚本,为用户定义的时间消耗一定量的RAM

我正在尝试编写一个bash shell脚本,在embedded式设备上为用户定义的时间消耗大量的RAM。 我怎么做,而不使用数组?

awk – 如何删除字段分隔符的第一列

我有一个csv文件,其数据如下所示 87540221|1356438283301|1356438284971|1356438292151697 87540258|1356438283301|1356438284971|1356438292151697 87549647|1356438283301|1356438284971|1356438292151697 我试图将第一列保存到一个新的文件(没有字段分隔符,然后从主csv文件中删除第一列以及第一个字段分隔符。 有任何想法吗? 这是我迄今为止所尝试过的 awk 'BEGIN{FS=OFS="|"}{$1="";sub("|,"")}1' 但它不起作用

SUID不能使用shell脚本

我创build了一个包含以下内容的小型shell脚本: cat /usr/bin/checksuid.sh !/bin/bash echo "Hello" > /etc/myfile.cnf ls -l /usr/bin/checksuid.sh -rwsr-xr-x 1 root root 56 Sep 9 12:56 /usr/bin/checksuid.sh 我也用root帐户创build了一个/etc/myfile.cnf文件,设置权限如下: -rw-r–r– 1 root root 6 Sep 9 12:26 /etc/myfile.cnf 当我从非root帐户执行/usr/bin/checksuid.sh ,出现以下错误: /usr/bin/checksuid.sh: line 3: /etc/myfile.cnf: Permission denied 有人可以帮助你,为什么SUID不工作?