1. 查找命令:find,which,whereis,locate
find 用的最多,最慢。find /etc -name java 这里不在啰嗦了
which是根据环境变量来的,并且是寻找可执行文件
whereis 查linux的系统文件档案数据库
locate 你得先updatedb 然后会在 /var/lib/slocate/slocate.db这个数据库给你所想要的。否则计算机是不给面子的。至于配置嘛在updatedb.conf里。
2. 文件管理
查看当前目录每个子目录大小du * -sm|sort -n,相当于windows的资源管理器按大小排列,比他方便的就是可以把文件夹也列出来
输入输出的重定向,
ls -l /affix/2012/RES/INDU/20120315/410448514.pdf 1>>~/affix1.log 2>>~/affix.log 1代表存在就存入affix1.log,2代表文件不存在的就存入affix.log至于df -h,ls -n这些先不提了
3 . 基本的管线指令
cut : cat /etc/passwd |cut -d ":" -f 1 ---d表示分隔符 -f表示后面接的第几个区块 -c接的第几个字符如:cat /etc/passwd |cut -c1-20 取1-20个字符
wc: 统计:-l 多少行 -m:多少个字符 -w 多少字 如:arp |wc -l
split:-b:以档案大小来划分,-l以行数来划分。方便分割,统计。
tr: last |tr '[a-z]' '[A-Z]'将大小写转换
4.关于/etc/hosts.allow &/etc/hosts.deny
这里不得不提/etc/rc.d/init.d/*这里面全是LINUX自启动的服务,其启动的参数由/etc/xinetd.conf控制。譬如我们要禁用某台机器登陆服务器,只需:
vi /etc/hosts.deny
服务名:ip:deny就可以了。服务名的获取得从/etc/rc.d/init.d里查看或者netstat
5.shell脚本的加减乘除:
运算符号 代表意义
= 等于
!= 不等于
< 小于
> 大于
-eq 等于
-ne 不等于
-lt 小于
-gt 大于
-le 小于或等于
-ge 大于或等于
-a 双方都成立(and)
-o 单方成立(or)
-z 空字符串
-n 非空字符串
几个规则:
1. 在 [ ] 当中,只能有一个判别式;
2. 在 [ ] 与 [ ] 当中,可以使用 && 或 || 来组织判别式;
3. 每一个独立的组件之间『都需要有空格键来隔开』!
如:
#just for the shell if then else fi test
echo -e "\033[36;32m"
echo "Press Y to continue~"
read input
#这里一定注意空格问题
if [ $input = "Y" ] ; then
echo "$input"
echo "Script is running~~"
else
echo "Stop!"
fi
6. Redhat linux版本查看
uname -a -看内核和32 or 64bit
cat /etc/redhat-release --看redhat linux发行版本号,如redhat linux Update x
cat /proc/version --和uname -a 差不多
7.忘记密码的处理
7.1.在Grub引导程序中,在下面给出了一系列提示。有兴趣的朋友可以都去试验一下。我们这里按“e”键进入系统启动前的Grub配置。(如果你的系统引导程序是LILO,和Grub大体类似,请自行参照LILO给出的提示操作)
7.2.然后我们选择中间那一项:“kernel /vmlinuz-2.4.20-8 ro root=LABEL=/”按“e”键进入编辑。
7.3.在“LABEL=/”后面输入“空格+single”后回车。空格一定要记得输!
7.4.然后选择中间那一项:“kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ single”,按“b”键启动单用户模式系统。
7.5.如果你的系统前面出现“sh-3.0#”这样的提示符,那么恭喜你,你已经成功进入了单用户模式。
7.6.在“sh-3.0#”后面输入“passwd root”后回车。出现了激动人心的输入新密码界面。
7.7.输入新密码并再次确定后,你的root用户的密码就成功更改了。
7.8.然后输入“reboot”命令,重启系统,下次登陆就可以用新密码来使用root账户了
8. Terminal linux unknown
- export TERM=xterm
- 可將此行寫入 .bashrc 內, 或直接執行即可解決.
9 crontab
查看服务启动没有:
ps -ef|grep cron
查看所有用户的任务.
linux : /var/spool/cron/ crontab -l -u oracle crontab -d -u oracle
Aix:/usr/spool/cron/
crontab书写規则
<minute> <hour> <day> <month> <week> <command>
第1列 第2列 3 4 5 6
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd
10 history 让其显示命令的具体执行时间
HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '
export HISTTIMEFORMAT
重新开机后会还原,可以写/etc/profile
10 tcpdump src 10.2.1.13 and dst 192.168.100.200 and port 8002 -s 3000 -vv -nn -w tcpdump.dmp
-s 指定包大小
-vv 详细输出
-nn 不解析端口
-w 写入磁盘文件
11 dstat 前提是你装了dstat包和传统的sysstat包不一样的是,他整合在一起的
-c, --cpu enable cpu stats 显示cpu的情况
-d, --disk enable disk stats 显示硬盘的情况
-l, --load enable load stats 显示系统的负载情况
-m, --mem enable memory stats 显示内存的情况
-n, --net enable network stats 显示网络的情况
-p, --proc enable process stats 显示进程的情况
-s, --swap enable swap stats 显示swap的情况
-y, --sys enable system stats 显示系统的情况
--output file write CSV output to file 写到csv文件中
每二秒收集一次,默认为一秒
dstat -cdlmnpsy 2
12 iotop 为一 python编写的脚本,需要2.6.20以上内核和python 2.6以上。
13 设置及查看网卡速率mii-tool -v eth0
ethtool -s eth0 speed 1000 -duplex full
14.vi 中的替换
用:替换1-4行的- 1,4s/-/:/g
sed -i 's/-/:/g'
15硬件信息查看
dmidecode -t processor
kudzu --probe --class=cpu
16 一个ftp下载并判断文件类容是否相同脚本
#DATE:2012-03-22 BY:CHENGXUEFENG
#!/bin/bash
export LANG=zh_CN.GBK
v_date=` date +%Y%m%d `
cd /sjxhq/dbf
rm -fr /sjxhq/dbf/*
/usr/bin/ftp -n<<!
open 218.249.44.106 1548
user user password
binary
lcd /sjxhq/dbf
prompt
mget *.dbf
close
bye
!
if [ -f sjshq.dbf ]
then
#比较文件内容是否一样,不一样则返回differ,发出邮件
v_string=`diff sjshq.dbf /sjxhq/dbf_bak/$v_date/sjshq.dbf|awk '{ print $6 } '`
if [ "$v_string" != "differ" ]
then
echo ` date +%Y%m%d ` "sjshq.dbf 和昨天的文件相同,请核对! "|mailx -s "数据异常,请注意检查" -c "" -b "" test@126.com.cn
rm -fr /sjxhq/dbf/*
fi
else
echo "文件获取失败"|mail -x "北京行情数据FTP服务器获取文件失败!" -c "" -b "" test@126.com.cn
fi
关于linux中的特殊符号参考:http://www.longunix.net/forum.php?mod=viewthread&tid=9600&from=qqgroup
查看linux版本uname -a,cat /etc/redhat-release,lsb_release -a,df -t,uname -a
16 rpm -e -allmatches
当存在多个包的时候specifies multiple packages报这个错误这时-allmatches就可以用上了
17 linux 用解锁
usermod -U oracle
如果报Your account is locked. Maximum amount of failed attempts was reached.那就必须
pam_tally2 -u oracle -r