九、为了OFFER而战,那些日子在牛客网刷Linux面试题(下)

举报
毛利 发表于 2021/07/15 02:52:54 2021/07/15
【摘要】 @Author:Runsen @Date:2020/9/11 文章是Runsen在Gitchat付费文章分享:Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程 顺便同步到CSDN中,八月份写的,有些时间了。 下面的Linux面试题都是来自牛客网,都是本人觉得挺重要的题目,然后记录下。 文章目录 1、死锁2、命令3、路由4、读写权...

@Author:Runsen

@Date:2020/9/11

文章是Runsen在Gitchat付费文章分享:Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程

顺便同步到CSDN中,八月份写的,有些时间了。

下面的Linux面试题都是来自牛客网,都是本人觉得挺重要的题目,然后记录下。

1、死锁

在()情况下,系统出现死锁。
正确答案: A 你的答案: A (正确)

A、若干进程因竞争资源而无休止地相互等待对方释放已占有的资源
B、有多个封锁的进程同时存在
C、计算机系统发生重大故障
D、资源数大大小于进程数或进程同时申请的资源数大大超过资源总数

  
 
  • 1
  • 2
  • 3
  • 4

死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

2、命令

写出完成gdb查看线程信息功能的gdb命令

正确答案: B 你的答案: C (错误)

A、bt
B、info thread
C、set scheduler-locking off
D、info break

  
 
  • 1
  • 2
  • 3
  • 4
  • backtrace bt 打印当前的函数调用栈的所有信息。
  • info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。
  • set scheduler-locking 线程调试 显示线程状态,off 不锁定任何线程
  • info break 可列出所有断点信息,info break 后也可设置要查看的break num

linux查看cpu占用的命令是什么?
正确答案: A 你的答案: A (正确)

A、top
B、netstat
C、free
D、df

  
 
  • 1
  • 2
  • 3
  • 4

top查看CPU、netstat显示网络连接、路由表、网络接口信息、free查看内存使用情况、df检查文件系统的磁盘空间的占用情况

Linux的非root用户,在自己的目录中,不可以删除非空目录dirs的方法是:
正确答案: A C D 你的答案: A、C、D(正确)

rm dir dirs
rm -r dirs
mv dirs /dev/null
destroy dirs

  
 
  • 1
  • 2
  • 3
  • 4

很常用的命令rm -rf /directory -r表示递归删除(文件夹删除)。-f表示强制删除 。本题只能这么删除文件夹,mv是移动命令,/dev/null就是一个黑洞,移进去的文件就会消失,但非root用户没有执行权限。

下面哪个命令可以统计一个文件中"牛客"出现的行数?

正确答案: B 你的答案: B (正确)

A、vim "牛客" 文件名 | wc -l
B、grep "牛客" 文件名 | wc -l
C、ls "牛客" | wc
D、vim "牛客" 文件名 | wc

  
 
  • 1
  • 2
  • 3
  • 4

grep “牛客” 文件名:输出文件中所有含有牛客的信息
|将上面输出的信息通过管道作为wc的输入源
wc -l统计行数

补充wc(Word Count)命令:

  • -c 统计字节数。
  • -l 统计行数。
  • -m 统计字符数。这个标志不能与 -c 标志一起使用。
  • -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
  • -L 打印最长行的长度。
  • -help 显示帮助信息
  • -version 显示版本信息

假如你需要找出/etc/my.conf文件属于哪个包(package),你可以执行:()

正确答案: D 你的答案: D (正确)

A、rpm -requires/etc/my.conf
B、rpm -q/etc/my.conf
C、rpm -q|grep /etc/my.conf
D、rpm -qf /etc/my.conf

  
 
  • 1
  • 2
  • 3
  • 4

不同Linux发行版用的是不同软件包系统,分为Debian的.deb技术(Debian,Ubuntu)和Red Hat的.rpm技术(Fedora,CentOS,redHat).

其中rpm是低级的RedHat软件包管理工具:

  • -i package_name 安装软件包

  • -U packagefile 更新软件包

  • -qa 列出已安装的软件包列表

  • -q package-name 判断软件包是否安装

  • -qf file_name 判断某个特定文件是由哪个软件包负责安装的

批量删除当前目录下后缀名为.c的文件。如a.c、b.c。
正确答案: A B 你的答案: A B (正确)

A、rm *.c
B、find . -name "*.c" -maxdepth 1 | xargs rm
C、find . -name "*.c"   | xargs  rm
D、以上都不正确

  
 
  • 1
  • 2
  • 3
  • 4

A没有问题。B:题目中是说删除当前目录下 后缀名为.c的文件,需要加上-maxdepth 1,表示是当前目录,不包括其子目录。所以C这样是不对的

3、路由

局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是?

正确答案: B 你的答案: B (正确)

A、route add –net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
B、route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
C、route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1
D、route add default 192.168.1.0 netmask 172.168.1.1 metric 1

  
 
  • 1
  • 2
  • 3
  • 4

route -net 后面跟的是目标网络,gw就是gateway(网关入口)就是你从哪个网关去到那个目标网络。明白这两项这题就能选了。

补充:Linux中的route命令

  • route print--本命令用于显示路由表中的当前项目,由于用IP地址配置了网卡,因此所有的这些项目都是自动添加的。

  • route add--使用本命令,可以将新路由项目添加给路由表。例如,如果要设定一个到目的网络209.98.32.33的路由,其间要经过5个路由器网段,首先要经过本地网络上的一个路由器,其IP为202.96.123.5,子网掩码为255.255.255.224,那么你应该输入以下命令:

route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5

  
 
  • 1
  • route change--你可以使用本命令来修改数据的传输路由,不过,你不能使用本命令来改变数据的目的地。下面这个例子可以将数据的路由改到另一个路由器,它采用一条包含3个网段的更直的路径:
route change 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3

  
 
  • 1
  • route delete--使用本命令可以从路由表中删除路由。例如:route delete 209.98.32.33

4、读写权限

在linux文件系统权限中(rwx),只读权限对应的数值为()
正确答案: A 你的答案: A (正确)

A、4
B、2
C、1
D、选项均不正确

  
 
  • 1
  • 2
  • 3
  • 4

用二进制表示rwx(r:可读,w:可写,x:可执行)文件权限的时候,rwx对应000的位置
比如可读的,不可写,不可执行的时候就应该二进制表示是100;
不可读的,可写,不可执行的时候就应该二进制表示是010;
不可读的,不可写,可执行的时候就应该二进制表示是001;
可读的,可写,可执行的时候就应该二进制表示是111;
题目中是只可读,所以二进制是100,二进制100转为十进制就是4

Linux下,为某个脚本赋予可执行权限()
正确答案: A 你的答案: A (正确)

A、chmod +x filename.sh
B、chown +x filename.sh
C、chmod +r filename.sh
D、chown +r filename.sh

  
 
  • 1
  • 2
  • 3
  • 4

chmod命令修改权限 +x表示增加执行权限,+r表示增加读取权限,+w表示增加写权限。
chown将指定文件的拥有者改为指定的用户或组

在Linux中,file.sh文件的权限为-rw-r–r-x,其对应权限用数值形式表示为()
正确答案: C 你的答案: C(正确)

A、775
B、745
C、645
D、643

  
 
  • 1
  • 2
  • 3
  • 4

linux下给文件start.sh设置权限为自己可读可修改可执行,组内用户为可读可执行不可修改,其余用户没有任何权限,那么设置该文件权限的命令为()

正确答案: B 你的答案: B (正确)

A、chmod start.sh 706
B、chmod start.sh 750
C、chmod start.sh 705
D、chmod start.sh 777

  
 
  • 1
  • 2
  • 3
  • 4

linux中权限有九位二进制数表示XXX YYY ZZZ,前一个XXX表示owner的权限,YYY表示group的权限(也就是同组用户的权限),ZZZ表示other的权限(非同组用户的权限)。根据本题要求,XXX=111=7,YYY=101=5,ZZZ=000=0,所以是750

Linux文件权限一共10位长度,分成四段,第三段表示的内容是_() __ 。

正确答案: C 你的答案: C (正确)

A、文件类型
B、文件所有者的权限
C、文件所有者所在组的权限
D、其他用户的权限

  
 
  • 1
  • 2
  • 3
  • 4

1,代表文件类型,一般有三类,- 代表普通的二进制文件,l 代表符号链接文件(软链接),d 代表目录文件
2-4,代表文件所有者的权限表示情况,分别对应 可读® 可写(w) 可执行(w),- 代表没有该项权限
5-7,代表文件所有这所属组的权限表示情况。分别对应 可读® 可写(w) 可执行(w),- 代表没有该项权限
8-10,代表除文件所有者和所属组的其他人所拥有的权限表示情况。分别对应 可读® 可写(w) 可执行(w),- 代表没有该项权限

如;umask 的值为022

创建一个文件的默认权限应该就是777-022=755
由于 执行权限(x) 比较危险,Linux默认不会赋予此权限,所以实际创建文件的默认权限是 755-111=644
如果此时创建的是一个软链接文件,则权限位为lrx-r--r-;如果此时创建的是一个普通文件,则权限位为 -rx-r--r--;如果此时创建的是一个目录文件,则权限位为 drx-r--r--

5、时间日期

以下命令的执行时间为:01 07 * * 5 /usr/bash /usr/local/run.sh
正确答案: C 你的答案: C(正确)

A、每周一5:07分
B、每周一07:05分
C、每周五07:01分
D、每周周五01:07

  
 
  • 1
  • 2
  • 3
  • 4

对应: 分 时 日 月 周。min hour day(几号) month week(周几),也就是每周五07:01分执行run.sh

每5分钟运行一次crond任务exam,下面哪项正确?

正确答案: D 你的答案: D(正确)

A、*/12 * * * * exam
B、5/* * * * * exam
C、* * */12 * * exam
D、*/5 * * * * exam

  
 
  • 1
  • 2
  • 3
  • 4

6、shell环境变量配置

在RHEL5系统中,下面关于shell环境变量配置文件的描述,正确的是( )
正确答案: A 你的答案: D (错误)

A、用户登录系统时,bash首先执行/etc/profile配置文件和/etc/profile.d/目录下的配置文件,这些配置文件对所有用户都有效
B、用户登录系统时,bash首先执行.bash_profile文件和.bashrc文件,这些配置文件对所有用户都有效
C、用户主目录下的.bashrc设置为每次登录时执行,而.bash_profile则为每次打开新的终端时执行
D、执行用户主目录下的环境变量配置文件时,不可以重复设置用户登录时配置文件中已经设置的选项

  
 
  • 1
  • 2
  • 3
  • 4

A、/ect/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从 /etc/profile.d 目录的配置文件中搜集shell的设置。因此A正确

B、/etc/bashrc:为每一个 运行bash shell 的用户执行此文件.(只有当bash shell被打开时,该文件被读取,并不是用户登录时候自动执行,因此B错误)

C、~/.bash_profile:(用户主目录下的bash_profile)每个用户都可使用该文件输入 专用于 自己使用的shell信息, 当用户登录时,该文件仅仅执行一次(因此C错误) !默认情况下,他设置一些环境变量,执行~/.bashrc文件。~/.bashrc该文件包含专用于用户的bash shell的bash信息 ,当登录时以及每次打开新的shell时,该该文件被读取 .,因此C错误

D、~/.bash_logout当每次退出系统(退出bash shell)时,执行该文件.

总结:/etc下的profileprofile.d是为所有的用户设置的环境变量等信息
用户主目录下的 .bash_profile、 .bashrc、和. bash_logout只对某一个用户有效

7、输入/输出重定向

bash中,需要将脚本demo.sh的标准输出和标准错误输出重定向至文件demo.log,以下哪些用法是正确的()

正确答案: A C 你的答案: A (错误)

A、bash  demo.sh &>demo.log
B、bash  demo.sh < demo.log
C、bash  demo.sh >demo.log 2>&1
D、bash  demo.sh 2>demo.log 1>demo.log

  
 
  • 1
  • 2
  • 3
  • 4

该题考察Linux下的输入/输出重定向。在Linux中,每个打开的文件被赋予一个文件描述符(file descriptor),包括标准输入(stdin),标准输出(stdout)和标准错误输出(stderr),由0,1,2分别描述。

A选项,command &> file 表示将标准输出(stdout)和标准错误输出(stderr)重定向至指定的文件file中。

B选项,语法错误。正确的语法是M >& N,M和N都是文件描述符,M在不指定的情况下默认是文件描述符1。

C选项,command > file 2>&1,是由两部分组成。首先command>file表示将标准输出(stdout)重定向到文件file中。接下来的2>&1表示将标准错误输出(stderr)输出到文件描述符1指定的位置,即标准输出(stdout)的位置,由于标准输出已经冲定向到文件file中,所以标准错误输出也会重定向到文件file中。

D选项,command 2> file 1> file,也可看成是由两部分组成。首先command 2> file,表示将标准错误输出(stderr)重定向到文件file中;1> file,表示将标准输出(stdout)重定向到文件file中。 最终的file中不会包含标准错误输出(stderr)的信息,因为会被之后的标准输出(stdout)覆盖。

8、Linux文件目录

linux系统下有多个文件目录,每个文件目录都有其独特的功能和作用,以下描述正确的是:

正确答案: C 你的答案: C (正确)

A、/bin: 必要的用户二进制可执行文件(部分用户使用)
B、/usr: 是文件系统的第二个主要部分. /usr是不可共享的只读数据
C、/etc: 主机特定的系统配置
D、/boot: 系统启动时要用到的所有文件

  
 
  • 1
  • 2
  • 3
  • 4
  • /bin 存放普通用户可以使用的指令。
  • /usr 这个目录中包含了命令库文件和在通常操作中不会修改的文件,其地位类似Windows上面的”Program Files”目录(安装程序的时候,默认就是安装在此文件内部某个子文件夹内。输入命令后系统默认执行/usr/bin下的程序。
  • /etc 全局的配置文件存放目录。存放系统和软件的配置。
  • /boot 引导程序,内核等存放的目录。

Linux执行ls,会引起哪些系统调用()

正确答案: B C D 你的答案: C、D (错误)

A、nmap
B、read
C、execve
D、fork

  
 
  • 1
  • 2
  • 3
  • 4

任何shell都会执行 exec 和 fork。而 ls会执行read,三个加起来。

9、网关

在Linux系统中搭建DHCP服务器时,若需要给客户机指定默认网关地址为192.168.1.1,可以在dhcpd.conf配置文件中进行( )设置
正确答案: C 你的答案: C (正确)

A、option default-gate-way 192.168.1.1;
B、option gateways 192.168.1.1;
C、option routers 192.168.1.1;
D、option router-servers 192.168.1.1
 
  • 1
  • 2
  • 3
  • 4
  • option routers 192.168.0.1;配置默认网关

  • option subnet-mask 255.255.255.0;配置子网掩码

  • option domain-name-servers 192.168.1.1;指定DNS服务器

  • option domain-name-servers 配置多个DNS服务器

其实上面Linux知识都是基础中的基础,如果想深入linux运维,下面是我做的关于Linux运维的思维导图,作为本次GitChat的结尾。


本次 GitChat 思维导图由自己绘制,文字内容参考以下链接:

文章来源: maoli.blog.csdn.net,作者:刘润森!,版权归原作者所有,如需转载,请联系作者。

原文链接:maoli.blog.csdn.net/article/details/108331747

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。