linux常用命令小结
时间:2009-03-23 来源:sjhf
查询操作系统类型 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 [email protected]:/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了. |
相关阅读 更多 +
排行榜 更多 +