linux常用命令小结
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhaizhenxing.blog.51cto.com/643480/134891 |
查询操作系统类型
cat /etc/issue cat /etc/redhat-release 查询操作系统内核版本
cat /proc/version 查询服务器信息
uname -a 查询服务器name
hostname 查看文本行数、字数、字节数
wc(ls -l|wc) 输出信息中只显示某一行
awk ls -l|awd '{print $2}' 替换文本中的字符串
sed -e 's/newstring/oldstring/g' < oldfile > newfile ssh racpub1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
显示某目录占用磁盘大小
du -sh /oracle 过虑掉重复word
sort -u 查询历史命令
history 查询用户操作历史记录
#! /bin/ksh for user in 'cat /etc/passwd|cut -d ':' -f1' do echo ************* cat -$user/.sh_history echo ************* done 修改shell,直接写shell名称
ksh bash umask的实际权限应该等于777减去显示的权限,例如umask 002 ,实际是777-002=775
列出当前cpu消耗时间最多的10个进程
ps -ef|sort +6|tail ps auxgw|sort +2|tail 杀掉难处理的进程
kill -9 pid cat /dev/null > /dev/ttyname kill -9 pid 建立ssh关系的操作系统间文件copy
scp -P 7522 zzx1.dmp oracle9i@192.168.8.159:/home1/oracle9i/ 查看oracle监听的端口
lsnrctl stat find常用命令
find /home1/oracle9i -name cman* find / -name access_log 2>/dev/null 这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream 2 中,access_log 2就是表明系统将把错误信息输送到stderrstream 2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了 find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件 find / -empty # 查找在系统中为空的文件或者文件夹 find / -group cat # 查找在系统中属于 groupcat的文件 find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件 find / -mtime -1 #查找在系统中最后24小时里修改过的文件 find / -nouser #查找在系统中属于作废用户的文件 find / -user fred #查找在系统中属于FRED这个用户的文件 find结果的处理方法:
find /data/backup -mtime +5 | xargs rm -rf rm -rf `find /data/backup/ -mtime +5` find /data/backupp -mtime+5 -exec rm -rf "{}" ";" find /data/backupp -mtime+5 -exec rm -rf {} \; find /data/backupp -mtime+5 -maxdepth 1 -exec cp {} /home/zzx \; //-maxdepth表示目录的最大深度,1表示当前目录 find /etc -name aaa -exec CMD1 {}\; -exec CMD2 {}\; //一次查找后针对返回结果执行多条命令 以上命令基本等效。其中
"{}" <= result
";" <= end of command find -exec 是每次匹配成功就执行rm 一次。假如有500个匹配项,shell就要fork 500次去执行rm。
xargs在命令行长度允许的情况下会累积到一定程度去rm几十个文件,这样就能减少rm执行的次数。在匹配项较多的情况下,性能相对较好好。
ftp启动、停止命令
/sbin/service vsftpd start|stop|restart ftp参数设置: /etc/vsftpd/vsftpd.conf ftp修改端口: /etc/vsftpd/vsftpd.conf中增加listen_port=2121 查看ftp服务是否启动: ps auxgw|grep ftp 设定系统时间 若以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[CC]YY][.ss],其 MM 为月份,DD 为日,hh 为时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
[root@wdb_test oracle]# date 113012002004 Tue Nov 30 12:00:00 CST 2004 和时钟服务器校正时间 rdate -s ip --直接校正 rdate -p ip --打印服务器时间 linux下启动telnet服务过程 root登陆
vi /etc/xinetd.d/telnet 将disable=yes加#注释掉 /etc/rc.d/init.d/xinetd restart 默认是不能以root登陆的,如果要一定以root登陆,修改
/etc/pam.d/login文件 将auth required pam_securetty.so加#注释掉 查看本机监听的端口 可以使用命令:netstat -lnp来察看系统当前监听的端口。其中l选项表示显示正在被监听(listen)的端口;n选项表示直接显示端口数字而不是通过察看/etc/service来转换为端口名;p选项表示列出监听的程序。
查看操作系统安全日志
dmseg查看系统故障
more /var/log/secure*查看所有安全日志 强制用户登陆时修改口令
chage -d 0 username(linux) passwd -f username(solaris) 强制用户下次登陆时修改密码,并且设置密码最低有效期0和最高有限期90,提前15天发警报提示 chage -d 0 -m 0 -M 90 -W 15 htang(linux) passwd -f -n 0 -x 90 -w 15 htang(solaris) 查看某个用户的密码设置情况
chage -l username 修改密码配置文件 vi /etc/login.defs ntsysv 查看启动的服务
启动某个服务
/etc/init.d/network restart service network restart 在/etc/resolv.conf中加入域名服务器进行域名解析 例如:nameserver 202.106.196.115 vi特殊指令
:$跳到文档最后一行 ctrl + f 向后翻页 ctrl + b 向前翻页 H 跳到当前文档第一行 M 跳到当前文档中间行 L 跳到当前文档最后行 vncserver启动桌面选项(gnome和kde)
P32>cat xstartup #!/bin/sh #[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey #vncconfig -iconic & #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #twm & #startkde &(如果使用kde就去掉注释)
gnome-session
在整个文件或某几行中在行首或行尾加一些字符串 vi file :3,$s/^/some string / 在文件的第一行至最后一行的行首前插入some string :%s/$/ some string/g 在整个文件每一行的行尾添加 some string :%s/string1/string2/g 在整个文件中替换string1成string2 :3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2 Note: s为substitute,%表示所有行,g表示global 扫描192.168.5中启动服务器的ip
nmap -sP 192.168.5.0/24 增加ip
ifconfig eth0 192.168.0.12 netmask 255.255.255.0 同时修改/etc/sysconfig/network-scripts下的etho文档,修改例子: DEVICE=eth1 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.160.12 NETMASK=255.255.255.0 GATEWAY=192.168.160.1 solaris下修改ip:
1.ifconfig iprb1 plumb 2.ifconfig iprb1 192.168.165.15 netmask 255.255.255.0 up 3./etc/hostname.iprb1 -->192.168.165.15 增加路由:
161的机器想要访问160的机器,需要增加路由: linux:route add -net 192.168.160.0 netmask 255.255.255.0 gw 192.168.161.1 solaris:route add net 192.168.160.0 192.168.161.1 kill某个用户的全部进程
pkill -9 -u username kill掉所有的oralce应用session
ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|kill -9 删除数量比较多的文件
ls | xargs -n 20 rm -fr ls当然是输出所有的文件名(用空格分割) xargs就是将ls的输出,每20个为一组(以空格为分隔符),作为rm -rf的参数 也就是说将所有文件名20个为一组,由rm -rf删除,这样就不会超过命令行的长度了 Soure RPM的簡易安裝步驟: 1.先取得Source RPM, 通常Source RPM的檔案會有個src.rpm來辨別, ex:freetds-0.62.1-1.src.rpm 2.rpm -i xxx-xxx.src.rpm ex: rpm -i freetds-0.62.1-1.src.rpm 3.cd /usr/src/redhat/SPECS 4.可以看到xxx.spec ex: freetds.spec 5.進階User可以去編輯它, 初輯User就可以不用理, 直接rpmbuild -bb xxx.spec ex: rpmbuild -bb freetds.spec 6.cd /usr/src/redhat/RPMS 此為產生好的rpm最後放置的地方 7.cd i386 通常一般package都會放在i386 8.將所產生的rpm安裝 rpm -i xxx-xxx.rpm, ex: rpm -i freetds-0.62.1-1.i386.rpm 其實大多時候我們都不需要自己Build Source RPM, 因為大都有現成for各個平台的RPM, 但有時現成RPM的東西可能不合你用, 像我會去Build freetds是因為現成的freetds的RPM只有freetds, freetds-devel, 沒有freetds-unixodbc, 所以就直接抓Source RPM, 而且freetds的Source RPM還貼心的幫我設好, 我也不用改就可以直接build了.
取本月最后一天
cal|xargs|awk '{print $NF}' 取上月最后一天
get_lastday_of_lastmonth() { yy=`date +%Y` mm=`date +%m-1|bc` if [ $mm -lt 1 ] then mm=12 yy=`expr $yy - 1` fi aaa=`cal $mm $yy` dd=`echo $aaa|awk '{print $NF}'` echo $yy$mm$dd } 看某月日历(2006年3月)
cal 3 2006 得到上级目录名和当前目录名 cmd:dirname /home/oravip/thm res:/home/oravip cmd:basename /home/oravip/thm
res:thm 将字符串逆转(字符串必须在文件中)
rev filename 字符串截断方法:
##截断最后一个匹配的字符串之前的所有字符 #截断第一个匹配的字符串之前的所有字符 $ MYVAR=foodforthought.jpg $ echo ${MYVAR##*fo} rthought.jpg $ echo ${MYVAR#*fo} odforthought.jpg ##倒数,截断最后一个匹配的字符串之前的所有字符
#倒数,截断第一个匹配的字符串之前的所有字符 $ MYFOO="chickensoup.tar.gz" $ echo ${MYFOO%%.*} chickensoup $ echo ${MYFOO%.*} chickensoup.tar ##截断任意长字符串
$ EXCLAIM=cowabunga $ echo ${EXCLAIM:0:3} cow $ echo ${EXCLAIM:3:7} abunga nfs服务配置过程 Server端:
1./etc/exports格式:
例:共享/share目录给192.168.0.x的用户 /share 192.168.0.0/24 (rw)
2.启动portmap服务:
service portmap start[restart]
3.启动NFS服务:
service nfs start[restart]
Client端
1.启动portmap服务:
service portmap start[restart]
2.挂载服务器端的共享目录(假设服务器端192.168.0.1):
mount -t nfs 192.168.0.1:/share /mnt/localshare
mount -t nfs -o nolock 192.168.1.80:/share_xd_d /nas_xd_d linux下发送mail的命令:
mail -s "`date +%D` poundage" zxzhai@corp.netease.com -c zhaizhenxing8170@163.com,zhaizhenxing@vip.163.com </home/oracle/backup/sh/abc_icbc_chinapay.txt
监控端口字符流命令,可以用来查看数据是否加密
/usr/sbin/tcpdump -l -i eth0 -w - src or dst port 23 | strings 显示文件中包含指定字符串本身和它的后n行
cat file|grep “指定字符串” -A n 显示文件中包含指定字符串本身和它的前n行
cat file|grep “指定字符串” -B n 显示文件中包含指定字符串本身和它的前后n行
cat file|grep “指定字符串” -C n ----显示匹配行下向下第几行的数据
grep -2 '^foxmile$' test.txt | tail -1 ----mysql连接数高的应急办法 前提是mysql还能登录进去,如果一直是所有连接占满了,就不能用本方法了。 检查空闲时间相对长的连接
mysql -e 'show processlist'|awk '{print $6" "$1" "$2" "$3" "$4" "$5}' | sort -n 生成杀掉空闲时间相对较长连接脚本,本例杀掉最长的100个
mysql -e 'show processlist'|awk '{print $6" "$1" "$2" "$3" "$4" "$5}'|grep Sleep | sort -n | tail -100 | awk '{print "kill "$2";"}' > kill_long_sleep.sql mysql < kill_long_sleep.sql
当然,别忘了与负责应用的同学协商。 删除乱码文件方法:
ll -i 得到i节点 find ./ -inum 12345 -print -exec rm {} -rf \; 日期转换为邮戳 date -d '1970-01-01 CST '1222142410' seconds' +"%Y-%m-%d %T" 本文出自 “帅小伙的博客” 博客,请务必保留此出处http://zhaizhenxing.blog.51cto.com/643480/134891 本文出自 51CTO.COM技术博客 |



帅小伙 
博客统计信息
热门文章
最新评论
友情链接