Linux开发人员常用命令总结

  这部分是参考了一篇文章之后写出来的,因为本人九月份秋招找工作,所以在此将笔记中的总结下来。对于开发者,除了平常常用的ls、cp、cat、sudo等命令外,还需要掌握一些关于内存、性能以及编译等命令。

1.文件处理:

1. 文件查找:find
    按名查找:包括一般方式和正则方式

    按类型查找:
    按时间查找:
    按大小查找:
    按权限查找:
2. 文本搜索:grep
    模式匹配:
    多个模式匹配:
    输出信息:
        -n 为打印匹配的行数
        -i 搜索时忽略大小写
        -c 统计包含文本次数

3. 排序:sort
    文件内容行排序,且排序在内存进行,不改变文件。
        -n(number)表示按照数字排序,-d(dictionary)表示按字典排序
        -k N 表示按各行第N列进行排序
        -r(reverse)为逆序排序
    例:  sort -n -k 1 test

4. 转换:tr  (转换在内存中,不改变文件)
    (1)字符转换:会对打开文件中所有目标字符替换。
    例: cat test | tr '1' '2'

    (2)字符删除: -d删除
    例:  cat test | tr -d '1'

    (3)字符压缩:-s位于后部
    例:  cat test | tr ' ' -s
5. 按列切分文本:cut   (转换在内存中,不改变文件)
    (1)截取特定列:
        -b 以字节为单位
        -c 以字符为单位
        -f 以字段为单位
        数字为具体列范围
    例:cut -f 1,2 test

    (2)指定界定符:
        -d 后接界定符
        cut -f 2 -d ',' new

6. 按列拼接文本:paste  (转换在内存中,不改变文件)
    (1)按列拼接文本,两文件列数可以不同
    例: paste test1 test2
    (2)指定界定符拼接:最后加上 -d ."x"是将x作为指定分隔符。
    例:  paste test1 test2 -d "," 

7. 统计行和字符:wc
    -l 统计行数
    -w 统计单词数
    -c 统计字符数
例:  wc -l test

8. 文本替换:sed ,sed是会直接改变被编辑的文件内容的。
内容很多,详细的可以参考http://coolshell.cn/articles/9104.html

9. 数据流处理:awk也会直接修改被编辑的文件内容。
内容很对,详细的可以参考http://coolshell.cn/articles/9070.html 

2.性能分析

性能分析工具主要用来查看CPU信息、文件I/O和内存使用情况。

1. 进程查询:ps   
(1)查看正在运行的进程
    ps  -ef
常结合grep筛选信息:ps  -ef | grep xxx
(2)以完整格式显示所有进程
    ps  -ajx

2. 进程监控:top 
    显示实时进程信息  
         top
注意: 
<1>这个是很厉害的命令,不带参数,具体信息通过grep筛选。
<2>交互模式下键入M进程列表按内存使用大小降序排序,键入P进程列表按照CPU使用大小降序排列。
<3>%id表示CPU空闲率,过低可能存在CPU存在瓶颈。
<4>%wa表示等待I/O的CPU时间百分比,过高则I/O瓶颈,可以用iostat进一步分析。

3. 打开文件查询:lsof 
(1)查看占用某端口的进程,参数为 -i ,后面接端口号。
(周知端口:Mysql:3306,FTP:20/21,ssh:22,DNS:53,HTTP:80,SMTP:25)
例: lsof -i 53 
(2)查看某用户打开的文件,参数为 -u,后面接用户名。
例: lsof -u Ada 
(3)查看指定进程打开的文件,参数为 -p,后面接进程PID.
例: lsof -p 12345
(4)查看指定目录下被进程打开的文件,参数为 +d,后面是递归目录。
例:lsof  +d  /test

4. 内存使用量:free 
可以获得内存及交换区的总量,已使用量,空限量等信息。木有参数好像。
    free
5. 监控性能指标:sar
(1)监控CPU:
    <1>监控CPU负载,参数为 -q。可以查看运行队列中进程数,系统上进程大小,平均负载等。
    例:sar -q 1  2  (其中1表示采样时间间隔是1秒,2表示采样次数为2)
    <2>监控CPU使用率,参数为-u。可以显示CPU使用情况。
    例:sar -u 1  2   (参数意义同上)
(2)监控内存:
    <1>查询内存,参数为-r,可以显示内存使用情况。
    例:sar -r 1  2   (参数意义同上)
    <2>页面交换查询,参数为 -w。可以查看是否发生大量内存交换,吞吐率大幅下降时使用。
    例:sar -w 1  2  (参数意义同上) 

3.网络工具

1. 网卡配置:ifconfig
2. 查看当前网络连接:netstat
3. 查看路由表:route
4. 检查网络连通性:ping
5. 转发路径:traceroute
6. 网络Debug分析:nc
7. 命令行抓包:tcpdump
8. 域名解析工具:dig
9. 网络请求:curl

4.开发及调试

1. 编辑器:vim
2. 编辑器:gcc/g++
3. 调试工具:gdb
4. 查看依赖库:ldd
5. 二进制文件分析:objdump
6. FLF文件格式分析:readelf
7. 跟踪进程中系统调用:strace
8. 跟踪进程栈:pstack
9. 进程内存映射:pmap

5.其他

1. 终止进程:kill  
(1)杀死具体进程,后面加上进程PID.
 例: kill  66666
(2)杀死某进程相关进程,后面加上参数 -9.
 例:kill  -9  66666 

2. 修改文件权限:chmod 
(1)通过直接加减字母:
例: chmod u+x  file 
(2)通过数字修改: 
例:chmod 111 file 

3. 创建连接:ln  
(1)创建硬链接:(文件inode中链接数会增加,只有链接数减为0时文件才真正被删除)
例: ln  file1  file2 
(2)创建软连接(符号链接),参数为 -s,仅仅是引用路径。
例:ln  -s file1  file2
注意:相比于硬链接最大特点是可以跨文件系统,类似于windows创建快捷方式,文件系统删除则链接失效。

4. 显示文件未:tail 
加上 -f参数时可以不立即回传结束信号,当文件有新写入数据时会及时更新。在查看日志是常用。
例:tail  -f  file2 

5. 版本控制:git  
更加具体的可以参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ 

6. 设置别名:alias 
主要是用别名来替代原本很长的命令,需要在“.bashrc”文件中配置
例:alias  rm='rm -i'

还没有写全,后续补上~~~

参考资料:
1.http://man.linuxde.net/par/2

猜你喜欢

转载自blog.csdn.net/katrina_ali/article/details/80556568