重点内容
linux基础命令和工具
CPU性能监控
内存性能监控
文件IO性能监控
网络IO监控
1 linux基础命令和工具
1.1 Grep搜索字符
grep命令用于在文件中执行关键字搜索,并显示匹配效果。
一些常见的选项参数
作用
-c
仅显示找到的行数
-i
忽略大小写
-n
显示行号
-v
反向选择 -仅列出没有关键词的行.v是invert的缩写
-r
递归搜索文件目录
-C n
打印匹配行的前后N行
在指定文件查找,查找login关键字
grep login ImUser.cpp
多个文件中搜索
grep login ImUser.cpp MsgConn.cpp
在多个文件搜索的时候,可以使用通配符。在以CPP结尾的文件中,搜索包含login的行。
grep login *.cpp
递归搜索目录下所有文件,搜索 msg_server目录下所有文件,打印包含login的行。
grep login -r msg_server/
反向查找,查找文件中,不包含 CImUser 的行。
grep -v CImUser ImUser.cpp
找出文件中包含 login的行,并打印出行号
grep -n login ImUser.cpp
找出文件中包含 login的行,打印出行号,并显示前后3行
grep -C 3 -n login ImUser.cpp
找出文件中包含 login的行,打印出行号,并显示前后3行,并忽略大小写
grep -C 3 -i -n login ImUser.cpp
1.2 find查找文件
通过文件名查找文件的所在位置,文件名查找支持模糊匹配
find [指定查找目录] [查找规则] [查找完后执行的action]
常用的操作:
find . -name FILE_NAME
find . -iname FILE_NAME 忽略文件名称大小写
find /etc -maxdepth 1 -name passwd ##查找/etc/下名称中带有passwd的文件,查找一层
find /mnt -size 20K ##查找/mnt文件大小近似20k的文件
find /mnt -size 20K ##查找/mnt文件大小大于20k的文件
find /mnt -size -20K ##查找/mnt文件大小小于20k的文件
find /etc -maxdepth 2 -mindepth 2 -name .conf ##查找/etc/下名称中带有.conf的文件,且只查找第二层
find /mnt -type d ##按type查找/mnt中目录
find /mnt -type f ##按type查找/mnt中文件
find /mnt -cmin 10 ##查找/mnt中十分钟左右修改的
find /mnt -cmin 10 ##查找/mnt中十分钟以上修改的
find /mnt -cmin -10 ##查找/mnt中十分钟以内修改的
find /mnt -ctime 10 ##查找/mnt中十天左右修改的
find /mnt -ctime 10 ##查找/mnt中十天以上修改的
find /mnt -ctime -10 ##查找/mnt中十天以内修改的
1.3 ls显示文件
参数
作用
-t
可以查看最新修改的时间
-l
每行显示一个条目
-h
可以结合显示文件的GB,MB等(human);
-R
递归显示
-n
显示组id和gid
1.4 wc命令
wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为”-“,则wc指令会从标准输入设备读取数据。
语法
wc [-clw][–help][–version][文件…]
参数:
-c或–bytes或–chars 只显示Bytes数。
-l或–lines 只显示行数。
-w或–words 只显示字数。
–help 在线帮助。
–version 显示版本信息。
1.5 ulimit用户资源
Linux系统对每个登录的用户都限制其最大进程数和打开的最大文件句柄数。为了提高性能,可以根据硬件资源的具体情况设置各个用户的最大进程数和打开的最大文件句柄数。可以用ulimit -a来显示当前的各种系统对用户使用资源的限制:
[root@ubuntu~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7269
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 100001
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 65535
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
设置用户的最大进程数:
ulimit -u 1024
设置用户可以打开的最大文件句柄数:
ulimit -n 65530
1.6 curl http
由于当前的线上服务较多地使用了RESTful风格的API,所以集成测试就需要进行HTTP调用,查看返回的结果是否符合预期,curl命令当然是首选的测试方法。
使用方式:
curl -i “http://www.sina.com” # 打印请求响应头信息
curl -I “http://www.sina.com” # 仅返回http头
curl -v “http://www.sina.com” # 打印更多的调试信息
curl -verbose “http://www.sina.com” # 打印更多的调试信息
curl -d abc=def “http://www.sina.com” # 使用post方法提交http请求
curl -sw %{http_code} “http://www.sina.com” # 打印http响应码
1.7 scp远程拷贝
ecure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
scp命令是Linux系统中功能强大的文件传输命令,可以实现从本地到远程,以及从远程到本地的双向文件传输,用起来非常方便,常用来在线上定位问题时将线卜的一些文件下载到本地进行详查,或者将本地的修改上传到服务器
上。
使用方式:
sudo apt-get install openssh-server
1.8 dos2unix和unix2dos
用于转换Windows
和UNIX的换行符,通常在Windows系统h开发的脚本和配置,UNIX系统下都需要转换。
使用方式:
dos2unix test.txt
unix2dos test.txt
转换整个目录
find . –type f –exec dos2unix {} ;
find ./ –type f 此命令是显示当前目录下所有的文
1.9 sed
命令格式1:sed s/原字符串/新字符串/ 文件
命令格式2:sed s/原字符串/新字符串/g 文件
这两种命令格式的区别在于是否有个“g”。没有“g”表示只替换第一个匹配到的字符串,有“g”表示替换所有能匹配到的字符串,“g”可以认为是“global”(全局的)的缩写,没有“全局的”结尾就不要替换全部。
sed命令是用来批量修改文本内容的,比如批量替换配置中的某个ip。
sed命令在处理时,会先读取一行,把当前处理的行存储在临时缓冲区中,处理完缓冲区中的内容后,打印到屏幕上。然后再读入下一行,执行下一个循环。不断的重复,直到文件末尾。
简单模式
一个简单的sed命令包含三个主要部分:参数、范围、操作。要操作的文件,可以直接挂在命令行的最后。
参数
-n 这个参数是–quiet或者–silent的意思。表明忽略执行过程的输出,只输出我们的结果即可。
还有另外一个参数 :-i。使用此参数后,所有改动将在原文件上执行。你的输出将覆盖原文件。非常危险,一定要注意。
范围2,5
表示找到文件中,2,3,4,5行的内容。
这个范围的指定很有灵性,请看以下示例(请自行替换图中的范围部分)。
5 选择第5行。2,5 选择2到5行,共4行。1~2 选择奇数行。2,5选择2到5行,共4行。1~2 选择奇数行。2~2
选择偶数行。
范围的选择还可以使用正则匹配。请看下面示例。
/void/, 3 选择出现void字样的行,以及后面的三行。2^void/,/mem/ 选择以void开头的行,和出现mem字样行之间的数据。
为了直观,下面的命令一一对应上面的介绍,范围和操作之间是可以有空格的。
sed -n 5p sed1.cpp
sed -n 2,5 psed1.cpp
sed -n1~2 p sed1.cpp
sed -n 2~2 p sed1.cpp
sed -n 2, 3psed1.cpp
sed -n2,$ p sed1.cpp
sed -n /void/, 3 p sed1.cpp
sed -n /^void/,/CLIENT_TYPE_FLAG_BOTH/p sed1.cpp
sed -n /^BroadcastPdu/,/CLIENT_TYPE_FLAG_BOTH/p sed1.cpp
sed -n /^void CImUserManager::BroadcastPdu/,/CLIENT_TYPE_FLAG_BOTH/p sed1.cpp
替换模式以上是sed命令的常用匹配模式,但它还有一个强大的替换模式,意思就是查找替换其中的某些值,并输出结果。使用替换模式很少使用-n参数。
替换模式的参数有点多,但第一部分和第五部分都是可以省略的。替换后会将整个文本
输出出来。
前半部分用来匹配一些范围,而后半部分执行替换的动作。
范围这个范围和上面的范围语法类似。看下面的例子。
/sys/, 3 选择出现sys字样的行,以及后面的三行。/^sys/,/mem/
选择以sys开头的行,和出现mem字样行之间的数据。
具体命令为:
sed s/a/b/g file
sed s/[a,b,c]/
暂无评论内容