linux系统中bach,Linux有用命令及配置汇总

查找: grep "要找的字符串" -rl 目录

替换: sed -i "s/要查找的字符串/替换字符串/g" `grep "要查找的字符串" -rl 目录`

注意: 替换中的 grep 命令要被 TAB 键上边的那个引号包起来

参考链接:http://hi.baidu.com/kik107732781/blog/item/469c5d7f28c5370029388a5a.html

14. 在shell中使用ftp,避免交互

#!/bin/bash

HOST='xx.xx.xx.xx'

USER='user'

PASSWD='passwd'

FILE='yourfile'

ftp -n $HOST << END_SCRIPT

quote USER $USER

quote PASS $PASSWD

bin

prompt

get(/put) $FILE

quit

END_SCRIPT

exit 0

通过以上的脚本,就可以实现自动的从ftp服务器上下载文件,或者上传文件。

--Godbach. Nov 24,2009

15. 检测MD5字符串的有效性

应用情形是这样的:一个文件,存储的全是MD5值,而且每一个MD5从顶格占一行。行尾可能是‘\n’或者'\r\n',需要输出所有无效的MD5的行。

使用awk,命令如下:

$ awk --re-interval '$0 !~/^[0-9A-Fa-f]{32}[\r]?$/' md5file

--Godbach. Mar 26,2010

16. diff 递归目录的代码

$ diff -rq -x .svn dirA/ dirB/

diff中递归比较带子目录的源码使用-r选项,只打印文件名使用-q选项。要排除一些目录或者文件,不参与比较,可以使用-x选项。比如通常我们不比较版本代码中的.svn中的文件。

--Godbach. Mar 31,2010

17. vsftp服务器上文件时间的配置

问题:直接登陆系统看到/var/ftp/pub目录下所有文件的日期与通过ftp登陆上去看到文件的时间不一致,我的测试环境上是相差8个小时,应该就是时区设置的问题。

对vsftp的配置文件/etc/vsftpd/vsftpd.conf最后添加一行内容,如下:

use_localtime=YES

重启vsftpd即可。可见,默认情况下vsftpd使用的是GMT时间。

--Godbach. Apr 13,2010

18. 删除名字中带空格或换行符的目录或文件

通常我们想删除某些文件的时候,可以使用find+xargs命令的组合:

$find . -name filename | xargs rm -rf

但是,当搜索的文件名是某个长文件名的一部分,或者该文件的路径中某个目录名为带空格或者换行符的时候,最终无法删除该文件。

这个原因在于当前find和xargs默认文件名的分隔符是以空格或者换行符的,遇到一次空格就认为一个文件了。因此,处理带空格或者换行符的文件名时将失败,修正的方法就是修改find和xargs处理文件名是的分割符,让它们以NULL(0)为分隔符,修正方式如下:

$find . -name filename -print0 | xargs -0 rm -rf

这样就实现了find输出的所有文件名以NUL分割,xargs也以同样的方式进一步处理find输出的所有文件。

--Godbach. Apr 13,2010

19. tar排除指定目录打包

如果 /opt/apache/目录下有 a b c d  这几个目录

现在要将 a b目录tar打包,不打包c d目录

命令如下,当前在opt目录下

opt>  tar -zcvf apache.tar.gz --exclude=c --exclude=d    apache

opt> tar -zcvf test.tar.gz --exclude=/apache/c --exclude=apache/d   apache

注意: 要打包的目录要放在最后面的!、--------------------------------------------

tar分卷压缩:tar cvzpf - somedir | split -d -b 500m (-d不是split的选项,是shell的选项,表示将tar命令的输出作为split的输入)

tar多卷合并:cat x* > mytarfile.tar.gz

引用链接:http://blog.chinaunix.net/u/19637/showart_441607.html

--Godbach. Apr 17,2010

20. 非交互进行ftp下载--wget

下载单个文件:

#$wget -b ftp://user:pass@ftpserver/[dir/]file

其中[dir/]/file代表所欲下载的文件相对于ftp根目录的路径。

--Godbach. Apr 28,2010

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值