linux面试题集锦

du和df的定义,以及区别?

du显示目录或文件的大小。

df显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。

(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为MetaData。)du命令是用户级的程序,它不考虑MetaData,而df命令则查看文件系统的磁盘分配图并考虑MetaData。

df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。

linux中进程有哪几种状态?在ps显示出来的信息中,分别用什么符号表示的?

(1)不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。

(2)暂停状态/跟踪状态:向进程发送一个SIGSTOP信号,它就会因响应该信号而进入TASK_STOPPED状态;当进程正在被跟踪时,它处于TASK_TRACED这个特殊的状态。

“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。

(3)就绪状态:在run_queue队列里的状态

(4)运行状态:在run_queue队列里的状态

(5)可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待socket 连接、等待信号量),而被挂起

(6)zombie状态(僵尸):父亲没有通过wait系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉

(7)退出状态

D 不可中断 Uninterruptible(usually IO)

R 正在运行,或在队列中的进程

S 处于休眠状态

T 停止或被追踪

Z 僵尸进程

W 进入内存交换(从内核 2.6 开始无效)

X 死掉的进程

怎么查看当前进程?怎么执行退出?怎么查看当前路径?

查看当前进程: ps

执行退出: exit

查看当前路径: pwd

利用ps怎么显示所有的进程? 怎么利用ps查看指定进程的信息?

ps -ef (system v 输出) 

ps -aux 是用BSD的格式来显示

ps -ef | grep pid

查看文件内容有哪些命令可以使用?

vi 文件名 #编辑方式查看,可修改

cat 文件名 #显示全部文件内容

more 文件名 #分页显示文件内容

less 文件名 #与 more 相似,更好的是可以往前翻页

tail 文件名 #仅查看尾部,还可以指定行数

head 文件名 #仅查看头部,还可以指定行数

怎么使一个命令在后台运行?

一般都是使用&在命令结尾来让程序自动运行。(命令后可以不追加空格)

随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?

写文件命令:vi

向屏幕输出带空格的字符串:echo hello world

如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?

使用命令compgen -c,可以打印出所有支持的命令列表。

[root@localhost ~]$ compgen -c
l.
ll
ls
which
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
…

linux查询运行中的文件所在目录?例如:文件名为t.php,服务器上有多个t.php文件,想确认运行的到底是哪个文件。

lsof -p $(ps -ef | grep t.php | grep -v grep | head -n 1 |awk ‘{print $2}’)

先查询出pid,然后通过lsof查询文件所有目录   

用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)

wc 命令 -c 统计字节数 -l 统计行数 -w 统计字数。

当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?

可以使用bind命令,bind可以很方便地在shell中实现宏或按键的绑定。

在进行按键绑定的时候,我们需要先获取到绑定按键对应的字符序列。

比如获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12 .我们就可以得到F12的字符序列 ^[[24~。

接着使用bind进行绑定。

[root@localhost ~]# bind ‘”\e[24~”:”date”‘

注意:相同的按键在不同的终端或终端模拟器下可能会产生不同的字符序列。

【附】也可以使用showkey -a命令查看按键对应的字符序列。

搜索文件用什么命令?格式是怎么样的?

find <指定目录> <指定条件> <指定动作>

whereis 加参数与文件名

locate 只加文件名

find 直接搜索磁盘,较慢。

find / -name “string*”

linux下命令有哪几种可使用的通配符?分别代表什么含义?

“?”可替代单个字符。

“*”可替代任意多个字符。

方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]

怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?

清屏: clear
退出当前命令: ctrl+c 彻底退出
执行睡眠 : ctrl+z 挂起当前进程fg 恢复后台
查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser –help 这个告诉你一些常用参数; info adduesr;

文件权限修改用什么命令?格式是怎么样的?

文件权限修改: chmod

格式如下:

$ chmod u+x file 给 file 的属主增加执行权限
$ chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
$ chmod u=rwx,g=rx,o=x file 上例的另一种形式
$ chmod =r file 为所有用户分配读权限
$ chmod 444 file 同上例
$ chmod a-wx,a+r file同上例
$ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限

绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

绝对路径: 如/etc/init.d
当前目录和上层目录: ./  ../
主目录: ~/
切换目录: cd

目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?

创建目录: mkdir

创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件

复制文件: cp 

建立软链接(快捷方式),以及硬链接的命令。

软链接: ln -s slink source
硬链接: ln link source

怎样一页一页地查看一个大文件的内容呢?

通过管道将命令“cat file_name.txt” 和 “more” 连接在一起可以实现这个需要.

[root@localhost ~]# cat file_name.txt | more

grep命令有什么用?如何忽略大小写?如何查找不含该串的行?

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grep [stringSTRING] filename 

grep [^string] filename

正向代理和反向代理的区别?

正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

用途:

(1)访问原来无法访问的资源,如google

(2) 可以做缓存,加速访问资源

(3)对客户端访问授权,上网进行认证

(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理的作用:

(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击

(2)负载均衡,通过反向代理服务器来优化网站的负载

通过什么命令查找执行命令?

which 只能查可执行文件。

whereis 只能查二进制文件、说明文档,源文件等。

统计nginx日志里访问次数最多的前十个IP的命令?

awk ‘{print $1}’ access.log | sort | uniq -c | sort -nr -k1 | head -n 10

说明:

awk ‘{ print $1}’:取数据的低1域(第1列)。

sort:对IP部分进行排序。

uniq -c:打印每一重复行出现的次数。(并去掉重复行)。

sort -nr -k1:按照重复行出现的次序倒序排列,-k1以第一列为标准排序。

head -n 10:取排在前10位的IP 。

思考:统计nginx访问日志耗时最长的前十条的shell命令?

nginx日志格式

log_format  main  ‘$remote_addr – $remote_user [$time_local] $request ‘

                  ‘”$status” $body_bytes_sent “$http_referer” ‘

                  ‘”$http_user_agent” “$http_x_forwarded_for” $request_time’;

ls 命令执行什么功能? 可以带哪些参数,有什么区别?

ls 执行的功能: 列出指定目录中的目录,以及文件

哪些参数以及区别: 

-a 所有文件

-l详细信息,包括大小字节数,可读可写可执行的权限等

写一个shell命令 实现找出所有包含 spread的进程,杀死这些进程并记录日志,日志包含杀死进程名称和杀死进程的时间

ps -ef |grep spread |grep -v grep |awk '{print $2}'|xargs kill -9
kill -9 $(ps -ef | grep spread| grep -v grep | awk '{print $2}')

暂无评论

发送评论 编辑评论


				
上一篇
下一篇