以前作过两年的运维,用过不少命令,深切体会到某些linux命令熟练掌握后对效率提高有多大。举个简单的例子,在作了研发后常常会有跑一些数据,对于结果数据的处理,咱们的产品同窗通常都习惯于用excel作统计,把数据复制到excel里,而后数据分列,排序………… 最后得出某些简单的结论,我只须要cat, sort, uniq, awk, grep 这几个命令挥手间完成相同的操做。
这里我总结下我工做这几年用过的一些命令,固然,这里就不提那些vim cd ls mv cp
这种简单的命令了,若是你都不会这些命令的话,建议你先学习下。这里命令不少,我只简单列出几个我经常使用的参数。其实不少命令我也用的不是特别多,这篇文章我也只是但愿能让你们知道有这样一个工具,但具体用若是想继续深刻了解的话建议查看下手册,部分比较命令我也列出了有些参考资料。html
查看系统进程线程,我通常都是用这个命令查看进程pid的,而后用pid作更深刻的排查。前端
ps -aux
查看全部进程
ps -T -p ${pid}
查看某个进程的线程linux
查看系统进程树,他能够把各个进程之间的关系用树形结构标识出来。正则表达式
pstree
数据库
查看系统进程线程运行状况,包裹资源的使用状况,系统负载等。个人用法是看下服务器上负载是否很高,而后看具体是哪一个进程,哪一个线程占用cpu比较多。ubuntu
top
列出全部线程负载信息
top -H
列出全部线程的负载信息
top -H -p ${pid}
列出某个pid下全部线程的负载信息vim
查看内存及使用状况服务器
free
网络
我都是用这个命令查看配置文件,或者是日志文件,可是有点须要注意,cat命令会把整个文件输出到终端了,若是文件内容很是多,建议使用grep进行过滤,或者直接用less或more命令。
cat file.txt
查看某个文件的尾部,或者查看标准出入的最末尾,默认值显示10行,能够用-n
参数来指定输出多少行。
tail -n 100 file.txt
输出最末尾的100行
tail -f file.txt
随着文件新增,持续输出新增的内容,通常用来看实时日志
和tail命令很类似,不过head是输出头部内容,我的感受head远没有tail命令用的多。
head -n 100 file.txt
输出最开始的100行
也是用来查看文件,但more命令只加载一屏的内容,能够向下翻动,由于加载的内容少,因此比cat快多了。
more file.txt
和more很像,可是能够上下翻动,感受less和more只须要less就能够了,彻底能够去掉more啊
less file.txt
这个是我很是经常使用的一个命令了,尤为是在问题排查的时候,须要用grep从大量的数据中筛选出一些我想要的。 grep也支持正则表达式匹配。
grep "abc" file
从file中筛选出包含 abc的行。
开头我也说过,这个命令是我最经常使用的命令之一,好比在文件有多列的时候,我能够用awk输出具体某几列,或者作一些简单的统计 求和,求平均值啊,再或者作一下简单的数据格式化。
cat data | awk '{print $1,$3,$5}'
输出第1 3 5列,注意下标是从1开始
cat data | awk '{ sum += $1 } END { print sum }'
对第一列求和
cat data | awk -F'\t' '{print $1,$3}'
把每行数据按tab分列,并输出1 3列
对标准内容作排序,
cat file|sort
把file里的数据排序,注意是按字典序排的,若是想按数值排,须要可以加-n参数
cat file|sort -k2 -n -r
按第二列 数值 倒序 排序,-k指定第几列,-r是翻转reverse的意思
对排序好的内容去重,注意它只是把相邻且相同的去重,因此若是想要全局去重,须要先用sort排序。
cat file|sort|uniq
把file里的文件排序并去重
cat file|sort|uniq -c
把file里的文件排序并去重,且输出每行出现的次数
我都是用wc来数有多上行,其实wc不只仅能数多少行,还能够数多少单词,多少字符。
wc -l file
数下file里有多少行
wc -w file
多少个单词
wc -c file
多少个字节
wc -m file
多少个字符
http://www.runoob.com/linux/linux-comm-wc.html
linux大部分命令都是单进程的,这个命令可让其余命令多进程执行。
以前运维大量机器的时候,一般须要批量修改某个配置文件,都是在一台机器上改好,而后用scp脚本分发到其余机器上去的,大大提升效率。
scp aaa.txt test@192.168.1.3:/tmp/
把当前目录下的aaa.txt文件经过192.168.1.3上的test帐号放到/tmp目录下
scp test@192.168.1.3:/tmp/aaa.txt .
和上一条相反
查看目录大小
du -h --max-depth=1
输出最深1层的目录,而后文件大小用人类可读的方式,好比1K 234M 2G
查看磁盘大小和占用状况
df -h
查看各个分区的大小和使用状况
查看磁盘的io状态
能够相似于top目录同样,实时显示各个进程的io状态。
查找文件,查找条件能够是文件名,文件日期,文件大小,很强大。 咱们以前服务器上有个磁盘满就强制删除服务器某个目录下大于1g,且时间大于2天,且文件名是*.log的文件,就是用find加xargs命令作的
find /home/test -iname "test.txt
在/home/test/下找文件名为test.txt的文件,也支持通配符
find /home/test -isize +100M
查找/home/test下大于100M的文件
定位某个具体文件的位置,locate命令要比find -name快得多,缘由是它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db,这个数据库会经过一个cron定时更新,因此有可能新建的文件会检索不到。
locate a.txt
定位a.txt的位置,若是系统中有多个a.txt,会所有显示出来。
能够看到树状目录结构,
tree -L 2
只显示两层树状结构
查看网络是否通
ping www.baidu.com
netcat,能够用来看远程某个端口是否打开,功能很强大,可是我用到的很少。
nc -z xindoo.me 443
检测我服务器上的443端口是否开放(固然是开的)
查看和操做本机路由表
route
列出本地路由表
查看本机的网络状态,能够看到端口占用状况和网络连接状况。
netstat -antp
查看一个请求到目标服务器所通过的全部路由节点,通常用来排查网络问题。
traceroute www.baidu.com
查看实时网络io状况
查看端口占用
查看域名的信息,以前作运维的时候,常常须要验证某个域名解析改动是否生效,由于通常一个域名会-A到多个ip上,用ping命令只能看到一个ip,这个时候我就会用dig来看域名解析信息了。
dig www.baidu.com
发起一个http请求,我通常都是用这个命令来验证服务是否能正常访问的,它有获取html源码的功能。
curl www.baidu.com
curl -I www.baidu.com
获取请求baidu.com的请求头
下载网络上一个文件,基本上就是有个命令行版的下载工具了。
wget xindoo.me/test.txt
把我服务器上test.txt文件下载到本地
不少时候服务器上没有咱们想要的工具,能够用这个命令安装下,yum是Fedora和RedHat以及CentOS中的Shell前端软件包管理器, apt是ubuntu平台上的。
yum install curl
apt install curl
这个命令是用来查看其它命令手册的,能够看到具体某个命令的详细做用,和具体参数。这个是个很重要的命令了,通常他会比各命令自带的--help详细不少。
man curl
查看curl命令的手册
版权声明:本文为博主原创文章,转载请注明出处。 博客地址:https://xindoo.blog.csdn.net/