Linux
- Linux的发行版:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS(CentOS保有量较高,下面安装软件的命令均是CentOs系统)
- SSH方式登录系统:ssh -p 端口号 用户名@服务的ip
- 安装ssh:yum install -y openssl openssh-server
- 图形化界面登录
- xshell、SecureCRT、mobaxterm,xshell可能会收费,推荐用最后一个
Linux性能与统计命令
-
性能统计命令
- 常用的性能指标:cpu-代表算法的高效性 mem(内存)-数据结构使用的合理性 net io(网络)-网络IO
- 临时性分析 系统性分析需要借助监控工具:prometheus/grafana
- 查看cpu:cat /proc/cpuinfo
- 查看内存:free ps top
- free -m
- 进程级别的内存分析:ps -e -o uid,pid,ppid,pcpu,pmem,rss,vsz,comm --sort -%mem | head -10
- top命令
- 网络连接统计:
- netstat -tnp | head -10
- netstat -tn | awk ‘NR>2{print $NF}’| sort | uniq -c | sort -nr
-
常用统计命令
- 排序
- sort :常用参数如下:
- ‘-b’:忽略开头的空白字符
- ‘-f’:将小写字母看做大写字母
- ‘-h’:根据存储容量排序(KB/MB/GB)
- ‘-n’:按数字排序
- ‘-o’:把结果写入文件
- ‘-r’:以相反的顺序来排序
- ‘-t’:指定分隔符,默认为空格
- ‘-V’:按照数字版本排序
- ‘-k’:指定排序的关键字,与-t参数配合
- sort :常用参数如下:
- 去重
- uniq:常用参数如下:
- ‘-c’:统计重复出现的次数
- ‘-d’:所有临近的重复行只被打印一次,重复次数要大于等于2
- ‘-D’:所有临近的重复行都将被打印
- ‘-f’:跳过对前n个列的比较
- ‘-s’:跳过对前n个字符的比较
- ‘-W’:只对每行前n个字符比较
- uniq:常用参数如下:
- 统计
- wc:常用参数如下:
- ‘-c’:统计字节数:chars
- ‘-l’:统计行数
- ‘-w’:统计单词数
- ‘-L’:打印最长行的长度
- wc:常用参数如下:
- 排序
-
进程与线程
- 概念:进程:可执行程序的运行态,操作系统调度的基本单位,线程的容器,进程本身包含指令/数据等资源 ; 线程:进程中被执行的最小单元,cpu调度的基本单位,线程带有指令,数据等资源
- 常用的进程管理命令:
- ps:进程列表快照
- ps -ef:获得所有进程列表
- ps aux:获取所有进程列表,并提供更多的可用数据
- ps -o pid,ppid,psr,thcount,tid,cmd -M :自定义输出指标
- top:交互式进程观测
- kill:结束进程
- fg:进程切换到前台
- bg:进程切换到后台
- ctrl z:挂起进程
- ps:进程列表快照
Linux三剑客:grep/awk/sed
-
grep:内容检索
- grep pattern file:获取行
- grep -o pattern file:获取内容
- grep -A -B -C pattern file:获取上下文
- grep pattern -r dir/:递归检索
- grep -H pattern /temp/l:展示匹配的文件名
- grep -l pattern /temp/l:只展示匹配的文件名
- grep -i pattern file:忽略大小写
- grep -v pattern file:忽略匹配的行
- grep -E pattern file:使用扩展正则表达式
- grep 111 -r /tmp/demo/ --include “11*” :文件范围和目录范围约束
- 进程检索:进程过滤比较特殊,grep本身会开启新的进程,所以要单独的过滤掉grep本身的进程
- 检索ssh进程:ps -ef | grep ssh
- 检索ssh进程并过滤grep本身进程:ps -ef | grep ssh | grep -v grep
-
awk:
- awk是linux下的一个命令,同时也是语言解析引擎。awk具备完整的变成特性,如:执行命令,网络请求;
- 语法:awk ‘pattern {action}’
- awk上下文变量:
- 开始 BEGIN 结束 END
- 行数:NR
- 字段与字段数:$1$2…$NF NF
- 整行:$0
- 字段分割符:FS (一个整体?)
- 记录分隔符:RS (拆分一个整体变成多个子体的时候?)
- 输出数据的字段分隔符:OFS
- 输出字段的行分隔符:ORS
- 字段变量的用法:
- ‘-F’:参数指定字段分隔符,可以使用 | 指定多个多分隔符 -F’<|>’
- BEGIN{FS=“_”}:可以表示分隔符
- $0:代表当前记录
- $1:代表第一个字段
- $N:代表第n个字段
- $NF:代表倒数第一个字段
- $(NF-1):代表倒数第二个字段
- pattern表达式:
- 正则匹配:$1~/pattern/pattern/
- 比较表达式:$2>2 $1=“b”
- awk pattern正则匹配案例
- 开始和结束:awk ‘BEGIN{}END{}’
- 正则匹配:
- 整行匹配:awk ‘/Running/’
- 字段匹配:awk ‘$2~/xxx/’
- 行数表达式:第2行—awk ‘NR==2’ 忽略第一行—awk ‘NR>1’
- 区间选择:awk ‘/aa/,/bb/’ awk ‘/1/,NR==2’