九、为了OFFER而战,那些日子在牛客网刷Linux面试题(下)
@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
下的profile
和profile.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
- 点赞
- 收藏
- 关注作者
评论(0)