测试工程师常用Linux面经

1.Linux和shell

1.当前目录下的名为log的文件夹复制到系统临时目录

cp -r

若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件

使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:

$ cp –r test/ newtest   

2.动态监控stdout.log的新增内容,输出ERROR和WARN字符串的行

tail -f  stdout.log

     tail命令

tail命令从指定点开始将文件写到标准输出流,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail –f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。(经常用来在查看服务器上的日志文件)

      用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日志文件。

(3)     命令参数:

-f               循环读取

-q              不显示处理信息

-v              系那是详细的处理信息

-c<数目>         显示的字节数

-n<行数>                  显示行数

(4)     命令实例:

①显示文件末尾内容

             tail –n 5 log2014.log 显示文件最后5行的内容

②循环查看文件内容

             tail   -f      test.log

③从第5行开始显示文件

             tail –n +5 log2014.log

3.查看服务器磁盘空间占用命令

df -h

4.netstat -nl|grep ^tcp|awk '{print $NF}'|sort -nr|uniq -c

netstat -nl|  是查看运行的端口,
grep ^tcp  过滤TCP开头的内容
|awk '{print $NF}'  截取最后一段
sort -nr  排序
uniq -c  去重

统计最后一段正在运行多少个端口

一、查看哪些IP连接本机

netstat -an

二、查看TCP连接数

1)统计80端口连接数
netstat -nat|grep -i "80"|wc -l

2)统计httpd协议连接数
ps -ef|grep httpd|wc -l

3)、统计已连接上的,状态为“established
netstat -na|grep ESTABLISHED|wc -l

4)、查出哪个IP地址连接最多,将其封了.
netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

netstat -na|grep SYN|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

2、查看有多少个进程数:
ps aux|grep httpd|wc -l
#ps -ef|grep httpd|wc -l
1388
统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整。
来自:https://blog.csdn.net/he_jian1/article/details/40787269

5.cd

常用范例:

①进入系统根目录

             cd /

②进入当前目录的上一级目录:cd ..或者cd ..//

③进入当前用户的主目录

             cd 或者 cd~

④跳转到指定目录

             cd /echncms/lijl_bj1(根目录下进入)

跳转到指定目录,从根目录开始,目录名称前加“/”,当前目录的子目录写名称即可。

⑤返回进入此目录之前所在的目录

             cd –

6.查看当前目录pwd

使用“pwd”命令来查看“当前工作目录”的完整路径

 mkdir命令

mkdir用来创建指定名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

在指定位置创建指定文件名命名的文件夹或目录,要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限,且同一个目录下不能有重名的。

  命令实例:

①创建一个空目录

             mkdir lijl_bj1

②递归创建多个目录

             mkdir –p ./lijl_bj1/test(./表示当前目录,../表示上级目录,/表示根目录)

③创建权限为777的目录

             mkdir –m 777 test777

④创建新目录显示信息

             mkdir –v test

⑤创建项目的目录结构

mkdir –vp

src/{com/sitech/{admin/{entity/,dao/,service,controller},common/util/},config/}

(5)     注意事项:

最后一个实例⑤对顺序是有要求的,即在-vp时才表示-v –p操作,而若是-pv则在上述语句中会默认为创建-vp目录。

7.rm

删除指定目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录,如果使用rm来删除文件,通常仍可以将文件恢复原状

命令实例:

①删除文件file,系统会先询问是否删除,rm –i log.log,输入y之后就会删除

②强行删除file,系统不再提示  rm –f log1.log

③删除任何.log文件,删除前逐一询问  rm –i *.log

④将test1子目录及子目录中所有档案都删除 rm –r test

⑤将test2子目录及子目录中所有档案都删除,并且不用一一询问

     rm  –rf  test2(常用)

⑥删除以-f开头的文件

             rm -- -f

⑦自定义回收站功能:

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir –p $D; mv “$@” $D && echo “moved to $D ok”; }

8.rmdir

该命令的功能是删除空目录,一个目录被删除之前必须是空的

  命令实例:

①rmdir不能删除非空目录 rmdir lijl_bj1,该命令不能直接删除非目录

②rmdir –p 当子目录被删除后使它也一并成为空目录的话,则顺便一起删除

9.mv

移动文件或者将文件改名(move (rename) files)

 命令实例:

①文件改名:将文件test.log 改名为test1.txt

             mv test.log test1.txt

②移动文件:将test1.log文件移至test3

             mv test1.log test3

③将文件log1.txt,log2.txt,log3.txt移至目录test中

             mv log1.txt log2.txt log3.txt test

             mv –t /opt/soft/test/ log1.txt log2.txt log3.txt

④将文件file1改名为file2,如果file2已经存在,则询问是否覆盖

             mv –i log1.txt log2.txt

⑤将文件file1改名为file2,即时file2存在,也是直接覆盖掉

             mv –f log3.txt log2.txt

log3.txt的内容直接覆盖了log2.txt内容,-f这是个危险的选项,使用时候一定要保持头脑清醒,一般情况下最好不用加上它。

⑥目录的移动

             mv dir1 dir2

如果目录dir2不存在,将目录dir1改名为dir2,否则将dir1移动到dir2中

⑦移动当前文件夹下的所有文件到上一级目录

             mv * ../

⑧把当前目录的一个子目录里的文件移动到另一个子目录里

             mv test3/*.txt test5

⑨文件被覆盖前做简单备份,前面加参数-b

             mv log1.txt –b log2.txt

10.cp

cp命令用来复制文件或者目录

 命令实例:

①复制单个文件到目标目录,文件在目标文件中不存在

             cp log.log test5

在没有带-a参数时,两个文件的时间是不一样的,在带来-a参数时,两个文件的时间是一致的。

②目标文件存在时,会询问是否覆盖。

             cp log.log test5

目标文件存在时,会询问是否覆盖,这是因为cp 是cp –i 的别名,目标文件存在时,即时加了-f标志,也还会询问是否覆盖。

③复制整个目录

             cp –a test3 test5

注意目标目录存在与否结果是不一样的,目标目录存在时,整个源目录被复制到目标目录里面。

④复制的log.log建立一个链接档案log_link.log

             cp –s log.log log_link.log

⑤那个log_link.log是由-s的参数造成的,建立的是一个【快捷方式】,所以会看到在文件的最右边,会显示这个文件是链接到哪里去的。

11.cat命令

cat命令的用途是连接文件或标准输入并打印,这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

使用实例:

①把log2012.log的文件内容加上行号后输入log2013.log这个文件

           cat –n log2012.log log2013.log

②把log2012.log和log2013.log的文件内容加上行号(空白行不加)之后将内容附加到log.log里。

           cat –b log2012.log log2013.log log.log

③把log2012.log的文件内容加上行号后输入log.log这个文件里

           cat –n log2012.log>log.log

④注意tac是反向列示,tac是将cat反过来,所以它的功能就跟cat相反,cat是由第一行到最后一行连续显示在荧幕上,而tac则是由最后一行到第一行反向在银幕上显示。

猜你喜欢

转载自blog.csdn.net/qq_36330733/article/details/87864107