Linux 工作常用命令总结

1.配置Linux任务计划

Linux有三种计划任务:

at:指定一个时间执行一个任务 (适用一个或多个任务,执行一次后就不用)

cron:根据一个时间表自动执行任务 (使用一个或多个任务,周期性执行)

系统级别的计划任务及其扩展anacron:在一个指定时间间隔错过后自动执行任务

对于cron命令例如:

* * * * * wall hello everyone

 

5个星号分别代表:minute hour day-of-month month-of-year day-of-week 分时日月周

上面的意思是每分每小时每天每月每周广播hello everyone

 

如果我要表示9月10日25分执行/home/test/xxxx.sh任务怎么表示?

25 * 10 9 * /home/test/xxxx.sh

参考 http://blog.sina.com.cn/s/blog_5fd841bf0100q44p.html

 #crontab -e 编辑当前用户的cron表 

#crontab -l 查看当前用户的cron表 

#crontab -r 删除当前用户的cron进程

#crontab -u 用户名

 

2.cron指令不能带环境变量

在cron中运行sh file时候,如果调用java命令,有时候会报错:Error:java: command not found

这个是因为没有设置环境变量。

设置环境java_home等环境变量

 

 #!/bin/bash
export JAVA_HOME=/usr/java/jdk1.6/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/td.jar:$JAVA_HOME/jre/lib/rt.jar:.
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

 

如果只有JRE的话,

 

export CURRENT_DIR=`pwd`
#REM CURRENT_DIR is the current directory.
export CLASSPATH=$CURRENT_DIR
export PATH=$CURRENT_DIR/jre/bin
#REM set path,please notice the upper case and lower case.
for filename in `ls jre/lib/*.jar`
do
filename1=$filename1:$filename
done
export CLASSPATH=$CLASSPATH$filename1

java -cp $CLASSPATH -jar xxxx.jar

 3.在windows 下编辑sh 文件,在linux上运行出错,或者就是command not found

   原因是CR/LF问题,在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以linux下运行时就会报错找不到命令。

解决办法:

1、在editplus中“文档->文件格式(CR/LF)->UNIX”,这样linux下就能按unix的格式保存文件

2、在vim中,输入:setff=unix,同样也是转换成unix的格式。

3、使用UltraEdit中打开.sh文件,按Ctrl+H切换到16位状态,搜索0D,删除之,然后保存就可以

或者 设置文件 ->转换->DOS->UNIX

或者 修改完毕后需要点击文件->设置另存为,编码方式选为UTF-8-无BOM,保存

 

4、bash与sh 的区别

我们所使用的系统当中,使用sh调用执行脚本,相当于打开了bash的POSIX标准模式 (等效于bash的 --posix 参数)

一般的,sh是bash的“子集” (不是子集的部分,具体区别见下的“Things sh has that bash does not”)。

在bash程序执行,当“$0”是“sh”的时候, 则要求下面的代码遵循一定的规范,当不符合规范的语法存在时,则会报错, 所以可以这样理解, “sh”并不是一个程序,而是一种标准(POSIX), 这种标准,在一定程度上保证了脚本的跨系统性(跨UNIX系统)。

 

 

 

 

 

猜你喜欢

转载自luhantu.iteye.com/blog/2069312