Linux常用高级命令大全

写在前面:本文不会讲cd pwd mv cp touch mkdir这种新手通用命令,主要讲解在服务器开发过程中经常使用到的一些命令

正文:

1 进程/线程监控相关

ps

查看系统进程/线程,一般单独采用此命令查找进程id,然后根据进程id做进一步工作。常见用法:
ps -aux 查看所有进程
ps -T -p ${pid} 查看某个进程的线程

pstree

打印系统进程树,用树形结构标识各个进程之间的关系。常见用法:pstree

top

查看系统进程/线程运行情况,即进程/线程所占用资源的情况、负载的情况、以及cpu的变化情况,从而判断其运行状态是否正常。同上面的ps命令,可以根据输出信息中的进程/线程id,进行针对性查找。常见用法:
top 列出所有线程负载信息
top -H 列出所有线程的负载信息
top -H -p ${pid} 列出某个pid下所有线程的负载信息

free

查看内存及使用情况。常见用法:free

2 文件操作相关

cat

查看文件内容,需要注意的是,该命令会把整个文件输出到终端了,如果文件内容非常多。常见用法:cat file.txt

tail

查看某个文件的尾部,或者查看标准出入的最末尾,默认值显示10行,可以用-n参数来指定输出多少行。常见用法:

tail -n 100 file.txt 输出最末尾的100行 tail -f file.txt 随着文件新增,持续输出新增的内容,此组合经常在查看服务器打印日志的场景下使用,可以配合grep命令,过滤需要的信息。

head

查看某个文件的头部,也是默认显示10行,常见用法: head -n 100 file.txt 打印文件最开始的100行

more

用来查看文件,问题是more命令只加载一屏的内容,但可以向下翻动。对于大文件来说,其运行速度比cat快多了。常见用法 more file.txt

less

大体 上和more类似,多了一个可以向上翻动的功能,比more常用。常见用法: less file.txt

grep

过滤命令。这个命令可以说是用的最广泛的了,其过滤和筛选能力异常强大,支持正则表达式。常见用法:grep “abc” file 从file中筛选出包含 abc的行。

awk

统计命令。当文件有多列的时候,采用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列

sort

排序命令。可以理解为管道的一个环节,在此环节对数据进行排序,可以通过参数设置排序策略。常见用法:
cat file|sort 把file里的数据排序,注意是按字典序排的,如果想按数值排,需要能够加-n参数
cat file|sort -k2 -n -r 按第二列 数值 倒序 排序,-k指定第几列,-r是翻转reverse的意思

uniq

去重命令。对排序好的内容去重,注意它只是把相邻且相同的去重,所以如果想要全局去重,需要先用sort排序。常见用法:
cat file|sort|uniq 把file里的文件排序并去重
cat file|sort|uniq -c 把file里的文件排序并去重,且输出每行出现的次数

3 运维相关

parallel

并行命令。linux大部分命令都是单进程的,这个命令可以让其他命令多进程执行。

scp

之前运维大量机器的时候,通常需要批量修改某个配置文件,都是在一台机器上改好,然后用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 . 和上一条相反

4 磁盘及IO相关

du

查看目录大小,默认输出此目录下所有目录的大小。常见用法:du -h --max-depth=1 输出最深1层的目录,然后文件大小用人类可读的方式,比如1K 234M 2G

df

查看磁盘大小和占用情况,是计算机整个磁盘分区的状态。常见用法:df -h 查看各个分区的大小和使用情况

iostat

查看磁盘的io状态

iotop

可以类似于top目录一样,实时显示各个进程的io状态。

find

查找文件。可以根据具体条件进行查找,包括文件名,文件日期,文件大小等等。在服务器维护领域有一个很常见的场景,比如删除符合某一条件的文件,可以采用该命令配合特定参数来实现。可以使用find加xargs命令做的

常见用法:
find /home/test -iname "test.txt 在/home/test/下找文件名为test.txt的文件,也支持通配符
find /home/test -isize +100M 查找/home/test下大于100M的文件

locate

定位某个具体文件的位置,locate命令要比find -name快得多,原因是它不搜索具体目录,而是搜索数据库/var/lib/mlocate/mlocate.db,这个数据库会通过一个cron定时更新,所以有可能新建的文件会检索不到。比较类似与在windows系统中经常使用到的everything工具。

常见用法:locate a.txt 定位a.txt的位置,如果系统中有多个a.txt,会全部显示出来。

tree

将目录结构以树状形式呈现。常见用法:tree -L 2 只显示两层树状结构

5 网络相关

ping

查看网络是否通。常见用法:ping www.baidu.com

nc

netcat命令的简写,可以用来看远程某个端口是否打开,功能很强大。

常见用法:nc -z xindoo.me 443 检测我服务器上的443端口是否开放(当然是开的)

route

路由操作。常见用法:route 列出本地路由表 route add … route delete …

netstat

查看本机的网络状态,可以看到端口占用情况和网络链接情况。常见用法:netstat -antp

traceroute

查看一个请求到目标服务器所经过的所有路由节点,一般用来排查网络问题。

常见用法:traceroute www.baidu.com

iftop

查看实时网络io情况

lsof

查看端口占用

dig

域名信息查看命令。在服务器运维领域,经常需要验证某个域名解析改动是否生效,但由于一个域名会绑定在多个ip上,而用ping命令只能看到一个ip,这个时候就需要用dig来看域名解析信息了。

常见用法:dig www.baidu.com

curl

发起http请求命令。一般都是用这个命令来验证服务是否能正常访问的,它有获取html源码的功能。

常见用法:
curl www.baidu.com 获取biadu.com的html文件
curl -I www.baidu.com 获取请求baidu.com的请求头

wget

网络下载命令。可以当作命令行版本的下载工具。常见用法:wget xindoo.me/test.txt 把我服务器上test.txt文件下载到本地

6 系统相关

yum|apt|brew install

Linux平台的包管理工具。可以用这个命令安装所需软件。yum是Fedora和RedHat以及CentOS中的Shell前端软件包管理器, apt是ubuntu平台上的。mac上的是brew。

常见用法:
yum install curl
apt install curl

man

帮助手册。可以查看具体某个命令的详细作用,和具体参数。此命令很重要,比各命令自带的–help详细很多。

常见用法:man curl 查看curl命令的手册。

Linux常用高级命令大全

  • qq_43638135
    妲己再美究为妃: 博主没有想过自己接一些私活干吗?我现在还没毕业,但是我也确实听说外挂市场自动化游戏脚本市场挺火热的,并且报酬也很丰厚,但是具体的我也不是很清楚,求解答。 (1个月前 #47楼) 查看回复(2) 举报 回复
    22