测试人员常用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命令的主要内容,如果未能解决你的问题,请参考以下文章