其他:
(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'`