Linux面试题及答案,适合毕业生和小白,适合查缺补漏

    linux问题回答好了有两大作用,第一能证明你除了做过编码以外,还能通过看linux日志排查线上问题,第二能证明你在linux上做过部署和发布相关工作。

    相反,如果你连linux基本命令都不会,那么面试官轻则认为你只有在windows上写代码的能力,重则就会质疑你的项目是学习项目。

    在本文里,就将结合“排查线上问题”和“在linux上部署项目”这两大主题,全面分析下面试中经常会问到的linux相关面试题。

1、怎么以绝对路径和相对路径的方式进入目录?怎么看当前处在哪个目录下?

用cd命令,比如要进入绝对路径,可以用cd /etc,要进入上级路径,则可以用cd ../

要进入主目录,可以用cd ~/

可以通过pwd命令,查看当前所在的路径

2、怎么看当前进程?怎么执行退出?

查看当前进程可以用ps命令,执行退出可以用exit命令,可以用kill +进程号的方式,终止指定进程

3、怎么清屏?怎么退出当前命令?怎么查看当前用户 id?查看指定帮助用什么命令?

清屏命令,clear

退出当前命令: ctrl+c 彻底退出

查看当前用户 id的命令:输入id命令

查看指定帮助: 如 man adduser 

4、ls 命令执行什么功能?

这是最常用的命令,用来列出当前或指定目录里的文件和子目录

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

创建软链接: ln -s slink source

创建硬链接: ln link source

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

创建目录命令用mkdir

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

复制文件命令 cp

7. 文件权限修改用什么命令?

文件权限修改命令是chmod

如下是例子:

chmodu+xfile 给 file 的属主增加执行权限 chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

chmodu=rwx,g=rx,o=xfile 上例的另一种形式 chmod =r file 为所有用户分配读权限

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

vi 文件名 这是以编辑方式查看,可修改

cat 文件名 这是显示全部文件内容

more 文件名 这是以分页显示文件内容

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

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

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

9、怎么向屏幕输出带空格的字符串,比如”hello world”?

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

10、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

终端 /dev/tty

黑洞文件 /dev/null

什么叫黑洞文件?任何对/dev/null的写入都会成功,但是数据会消失得无影无踪,没有任何的反馈。

11、移动文件用哪个命令?

可以用mv命令

12、复制文件用哪个命令?如果需要连同文件夹一块复制呢?

cp cp -r ????

13、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?

分别是: rm  和   rm -r      以及  rmdir

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

“?”表示替代单个字符。

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

方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC],这就相当于正则表达式

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

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

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

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

grep [stringSTRING] filename grep [^string] filename

17、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 死掉的进程

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

一般都是使用 & 在命令结尾来让程序自动运行。

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

ps -ef (system v 输出)
ps -aux bsd 格式输出
ps -ef | grep pid


20、哪个命令专门用来查看后台任务?

jobs

21、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?

把后台任务调到前台执行 fg

把停下的后台任务在后台执行起来 bg

22、终止进程用什么命令? 带什么参数?

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

kill-9 pid

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

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

whereis 加参数与文件名

locate 只加文件名

find 直接搜索磁盘,较慢。

find / -name "string*"

24、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?

查找自己所在的终端信息:who am i

查看当前谁在使用该主机:who

25、使用什么命令查看用过的命令列表?

history

26、使用什么命令查看磁盘使用空间? 空闲空间呢?

df -hl
文件系统 容量 已用 可用 已用% 挂载点

Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G
44% /
/dev/hda1 494M 19M 450M 4% /boot


27、使用什么命令查看网络是否连通?

netstat

28、使用什么命令查看 ip 地址及接口信息?


ifconfig

29、查看各类环境变量用什么命令?

查看所有 env

查看某个,如 home: env $HOME

30、通过什么命令指定命令提示符?

\u:显示当前用户账号

\h:显示当前主机名

\W:只显示当前路径最后一个目录

\w:显示当前绝对路径(当前用户目录会以~代替)

$PWD:显示当前全路径

$:显示命令行’$'或者’#'符号

#:下达的第几个命令

\d:代表日期,格式为 week day month date,例如:"MonAug1"

\t:显示时间为 24 小时格式,如:HH:MM:SS

\T:显示时间为 12 小时格式

\A:显示时间为 24 小时格式:HH:MM

\v:BASH 的版本信息 如 export PS1=’[\u@\h\w#]$‘

31、查找命令的可执行文件是去哪查找的? 

whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

补充说明:whereis 指令会在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件。

-b 只查找二进制文件。

-B <目录> 只在设置的目录下查找二进制文件。 -f 不显示文件名前的路径名称。

-m 只查找说明文件。

-M <目录> 只在设置的目录下查找说明文件。-s 只查找原始代码文件。

-S <目录> 只在设置的目录下查找原始代码文件。 -u 查找不包含指定类型的文件。

w -h ich 指令会在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p 与-n 参数相同,但此处的包括了文件的路径。 -w 指定输出时栏位的宽度。

-V 显示版本信息

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

which 只能查可执行文件

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

33、怎么对命令进行取别名?

 

alias la='ls -a'


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

du 显示目录或文件的大小

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

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

 

35、怎么知道当前系统支持的所有命令的列表?

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


36、如何输出当前所有的目录栈?

使用 Linux 命令 dirs 可以将当前的目录栈打印出来。

[root@localhost ~]# dirs
/usr/share/X11
 

37、当前系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?


使用 linux 命令 ’disown -r ’可以将所有正在运行的进程移除。

38、bash shell 中的 hash 命令有什么作用?
 

linux 命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径,用该命令可以打印出你所使用过的命令以及执行的次数。

[root@localhost ~]# hash
hits command
2 /bin/ls
2 /bin/su
 

你可能感兴趣的:(面试)