常见Linux面试题
一、判断题
1.Linux是单用户、多任务的操作系统 (❌)
2.使用在CentOS6和CentOS7中查看IP地址得命令都是ifconfig (❌)
3.Linux 得发行版是建立在Linux内核版本之上得(√ )
4.Windowns server的服务器市场占有率比Linux的更大(❌)
5.[ -r file.txt ] 执行后使用echo $?返回结果为0,说明该文件有可读权限;返回结果为1,说明该文件没有可读权限(√ )
6.没有安装操作系统的计算机,通常被称为 裸机(√ )
7.操作系统的作用主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用(√ )
8.关于虚拟机的描述是否正确虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统(√ )
9.C语言的可移植性比最开始Unix中的B语言可移植性更差(❌)
10.VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器有三种模式分别是一般模式、编辑模式和指令模式(√ )
11.Linux 中crontab可以设置定时任务 -e:表示编辑定时任务;-l:表示获取定时任务列表; -r表示删除定时任务(√ )
12.Linux 使用 ls -al 命令将列出当前目录中的文件和子目录名(❌)
13.top -d 5 表示5秒钟更新一次进程的状态信息(√ )
14.在shell中创建变量可以以数字开头例如 0a=1 该变量是有效的(❌)
15.在shell中使用unset可以撤销readonly修饰的变量(❌)
16.在shell中创建变量export name=lisi,变量name在所有会话以及所有用户下都可以访问(❌)
17.使用shutdown -k 5 表示5分钟后关闭计算机(❌)
18.Windowns是封闭的,系统的可定制性很差,而Linux是开源,可定制性强(√ )
19.Linux系统中一切皆文件(√ )
20.Shell编程语言是一门编译型语言,Java是解释型语言(❌)
21.cat f1.txt > f2.txt 可以把f1.txt 复制为 f2.txt(√ )
22.使用 ln -s 可以为指定的文件建立一个软链接(√ )
23./etc/passwd 文件用来存储创建的用户信息和相关的参数(√ )
24.使用 rm -rf /tmp/* 即可删除目录 /tmp 下的所有文件及子目录(√ )
25.Linux系统是参照Unix系统演变而来的(√ ) (UNIX————>MINIX—————>LINUX)
26.Linux系统安全管理的内容包括:普通用户的系统安全、文件系统的安全、进程安全、文件内容的安全(√ )
27.文件权限对应的数字:r——4,w——2,x——1,- ——0(√ )
28.rwx------的数字表示是700,rwxr-x---的数字表示是750,rw-rw-r-x的数字表示是665,rwxr-x-wx的数字表示是753(√ )
29.gzip houge.txt 表示压缩文件,将houge.txt文件压缩为houge.txt.gz文件,源文件不会保留(√ )
30. gunzip houge.txt.gz 表示解压houge.txt.gz,解压后产生一个houge.txt文件,houge.txt.gz压缩文件不会保留(√ )
31.ps aux 可以查看所有用户所有进程(√ )
32.echo $RANDOM | md5sum |cut -c 1-8 表示使用RANDOM函数获取随机数字,然后通过MD5加密,剪切加密后的数字串的前8位字符(√ )
33.[ -e /home/jinghang/cls.txt ] 表示判断/home/jinghang/cls.txt目录中的文件是否存在(√ )
34、 为了保证windows用户和Linux主机间用户能够正常地进行映射,用户必需保证在这两个系统上拥有相同的帐号。(❌)
二、单选题
1.下面哪个不是Linux得发行版本( D )
A.RedHat
B.Centos
C.Ubuntu
D.maxunix
2.显示当前登录用户帐户的命令正确的是( C )
A.whoami
B.iamwho
C.who am i
D.whoiam
3.Linux在终端下输入Ctrl+C作用是( B )
A.清屏
B.停止进程
C.查找执行过的命令
D.退出
4.下列关于linux中home目录描述正确的是(C )
A.这个目录存放着最经常使用的命令
B.这里存放的系统管理员使用的系统管理程序
C.存放普通用户的主目录,在Linux中每个用户都有自己的一个目录,一般该目录是以用户的账户命名
D.存放所有的系统管理所需要的配置文件和子目录
5.在使用mkdir 命令创建新的目录时,在其父目录不存在时先创建父目录的选项是( D)
A.mkdir -m
B.mkdir -d
C.mkdir -f
D.mkdir -p
6.Linux查看文件的命令,若查看的文件较大应使用 ( C )命令比较高效
A. cat
B. more
C. less
D. head
7.对名为fido 的文件用chmod 551 fido 进行了修改,则它的许可权是(D )
A.-rwxr-xr-x
B.-rwxr--r--
C.-r--r--r--
D.-r-xr-x--x
8.用ls –al 命令列出下面的文件列表,以下哪个文件是软链接文件( D)
A.-rw-rw-rw- 2 hel users 56 Sep 09 11:05 hello
B.-rwxrwxrwx 2 hel users 56 Sep 09 11:05 goodbey
C.drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang
D.lrwxr--r-- 1 hel users 2024 Sep 12 08:12 cheng -> /home/hel/test
9.以下关于vim 编辑器一般模式的描述正确的是(D )
A.y3y:任何情况下都表示复制文件的前3行
B.yw:表示删除一个词
C.shift+^:表示移动到页头
D.dd:删除光标当前行
10.下列关于vim的指令模式描述正确的是( C )
A.在这个模式当中,不能执行搜索、保存、退出等动作
B.:w 表示保存加退出
C.ZZ 没有修改文件直接退出,如果修改了文件保存后退出
D.:wq! 表示非强制保存退出
11.改变文件所有者的命令为 ( C )
A.chmod
B.touch
C.chown
D.cat
12.下面哪个参数可以删除一个用户并同时删除用户的主目录(C)
A.rmuser -rf
B.deluser -rf
C.userdel -rf
D.usermgr -rf
13.下列那个命令可以把f1.txt复制为f2.txt ( B )
A.cp f1.txt | f2.txt
B.cat f1.txt > f2.txt
C.cat f1.txt | f2.txt
D.copy f1.txt | f2.txt
14.一个shell脚本的第一行是什么(A )
A. #!/bin/bash
B. #/bin/bash
C. #/bin/csh
D. /bin/bash
15.使用下面的哪条命令可以为指定的文件建立一个软链接(B )
A.ln
B.ln -s
C.links
D.links -s
16./etc/passwd文件用来存储(B)的信息
A.系统中所有用户的加密过的密码
B.创建的用户信息和相关的参数
C.用户和组的加密后的密码
D.所有用户和服务器的密码
17.以下哪条命令可以更改指定组的相关信息( B )
A.groups
B.groupmod
C.groupinfo
D.group
18.在Linux下用来查看网络设备信息所使用的命令是哪个( C )
A.ping
B.ipconfig
C.ifconfig
D.netstat
19.在linux下使用echo 将“aaa”追加到bbb.txt 所使用的追加符号是( B)
A.>
B.>>
C.<
D.<<
20.如何删除目录 /tmp下的所有文件及子目录(D )
A.del /tmp/*
B.rm -rf /tmp
C.rm -Ra /tmp/*
D.rm -rf /tmp/*
21.linux存放基本命令的目录是什么(A)
A./bin
B./root
C./home
D./etc
22.你使用命令“vi /etc/inittab”查看该文件的内容,你不小心改动了一些内容,为了防止系统出问题,你不想保存所修改内容,你应该如何操作(B )
A.在末行模式下,键入:wq
B.在末行模式下,键入:q!
C.在末行模式下,键入: w!
D.在末行模式下,键入: wq!
23.Linux系统是参照_____系统演变而来的?(A)
A.unix
B.windows
C.Android
D.iOS
24.下列统计/root文件夹下的文件的个数正确的是( A)
A. ls -l /root | grep "^-" | wc -l
B. ls -l /root | grep "^" | wc -l
C. ls -l /root | grep "^-" | wcp -ls
D. ls -l /root | grep "^-" | wc -ls
25.以下关于运算符表达式的计算不能得到5的是( B)
A. expr 2 + 3
B. expr 2+3
C. echo $((2+3))
D. echo $[ 2 + 3 ]
26.shell 中自定义函数可以return一个返回值,下列描述正确的是(C )
A. 返回的值可以是为特殊字符
B. 返回的值可以大于255
C. 返回的值只能是数字,且在0~255之间
D. 返回的值可以是”abcd”
27.Linux 文件权限一共10 位长度,分成四段,第三段表示的内容是 ( C )
A.文件类型
B. 文件所有者的权限
C.文件所有者所在组的权限
D.其他用户的权限
28.Linux中中权限最大的帐户是( B )
A.admin
B.root
C.guest
D.super
29.下面哪个命令是用来定义shell的环境变量( D )
A. exportfs
B. alias
C. exports
D. export
30.显示用户的主目录的命令是什么( A)
A. echo $HOME
B. echo $USERDIR
C. echo $ENV
D. echo $ECHO
31.以下对于shell用户变量的定义,不对的是(C)
A. g_Linux=2.6.30
B. LINUX=2.6.30
C. 0_Linux=2.6.30
D. linux=2.6.30
32.以下关于条件判断描述不正确的是( D )
A. -lt 小于 两个整数之间比较
B. -gt 大于 两个整数之间比较
C. -ne 不等于 两个整数之间比较e
D. -ge 大于 两个整数之间比较
33.下列运行脚本的方式不正确的是(D)
A. sh shell01.sh
B. bash shell01.sh
C. bash /home/jinghang/shell01.sh
D. 不需要给脚本添加(chmod +x shell01.sh)执行权限,直接使用相对路径运行脚本 ./shell01.sh
34.下列关于RPM描述不正确的是(B)
A. rpm -ihv rpm软件包 命令可以安装软件包
B. rpm -ihv rpm软件包 命令可以下载并安装软件包
C. rpm -e rpm软件包 命令可以卸载软件包
D. rpm -qa 查询所安装的所有rpm软件包
35.缺省的,用户邮件放在:(D)
A. ~/mail/
B. /var/mail/
C. /var/mail/spool/
D. /var/spool/mail/
36.下面哪个文件定义了网络服务的端口(B)
A. /etc/netport
B. /etc/services
C. /etc/server
D. /etc/netconf
37.TCP/IP中,哪个协议是用来进行IP自动分配的(C)
A. ARP
B. NFS
C. DHCP
D. DNS
38.下面哪个命令不是用来查看网络故障的(B)
A. ping
B. init
C. telnet
D. netstat
39.ping使用的协议是:(D)
A. TCP
B. UDP
C. SMB
D. ICMP
40.linux 表示主机名与IP地址映射关系的文件是( C )
A. /etc/host.conf
B. /etc/hostname
C. /etc/hosts
D. /etc/resolv.conf
41.某客户端在采用ping命令检测网络连接故障时,发现可以ping通127.0.0.1及本机的IP地址,但无法ping通同一网段内其他工作正常的计算机的IP地址,说明该客户端的故障是( C )
A. TCP/IP协议不能正常工作
B. 本机网卡不能正常工作
C. 本机网络接口故障
D. 本机DNS服务器地址设置错误
42、什么命令常用于检测网络主机是否可达( C)
A.ssh
B.netstat
C.ping
D.exit
三、多选题
1.linux中使用tar归档命令,对其参数的正确描述是( AB )
A..-c :建立一个打包文件(产生.tar打包文件)
B..-x :解开一个打包文件(解包.tar文件)
C.-v :打包文件
D.-f :保持原文件的属性
2.下列关于 su 命令描述正确得是(AB)
A.su root 输入密码后会切换到root用户
B.su 命令用来切换用户
C.没有su指令
D.su 用来执行sudo系统管理原权限
3.下列关于sed描述正确得是( BC )
A.sed -e 's/linux1/linux2/g' /etc/sysconfig/network 表示在/etc/sysconfig/network文件中全局查找linux1替换为linux2,会对network文件进行修改
B.sed -i 's/linux1/linux2/g' /etc/sysconfig/network 表示在/etc/sysconfig/network文件中全局查找linux1替换为linux2,会对network文件进行修改
C.sed -e 's/linux1/linux2/g' /etc/sysconfig/network 表示在/etc/sysconfig/network文件中全局查找linux1替换为linux2,不会对network文件进行修改
D..sed -i 's/linux1/linux2/g' /etc/sysconfig/network 表示在/etc/sysconfig/network文件中全局查找linux1替换为linux2,不会对network文件进行修改
4.下面描述正确的是(ABCD )
A.rwx------的数字表示是700
B.rwxr-x---的数字表示是750
C.rw-rw-r-x的数字表示是665
D.rwxr-x-wx的数字表示是753
5.下列关于find描述正确的是( BCD)
A.find指令只会查找指定目录得第一层子目录
B.find /home -name “class*”: 查找home目录下所有以class开头得文件或目录
C.find /home -user lisi:表示查找home目录下所有者为李四得文件或目录
D.find /home -size +1024k :表示查找home目录中大于1M得文件
6.下列关于 gzip和gunzip描述正确的是( BD )
A.gzip houge.txt 表示压缩文件,将 houge.txt 文件压缩为 houge.txt .gz文件,源文件会保留
B.gzip houge.txt 表示压缩文件,将 houge.txt 文件压缩为 houge.txt .gz文件,源文件不会保留
C.gunzip houge.txt .gz 表示解压houge.txt .gz,解压后产生一个 houge.txt文件, houge.txt .gz压缩文件会保留
D.gunzip houge.txt .gz 表示解压houge.txt .gz,解压后产生一个 houge.txt文件, houge.txt .gz压缩文件不会保留
7.下列相关命令描述正确的是( BD )
A.useradd -b /home/wangwu zhaoliu 新增用户,并为用户指定家目录为/home/wangwu
B.userdel -rf lisi ;该命令会删除lisi这个用户以及用户主和用户主目录
C.groupmod -c “普通用户” lisi ;该命令表示为用户lisi添加用户注释信息
D.cat /etc/group 可以查看我们创建了哪些组和相关组id
8.下列关于操作用户的相关命令正确的是(ABD )
A.passwd jinghang 表示设置(修改)用户jinghang的密码
B.id zhangsan 表示查看用户zhangsan是否存在
C.who am i 表示查看当前用户
D.usermod -g root jinghang 表示修改用户jinghang所在的组为root
9.下列关于正则表达式的描述正确的是( ABCD )
A. \d 单字符匹配表示匹配数字0~9
B. [^a-z] 单字符匹配表示不匹配a-z之间的字符
C. . 匹配除了换行符之外的任意字符
D. ^ 匹配以...开头
10.下列关于Shell中的数组操作正确的是(ABCD )
A. 撤销数组中得第二个元素 unset arr[1]
B. 读取数组中的第一个元素echo ${arr[0]}
C. 获取数组的长度echo ${#arr[@]}
D. 获取数组中的所有元素 echo ${arr[*]}
11.Linux系统安全管理的内容包括(ABCD )
A.普通用户的系统安全
B.文件系统的安全
C.进程安全
D.文件内容安全
12.以下关于Linux的命令描述正确的是(ABCD)
A. mount 命令用来挂载设备
B. umount 命令用来卸载设备
C. du 查看指定目录的磁盘占用情况
D. fdisk -l 查看磁盘分区详情
13.下列关于shell常用的判断条件描述正确的是(ABC)
A. -f 文件存在并且是一个常规的文件(file)
B. -e 文件存在(existence)
C. -d 文件存在并是一个目录(directory)
D. -dir 文件存在并是一个目录(directory)
14.以下哪些是shell中的文本处理工具(ABCD)
A. awk
B. sed
C. sort
D. cut
15.以下哪些是shell的解释器( ABC)
A. /bin/bash
B. /bin/tcsh
C. /bin/csh
D. /bin/bsh
四、简答题
1.我想在/data/old目录下面创建 一个oldboy.txt文件,但是执行如下命令后报错
[root@oldboyedu ~]# cd /data/old
-bash: cd: /data/old: No such file or directory
问题1:为何出现这样的错误?问题2:如何解决这个错误呢?
1.因为要进入的文件目录不存在(No such file or directory);
2.创建目录,给出命令:
mkdir -p /data/old
cd /data/old
touch oldboy.txt
2.列出至少10个linux中常用的命令,并说明他们的含义
mkdir 创建目录
touch 创建一个空文件
useradd 添加一个新用户
echo 输出内容到控制台
userdel 删除用户
chown 修改文件或者目录的所有者
chmod 修改文件或者目录的操作权限
rm -rf 强制递归删除目录
rmdir 删除一个空的目录
ln -s 创建一个软链接
groupadd 添加一个组
3.解释以下内容的含义
drwxr-xr-x 3 root root 4096 12月 12 15:23 test
表示文件的名称为test,该文件是一个文件夹,有3个硬链接,root用户对该文件夹有可读、可写、可执行权限,root组的用户对该文件夹有可读、可执行权限,对于其他用户对该文件夹有可读、可执行权限,文件的大小为4K 4096byes;创建改文件夹的时间为12月12日下午3点23分
4.假设你是系统管理员,需要增加一个新的用户账号zheng,为新用户设置初始密码,用户账号chang进行了违规操作,需要删除用户账号chang并删除用户目录
useradd zheng
为新用户设置初始密码
passwd zheng
删除用户账号chang并删除用户目录
userdel -r chang
5.Linux如何查看进程,和杀死进程?
ps -aux 查看所有用户所有进程
ps -ef
查看子父进程之间的关系
ps -aux | grep 进程名称
kill -9 pid(进程号)
killall 进程名称
6.完成如下两个定时任务
(1)每分钟清空/tmp/内容
* * * * * /bin/rm -rf /tmp/*
(2)每个星期三的下午6点和8点的第5到15分钟之间备份 /home/jinghang 文件夹下的数据到/opt/software
5-15 18,20 * * 3 /bin/cp /home/jinghang/* /opt/software/
7.在Shell中的特殊变量$1、$0、$@ 、$#、 $* 、$?分别表示什么含义?$@、 $*有区别吗?
$1 表示获取脚本中第一个参数
$0 可以获取运行脚本的名称
$# 获取所有输入参数个数
$* 这个变量代表命令行中所有的参数
$@ 这个变量也代表命令行中所有的参数
$? 返回执行命令的状态,0:一般表示命令执行成功;非0:一般表示执行不成功
$* 把所有的参数看成一个整体
$@ 把每个参数区分对待
8.编写一个脚本计算1~100之间所有偶数的和?
#!/bin/bash
#Desc:累加1到100之间的偶数和
sum=0
for ((i=0;i<=100;i++))
do
if [ $[i%2] -eq 0 ]
then
sum=$[sum+i]
fi
done
echo "1到100的偶数和为$sum"
9.Linux查看如何查看系统整体的性能情况、内存、磁盘存储、io 读写、端口占用、进程等命令分别是什么?
查看系统整体的性能情况:top
查看内存:free
查看磁盘存储情况:df -h
查看磁盘IO读写情况:iotop(需要安装一下:yum install iotop)、iotop -o(直接查看输出比较高的磁盘读写程序)
查看端口占用情况:netstat -nlp | grep 端口号
查看进程:ps -aux
10.如何强制删除/home/jinghang目录下的class开头的所有文件和目录?
rm -rf /home/jinghang/class*
11.linux如何安装软件?命令常用得选项有什么含义?
(1)rpm 安装本地软件包
rpm -qa 系统安装了哪些软件包名
rpm -qi 软件包 展示软件包的详细信息
rpm -e 软件包 卸载软件包
rpm -ihv 软件包名
-i install 安装
-v 显示详细信息
-h 展示安装的进度条
(2)yum -y [选项] 软件名
(从镜像服务器获取软件包,并安装)
install 安装rpm软件包
update 更新rpm软件包
check-update 检查是否有可用的更新rpm软件包
remove 删除指定的rpm软件包
list 显示软件包信息
clean 清理yum过期的缓存 yum clean all
deplist 显示yum软件包的所有依赖关系
12.编写脚本判断/root/class21/inittab.txt文件是否大于100行,如果大于,则显示”inittab is a big file.”否者显示”inittab is a small file.”
#!/bin/bash
num=$(awk "BEGIN{sum=0}{sum+=1}END{print sum}" /root/class22_shell/inittab.txt)
echo $num
if [ $num -gt 100 ]
then
echo "inittab is a big file."
else
echo "inittab is a small file."
fi
13.如何获取文本文件的第 10 行内容 ?
head -n 10 file | tail -n 1
14.如何列出Linux系统中以 ab 或 xy 开头的用户名 ?
awk -F : '/^ab|^xy/{print $1}' /etc/passwd