测试人员常用Linux命令

Posted good-life

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试人员常用Linux命令相关的知识,希望对你有一定的参考价值。

1.防火墙
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
查看状态 service iptables status


2.关机
# shutdown -h now #立刻关机
# shutdown -h 2:30 ‘halt‘ #2点30分关机,注意以本机时间为准
# halt -p #立刻关机
# init 0 #立即将系统运行级别切换为0,即关机
# shutdown -r now #立刻重启


3.重启
# shutdown -k now ‘reboot‘ #发出警告讯息,但没有真的关机.
# shutdown -t10 -r now #立刻重启, 但在警告和删除processes之间,延迟10秒钟.
# init 6 #立即将系统运行级别切换为6,即重启
# shutdown -r +10 ‘reboot‘ #10分钟后重启
# shutdown -c #取消之前的shutdown命令
# shutdown now #切换至单人操作模式(不加任何选项时)

4.修改系统时间
date 时间窗口
date -s ‘2017-08-01 10:10:00‘ 更改年月日小时分秒
date -s 10:00:02 只更改时间 不更改年月
clock -w 写入系统时间
hwclock 同步bios 时间
service ntpdate start 开启网络时间同步
systemctl start ntpdate.service 开启网络时间同步 Red Hat 7
chkconfig --leves 2345 ntpdate on 开机启动

时区:
date -R
tzselect

5、端口
1、lsof -i:端口号
2、netstat -tunlp|grep 端口号
3、netstat -anp|grep 80
端口启用、停止
1、开启端口(以80端口为例)

方法一:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 写入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重启防火墙,修改生效
方法二:
vi /etc/sysconfig/iptables 打开配置文件加入如下语句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 重启防火墙,修改完成
2、关闭端口

方法一:
/sbin/iptables -I INPUT -p tcp --dport 80 -j DROP 写入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重启防火墙,修改生效
方法二:
vi /etc/sysconfig/iptables 打开配置文件加入如下语句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j DROP 重启防火墙,修改完成


6、查看CPU、内存配置
硬盘: df -h
CPU、内存: top
##CPU型号查看:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
##从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
##查看cpu是几核的,也可以用命令显示,4代表就是4核
cat /proc/cpuinfo |grep "cores"|uniq cpu cores : 4
##查看物理CPU的个数,1代表只有一个物理CPU
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

查看显卡:lspci |grep -i vga

7、终端乱码修改
# vim /etc/sysconfig/i18n
修改为:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

9.top界面介绍
第一行:
13:42:59 当前系统时间
6 days, 9:29 系统已经运行了6天6小时29分钟(在这期间没有重启过)
3 users 当前有3个用户登录系统
load average: 3.06,3.01, 1.79 load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:
Tasks 任务(进程),系统现在共有131个进程,其中处于运行中的有3个,127个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有1个。
第三行:cpu状态
10.6% us 用户空间占用CPU的百分比。
2.2% sy 内核空间占用CPU的百分比。
0.0% ni 改变过优先级的进程占用CPU的百分比
84.5% id 空闲CPU百分比
2.5% wa IO等待占用CPU的百分比
0.1% hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si 软中断(Software Interrupts)占用CPU的百分比
在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。
第四行:内存状态
8300124k total 物理内存总量(8GB)
5979476k used 使用中的内存总量(5.7GB)
2320648k free 空闲内存总量(2.2G)
455544k buffers 缓存的内存量 (434M)
第五行:swap交换分区
8193108k total 交换区总量(8GB)
41568k used 使用的交换区总量(40.6M)
8151540k free 空闲交换区总量(8GB)
4217456k cached 缓冲的交换区总量(4GB)
****内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,
还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
****可用内存的近似计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存: 2320648+455544 +4217456 = 6.6GB。
****在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第七行以下:各进程(任务)的状态监控
PID 进程id
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上+——次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程名称(命令名/命令行)
********************多U多核CPU监控****************************************************
在top基本视图中,按键盘数字1,可监控每个逻辑CPU的状况:
默认进入top时,各进程是按照CPU的占用量来排序的,在【top视图 01】中进程ID为3527的mysqld进程排在第一(cpu占用2%),进程ID为26955的java进程排在第二(cpu占用1%)。
可通过键盘指令来改变排序字段,比如想监控哪个进程占用MEM最多,我一般的使用方法如下:
1. 敲击键盘b(打开/关闭加亮效果),top的视图变化如下:
我们发现进程id为20517的top进程被加亮了,一般为运行状态(runing)的进程才被加亮,可以通过敲击y键关闭或打开运行态进程的加亮效果。
2. 敲击键盘x(打开/关闭排序列的加亮效果),top的视图变化如下:
可以看到,top默认的排序列是%CPU。
3. 通过shift + >或shift + <可以向右或左改变排序列,下图是按一次shift + >的效果图:
视图现在已经按照%MEM来排序了。
改变进程显示字段
1. 敲击f键,top进入另一个视图,在这里可以编排基本视图中的显示字段:
这里列出了所有可在top基本视图中显示的进程字段,有*并且标注为大写字母的字段是可显示的,没有*并且是小写字母的字段是不显示的。
如果要在基本视图中显示CODE和DATA两个字段,可以通过敲击r和s键:
2. 回车返回基本视图,可以看到多了CODE和DATA两个字段:
top命令的补充
top命令是Linux上进行系统监控的首选命令,但有时候却达不到我们的要求,top命令的监控最小单位是进程,所以看不到程序的线程数和客户连接数,通常可以ps和netstate两个命令来补充top的不足。
监控java线程数:
ps -eLf | grep java | wc -l
监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l
上面两个命令,可改动grep的参数,来达到更细致的监控要求。
在Linux系统一切都是文件的思想贯彻指导下,所有进程的运行状态都可以用文件来获取。系统根目录/proc中,每一个数字子目录的名字都是运行中的进程的PID,进入任一个进程目录,
可通过其中文件或目录来观察进程的各项运行指标,例如task目录就是用来描述进程中线程的,
因此也可以通过下面的方法获取某进程中运行中的线程数量(PID指的是进程ID):
ls /proc/PID/task | wc -l
在linux中还有一个命令pmap,来输出进程内存的状况,可以用来分析线程堆栈:
pmap PID
%CPU=(进程的生命周期中占用CPU的时间)*100/(进程的生命周期代表的时间长度)
比如一个进程的生命周期的时间长度是1000s,然后在这1000s内占用CPU的时间是500s,那么
%CPU=500*100/1000=50
即最后的结果表示50%


10.修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart


11.进程管理
查进程
ps命令查找与进程相关的PID号:
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat
ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。
杀进程
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
进入到进程的执行文件所在的路径下,执行文件 ./文件名


12.Centos上Apache重启,mysql重启, nginx 重启方法
1.重启 apache
  service httpd restart
  /etc/init.d/httpd stop
  /etc/init.d/httpd start
  2.重启 mysql
  service mysql restart
  /etc/init.d/mysqld stop
  /etc/init.d/mysqld start
  3.重启nginx
  service nginx restart
  /etc/init.d/nginx stop
  /etc/init.d/nginx start

13.查看linux版本
版本 : lsb_release -a cat /etc/issue uname -a
位数:getconf LONG_BIT file /bin/ls

14.Linux 的网卡监控
watch more /proc/net/dev

15.打包以及压缩(注:Linux中的很多压缩程序只能针对一个文件进行压缩)
01-.tar格式
解包:[*******]$ tar xvf FileName.tar
打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)

02-.gz格式
解压1:[*******]$ gunzip FileName.gz
解压2:[*******]$ gzip -d FileName.gz
压 缩:[*******]$ gzip FileName

03-.tar.gz格式
解压:[*******]$ tar zxvf FileName.tar.gz
压缩:[*******]$ tar zcvf FileName.tar.gz DirName

04-.bz2格式
解压1:[*******]$ bzip2 -d FileName.bz2
解压2:[*******]$ bunzip2 FileName.bz2
压 缩: [*******]$ bzip2 -z FileName

05-.tar.bz2格式
解压:[*******]$ tar jxvf FileName.tar.bz2
压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName

06-.bz格式
解压1:[*******]$ bzip2 -d FileName.bz
解压2:[*******]$ bunzip2 FileName.bz
./bin/pika -c conf/pika.conf
07-.tar.bz格式
解压:[*******]$ tar jxvf FileName.tar.bz

08-.Z格式
解压:[*******]$ uncompress FileName.Z
压缩:[*******]$ compress FileName

09-.tar.Z格式
解压:[*******]$ tar Zxvf FileName.tar.Z
压缩:[*******]$ tar Zcvf FileName.tar.Z DirName

10-.tgz格式
解压:[*******]$ tar zxvf FileName.tgz

11-.tar.tgz格式
解压:[*******]$ tar zxvf FileName.tar.tgz
压缩:[*******]$ tar zcvf FileName.tar.tgz FileName

12-.zip格式
解压:[*******]$ unzip FileName.zip
压缩:[*******]$ zip FileName.zip DirName

13-.lha格式
解压:[*******]$ lha -e FileName.lha
压缩:[*******]$ lha -a FileName.lha FileName

14-.rar格式
解压:[*******]$ rar a FileName.rar
压缩:[*******]$ rar e FileName.rar

16.查看进程的路径
cd /proc/29565 ll

 

以上是关于测试人员常用Linux命令的主要内容,如果未能解决你的问题,请参考以下文章

总结了测试人员常用的20个Linux命令,小白必看!

轻度Linux服务器维护人员常用的Shell脚本命令

linux最常用命令

(转)Linux企业运维人员常用的150个命令分享

Linux学习总结(80)—— 开发人员最常用的 Linux 命令总结

Linux学习总结(80)—— 开发人员最常用的 Linux 命令总结