每一个程序员需要了解的10个Linux命令

标签: General | 发表时间:2015-01-26 02:00 | 作者:ajaxj
出处:http://www.geek521.com

本文是 码农网原创翻译,转载请看清文末的转载要求,谢谢合作!

作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息。本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助。

以下就是今天我们要介绍的Linux命令:

 man
 touch, cat and less
 sort and grep
 cut
 sed
 tar
 find
 diff
 uniq
 chmod

接下来让我们逐一来详细介绍。

1、man命令

第一个你需要知道的Linux命令就是man命令,该命令可以显示指定命令的用法和描述。比如你想知道ls命令的用法和选项,可以在终端执行“man ls”:

语法: man <command name>
man ls
root@devopscube:~# man ls
LS(1)                            User Commands                           LS(1)
NAME
       ls - list directory contents
SYNOPSIS
       ls [OPTION]... [FILE]...
DESCRIPTION
       List  information  about  the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speciâ
       fied.
       Mandatory  arguments  to  long  options are mandatory for short options
       too.
       -a, --all
              do not ignore entries starting with .

2、touch,cat和less命令

touch命令可以在Linux系统中创建大小为0的任意类型文件,作为程序开发者,当你需要在Linux服务器上创建文件时,可以使用touch命令:

语法: touch <filename>
touch demo.txt

root@devopscube:~# touch demo.txt
root@devopscube:~# ls
demo.txt

cat命令用来查看文件的内容,但是使用cat命令并不能编辑文件的内容,它仅仅是可以浏览文件内容。cat命令不支持键盘上下键翻页。

语法: cat <filename>
cat demo.txt

同样的less命令也可以让你浏览文件,less命令非常快,并且支持上下键查看文件的开头和末尾。然而more命令和它类似,只是more命令只能用enter键实现文件的向前翻页,不支持回退。

语法: less <filename>
        more <filename>
less demo.txt
more demo.txt

3、sort和grep命令

sort命令用来对文件内容进行排序。创建一个名为test.txt的文件,并且把以下内容拷贝到该文件中:

1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

上面的例子中,第二列是名称,所以如果你想对名称列按字母排序,就可以使用“-k”选项,并标注列号,比如“-k2”:

语法: sort

sort -k2 test.txt

排序结果

root@devopscube:~# sort -k2 test.txt
45 Dave level expert dec
4 dennis start beginner jul
10 lucy level beginer mar
58 Mathew Head CEO nov
7 Megan employee trainee feb
1 mike level intermediate jan

第一列是数字,如果你想按数字排序,可以使用“-h”选项。如果数字在不同列上,你可以在“-h”选项后使用“-k”选项:

root@devopscube:~# sort -h test.txt  
1 mike level intermediate jan
4 dennis start beginner jul
7 Megan employee trainee feb
10 lucy level beginer mar
45 Dave level expert dec
58 Mathew Head CEO nov

最后一列是月份,你可以使用“-M”选项来让文件内容按月份排序:

root@devopscube:~# sort -k5 -M test.txt
1 mike level intermediate jan
7 Megan employee trainee feb
10 lucy level beginer mar
4 dennis start beginner jul
58 Mathew Head CEO nov
45 Dave level expert dec

注:如果你想消除重复的行,可以在sort命令后使用“-u”选项。

使用“-r”选项,是文件倒序排列:

root@devopscube:~# sort -h -r test.txt
58 Mathew Head CEO nov
45 Dave level expert dec
10 lucy level beginer mar
7 Megan employee trainee feb
4 dennis start beginner jul
1 mike level intermediate jan

Grep命令:

Grep命令非常强大,系统管理员经常会用到它。grep命令可以在文件中搜索指定格式的字符串,同时对其进行标准输出。

语法: grep "<search string>" <filename> 
        grep "Mathew" test.txt
root@devopscube:~# grep "dennis" test.txt
4 dennis start beginner jul

上面命令的输出结果是包含该子字符串的,如果你想检索完整的单词,你需要添加“-i”选项。同时,也可以用grep命令在多个文件中搜索字符串,命令代码如下:

grep "dennis" test1.txt test2.txt test3.txt

当然你也可以用正则表达式来匹配字符串。

4、cut命令

cut命令可以让你用列或者分隔符提取文件中的指定部分。如果你要列出文件中某列的全部内容,可以使用“-c”选项。例如,下面将从test.txt文件中提取第1、2列的全部内容。

cut -c1-2 test.txt
root@devopscube:~# cut -c1-2 test.txt
1
10
45
4
7
58

如果你希望从文件中提取指定的字符串,那么你可以使用分隔符选项“-d”和“-f”选项选中列。例如,我们可以利用cut命令提取names列:

cut -d’ ’ -f2 test.txt
root@devopscube:~# cut -d’ ’ -f2 test.txt
mike
lucy
Dave
dennis
Megan
Mathew

下面的例子从/etc/passd file中提取users列:

cut -d’:’ -f1 /etc/passwd

5、sed命令

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。

如果你想通过搜索替换文件中的指定内容,你可以使用“s”选项来检索到它然后将它替换。

语法: sed ’s/<old-word>/<new-word>/’ test.txt

例如,在test.txt文件中用“michael”替换“mike”:

sed ’s/mike/michael/’ test.txt
root@devopscube:~# sed ’s/mike/michael/’ test.txt
1 michael level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

6、tar命令

tar命令用来压缩和解压缩文件,其中经常会用到“-cf”和“-xf”选项。

语法: tar <options> <archive-name> <file/folder name>

让我们将test.txt文件打包:

tar -cf test.tar test.txt
root@devopscube:~# tar -cf test.tar test.txt
root@devopscube:~# ls
test.tar  test.txt

用“-C”选项将刚才打包好的test.tar文件解压缩至“demo”目录:

tar -xf test.tar -C /root/demo/
root@devopscube:~# tar -xf test.tar -C /root/demo/
root@devopscube:~# cd demo/
root@devopscube:~/demo# ls
test.txt

7、find命令

find命令用来检索文件,可以用“-name”选项来检索指定名称的文件:

find -name  find -name test.txt
root@devopscube:/home/ubuntu# cd ~
root@devopscube:~# find -name test.txt
./demo/test.txt
./test.txt

你也可以用“/ -name”来检索指定名称的文件夹:

find / -name passwd
root@devopscube:~# find / -name passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd
/usr/share/lintian/overrides/passwd

8、diff命令

diff命令用来找出2个文件的不同点。diff命令通过分析文件内容,然后将不同的行打印出来,下面的例子可以找出两个文件test和test1的不同点:

语法: diff <filename1> <filename2>
        diff test.txt test1.txt
root@devopscube:~# diff test.txt test1.txt
7c7
< 59 sdfsd
---
> 59 sdfsd  CTO dec

9、Uniq命令

uniq命令用来过滤文件中的重复行:

语法: uniq 
uniq test.txt
root@devopscube:~# uniq test.txt
1 mike level intermediate jan
10 lucy level beginer mar
45 Dave level expert dec
4 dennis start beginner jul
7 Megan employee trainee feb
58 Mathew Head CEO nov

10、chmod命令

chmod命令用来改变文件的读/写/执行权限,权限数值如下所示:

4 - read permission
2 - write permission
1 - execute permission
0 - no permission

下面的命令可以给test.txt文件赋最高的权限:

chmod 755 test.txt

如果你对本文有任何的想法和意见,欢迎给出你的点评,我很期待!

相关 [程序员 需要 linux] 推荐:

每一个程序员需要了解的10个Linux命令

- - 极客521 | 极客521
码农网原创翻译,转载请看清文末的转载要求,谢谢合作. 作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息. 本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们要介绍的Linux命令:. 接下来让我们逐一来详细介绍.

程序员选择Mac OS多于Linux,Windows最多

- tinda - Solidot
对程序员开发环境的调查显示,选择Mac OS的作为开发环境的程序员多于Linux,但Windows的使用者最多. Evans Data调查了超过400名专业软件开发者,结果发现,80%的人使用Windows,7.9%的人用Mac OS,5.6%的人用Linux. 调查结果还发现,开发者相信未来三年移动和云开发将会越来越重要,44%的人从事多线程程序的开发,49%的人有意支持智能手机平台,42%的人考虑支持平板应用.

程序员编程需要多少个小时?

- - 搜索引擎技术博客
作者Krishna Kumar是一名软件开发者,曾多次发表过软件开发、程序、项目管理、商业管理等相关议题文章,原文来自《 How Many Hours Can a Programmer Program. 》现对此文进行编译,与开发者一起探讨如何合理、有效的管理好工作时间. Michael Arrington曾发表一篇 博文说,创业者必须加倍的努力工作,甚至不惜趴在办公桌上睡觉,这样才能成功.

程序员需要具备的职业素养

- - CSDN博客编程语言推荐文章
说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一步了解——什么是程序员需要的职业素养.     D公司是个在发展壮大中的贸易公司,由于业务发展员工从刚开始的10人两年内增加到150多人,管理上出现了沟通效率低、对员工工作难以监控的现象.

程序员需要了解的硬核知识之CPU

- - SegmentFault 最新的文章
大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和 CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CPU. CPU 的全称是 Central Processing Unit,它是你的电脑中最 硬核的组件,这种说法一点不为过.

成为一名优秀程序员所需要知道的那些事

- robin - cnBeta.COM
导读:编程虽是复杂活,但成就优秀程序员的很多因素和我们在学校中最早学到的相差无几. 尽可能使用开源,并且当你有能力的时候,要对其有所贡献. 聚全社会之智慧,胜过某些“大”公司之短视.

Linus Torvalds,当今最著名的程序员之一,Linux内核的创建者, Git的创建者

- wwq0327 - TopGeek
“有些人生来就具有统率百万人的领袖风范;另一些人则是为写出颠覆世界的软件而生. 唯一一个能同时做到这两 者的人,就是Linus Torvalds. ”这是美国《时代》周刊对Linux之父Linus的评价. Linus除了是一位IT奇才外,还是一个乐观幽默的学者. Linus Trovalds很少在会议上露面,站在拥挤的人群面前演讲对他而言是少之又少.

【外刊IT评论网】每个程序员都应该知道的8个Linux命令

- - 外刊IT评论网
每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识. 我并不是说你应该成为一个Linux专家,我的意思是,当面对linux命令行任务时,你应该能很熟练的完成. 事实上,学会了下面8个命令,我基本上能完成任何需要完成的任务. 注意:下面的每个命令都有十分丰富的文档说明. 这篇文章并不是来详尽的展示每个命令的各种功用的.

你需要知道的 16 个 Linux 服务器监控命令

- - 水煮沉浮
如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员. 有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色.

高效Linux用户需要了解的命令行技能

- - 灵犀志趣
最近在Quora上看到一个问答题目, 关于在高效率Linux用户节省时间Tips. 将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具在几位回答者的日常工作中都很有用. 对于任何不了解的命令,请使用“man “查看,或者使用Google.