测试常用linux命令1

进程相关:

1,查看所有进程(包含历史进程):

ps -ef 各个参数的含义依次是uid,pid,ppid,c(cpu利用率),stime(进程启动时间),tty,time,cmd

2,动态查看进程top

top命令的详细用法可以参见:

http://www.2cto.com/os/201209/157960.html

注意命令中的相关字段:

对于cpu,分为us(用户空间占用cpu百分比);sy(系统空间占用cpu百分比);id(空闲cpu百分比);wa(IO等待占用cpu百分比)

其中的各个字段:PID(进行id);USER(进程所有者);PR(进程优先级); VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比

 

3, 后台运行进程

前台运行有:. ,sh,source

后台运行进程:再命令后面加一个&,不过这种方法,如果会话退出,那么后台进程也随之退出

如果需要会话退出的时候,进程不退出,那么方法是nohup。例如nohup ./test &。需要注意,nohup会从终端解除进程的关联,丢掉到stdout和stderror链接,而是将这两部分消息都重定向到nohup.out文件中

定时运行 at(预设时间运行) ,cron(定期运行);

开机或用户启动时运行:.bash_profile,bashrc文件位于用户主目录,前者在用户每次登录时运行,后者在每个shell启动时运行

4,结束进程:

重温linux信号量,常用的有SIGHUP(挂起进程),SIGINT(终止进程),SIGKILL(无条件终止进程),SIFTSTP(暂停进程,但并不终止)

a) ctrl+c:产生SIGHUP信号,发送给shell中当前运行的进程

b) ctrl+z:生成一个SIGTSTP信号,暂停进程,不过该进程继续保留在内存中,能从上次停止的地方继续运行。

如果想要进一步终止,可以用ps au(STAT字段为S代表被停止或追踪),也可以使用jobs查看后台进程,之后再用kill命令杀死

如果恢复可以用bg,fg等命令。

c)kill/killall 发出SIFKILL信号,无条件终止进程,killall可以直接使用进程名字,并可以使用通配符

2,网络命令

查看本机ip hostname -i

查看远程机器ip : ping (机器名称),host等等

查看进程占用的端口号

[root@nbatest ~]# netstat -anp | grep 进程名称
netstat -anp

查看使用端口号的进程
lsof
[root@nbatest ~]# lsof -i:  端口号

3,监测磁盘空间

df -h(用户可读的形式):显示某个设备还有多少磁盘空间

du -sh :显示特定目录下的磁盘使用情况

4,流程控制语句(if依据的是命令回传码$0,而不是其他语言中常见的true或者false,只不过利用test或者中括号进行判断的时候,类似于达到了true或者false的效果)

if then fi(then不能省略)

其中的条件判断分为三类:数值判断,字符串判断,文件判断(test,[]两种方式,推荐使用后者)

数值判断:-eq,-gt,-lt,-ne,-ge,-le

字符串判断: =,!=,<,>,-n(长度是否非0),-z(长度是否为0);注意大小写符号必须使用进行转义,否则会被当成重定向命令

文件判断:-d,-f,-e,-s(判断文件是否存在且非空),-nt,-ot

if双尖括号(())中可以放置数学表达式;[[]]可以进行正则匹配

普通的数学运算也可以放置在$[]中

${}不能放置$,需要将$符号换成!号

由此得到遍历命令行参数的两种方法:

for arg in $@
do 
    echo $arg
done 

#方法2

for((i=1;i<=$#;i++))
do 
    echo ${!i}
done
遍历shell脚本命令行参数

6, vim缩进格式化 gg=G

 

8,目录覆盖

cp -r ./test/* ./test/

9,nohup 用户退出,进程依旧执行

10, ls | xargs wc -l 是将显示的文件名作为wc -l的参数执行,目录下有多少个文件就执行多少次

ls | xargs -i mv {} {}.bak 将目录下的所有文件都重命名为xxxx.bak

11,找到某个程序存放目录,包括bin,source,etc等 where is mysq

12, 垃圾桶黑洞 /dev/null

将错误信息忽略 find /home -name .bashrc 2> /dev/null

将标准输出和错误输出到同一个文件中

ls . &>list  或者 ls . >list 2 >&1

13, 命令运行的判断依据 &?(命令回传值)与&&或||

&?命令回传值,&&正确则执行,否则不执行。||与之相反

cmd1&&cmd2||cmd3正确执行2,否则执行3

关于命令行的参数:

1,$#代表参数个数;$0代表脚本命令(`basename $0`);$1...代表各个参数,如果脚本需要多于9个参数,需要稍微修改一下变量名,如${10};$*将所有的参数作为一个单词保存,然而$@则是作为不同的单词。选取最后一个参数,需要用${!#}而不是${$#}

2,shift可以用来移动变量,利用它某种程度可以实现可变参数,但要注意一个参数被移除之后,它的值就会被丢掉而且无法恢复。某些时候可以用来分离参数和选项。(不过更常用的是使用getopt方法)

原文地址:https://www.cnblogs.com/bobodeboke/p/3685192.html