类 Unix 系统下常用工具小结

一、帮助查阅: man
    运行 windows 程序,按下 f1,就能打开帮助窗口。但是类 Unix 系统中,man 命令能让你方便地打开想要查找的帮助。比如,想查找排序有关的帮助,用 man -k sort,就能看到熟悉的 qsort。
    有时候我们往往查不到想要的手册,比如 man printf,出来的并不是我们想要的 c 函数说明,这就要用到 section,比如我们通过 man -k printf ,得到跟 printf 相关的记录有如下四条:

printf (1) - format and print data printf (1p) - write formatted output printf (3) - formatted output conversion printf (3p) - print formatted output
请注意第二列中的那个括号,这就 是 section,如果要看相应的 帮助,就得带上这个值,比如,c 语言的 printf,实际上为  man 3 printf

二、目录文件及常用操作: cp/ls/ln/unlink/mv/rm/mkdir/find/cd/pwd/ls/su/sudo
    在日常的工作中,复制、删除文件,做链接,建目录,查找文件,查看磁盘空间等都是常规的事情,这些工具可以让你在做这些事时,很容易上手。但是并不意味着这些工具很简单,少的一两个选项,多的也有上十个之多。

三、进程管理: nohup/bg/fg/ps/kill/killall
    这些工具完成查看进程状态,让程序作为守护进程运行,停止程序等工作,特别是停止程序,用 kill 或者 killall,是不是觉得比打开任务管理器,一行一行地找,弹出一堆对话框关闭程序要强很多呢?

四、文本处理: sort/grep/egrep/fgrep/head/tail/comm/wc/cat/more/cut/join/paste/uniq/diff
    在 windows 下处理文本和做统计,我见得最多的是,打开文本编辑器,甚至是 Word 或者 Excel 这样的庞然大物,以一种极慢的速度,打开一通对话框,点击一通按钮,查找替换,统计。在类 Unix 的系统里,组合这些工具,让你可以很容易地控制上百 M,上 G 的原始数据,对他们进行统计,分析,排序。

五、高级文本处理: awk/sed
    这应该算是类 Unix 系统中比较复杂的两个工具,甚至有专门的书籍《sed 与 awk》来讲解这两个工具的使用。说得简单点是工具,说得复杂点,是门编程语言。但是一旦掌握,即使部分掌握,也觉得威力无比。

六、压缩包档案管理:tar/gzip/gunzip/bzip2/rpm/zip/unzip
    压缩工具,可以让我们在有限的磁盘空间里存储更多的内容,可以让一大堆小文件作为整体在网络上传输,而极大地提高传输效率,从实用上来讲,网络上的源码、安装程序都做成了各种压缩格式,所以掌握类 Unix 工具,压缩工具应该是必须要了解的一个方面。

七、编辑器: vi
    vi简单点说是一个文本编辑器,复杂点说就是一个集成开发环境,面对没有图形界面的终端,vi 就是我们的 Visual Studio。vi的操作应该是开发人员的基本功。

八、程序语言:Python/Perl/PHP
    这三种语言的诞生就与类 Unix 系统有着天然的不可分割的关系,它们的存在,无论是做常规的数据处理,还是做为原型构建,或是作为胶水语言,甚至是产品级的程序开发(当然各有侧重),都是极好的工具。

九、程序开发: make/gcc/gdb/valgrind/splint
    从写最基本的程序,让程序可执行,到写出写高质量的程序,这些工具的组合都为你提供了解决方案。像上面的工具一样,其实很多类似的工具在 Windows 下也存在,但是 Windows下的软件把它们包装起来,甚至做成了向导对话框,让你不了解它们的存在,不知道他们,但是类 Unix的系统,让你深入到里面去,让你自己组合起这些工具。虽然增加了复杂,但是更让你知其然而且知其所以然,这是迈向高手的必经之路。

十、网络: ftp/wget/lynx/rsync/nc/telnet/ping/traceroute
    在终端上,也可以在网上冲浪,在终端上,我们也能很方便跟远程的计算机上传下载来回传输文件,这些工具不但为网络操作提供了方便,更让我们可以清楚地了解一些底层通信的机制。

十一、系统管理与分析:top/iostat/vmstat/sar/netstat/crontab/history/df/du/passwd/groupadd/useradd/chkconfig/service
    在一般的模式下,开发人员只管按需求写程序,遇到了瓶颈,往往由系统工程师把系统状态汇总然后同开发人员沟通从而诊断问题做出改进。但是如果开发人员多多了解系统,多跟系统工程师学习沟通,不但可以提高解决问题的效率,另外掌握一些日常维护和性能分析的工具,知道如何去分析,知道问题所在,从而在开发中加以避免,岂不是更好?

文章主要内容来源于网站:http://blog.sina.com.cn/s/blog_54447c9001009j3w.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值