搭建C开发环境的一个小shell,自动,得找软件包和配置文件模板
08-6
我经常在putty里工作,有时候如果一个命令执行太长,不得已,我得开两个窗口,如果事情再多,可能开四个五个,不过有的ssh登陆工具可以开多个窗口,但难免会出点乱子.那么我们可以把命令隐藏再后台执行,使用linux下命令 “&” 这个倒霉的符号.
比如我们要执行一个命令,(暂时没想到执行时间N长的命令,假设一个shell) test.sh , 现在提交并隐藏在后台
$./test.sh >> test.log &
意思是,执行test.sh 反馈的结构输送至 test.log , &表示这个命令提交至后台执行.
执行后,返回一个进程号,可以用ps来查看.
这样,我们可以连续在同一个终端窗口上运行多个持续的命令.
然后,问题又来.我们运行这些命令至后台后,如果想退出终端窗口,那么后台的命令也随之中断.我们得想办法让进程持续运行.这里得使用此命令 nohup
重新执行上边的操作,那么我们应该这样执行
$nohup ./test.sh >> test.log
然后敲logout,放心,再登陆试试ps,进程依然存在!
mysql,apache的基本搞定了,php的还有很多问题,先放出这些代码,方便自己操作。PHP部分正在调试。
#!/bin/sh
h_path = “/root/”
url=”http://www.sunboyu.cn/sourse/”
install_dir=”/opt/”
mkdir $install_dir
termcap_sourse_name=”termcap-1.3.1″
mysql_sourse_name=”mysql-5.0.22″
mysql_install_dir=$install_dir$mysql_sourse_name
openssl_sourse_name=”openssl-0.9.8g”
openssl_install_dir=$install_dir$openssl_sourse_name
httpd_sourse_name=”httpd-2.2.9″
httpd_install_dir=$install_dir$httpd_sourse_name
fastcgi_sourse_name=”mod_fastcgi-2.4.6″
fastcgi_install_dir=$install_dir$fastcgi_sourse_name
libxml2_sourse_name=”libxml2-2.6.30″
libxml2_install_dir=$install_dir$libxml2_sourse_name
zlib_sourse_name=”zlib-1.2.3″
zlib_install_dir=$install_dir$zlib_sourse_name
jpeg_sourse_name=”jpegsrc.v6b”
jpeg_install_dir=$install_dir$jpeg_sourse_name
libpng_sourse_name=”libpng-1.2.29″
libpng_install_dir=$install_dir$libpng_sourse_name
freetype_sourse_name=”freetype-2.3.7″
freetype_install_dir=$install_dir$freetype_sourse_name
php_sourse_name=”php-5.2.6″
php_install_dir=$install_dir$php_sourse_name
###MYSQL
wget ${url}${termcap_sourse_name}”.tar.gz”
tar -zxvf $termcap_sourse_name”.tar.gz”
cd $termcap_sourse_name
./configure
make && make install
cd ..
rm -rf ${termcap_sourse_name}*
groupadd mysql
useradd -g mysql mysql
wget ${url}${mysql_sourse_name}”.tar.gz”
tar -zxvf $mysql_sourse_name”.tar.gz”
cd $mysql_sourse_name
./configure –prefix=$mysql_install_dir –enable-thread-safe-client –enable-local-infile –enable-largefile –with-charset=utf8 –with-uca –with-gnu-ld –with-pic –with-mysqld-libs –with-comment –with-query-cache –with-bench –with-big-tables –with-innodb –with-mysqld-use=mysql
make && make install
cd ..
rm -rf ${mysql_sourse_name}*
###APACHE
wget ${url}${openssl_sourse_name}”.tar.gz”
tar -zxvf $openssl_sourse_name”.tar.gz”
cd $openssl_sourse_name
./configure –prefix=$openssl_install_dir
make && make install
cd ..
rm -rf ${openssl_sourse_name}*
wget ${url}${httpd_sourse_name}”.tar.gz”
tar -zxvf $httpd_sourse_name”.tar.gz”
cd $httpd_sourse_name
./configure –prefix=$httpd_install_dir –enable-authz-dbm –enable-log-config –enable-headers –enable-setenvif –with-ssl=$openssl_install_dir –enable-static-ab –enable-http –enable-mime –enable-status –enable-suexec –enable-vhost-alias –enable-dir –enable-rewrite –with-mpm=worker
make && make install
cd ..
rm -rf ${httpd_sourse_name}*
wget ${url}${fastcgi_sourse_name}”.tar.gz”
tar -zxvf $fastcgi_sourse_name”.tar.gz”
cd $fastcgi_sourse_name
sed ’s/\/usr\/local\/apache2/\/opt\/httpd-2.2.9\//g’ Makefile.AP2 > Makefile
make && make install
cd ..
rm -rf ${fastcgi_sourse_name}*
###PHP
wget ${url}${libxml2_sourse_name}”.tar.gz”
tar -zxvf $libxml2_sourse_name”.tar.gz”
cd $libxml2_sourse_name
./configure –prefix=$libxml2_install_dir
make && make install
cd ..
rm -rf ${libxml2_sourse_name}*
wget ${url}${zlib_sourse_name}”.tar.gz”
tar -zxvf $zlib_sourse_name”.tar.gz”
cd $zlib_sourse_name
./configure –prefix=$zlib_install_dir
make && make install
cd ..
rm -rf ${zlib_sourse_name}*
wget ${url}${jpeg_sourse_name}”.tar.gz”
tar -zxvf $jpeg_sourse_name”.tar.gz”
cd $jpeg_sourse_name
cp makefile.unix Makefile
make && make install
cd ..
rm -rf ${jpeg_sourse_name}*
wget ${url}${libpng_sourse_name}”.tar.gz”
tar -zxvf $libpng_sourse_name”.tar.gz”
cd $libpng_sourse_name
./configure –prefix=$libpng_install_dir
make && make install
cd ..
rm -rf ${libpng_sourse_name}*
wget ${url}${freetype_sourse_name}”.tar.gz”
tar -zxvf $freetype_sourse_name”.tar.gz”
cd $freetype_sourse_name
./configure –prefix=$freetype_install_dir
make && make install
cd ..
rm -rf ${freetype_sourse_name}*
wget ${url}${php_sourse_name}”.tar.gz”
tar -zxvf $php_sourse_name”.tar.gz”
./php-5.2.6/configure –enable-cli –enable-cgi –enable-fastcgi –enable-force-cgi-redirect –enable-discard-path –enable-path-info-check –with-openssl –with-pcre-regex –enable-calendar –enable-dom –enable-ftp –with-openssl-dir=/usr/local/openssl –enable-gd-jis-conv –enable-hash –with-iconv –enable-json –enable-mbstring –enable-mbregex –enable-pdo –enable-posix –enable-libxml –enable-simplexml –with-sqlite –enable-tokenizer –enable-xmlreader –enable-xmlwriter –with-zlib=/usr/local/zlib –with-freetype-dir=/usr/local/freetype –with-gd –with-jpeg-dir=/usr/lib/libjpeg.so.62.0.0
在linux(centos5)上编译安装 php-5.2.6.tar.gz ,configure参数一定要带上 –enable-cli
完成后,php所在目录 /usr/local/bin/php
运营 ./php -v 显示php版本信息,证明安装成功
编写我的第一个php shell脚本
#!/usr/local/bin/php -q
echo “Hello World!”;
?>
保存为 test.sh
运行,屏幕会 回显 Hello World!
在命令行下,不会存在get post之类的动作,除非参数写到页面内,而php恰巧提供了这样的命令行参数接口,$argv
修改test.sh
#!/usr/local/bin/php -q
print_r($argv);
?>
加参数运行 ./test.sh t1 t2 ,回显为
Array
(
[0] => ./test.sh
[1] => t1
[2] => t2
)
总看到招聘php程序员的帖子说要求php程序员熟练运用linux,shell,我估计熟悉LAMP配置,在这个架构下开发php的人不在少数,但说到SHELL,估计有一批人一冒一身的冷汗。
c shell,bash shell的确用的少,但php shell你说不懂,就该左右开弓一百八十个大嘴巴。
php本身就是一种shell,在php4之后,php编译有个 –enable-cli 参数,php5之后这个参数几乎成了标配参数。php一样可以作为shell脚本运行在装有php环境的服务器上。
而在phpchina.com phpx.com总多bbs的招聘上,居然没有哪个php程序员拿出php shell这个技能去跟他们交涉。而实际上,phpshell的功能根本不比bash弱,而且在LAMP环境中,php shell比bashshell有诸多的优点。
下边是我在与非门科技
工作时候的几个php shell应用,抛砖引玉,希望大家能学会这些简单但又适用的技能。
$root = “/var/www/”;
$bakdir = “/var/wwwbak/”.date(”Y-m-d”);
$dir = array(”***.eefocus.com”,”***.eefocus.com”);
if(!is_dir($bakdir)){
mkdir($bakdir);
}
foreach($dir as $key=>$value)
{
exec(”tar zcf “.$bakdir.”/”.$value.”.tar.gz /var/www/”.$value);
#echo “tar zcf “.$bakdir.”/”.$value.”.tar.gz /var/www/”.$value.”
“;
}
?>
这是一个简单的网站目录备份程序,使用cron每天执行,自动tar压包备份网站。虽然很笨的方法,但网站安全系数提高了,这个过程也不用写啥bash去解决。
其实在php执行shell的时候,已经支持命令行参数了,这些应用下次分解。
参考网站:
http://www.phpbuilder.com/columns/darrell20000319.php3
http://www.php-cli.com/
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
|---|---|---|---|---|---|---|
| « 一 | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | ||||