对于Linux我懂得不多。也是在应用的过程中,慢慢学会一些。因为也是小白起步的,所以希望给各位亟待入门的兄弟姐妹一个参考吧。

linux命令不单单是用来操作服务器,更是前辈们的精华,好些命令都是经典啊。我琢磨在“把代码写好”这事情上,这些命令也是一个参考标准。

###1.cd = change directory 切换目录

到某一个目录。必备技能。特别的是:

cd ~ 到当前用户的home目录,也就是登录进来时默认的目录

cd / 到根目录

cd - 到之前一个目录。类似电视遥控器的回看功能。挺好用的。在-后面加数字可以实现多次返回,cd -2可以返回切换前两次的目录。

###2.grep

一般用法1:grep 'keyword' application.log

用于在文本中搜索

这样可以搜索出application.log 这个文件中的所有含有keywor这个词的行。当你需要看搜索出的行的前后部分是需要用到以下参数

-An 是往前n行 如-A50就是往前50行

-Bn 是往后n行 如-B50就是往后50行

-Cn 是前后都各n行 如-C50就是往前后各50行

另外,–color 也是必备,用途是高亮关键字。可以缩写作–col.

适合于在文件中查找某个关键字,不适合跟踪业务流程执行情况,这种需求推荐用less或者vi

一般用法2:grep ‘keyword’ application.log -c

用于统计keyword在application.log 中出现的次数

一般用法3:grep 'keyword' application.log.2013-01-* -c

这种假设当前目录下有

application.log.2013-01-01

application.log.2013-01-02
application.log.2013-01-03

等这种格式的多个文件,将列出每个文件中关键词的出现次数。我经常用它查找某个流水号在具体哪天发生了操作。当然前提是日志必须是每天滚动的。

###3.tail 查看文件尾的数据

一般用法:tail -f application.log

application.log 是需要查看的文件名
-f 表示跟随,就跟eclipse控制台输出的效果是相同的。

比较适用于看实时输出的内容。不适合查找静态的文本。

###4.less

强大的文本查看工具。不会修改文本内容。

这里需要提到cat命令是全文查看,如同Windows下的notepad打开一个文件一样直白简单。但是过于直白了,对于生产环境里动则几百兆的日志,几乎无用。

vi也可以用,但是会将文本都加载到内存。据同事说,如果文件较大,vi跟less的查看文件的效率差距比较大。

一般用法:less application.log

打开后进入了操作页面。就像Windows下打开一个新的软件一样,进入word你就可以它相应的快捷键了。less下的操作跟vi一致。

最常用的如下:

G :也就是shift+g一起按,到文件尾

gg:到文件头

h:向上移动一行

j:向下移动一行

k:往左移动一格

l:往右移动一格(注意hjkl在键盘的位置)

/:按关键字往下搜索,比如要搜keword这个词,输入/keword按下enter键,就会从当前位置往下搜索,移动到第一个找到的行,此时如果按下n,就会到下一个出现的位置,如果按下shift+n,也就是N,就会往回找到上一次出现的位置

?:按关键字往上搜索,如果是搜索keyword,输入?keyword按下enter键,就会从当前位置往上搜索,定位到搜索到的第一个关键字所在的位置。n和N的作用一致,但是因为/和?方向相反,n和N的方向也会相反。总结就是,搜索出来后,n是按着当前方向查找下一处出现的位置,N就是当前方向的反方向的下一次出现位置。

&:只保留关键字所在的行。可以将不需要的部分过滤掉。

我一般查看日志的方式是:

预先拷贝好流水号或者关键字

1.)如果不知道在哪个日志,会用 grep ‘流水号’ application.log -c --col 找到所在的日志文件。再在对文件less。

2.)less application.log

3.)如果知道是在下午发生的就用G到文件尾,用‘?流水号’倒着搜索,找到最后一次出现的位置,用h或者j上下查看。如果不是,就用n往上接着找。

如果是在上午,就是gg到文件头,然后用‘/流水号’往下搜索。

4.)找到进程号,/进程号,看这个进程处理的过程,找到问题

###5.vi

或者vim。适用于编辑文件。经典的文本编辑工具。体系庞大,不能够详讲。提一句是vi有模式。ESC键到normal模式,就是默认模式,i键到输入模式。

上面提的less的命令基本适用。

G :也就是shift+g一起按,到文件尾

gg:到文件头

h:向上移动一行

j:向下移动一行

k:往左移动一格

l:往右移动一格

i:insert模式,可以输入修改

d:删除

x:删除一个字母

y:拷贝

p:粘帖

推荐Windows下装个gvim用一用。建议使用gvim来学习vi的使用。学习曲线起初是比较陡的,但是确实入了门,还是挺有成就感的。

另外,推荐使用cygwin,可以在Windows下学习linux命令。

(find/sort/sed/awk)