lytsing.org logo GNU - Linux 命令技巧

记录常用的Linux,另外,其他可以看Ubuntu的 UbuntuSkills

打包指定的文件列表

tar zcv -T filelist -f points.tar.gz

当前目录下递归查找某个字符串

grep -r xxxx *

当前目录下查找某个文件/目录

find . -type f -name xxxx
find . -type d -name xxxx

也可以用locate命令

locate xxx

svn 常用命令

svn propset svn:keywords "Date Id" c-header.c
svn merge -r 115: 107 xxx
svn ci
svn switch --relocate http://oldPath http://newpath

ftp 自动登录上传文件

写个脚本put.sh:

 #!/bin/bash

if [ $# != 1 ]; then
	echo "usage: $0 filename";
	exit 0;
fi

ftp -v -n your_ftp_ip_or_domain << END
user your_ftp_name your_ftp_password
binary
hash
cd /
prompt
put $1
bye
END

man 在终端显示颜色

编译 ~/.bashrc, 添加以下内容:

# for manpage
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'

这样,输入: man printf,就可以看到漂亮的ansi颜色

在多个文件中进行替换

c/c++开发没有用像eclipse那样的具有重构的工具,那一般可以用sed或者vim来做。比如要对当前目录下的*.c文件进行替换:

方法一:

for i in *.c; do
  sed -i -e 's/oldvalue/newvalue/g' $i
done

方法二:

vim *.c
:argdo %s/oldvalue/newvalue/ge | update

插入版权

弄了老半天,发布出去的时候,才忘了加版权,so easy , 一个小脚本搞定她! 在这里下载(这只是我用的,您应该按照自己喜欢的方式做相应修改),然后:

chmod a+x insert_copyright.sed
./insert_copyright.sed -i *.c *.h
svn propset svn:keywords "Id" *.c *.h