Chinaunix首页 | 论坛 | 博客
  • 博客访问: 246113
  • 博文数量: 28
  • 博客积分: 1080
  • 博客等级: 少尉
  • 技术积分: 327
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-28 21:21
文章分类
文章存档

2011年(14)

2010年(14)

我的朋友

分类: LINUX

2011-02-14 16:13:32

 本文只记录个人在工作学习中觉得比较有用的。关于命令全面的信息还是需要自己man的。
1. du -sh directory
   查询directory占用磁盘空间的大小,如果直接用du -sh可查询当前目录占用的磁盘空间。
2. grep -v [pattern] [file1, file2...]
  用来输出文件中不包含pattern形式的行。
                                                           --Godbach. Feb 18,2009
3. ls --full-time
   显示文件被修改的详细时间,包括年月日时分秒,还有时区。
                                                           --Godbach. Feb 20,2009
4. 统计文件总数
包括当前目录及子目录:
find . -type f | wc -l

统计子目录个数
ls -lR|grep "^d"|wc -l

 参考链接:
                                                           --Godbach. Apr 7,2009
5. 修改系统时间并保存
修改系统日期: date -s yy/mm/dd 
修改系统时钟: date -s hh/mm/ss
将修改后的时间保存到CMOS: clock -w
                                                           --Godbach. Apr 8,2009
6. 文件名匹配
(1)使用星号"*"可以匹配文件名中的任何字符串;
(2)使用问号"?"可以匹配文件名中的单个字符;
(3)使用 [...] 可以用来匹配方括号 [] 中的任何字符。在这一方法中,还可以使用一个横杠 -来连
接两个字母或数字,以此来表示一个范围, 使用[!...]不匹配[]中的任意字符。
参考链接:http://www.lupaworld.com/home/space-16106-do-blog-id-114802.html
                                                          ---Godbach。 Apr 9,2009
7. 读取内存的相关信息--hexdump & od
如果因某种需要,想直接从内存的某个位置读取数据,譬如BIOS的一些信息,是可以在进入系统之后读取出来的,所需要读取的文件就是/dev/mem.
已知我要读取的位置偏移是0xFF4F0, 读取长度为8 bytes。那么可以用hexdump直接读取出来:
[root@localhost ~]# hexdump -C -n 8 -s 0xff4f0 /dev/mem 
000ff4f0  31 41 43 42 54 30 35 31                           |1ACBT051|
000ff4f8
也可以通过od命令读取:
[root@localhost ~]# od -c  -N 8 -j 0x0FF4F0 /dev/mem 
3772360   1   A   C   B   T   0   5   1
3772370
                                                           --Godbach. Apr 20,2009
8. 关闭控制台响铃
(1)关闭命令行的响铃:
打开/etc/inputrc
文件中应该有一行如下内容:
#set bell-style none
这一行就是用来打开或者关闭控制台命令行响铃的,当前状态是被注释掉的,因此删除'#'即可,
set bell-style none
当然,如果文件中没有这一行内容的话,直接添加上去即可。
这个更改会在下一次启动系统生效。

(2)关闭vi编辑器的响铃:
打开/etc/virc或/etc/vimrc,想该文件中添加一行:
set vb t_vb= 
这个修改是即时生效的。编辑完成之后,再用vi编辑其他文件,就没有了响铃。           
                                                           --Godbach. Apr 20,2009
9. Linux下获取主板相关号信息 --  dmidecode
10. vi以标签页方式打开多个文件
#vi -p file1 file2
:tabp {count}  跳到前一个或者第count个文件
:tabn {count}  跳到下一个或者第count个文件
:tabc[lose]    关闭单签标签页,应该用:q也可以关闭.
更多信息请参考:http://hi.baidu.com/cdcchen/blog/item/abc7f6a9baefcff91f17a235.html

11. 保存iptables配置的规则
这里是以Redhat系列的Linux为例,具体实现方法:
#/sbin/service iptables save
保存在/etc/sysconfig/iptables中,下次系统启动会自动引导已经保存的所有iptables规则。
                                                         --Godbach. Apr 23,2009 
12. vi中设置ctags的路径
通常,在源码目录,用ctags -R ./* 就可以生成整个源码的tags文件。这时,进入源码的子目录的话,发现不能引用到tags文件。
解决的方法如下:
编辑vi的配置文件.vimrc或.virc文件,添加一行内容: 
set tags=tags; set autochdir
     第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。
    当然你如果想直接使用绝对路径,这样也是可以的:
    set tags=/path/to/tags
参考连接:http://hi.baidu.com/changfa1999/blog/item/9bee2690ee841a88a877a418.html
                                                         --Godbach. May 24,2009 
13.grep, sed 在目录及递归子目录中的所有文件 查找并替换字符串    

查找: 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
阅读(1448) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~