Chinaunix首页 | 论坛 | 博客
  • 博客访问: 854806
  • 博文数量: 581
  • 博客积分: 7803
  • 博客等级: 少将
  • 技术积分: 3653
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-27 08:21
文章分类

全部博文(581)

文章存档

2013年(7)

2012年(414)

2011年(159)

2009年(1)

分类:

2012-05-21 12:39:37

原文地址:运维经常会用的命令 作者:jiannma

1. To see the process by the PID:
    command :  ps -fp "process-pid"

2. Speeding up grep Searrches by excluding Directories
    command : grep -R --exclude-dir=cvs foo *

3. 查看多CPU的使用率:
    top 执行完成后,按数字"1"

4. awk 算每行的长度:
  command : awk '{print length($0)"\t"$0}' filename

6. 禁止和开启SElinux :
  To stop the SElinux : setenforce 0
  To re-enable SElinux:  setenforce 1

you want the system to always start in permissive mode, then here is how you do it.
edit /etc/selinux/config :

SELINUX=enforcing => SELINUX=disabled



其他:

(1)给每个文件后面增加一个空行: find . -name "*" |xargs sed -i '$G'

(2)在文件末尾的前一行加上"#": sed -i '$i\#' filename

(3)rename :  
rename .txt .bak *.txt(把所有以.txt结尾的文件变成.bak)

(4) sed 'N;s/\n//' file (意思是将下一行的换行符号去掉)

(5)文件如何分卷:
split iso :
split -b 900m -d CentOS-5.4-x86_64-bin-DVD.iso CentOS-5.4-x86_64-bin-DVD-1.iso
这样在目录下就会出现
CentOS-5.4-x86_64-bin-DVD-1.iso00
CentOS-5.4-x86_64-bin-DVD-1.iso01
CentOS-5.4-x86_64-bin-DVD-1.iso02
CentOS-5.4-x86_64-bin-DVD-1.iso03
CentOS-5.4-x86_64-bin-DVD-1.iso04


这样就把一个ISO文件分成了几个小文件,方便于传输

遗留的问题是,怎么再把这几个小文件组合成一个大的ISO?
cat CentOS-5.4-x86_64-bin-DVD-1.iso0* >  CentOS-5.4-x86_64-bin-DVD.iso

(6) 想要解压tar包中的某个目录或者文件:
<1>先查看下tar 包的结构: tar tf xxx.tar
<2>然后获取某个目录或是文件: tar xf xxx.tar xxx/xxx/dir(file)
<3> 关于查看zip 包里面的结构: tar ztf xxx.tar.gz
                                gzip -v xxx.zip
后面的意思是这个目录或是文件在包中的位置

(7) pushd ,popd , dirs
pushd : instead of "cd" ,they both change the directories, but "pushd"
add your old directory to the stack,and puts the new directory on the
top of the same stack.

popd: return the old directory

dirs: see the currently stack
 
dirs -l -v : to look at the stack
 
(8)关于sed 的一个技巧:
file :
Tolstory reads well,and Tolstory writes well.

sed 's/Tolstory/Tom/1' test
sed 's/Tolstory/Tom/2' test
后面接数字,表示的是第几个匹配出现才要替换

(9)关于替换的命令:
sed -i 's/xx/xx/' filename
perl -pi -e 's/xxx/xx/' filename
perl -p -i.bak -e 's/xx/xx' filename

(此命令先把原文件进行备份.bak,然后再进行替换)

替换全部:'s/xx/xx/g' xxxxx


(10) 在文件中插入行号:
perl -pi -e '$_ = sprintf "%d %s", $., $_' filename

(11) 7z 加密打包文件
命令: 7za a -mhe=on -ms=on -p file.7z dir/

(12) yum iso public key doesn't be installed ?

cat /etc/yum.repos.d/CentOS-Media.repo
看到:
gpgkey 位置:
则rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
然后:
把ISO 挂载到/media 里面,
运行: rpm --import /media/RPM-GPG-KEY-CentOS-5

(13)配置网络时候出现:
eth0 : no such device ..
...

则首先要进行的是更新内核。新的内核中可能包含该络设备的驱动

(14) 关于tar 打包命令的扩展:
打包某个目录但不包括目录下的某个子目录:
tar  cf xx.tar ./dir  --exclude=./dir/dir2 --exclude=./dir/dir3

(15)关于rpm 的几个命令:

<1>查看RPM 包依赖的命令:
rpm -qpR xxx.rpm

<2>查看命令是属于哪个安装包:
如:
which vncserver
/usr/bin/vncserver

rpm -qf /usr/bin/vncsever
vnc-server-4.1.2-14.el5_3.1

<3> 查看服务的配置文件:
rpm -qc httpd

(16)pgrep 命令:
pgrep -u user  server
可以查看出用户所开启的服务的ID
如: pgrep -u jian.ma  vnc

查看服务的ID:pgrep -l  service_name  

              pidof  service_name


(17)显示文件的行号:
Command:
            nl  filename
 Or:     cat -n filename


(18)关于解压当前所有的tar 包的方法:
find . -name "*.tar " -exec tar xf {} \;
或者:
find . -name "*.tar" |xargs tar xf-

(19)追查域名IP 来源
nslookup hostname

(20)
快速检查机器的IP:
(1)/sbin/ip add ls eth0 |awk '/inet/{print $2}'|sed -n '1p'
(2)ifconfig eth0 | grep "inet addr:" | awk '{print $2}' |cut -c 6-



(21)关于SVN几个命令:
查看SVN的不同版本之间的差别:
<1> 查看某版本修改了什么:
svn log -r version -v

<2> 扩展下,查看俩个版本修改了什么:
svn log -vq -r version1:version2

(22)
取得机器的MAC Address:
ifconfig |awk '/HWaddr/ {print $NF}'
ifconfig |awk '/HWaddr/ {print $5}'


(23)
获取机器的网关地址:
/sbin/ip  route list match 0.0.0.0/0 | cut -d " " -f 3

(24)svn 命令:
查看svn 最新一次提交的日志:
svn log -rHEAD

查看最新一次的修改的内容
svn log -rHEAD -v :

(25)
创建个空文件方法:
cat > file   --> Ctrl+D 结束
:> file
touch file


(26)
查看当前文件系统的挂载情况:
mount | column -t

(27)
打开文件是乱码的解决方式:
strings file1 > file2

(28)使用"pmap pid"查看程序或者进程的内存使用情况
注意:
此命令需要以root用户执行才能看到结果
如果以普通用户查看只能看到进程

(29)
当前目录大小排序:
du -h --max-depth=1 |sort -n

改进后的命令:
du -x --max-depth=1 |sort -n |awk '{print $2}' |xargs du -hx --max-depth=0
 
 
Script:
 
cat dudir.sh
---------------------
#!/bin/sh
for x in K M G
  do
        du -sh * | \
         grep -P "^[1-9]+\.?[0-9]*$x" |\
         sort -n
done
 
 
--------------------------------------------


(30)抓包:
tcpdump -i eth0 -nn -X 'port 80'


(31)Find out my commits today in svn :
svn log |grep `echo $LOGNAME` |grep `date '+%Y-%m-%d'`

阅读(270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~