PHP面试系列 之Linux(六)---- 面试题整理

1、shell命令

top:查看有哪些系统进程正在运行。该命令提供了实时对系统处理器状态的监控,它能够实时显示系统中各个进程的资源占用情况。该命令可以按照对CPU、内存使用和执行时间对系统任务进程进行排序显示,同时还可以通过交互式命令进行设定显示。

df:检查磁盘空间占用情况(磁盘空间使用率)。

wc:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

kill: 终止进程

2、复制:

y1G:从当前行复制到第一行,并复制第一行

yG:从当前行复制到最后一行

y0:从当前位置复制到行首,不包括光标所在位置的字符

y$:从当前位置复制到行尾,包括光标所在位置的字符

3、删除:

d1G: 从当前行删除到第一行

dG:从当前行删除到最后一行

d0:从当前位置删除到行首,不包括光标所在位置的字符

d$:从当前位置删除到行尾,包括光标所在位置的字符

4、获取文章行数:

wc -l filename

5、输入文件的最后5行到另外一个文件中

tail -n 5 file1 >> file2

6、查找文件中包含hello的行

grep hello filename(直接输出显示到终端)

7、查找当前目录下所有目录名为CVS的子目录的命令***

find ./CVS -maxdepth 1 -type d print

8、如何让一个程序在后台运行并把输入定向到指定的文件***

nohup 程序 >> 文件名 2>&1 & (2>&1要放在输出文件名的后面)

nohub = no hang up不挂起

9、如何把一个文件的内容添加到另一个文件的末尾

cat file1 >> file2

10、如何实时的显示一个文件的输出

more less

(ctrl+b: 向上翻页;ctrl+f: 向下翻页)
lessmore更强大,提供翻页,跳转,查找)

11、定时执行一个程序的方法有什么

at: 仅执行一次任务就结束。

crontab:循环周期性调度。

12、vi 编辑器中,如何替换指定的字符串

使用s命令。
:n1,n2s/word1/word2/g: 将第n1行与n2行之间的word1替换为word2
:1,$s/word1/word2/g: 从第1行到最后一行中的word1替换为word2

13、如何查看所有用户

cat /etc/passwd

14、Linux上的crond服务可对服务器设置计划任务,设置每2分钟执行一次/tmp/test.sh的脚本。

(1)开启cron服务:
sudo /etc/init.d/cron start

(2)添加定时任务:
crontab -e

(3)编辑如下:
*/2 * * * * /tmp/test.sh

15、检测Linux性能(cpu,磁盘io,内存,网络等)都用到哪些命令?

ps: 显示当前进程 (process) 的状态。

free: 显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等

vmstat: 是Virtual Meomory Statistics(虚拟内存统计)的缩写,可实时动态监视操作系统的虚拟内存、进程、CPU活动。

netstat: 显示整个Linux系统的网络情况

16、打包压缩和解包命令

tar -zcvf 新压缩包名 要压缩的文件名: 压缩文件
tar -zxvf 压缩包名:解压文件

17、软连接和硬链接有什么区别?

  • 软链接ln -s 源文件 目标连接名

    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

    2.软链接可以 跨文件系统 ,硬链接不可以

    3.软链接可以对一个不存在的文件名进行链接

    4.软链接可以对目录进行链接

  • 硬链接ln 源文件 目标链接名

    1.硬链接,以文件副本的形式存在。但不占用实际空间。

    2.不允许给目录创建硬链接

    3.硬链接只有在同一个文件系统中才能创建

18、Linux下的find命令和grep命令的区别

find:在磁盘/分区中找到文件,可以配type可以配size time等,通过文件名或文件大小或访问时间找到指定文件

grep:查找文件里符合条件的字符串,并把匹配的行打印出来,可以使用正则表达式。

19、有mail.log的一个文档,内容为若干邮件地址,其中用' '将邮件地址分隔。要求从中挑选出sina.com的邮件地址(包括从文件读取、过滤到列印出来)。

mail.log内容如下:

james@sina.com.cn
jack@163.com
zhansan@sohu.com
lisi@hotmail.com
wangwu@gmail.com

参考答案

`cat mail.log | grep sina.com`

或者:

#!/bin/bash
while read row ;
do
case $row in
    *sina.com*) echo $row ;;
    esac
done < mail.log
原文地址:https://www.cnblogs.com/zqunor/p/8673862.html