linux常用命令积累

先推荐几本好书:

1.《鸟哥的Linux私房菜-基础学习篇》-- 鸟哥

2.《Linux Shell 脚本攻略》-- Sarath Lakshman

3.《鸟哥的Linux私房菜-服务器架设篇》-- 鸟哥

4.《Unix环境高级编程》-- W.Richard...

5.《Linux系统编程》 -- Robert Love

6.《Linux内核设计的艺术》-- 新设计团队

7.《Linux内核设计与实现》--Robert Love

1,查找已安装软件并卸载

rpm -qa|grep libevent # 查看系统是否带有该安装软件,如果有执行命令:

rpm -e libevent-1.4.13-1 libevent-devel-1.4.13-1 --nodeps --allmatches

--nodeps:忽略依赖删除

--allmatches:

Remove all versions of the package which match PACKAGE_NAME. Normally an error is issued if PACKAGE_NAME matches

2,开机启动

vim /etc/rc.d/rc.local

将启动脚本文件放到里面去,用绝对路径,或者用绝对路径执行

3, 文件夹下面查找最大的文件:

# find -type f ! -path '*/.svn/*' -exec stat -c "%s %n" {} \;|sort -nr|head -10

4,调整linux系统时间和时区

一、修改时区:

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

复制的时候会提示是否覆盖。点击yes

修改为中国的东八区

# vi /etc/sysconfig/clock

ZONE="Asia/Shanghai"

UTC=false

ARC=false

二、配置新的时间

日期设定:

# date -s 2013/05/06

时间设定:

# date -s 18:45:52

5,vim的列编辑模式

Ctrl+v先进入列模式,移动光标选取要编辑的行列,Shift+i进入编辑模式,然后Esc

6,mv/cp/rm的时候要排除掉一些文件时候,可以使用:

# mv $(ls | grep -v 'cm') cm   ->> 将当前文件夹中所有除cm文件夹外其他文件(不包含隐藏文件)移动到cm文件夹中去。

7,发送中文邮件

先vim /etc/sysconfig/network 修改hostname为一个有意义域名,比如xn.baoxian.com,注销,重启sendmail服务,然后可以发送:

# echo "中文的内容" | mail -s "=?utf-8?B?$(echo 这个是个中文标题,吼吼 | base64)?="  [email protected]

将含有main函数的class文件和mysql驱动jar包放入一个文件夹,然后写个shell脚本:

#!/bin/bash
# 定时发送数据到邮箱中
# 请注意所有的路径都是绝对路径
export LANG=zh_CN.UTF-8
JAVA_HOME=/usr/local/jdk1.6.0_25
$JAVA_HOME/bin/java -cp "/root/work/hehe/*:/root/work/hehe/" EveryDay /root/work/hehe/notice.txt
wait
mail -s "=?utf-8?B?$(echo 这个是个中文标题,吼吼 | base64)?="  [email protected] < /root/work/hehe/notice.txt
wait
mv /root/work/hehe/notice.txt /root/work/hehe/notice_$(date +%Y%m%d_%H%M).txt

 之后编辑crontab:

# vim /etc/crontab

在最后面加入:

22 15 * * * root sh /root/work/hehe/hehe.sh

然后重启crond服务

# /etc/init.d/crond restart

再来一个每天给大伙发送一些冷笑话的例子:

#!/bin/bash
export LANG=zh_CN.UTF-8
# 定义发送邮件函数
function send_mail {
	echo "$1 -- $2"
	mail -s "=?utf-8?B?$(echo 每天一个冷笑话(by 一刀) | base64)?="  "$1" < "$2"
	wait
}

# 第一步先计算笑话的文件名
count=1
while read line
do
	count=$line
done < /data/scripts/hehe/ins.txt

# 第二步再找出email地址列表,循环发邮件
filecontent=( `cat "/data/scripts/hehe/mails.txt" `)
for t in "${filecontent[@]}"
do
	echo "$t -- $count.txt"
	send_mail "$t" "/data/scripts/hehe/jokes/$count.txt"
done

((count++))
echo "now the count is : $count "
echo "$count" > /data/scripts/hehe/ins.txt
echo "每天一个冷笑话发送完毕"

本人博客已搬家,新地址为:http://www.pycoding.com/