systemcl
CentOS 7中用来管理系统服务。
systemctl restart network.service
重启网络服务
systemctl status network.service
查看网络服务状态
systemctl enable/disable [serviceName]
服务的开机启动/禁止
systemctl start/stop/restart/status firewalld.service
防火墙的开/关/重起/查看状态
grep
文本查找命令
-
参数:
-I:忽略大小写
-c:打印匹配的行数
-l:从多个文件中查找包含匹配项
-v:查找不包含匹配项的行
-n:打印包含匹配项的行和行标 -
正则表达式
\ 忽略正则表达式中特殊字符的原有含义
^ 匹配正则表达式的开始行
$ 匹配正则表达式的结束行
< 从匹配正则表达式的行开始
> 到匹配正则表达式的行结束
[ ] 单个字符;如[A] 即A符合要求
[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求
. 所有的单个字符
*所有字符,长度可以为0
find
通过文件名查找文件的所在位置,支持模糊查询
当前目录及子目录下查询fileName:
find . -name [fileName]
uptime
查看机器的启动时间、登陆用户、平均负载等情况,可以用来确定操作系统的重启时间
- 当前时间:08:54:45
- 系统已运行时间:123天,18小时,33分钟
- 当前在线用户:1个
- 系统平均负载:0.00,0.01,0.05(最近1分钟、5分钟、15分钟的系统负载情况)
一般来说,每个CPU内核对应的活动进程数不大于3时,系统运行良好,也就是说活动进程数小于CPU核心数的3倍。
例如,如果服务器的CPU有3个核心,那么只要uptime最后输出的一串数值小于9,就表示系统负载正常。但是,如果系统负载超过10,就表明当前系统的负载过重。
lsof
列出系统当前打开的文件句柄,在Linux文件系统中,任何资源都是以文件句柄的形式进行管理的,例如:硬件设备、文件、网络套接字等。
- 通过pid查询某个进程的句柄情况:lsof -p [pid]
- 通过端口查询:lsof -i:[port]
ulimit
当前各种系统对用户使用资源的限制:
ulimit -a
设置用户的最大进程数:
ulimit -u [number]
设置用户可以打开的最大文件句柄数:
ulimit -n [number]
curl
curl是利用URL语法命令行方式下工作的开源文件传输工具。可以很方便的测试RESTful风格的API。
- 获取详细信息:curl -v [url]
- 获取请求响应头信息:curl -i [url]
- 以POST形式访问:curl -d [string] [url]
- POST JSON数据:curl -d '{ "name": "Darth" }' [url]
- 通过包含JSON数据的文件POST:curl -d @jsonFileName [url]
- 只获取返回的HTTP头:curl -I [url]
- 获取HTTP响应码:curl -sw '%{http_code}' [url]
scp
实现本地到远程,远程到本地的文件传输命令
scp root@192.168.1.1:/usr/lez/my.log .
scp ./my.log root@192.168.1.1:/log/
vi
命令行文本编辑工具
常用的命令:
- i:在当前位置前插入
- I:在当前行首插入
- a:在当前位置后插入
- A:在当前行尾插入
- o:在当前行之后插入一行
- O:在当前行之前插入一行
- :wq:保存并退出
- :q!:不保存并强制退出
- set number:显示行号
- shift+g:移动到最后一行
- n+shift+g:移动到第n行
- 0:移动到行首
- $:移动到行尾
- /text:查找text,按n键查找下一个,按N键查找前一个
- ?text:查找text,反向查找,按n键查找下一个,按N键查找前一个
- %s/old/new/g:将old替换成new,替换当前行的所有匹配
- ctrl+f:向下滚动一屏
- ctrl+b:向上滚动一屏
- u:撤销
- U:撤销对整个行的操作
- Ctrl+r:重做
- x:删除当前字符
- dd:删除当前行
- yy:复制当前行
- p:在当前光标后粘贴
dos2unix和unix2dos
用于转换Windows和UNIX的换行符,通常在Windows下开发的脚本和配置,上传到UNIX系统下都需要转换。
Centos7上安装:yum install dos2unix -y
使用:dos2unix [fileName]
awk
Linux系统下的文本分析工具。awk逐行读入文件,以空格为默认分割符将每行切片,也可以以任何字符为分隔符,把切开的部分进行各种分析和处理,在分析和处理的过程中支持脚本式的编程。
测试文件:
awk -F ' ' ' {print $4}' test.log | sort | uniq -c | sort -nr
命令结果
ps
查看系统内所有的进程
ps -elf
- -e:显示所有的进程
- -l:长各式显示(有F,wchan等字段)
-
-f:全部列出
命令结果
字段说明: - F:程序的旗标(flag),4代表使用者为superuser
- S:代表这个程序的状态(STAT),D不可中断,R运行,S中断,T停止,Z僵死
- PPID:该进程的父进程的ID
- C:CPU使用的资源百分比
- PRI:进程优先级编号(Priority)
- NI:优先级(Nice)
- ADDR:指出该程序在内存的哪个部分
- SZ:占用的内存大小
- WCHAN:进程正在睡眠的内核函数名称
- TIME:使用掉的CPU时间
- CMD:所下达的指令
top
top命令用于查看活动进程的CPU和内存信息,能够实时显示系统中各个进程的资源占用情况,可以按照CPU、内存的使用情况和执行时间对进程进行排序。
- t:切换显示进程和CPU状态信息
- m:切换显示内存信息
- r:重新设置一个进程的优先级
- k:通过输入的PID终止一个进程
- s:改变刷新的时间间隔
- u:查看指定用户的进程
top的升级版htop的安装:
# rpm -ivh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL //导入key
# yum install htop
pidstat
监控全部或指定的进程占用系统资源的情况,包括CPU、内存、磁盘I/O、线程切换、线程数等数据。
- 输出CPU的使用信息:pidstat -u -p [pid]
- 输出内存的使用信息:pidstat -r -p [pid]
- 输出磁盘I/O的使用信息:pidstat -d -p [pid]
free
用于显示系统内存的使用情况,包括总体内存、已经使用的内存;还可用于显示系统内核使用的缓冲区,包括缓冲(buffer)和缓存(cache)等。
pmap
用于报告进程中各个模块占用内存的具体情况,显示比较底层的进程模块占用内存的信息,并且可以打印内存的起止地址等,用于定位深层次JVM或操作系统的内存问题。
pmap -d [pid]
vmstat
显示关于内核线程、虚拟内存、磁盘I/O、陷阱和CPU占用率的统计信息。
vmstat
- buff是I/O系统存储的磁盘块文件的元数据的统计信息。
- cache是操作系统用来缓存磁盘数据的缓冲区,操作系统会自动调节这个参数,在内存紧张时操作系统会减少cache的占用空间来保证其他进程可用。
- cs参数表示线程环境的切换次数,此数据太大时表明线程的同步机制有问题。
- si和so较大时,说明系统频繁使用交换区,应该查看操作系统的内存是否够用。
- bi和bo代表I/O活动,根据其大小可用知道磁盘I/O的负载情况。
mpstat
用于实时监控系统CPU的一些统计信息,这些信息存放在/proc/stat文件中,在多核CPU系统里,不但能查看所有CPU的平均使用信息,还能查看某个特定CPU的信息。
mpstat -P ALL
iostat
用于监控CPU占用率、平均负载值及I/O读写速度。
iostat -x
- r/s:每秒发送到设备的读入请求数
- w/s:每秒发送到设备的写入请求数
- rkB/s:每秒从设备读入的数据量,单位为K
- wkB/s:每秒向设备写入的数据量,单位为K
- await:I/O请求平均执行时间,包括发送请求和执行时间,单位是毫秒
swapon
查看交换分区的使用情况。
/sbin/swapon -s
df
用于查看文件系统的硬盘挂载点和空间使用情况。
df -h
nc
NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
详见:Linux nc命令详解
mtr
mtr命令是Linux中的网络连通性测试工具,也可以用来检测丢包率。
mtr -r [url]
nslookup
这是一款检测网络中DNS服务器能否正确解析域名的工具命令,并且可以输出。
nslookup [域名]
traceroute
提供从用户的主机到互联网另一端的主机的路径。
traceroute [主机域名]
sar
多功能的监控工具,不需要管理员权限,可以输出每秒的网卡存取速度,在应急过程中可以用来判断服务器是否上量。
sar -n DEV 1 1
netstat
显示网络连接、端口信息等。
- 根据进程ID查找进程开启的端口:netstat -nap | grep [pid]
- 查找使用端口的进程ID:netstat -nap | grep [port]
- 查看端口占用情况:netstat -tln | grep [port]
tcpdump
网络状况分析和跟踪工具,是可以用来抓包的实用命令。
- 显示来源IP或者目的IP为192.168.1.11的网络通信:sudo tcpdump -i eth0 host 192.168.1.11
- 显示去往192.168.1.12的所有FTP会话信息:sudo tcpdump -i eth1 'dst 192.168.1.12 and (port 21 or 20)'
- 显示去往192.168.1.12的所有HTTP会话信息:
sudo tcpdump -ni eth0 'dst 192.168.1.12 and tcp and port 8080'
nmap
扫描某一主机打开的端口及端口提供的服务信息。通常用于查看本机有哪些端口对外提供服务,或者确定服务器有哪些端口对外开放。
nmap -v -A localhost
- -v:输出更详细的信息
- -A:探测目标操作系统类型和版本
pstack
显示每个进程的本地调用栈。可以使用该命令查看进程正在挂起的执行方法,也可以查看进程的本地线程堆栈,与JVM的jstack配合使用可以看到JVM线程运行的全部状况。
pstack [pid]
/proc文件系统
- 显示CPU信息:cat /proc/cpuinfo
- 显示内存信息:cat /proc/meminfo
- 显示详细的内存映射信息:cat /proc/zoneinfo
- 显示磁盘映射信息:cat /proc/mounts
- 显示系统的平均负载:cat /proc/loadavg
md5sum
该命令用于生成md5摘要,通常用于在文件上传和下载操作中校验内存的正确性,或者通过hmac做对称数据签名。
md5sum [fileName]
sha256
md5摘要算法可以通过碰撞的方法被破解,sha256算法更安全。sha256通常也用于文件上传和下载操作中校验正确性,或者通过校验的sha256-hmac做对称数据签名。
sha256sum [fileName]
base64
网络上最常见的用于传输8位字节码的编码方式之一,这种编码方式可以保证输出的编码位全都是可读字符。base64制订了一个编码表,以便进行统一转换。编码表共有64个字符,因此被称为base64编码。
base64 [fileName]
参考资料:
《分布式服务架构:原理、设计与实践》
curl gitbook
每天一个linux命令(41):ps命令
Centos7安装htop下取代top的进程管理工具
iostat命令详解
网友评论