专栏名称: 马哥Linux运维
马哥linux致力于linux运维培训,连续多年排名第一,订阅者可免费获得学习机会和相关Linux独家实战资料!
目录
相关文章推荐
InfoQ架构头条  ·  Java 社区的一次十亿行数据编程挑战 ·  2 天前  
51好读  ›  专栏  ›  马哥Linux运维

案例+解读,来自有道大神的17个常用Linux命令深度解析

马哥Linux运维  · 公众号  · 运维  · 2017-08-09 08:00

正文

命令后带(Mac)标记的,表示该命令在Mac OSX下测试,其它的在Debian下测试。

1. grep命令

文本查找命令, 能够使用正则表达式的方式搜索文本,其搜索对象可以是单个或则多个文件

基本格式 grep [option] [regex] [path]

-o 只按行显示匹配的字符
-c 只输出匹配行的数目
-n 显示匹配行的行号
-v 显示不包含匹配文本的行
-i 不区分大小写 (grep是大小写敏感的)
-R 文件夹下递归搜索
-l 只显示匹配的文件名
-H 显示文件名
-A NUM(after)显示匹配的后几行
-B NUM(before)显示匹配的前几行
-C NUM显示匹配的前后几行
–color 标出颜色

范例四:grep -lR a ./*.yml 在文件夹下的yml文件中搜索,但只输出匹配的文件名


2. ls命令

ls是命令行中用的最多的命令之一了,用于显示目录下的文件

基本格式 ls [option]

-a 列出所有文件,包括’.’开头的隐藏文件
-h 使打印结果易于使用者查看(human readable)
-l 列出文件的详细信息:创建者,创建时间,读写权限等
-s 显示文件大小
-t 按时间进行文件的排序
-S 以大小进行排序
-r 当前条件逆序
-L 显示文件链接名
-R 将目录中所有文件都递归显示出来


3. find命令

文件查找命令,find命令将递归的搜索目录下符合要求的所有文件

基本格式 find [path] [option] [expression]

-name 查找名为filename的文件
-perm 查找符合执行权限 -user 按照文件的所属主查找
-mtime -n +n 按照文件的更改时间查找文件,n代表天数
-ctime -n +n 按照创建时间查找
-newer f1 !f2 查更改时间在f1和f2之间的文件
-size n 查找长度为n块的文件,一块为512 bytes
-depth 使得查找在进入子目录前先行查找完本目录
-prune 查找时忽略某个目录 -type 按文件类型查找,b为块设备,d为目录,f为普通文档

范例四:find . -maxdepth 2 -size 3 控制查找的深度

补充:Linux的权限模式为三元组“owner”,“group”,“other”,权限对应表如下

rwx

7

-wx

3

rw-

6

-w-

2

r-x

5

--x

1

r--

4

---

0


4. wc命令

用于统计输入中的字节数,字数,行数并输出

基本格式 wc [option] [filename]

-c 统计字节数
-l 统计行数
-m 统计字符数
-w 统计字数,一个字为由空白,跳格或换行字符分隔的字符串


5. cat命令

连结命令(Concatenation),连结多个文本,或者以标准输出形式打印文件的内容

基本格式 cat [option] [filename]

-n 队输出的所有行编号
-b 与-n类似,但空行不编号


6. tail命令

文本查看命令,可以看文本的最后几行。tail命令的优点在于其内容能够与输入同步更新,非常适用于查看实时日志。

基本格式 tail [option] [filename]

  • -n number 定位参数,+5表示从第五行开始显示,10或-10表示显示最后10行

  • -f 监控文本变化,更新内容

  • -k number 从number所指的KB处开始读取

范例一: tail -n -5 catalina.out 输出最后5行

范例二: tail -f catalina.out 监听catalina.out最后行的变化并显示


7. head命令

该命令与tail命令类似,默认显示文件前两行的内容

基本格式 head [option] [filename]

  • -n number 显示前几行,-5表示文件中除了最后5行之外的所有内容

  • -c number 显示前几个字节

范例一: head -n 5 server.xml head -n -5 server.xml


8. du命令

该命令用于查看系统中文件和目录所占用的空间

基本格式 du [option] [name]

  • -h 用human readable的方式显示

  • --max-depth=number 最大的查询层次

  • -a 显示所有文件的大小,默认只显示目录的大小

范例一: du -h 显示目录下所有文件夹的大小

范例二: du -h catalina.out du -h ../logs 显示文件或目录的大小

范例三: du -ah --max-depth=1 显示递归的层次为1,显示所有文件和文件夹大小


9. which和whereis

which命令的作用是在PATH变量制定的路径中,查找系统命令的位置。
whereis命令用于程序名的搜索,且只能搜索{二进制文件,man说明文件,源代码文件}。whereis的查询时通过查询系统的数据库文件记录,所以速度比find更快,但由于数据库的更新频率较为缓慢,其结果与实际状况并不一定一致。

  • -m 只查找说明文件

  • -b 只查找二进制文件

范例一:which命令

范例二:whereis命令


10. sort命令

sort命令用于对文本进行排序,并将结果输出。其以文本的每一行为单位,从首字符向后,依次按照ascii码值进行比较,最后升序排列。(默认是忽略每行前面空格的)

基本格式 sort [option] [filename]

  • -u 忽略重复行

  • -n 按照数字大小排序

  • -r 逆序

  • -k start,end start为比较的起始位置,end为结束位置

范例一: sort sort.txt 排序

范例二:

  1. sort -nk 2 -t - sort.txt - 进行分割,对分割后的第二个域进行排序;

  2. sort -nrk 2 -t - sort.txt 逆序排序







请到「今天看啥」查看全文