码迷,mamicode.com
首页 > 系统相关 > 详细

Linux常见命令整理

时间:2019-05-01 10:22:19      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:line   扩展   性能分析   部分   run   常见   表示   文件拷贝   查找   

一、文件管理

1、文件查找find

find [查找目录] [查找条件]

查找目录

.:表示当前目录以及子目录中进行查找 、

A:在目录A及A的子目录中进行查找

查找条件

-name:根据文件名查

-regex:正则表达式匹配

-size:按大小查找

实例:

1、find . –name *.cpp   按照文件名进行查找

2、find . –regex “*.cpp”   正则表达式进行匹配查找

2、文件拷贝cp

cp [选项] 源路径 目的路径

选项:

-a:将所有属性一起复制

-i:目标文件存在的时候,进行询问

-r:递归复制

二、文本处理

1、查看文件(显示行号): nl(行号计算不包括空行)

nl 文件名

实例:

nl main.cpp

 

2、文本查找 grep

grep [选项] 模式串 文件

输出 | grep [选项] 模式串

选项:

-e 使用多个模式串

-i 忽略大小写

-n 打印行号

-c 统计次数

grep –e “printf” –e “cout” main.cpp

grep –n “cout” main.cpp//统计main.cpp中出现cout的行号

3、排序 sort

sort [选项] 文件

输出 | sort [选项]

选项:

-d 按字典序排列

-n 按数字排序

-k “-k n”表示按各行第n列进行排序

-r 反序

4、切分文本:cut

cut [选项] 文件

输出 | cut [选项]

选项:

-d:分割符(-d ‘:’表示以 : 为分隔符)

-f:选择域(-f 1,2 输出分割后的第一列和第二列)

-c:字符范围(-c n-m 输出第n到m个字符,如果没有m,输出到末尾)

example

echo $PATH | cut –d ‘:’-f 3,5//按:分割$PATH,输出第三个和第五个

export | cut –c 12-20//输出export运行结果每行的12-20个字符

5、拼接文本 paste

paste [选项] file1 file2

选项:

-d:指定拼接时使用的分割符

6、统计:wc

wc [选项] 文件

输出 | wc [选项]

选项:

-c:统计字符数

-w:统计单词数

-l:统计行数

7、数据处理:sed

sed常用于一整行的处理。如果有一个100万行的文件,要在第100行加某些文字,此时由于文件太大,不适合用vim处理。因此使用sed是个很好的选择

sed [选项] ‘[动作]’ 文件

输入| sed [选项] ‘[动作]’

选项:

-n 安静模式,只输出sed处理过的行

-i 直接作用到文件,没有指定的时候不会修改文件

-e 在命令行模式上输入动作

-f 从文件中读取动作

动作:

[n1[,n2]] function

function:

a/i 在后插入/在前插入

d 删除

p 打印

s 替换

example

插入:

nl main.cpp | sed ‘2a drink’ #在第二行插入drink

删除:

nl main.cpp |sed ‘2d’#删除第二行

打印:

nl main.cpp | sed ‘2,5p’#打印2-5行

替换:

nl main.cpp | sed ‘1s/iostream/stdio.h/g’#将第一行的iostream替换成stdio.h,g是结尾标志

8、数据处理:awk

相比于sed常用于一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理。因此,相当适合小型的数据处理.

处理步骤:

  • 读入第一行,并将第一行的数据填入$0,$1,$2等变量中
  • 根据条件类型的限制,判断是否需要后面的操作
  • 做完所有的动作和条件类型
  • 若还有后续的行的数据,则重复第一到第3步,直到所有的数据读完

awk ‘条件类型1{动作1} 条件类型2{动作2}…’ filename

输出|awk ‘条件类型1{动作1} 条件类型2{动作2}…’

变量:

$0:整行

$1:按分隔符分割后的第一列

$2:按分隔符分割后的第二列

$k:按分隔符分割后的第k列

NF 每一行拥有的字段数

NR 目前所处理的行数

FS 目前的分隔字符

条件判断:>,<,>=,<=,==,!=

example

nl main.cpp | awk ‘{print $1 "\t" $3 "\t"#每行经过分隔符(默认情况下为空格或tab)分隔后的第1列和第3列

cat /etc/passwd | awk ‘{FS=":"} $3<10{print $1 "\t" $3}‘打印第3列小于10的所有行的第1列和第3列

三、性能分析

1、进程查询:ps

ps –l #列出仅与自身环境有关的进程,最上层的父进程是允许该ps命令的bash而没有扩展到init进程中去

ps aux#列出所有的进程,会阶段command 列

ps –ef #不会阶段

ps axjf #以进程数的方式显示所有进程

技术图片

F:进程标志,说明进程的权限

  • 4:root权限
  • 1:仅能fork而不能exec
  • 0:既非4也非1

S:进程状态

  • R:正在运行
  • S:可被唤醒的睡眠
  • D:不可唤醒的睡眠
  • T:停止
  • Z:僵尸进程

C:cpu使用率

PRI/NI:cpu优先级

ADDR/SZ/WCHAN:内存相关,ADDR指出进程在内存的哪个部分,running进程一般显示‘-‘。SZ为进程使用的内存。WCHAN表示进程当前是否运行中‘-‘,当进程睡眠时,指出进程等待的事件

TTY:进程运行的终端机

TIME:进程用掉的CPU时间

Linux常见命令整理

标签:line   扩展   性能分析   部分   run   常见   表示   文件拷贝   查找   

原文地址:https://www.cnblogs.com/tingweichen/p/10799237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!