ftafta 2009-05-22
一些高效的Linux命令行操作
本文将记录一些在使用Linux过程中,在命令行中进行工作的高效率命令,随着时间的积累如果我有新的技巧也将在本篇博文中更新。如果您也有高效率的小技巧,欢迎留言给我
1.查找Java项目中,main方法定义在哪个文件里.
切换到你要查找项目的目录下执行
grep-rlI'\<main'.
如果你觉得自己打字快,不怕麻烦执行如下命令也可以找到该文件
find-typef-name*.java-execgrep-l'\<main'{}\;
2快速的建立一个文件,并输入一些内容
cat>>filename,输入一些内容然后按Ctrl-d结束输入。
注意:如果filename已经存在则内容将被清空
3将文本文件中DOS换行符号转化为UNIX的换行符号
tr-s"\r""\n"<inputfile
如果你要将结果保存到outputfile文件
tr-s"\r""\n"<inputfile>outputfile
当然你使用vim编辑文件时,vim也提供文件转换功能
4查看某年某月某日是星期几
比如我要查看2008年5月22日是星期几那用cal来查看
cat52008显示2008年5月的日历
您是否发现命令行操作比图形界面浏览查看要快多了呢?
5快速的局域网内文件共享。
一般来说类linux系统之间的文件共享通常使用nfs,而linux
和Windows文件共享则使用samba,这两个服务器功能强大,但是使用起来免不了要配置一番
如果你的机器上装了python可以使用python自带的http服务器
进入你要共享文件的目录执行,ptyhon-mSimpleHTTPServer
对方只要在浏览器里输入你的IP地方加8000端口(例如192.168.1.104:8000)就可以看到共享目录下文件。
6用最简单命令杀死一个进程
以前为了结束一个进程通常是ps-aux|grepxxx
然后再查看该进程的ID,最后是kill进程ID。
如果你管道用的很熟,awk又会用一点,则有可能打下如此拉风的命令
psax|grepfirefox|grep-vgrep|awk'{print$1}'|xargskill-9
其实你没必要使用那么多的管道加awk,有个很简单的命令pkill
执行pkill-9firefox就终结firefox进程。
7用命令行求两个文件内容的交集、并集、差集等
a)求两个文件的并集(重复的行只保留一份)
catfile1file2|sort|uniq
b)求两个文件的交集(只留下同时存在于两个文件中的文件)
catfile1file2|sort|uniq-d
c)删除交集,留下其他的行
catfile1file2|sort|uniq-u
d)求文件file1对文件file2的差集,既内容存在file1,但不存在fil2
catfile1file2file2|sort|uniq-u
另外一种求文件差集方法
grep-F-ffile2file1-v
8将文件中第3列数据求和
morefile.txt|awk"{x+=$3}END{printx}"
9根据文件中第3列的内容排序输出
sort-k3file.txt
如果文件每列的分割符不是空白符则用-t指定分隔符,比如
sort-t,-k3file.txt