Articles of shell

Shell脚本 – 如何replace线

Ubuntu 9.10 嗨,大家好, 我想创build一个脚本,它将自动更新.htaccess文件中的一行。 有人可以请我指出一些创build一个基本的“查找和replace”脚本的说明吗? 我想象的东西基本上说:“寻找特殊的标记#ABC和#XYZ …删除标记之间的条目,并用'富'取代它。

我怎样才能使这个脚本更好?

我想知道是否有更好的方式来创build一个文件,而不是每行附加到文件。 我这样做,所以我可以保持可读性,但是,没有缩进。 有没有办法一次创build一个文件并input多行? if [ -d "/srv/www/$1" ]; then echo "Domain name already exists!" else mkdir -p /srv/www/$1/public_html; mkdir -p /srv/www/$1/logs; echo "<VirtualHost>" > /etc/apache2/sites-available/$1 echo "ServerAdmin support@$1" >> /etc/apache2/sites-available/$1 echo "ServerName $1" >> /etc/apache2/sites-available/$1 echo "ServerAlias www.$1" >> /etc/apache2/sites-available/$1 echo "DocumentRoot /srv/www/$1/public_html/" >> /etc/apache2/sites-available/$1 echo "ErrorLog /srv/www/$1/logs/error.log" >> /etc/apache2/sites-available/$1 echo "CustomLog /srv/www/$1/logs/access.log combined" >> […]

简单的挖掘输出?

在一个脚本中,我希望能够很容易地写一个IP地址,所以我想用dig(或者类似的命令)和back-ticks。 不过最简单的输出是我已经能够拿到参数了 > dig -t A +noall +answer www.google.com www.google.com. 300 IN A 173.194.66.106 www.google.com. 300 IN A 173.194.66.104 任何方式(额外的参数,不同的工具,而不是挖?)摆脱垃圾除了IP地址? ( 请不要告诉我使用sed。 ) 谢谢

一个应用程序SSHlogin使用loginshell?

我想在Linux机器上运行一个应用程序,这个应用程序将被大多数用户使用PuTTY访问。 我想要启动该应用程序,完成后,我想让它结束SSH会话。 使用chsh将shell设置为应用程序是否安全/足够? 我需要做其他任何事情(chroot监狱)? 这将在Ubuntu Lucid上实现。

Shell脚本连接数据库并执行查询

#!bin/bash Query="update table_name set colume ='i' where column_name is NOT NUll" mysql -u username -p password mysql <<EOF $query; EOF 上面的脚本不起作用

在nohup中运行一部分脚本shell

如何在nohup模式下运行shell脚本的一部分? 我的脚本是这样的: #!/bin/bash command_1 script2.sh script3.sh … (tests & loops, etc) script4.sh script5.sh 我想在没有使用'nohup'或'&'命令的情况下以nohup模式从script3.sh到script5.sh运行,所以如果用户断开连接,脚本将继续执行。 不知道我的问题是否足够清楚:)谢谢!

如果有什么字符将会弄乱我的terminal,并造成大量的噪音?

我写了一个我称为safecat的别名的包装脚本 ,它可以防止我偶然捕获二进制文件,并从我的PC扬声器中得到大量的尖叫声。 现在它认为一个文件是二进制文件,如果第一页中30%或更多的字符是非文本字符(ASCII范围32-127和\n , \r , \t , \b )。 我发现,只要我没有得到尖叫,我的terminal没有被搞乱,我真的没有任何问题。 是否有一组字符或字符序列,我可以专门寻找并拒绝如果这些猫存在? 这将更加强劲。 safecat.py源码:

更好的方式来循环通过服务器列表

我经常做的事情,我循环通过服务器列表采取一些行动。 例如: for s in `cat servers.txt` ; do echo; echo $s ssh $s 'do something' done 我想知道(从shell的angular度来看)是否有比cat servers.txt更简单的方法 是的,我知道像mcollective,capistrano等工具 – 我经常这样做,以解决mcollective问题:-)

在远程机器上的“svn update”

我需要能够在非技术用户的远程计算机上运行“svn update”,我该怎么办? 我们的非技术用户使用Windows XP,并安装了龟甲SVN客户端。 我正在考虑做下面的事情,但是我到目前为止还没有真正有利于… 批处理(在Windows上本地运行) Shell(在远程机器上运行需要SSH访问/客户端) CGI(通过networking在远程机器上运行)

ModSecurity错误条目

最近,我通过了一些错误日志来看看,因为我们最近有一些networking高峰。 然而,我从来没有使用modsecurity(我是一个程序员,因为我们没有一个真正的系统pipe理员),并出现了一些令人担忧的事情。 ModSecurity: Access denied with code 503 (phase 2). Pattern match –cut– [line "23"] [id "390144"] [rev "2"] [msg "Command shell attack: Generic Attempt to remote include command shell"] [severity "CRITICAL"] 关键词,命令shell和攻击可能不是什么好事。 我认为“远程包含命令shell”意味着一个黑客在未经授权的情况下试图拉起一个shell,但这更像是一个猜测而已。 有人能告诉我这里发生了什么,或者链接到我应该阅读的一些文档? 条目的频率是什么意思?