Articles of bash

在nix环境中是否有“模式”或定义* rc文件的组?

我开始使用命令行多一点,我看到有很多方法来configuration我的$HOME一些configuration文件。 这很好,因为您可以按自己喜欢的方式进行自定义。 不幸的是,对于初学者来说,有太多的select是有点混乱。 例如,我为我使用的别名创build了.bash_alias 。 我甚至不知道这个选项存在,我习惯简单地编辑.bashrc。 是否存在一个模式,一个“良好的实践”,从rc文件结构的angular度来设想灵活性和模块化 ? 为此,是否存在一个标准化小组,或者每个人都创build它自己的configuration设置?

循环启动多个进程

在bash中,我正试图同时启动几个xeyes。 如果我这样做: for a in `seq 1 3`; do "xeyes"; done 我得到1个Xeye,而且只有当我closures了前一个Xeye时,这个Xeyes才会出现。 所以我试了一下: for a in `seq 1 3`; do "xeyes &"; done 但是在运行这个命令时,没有任何反应。 我可能做错了什么?

在系统启动时启动mongrel?

我有一个名为mgrst的脚本,为我重新启动杂种: cd /opt/redmine /usr/local/bin/mongrel_rails cluster::stop rm -rf tmp/pids/* /usr/local/bin/mongrel_rails cluster::start 我用rc.local的一行来调用它: /usr/bin/mgrst >>/tmp/start.log 2>&1 start.log在启动后有这个: already stopped port 3000 /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31: command not found: mongrel_rails start -d -e production -c /opt/redmine –user apache –group apache -p 3000 -P tmp/pids/mongrel.3000.pid -l log/mongrel.3000.log starting port 3000 Mongrel在启动后不启动。 我可以切换到root并运行上面的mgrst命令,它工作正常。 从上面的错误看来,即使我给它一个完整的path,它不会在启动时findmongrel命令。 任何想法发生了什么?

bash:循环超过20000个文件很慢 – 为什么?

对很多文件的简单循环在一个系统上比另一个快一半。 使用bash,我做了类似的事情 for * in ./ do something here done 使用“时间”,我能够确认,在system2上的“这里的东西”部分比在system1上运行得更快。 不过,系统2上的整个循环只要在系统1上就占用双倍的时间。 为什么? …如何加快速度? 目录中有大约20000个(文本)文件。 将文件数量减less到大约6000个,大大加快了速度。 无论循环方法如何(使用find命令replace“for in”或者甚至首先将文件名放在数组中),这些发现都保持不变。 System1:Debian(在openvz-vm中,使用reiserfs) System2:Ubuntu(原生的,比System1更快的处理器,更快的Raid5,使用ext3和ext4 – 结果保持不变) 到目前为止,我应该排除:硬件(System2应该更快),userland软件(bash,grep,awk,find是相同的版本)和.bashrc(没有spiffyconfiguration)。 那么它是文件系统? 我可以调整ext3 / 4,以便它reiserfs一样快? 感谢您的build议! 编辑:好吧,你是对的,我应该提供更多的信息。 现在我必须揭示我的初学者bash嘟but,但在这里我们去: declare -a UIDS NAMES TEMPS ANGLEAS ANGLEBS ELEM=0 for i in *html do #get UID UID=${i%-*html} UIDS[$ELEM]=$UID # get Name NAME=`awk -F, '/"name":"/ { lines[last] […]

我如何在Unix中创build日志文件?

我写bash文件来做一个特定的事件….现在我想创build日志文件来logging执行bash文件的date和执行结果“退出代码”?

diable显示屏幕上的命令输出?

当我写bash输出显示在屏幕上….我不想在屏幕上显示命令和命令输出我怎么能做到这一点?

bash文件参数问题

我写bash文件将文件从Unix复制到Windows,我将文件的path作为parameter passing给bash文件: – scp -r /$1/ user@hostname:/cygdrive/c/unix_file 当我执行bash并且不传递任何参数时,它将复制“当前目录”中的所有文件 例如: – roor @ hostname />./ bash.sh现在它复制根目录中的所有文件….当我testing退出代码它是相等的(0)!

Bash脚本新手 – 意外的文件错误结束

我经常在我的服务器上运行bash脚本,我试图编写一个脚本来监视日志文件夹,并在文件夹超出定义的容量时压缩日志文件。 我知道有更好的方法来做我目前正在做的事情,你的build议更受欢迎。 以下是我的脚本。 dir_base=$1 size_ok=5000000 cd $dir_base curr_size=`du -s -D | awk '{print $1}' | sed 's/%//g' ` zipname=archive`date +%Y%m%d` if (( $curr_size > $size_ok )) then echo "Compressing and archiving files, Logs folder has grown above 5G" echo "oldest to newest selected." targfiles=( `ls -1rt` ) echo "rocess files." for tfile in ${targfiles[@]} do […]

使所有用户都可以访问文件系统

我已经在/ mnt / storage中挂载了一个文件系统,但是如何让所有的用户不仅可以访问root?

centos bash语法“-bash:echo:写入错误:损坏的pipe道”centos 5.5

我试图从Linux命令发送fwknop SPA。 语法是 回声1234 | fwknop –Home-dir / tmp -f 5 -A tcp / 80 -a $ 1 -D google.com> / devel / null 2> 1& 但是我得到一个错误,如“-bash:echo:write error:Broken pipe”如果我从另一个centos尝试相同的命令它没有任何问题,所以我不知道如何解决它。 两台服务器都运行相同版本的centos(5.5)和更新版本。 非常感谢您的帮助!