跳至主要内容

Shell记录20080415

在实际生产应用中,其实我可以这么些,首先判断这个人是不是ROOT
那么就需要在脚本中写上这么个判断语句:
#!/bin/sh
#ifroot
if [ "$LOGNAME" != "root" ]
then
echo "You need to be root to run this script" >&2
exit 1
else
echo "Yes indeed you are $LOGNAME proceed"
fi


return是函数返回,exit是结束进程.
exit(0); /*这个是正常的关闭所有程序 */
exit(1); /*这个就刚好相反,有错误的关闭 */

/dev/null #表示的是类似于windows的回收站,无限大 2>&1#表示将这些在后台处理

同样的语句在solaris下和RH下有点不同,当我使用exit语句时rh下会执行,而solaris直接就是跳出。也是是因为SHELL不同的缘故。

在for in中加” ”就是字符串,数字不加就是数字显示的是竖直排列,家了引号后就是横向排列了。
在使用的时候Sorlaris不支持$()这样的在shell中嵌套的写法,反而是支持``反引号的写法,RH测试两者都支持。

可以用ls wc –l显示文件夹的文件数,用shell的话是做个count
#!/bin/sh
#forcount
counter=0
for files in *
do
counter=`expr $counter + 1`
done
echo "count the `pwd` total files is $counter"

要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld
根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。
在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,你应当可以看见后面的命令提示。如果你用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。
下述命令可以停止MySQL服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。
如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld --console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。
最后选项是用--standalone --debug启动mysqld。此时,mysqld 写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。
使用mysqld --verbose --help显示mysqld的所有选项。



使用脚本中的函数参数作为shell命令,一开始不是很明白现在有点明白了,在刚刚开始的使用你如同平时写脚本一般将函数写进去,例如findit(){
if [ $# -lt 1 ]
then
echo "usage :findit file"
return 1
fi
find / -name $1
}
然后写完chmod后,在执行下. ./XXX,当你在命令行下用set命令后你会发现他已经被加载到你的用户下,当然了在你退出这个session后,会自动消失的。那么这个使用你在使用这个函数类似于findit他就不会报错,而且也不需要向刚刚执行脚本一样,而他直接已经加载到你的bin下,所以当我使用findit main的时候他会全盘搜索,但是用于我是用其他用户的所以不能找到,因为权限不够。
当使用了unset命令后则可以将已经加载的这个函数去除。Set后他已经不再了

评论

此博客中的热门博文

4 steps to delete account in Gerrit DB

4 steps to delete account in DB. Delete from accounts where preferred_email=’’; delete from account_ssh_keys where account_id=''; delete from account_external_ids where external_id='gerrit:*’; delete from account_external_ids where external_id='username:*’; whatever it was in H2 database and postgres db . H2: ssh -p 24198 localhost gerrit gsql Postgres: psql

mod

apache安装后,如果想再添加模块,往往不想重新安装一次,再者,我在安装中发现,并不是安装文件中所有的modules都会被默认安装,即使在安装中使用了 ./configure --prefix=/usr/local/apache --enable-so --enable-modules=all --enable-mods-shared=all也是如此。我使用上述方法安装的apache2.2.6就没有安装proxy相关模块。这时,需要手工生成so文件,但会自动的被复制到你的apache安装目录的modules中,然后修改apache的配置文件,加载相关模块,验证apache配置并重启服务即可。以上描述的具体操作步骤如下: 操作系统:linux redhat 4.5 ES apache版本:2.2.6 可自行下载tar包 1. 拷贝安装包到/usr/local,并在目标目录下进行解压。[root@localhost local]# cd /usr/local[root@localhost local]# tar -zxvf httpd-2.2.4.tar.gz2. 配置安装参数,安装的目标目录为/usr/local/apache,建议设置enable-mods-shared=all,不用的module注释掉就行了![root@localhost local]# cd httpd-2.2.4[root@localhost httpd-2.2.4]# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all3. 编译并安装。[root@localhost httpd-2.2.4]# make[root@localhost httpd-2.2.4]# make install4. 启动Apache,并测试。[root@localhost httpd-2.2.4]# cd /usr/local/apache/bin[root@localhost bin]# ./apachectl start 打开浏览器,并在地址栏中输入主机的IP地址如 http://192.168.1.254/ 如果出现以下画面则说明安装成功。It works! 注意:安装完成后检查系统服务中的HTTPD服务是否已