shell面试题

第1章 选择
1.1 退出交互模式的 shell,应键入()
A: B:^q C:exit D:quit

1.2 下列变量名中有效的 shell 变量名是:C
-2-time _2$3 trust_no_1 2004file

1.3 在 shell 编程中关于$2 的描述正确的是 B
程序后携带了两个位数参数
宏替换
程序后面携带的第二个位置参数
携带位置参数的个数

1.4 在 shell 环境下想把‘gyyx’值赋给变量 company,下面哪个是正确的:
company = gyyx
$company=gyyx
company=‘gyyx’
company=gyyx

1.5 下面表述错误的是
n 表示程序的第 n 个参数值 $* 表示程序的所有参数个数 $$表示程序的 PID

1.6 shell 脚本中的注释符
// /**/ " " #

1.7 采用 bash 执行 shell 脚本时加上哪个参数可以跟踪执行脚本过程
-x -u -f -p

1.8 在 shell 比较运算符中,数值测试“等于则为真”的是()
-ne -ge -eq -le

第2章 填空
2.1 在 shell 编程中,如果要访问变量值,可以变量前加一个—$—符号

2.2 请说出以下符号在 bash shell 中的意义
n

{#aa}
2

2.3 编写 shell 程序之前必须赋予该脚本_____

2.4 Linux 系统 shell 脚本第一行需写______代表什么意义_____

第3章 简答
3.1 写一个脚本实现判断 192.168.1.0/24 网络里,当前在线的 ip 有哪些,能 ping 通则认为在线

3.2 在 shell 中变量的赋值有四种方法,其中采用 name=jfedu.net 的方法称:

3.3 检查 IP 地址合规,请用 shell 编写代码,列出不以 199 或 200 开头的 IP 地址,如 199.x.x.x 或
200.x.x.x
Eth1/0/1 up up 199.11.250.1
Eth1/0/2 up up 200.11.250.5
Loop0 up up(s) 199.11.250.1
Vlan1 *down down unassigned
Vlan500 down down 139.100.1.157
Vlan900 up up 140.11.250.41

egrep -o '[0-9.]{7,15}' 1.txt |egrep -v '^199|^200'

3.4 通过 shell 如何删除文档中的注释和空白行。

3.5 如果在/home/pushmail 目录下不存在 leadtone 目录,则创建该目录,并将/var/sync/bin 目录下
的所有文件拷贝到 leadtone 目承下,但是不能够拷贝文件大于 1M 的文件。

3.6 写一个脚本,实现批量添加 20 个用户,用户名为 user01-20,密码 user 后面跟 5 个随机字符

3.7 对文件 test 中,
aaa 123.52
bbb 125.54
aaa 123.52
aaa 123.52
ccc 126.36
1>第一列为 aaa 的行求和;
2>对偶数行求和;
3>求文件 test 中的最大值
3

3.8 shell 脚本编程:显示 100 以内的质数

3.9 判断数字大于 500 则执行 big.sh 小于等于 500 则退出脚本,并输出报错信息

3.10 脚本测试 test.txt 文件,打印出每一列的累加值
1 2 3
4 5 6
7 8 9

3.11 试编写一个 Shell 程序,该程序能接收用户从键盘输入的 100 个整数,然后求出其总和、最大
值及最小值



1.1.1.1 改变bash的提示符实际上就是改变变量(C

$HOME $PWD $PS1 $PS2

1.1.1.2 在shell脚本中,用来读取文件内各个域的内容并将其赋值给shell变量的命令是______

Fold join tr read

1.1.1.3 从后台启动进程,应在命令的结尾加上符号()

A:& B:@ C:# D:$

1.1.1.4 不是shell具有的功能和特点是()

A:管道 B:输入输出重定向 C:执行后台进程 D:处理程序命令

1.1.1.5 退出交互模式的shell,应键入()

A: B:^q C:exit D:quit

1.1.1.6 shell不仅仅是用户命令解释器,同时一种强大的编程语言,linux缺省的shell是

bash ruby PHP perl

1.1.1.7 以下函数中,和其他函数不属于一类的是

Read pread write pwrite fseek lseek

1.1.1.8 下列变量名中有效的shell变量名是:______

-2-time _2$3 trust_no_1 2004file

1.1.1.9 下列对shell变量FRUTT操作,正确的是______

为变量赋值:$FRUTT=apple 显示变量的值:fruit=apple

显示变量的值:echo F R U T T 判 断 变 量 是 否 有 值 : [ − f − − FRUTT 判断变量是否有值:[ -f -- FRUTT[fFRUTT || ]

1.1.1.10 在shell编程中关于$2的描述正确的是

程序后携带了两个位数参数 宏替换

程序后面携带的第二个位置参数 携带位置参数的个数

1.1.1.11 在shell环境下想把‘gyyx’值赋给变量company,下面哪个是正确的:

company = gyyx $company=gyyx company=‘gyyx’ company=gyyx

1.1.1.12 下面sed删除行,下面哪个脚本是错误的是

sed -e ‘/man/d’ filename sed -e ‘1,3d’ filename sed -e ‘1,/man/d’ filename sed -e ‘/man/3d’ filename

1.1.1.13 下面表述错误的是

$0表示程序的执行名字 $n 表示程序的第n个参数值

$* 表示程序的所有参数个数 $$表示程序的PID

1.1.1.14 下列代码样例中,哪个存在错误:

for filename in $(ls) do cat $filename done

for((i=0;i<10;i++)) do echo $i done

x=1 sum=0 while [ x − l e 10 ] d o l e t s u m = s u m + x -le 10 ] do let sum=sum+ xle10]doletsum=sum+x let x=x+1 done echo $sum

for $i in 1 2 3 4 5 do echo $i done

1.1.1.15 在shell脚本中,用来读取文件内各个域的内容并将其赋值给shell变量的命令是:

Fold join tr read

1.1.1.16 shell中如何跳出当前循环继续之后的循环

break continue exit kill

1.1.1.17 shell脚本中的注释符

// /**/ " "

1.1.1.18 采用bash执行shell脚本时加上哪个参数可以跟踪执行脚本过程

-x -u -f -p

1.1.1.19 以下命令执行后,结果为()

var1=abcdedf

var2=abcded

echo “ v a r 1 ” ∣ g r e p − q “ var1” |grep -q “ var1grepqvar2” && echo  “yes” ||echo “no”

无结果 语法错误 yes no

1.1.1.20 在shell比较运算符中,数值测试“等于则为真”的是()

-ne -ge -eq -le

1.1.1 填空

1.1.1.1 在shell编程中,如果要访问变量值,可以变量前加一个——符号
1.1.1.2 请说出以下符号在bash shell中的意义

$0 $n $# $? $* $$ ${#aa}

1.1.1.3 编写shell程序之前必须赋予该脚本_____
1.1.1.4 Linux系统shell脚本第一行需写______代表什么意义_____
1.1.1.5 编写shell脚本时注释符是_________
1.1.1.6 **shell命令“sed -i s/******r/ /g test.txt”实现的是_______

1.1.2 简答

1.1.2.1 在shell中, 0 , 0, 0,n,KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲,*, @ , @, @,?分别是什么含义?
1.1.2.2 统计/var/log下文件的个数。
1.1.2.3 如何将F1文件的运行结果输出到F2.txt里?
1.1.2.4 一个脚本实现判断192.168.1.0/24 网络****里,当前在线的ip有哪些,能拼通则认为在哪
1.1.2.5 根据以下信息:

IP_Address MAC_Address Interface Static

10.66.10.250 80:71:7A:33:CA:A7 br on

10.66.10.249 5C:50:15:7F:3B:F5 br on

将以上文件名称test.txt文件中IP_Address,MAC_Address, Interface三项下的内容取出来,值以“:”分割,并呈格式显示出来。注:

10.66.10.250:80:71:7A:33:CA:A7:br

10.66.10.249:5C:50:15:7F:3B:F5:br

1.1.2.6 在shell中变量的赋值有四种方法,其中采用name=jfedu.net的方法称:

直接复制 使用read命令 使用命令行传参 使用命令输出

1.1.2.7 编写一个脚本,5分钟检查一次日志,发现有暴力SSH破解现象的,提取此类IP地址,并去重,并按降序排序。

要求:同一个IP暴力破解超过10次,自动屏蔽IP地址,指定办公室IP地址(192.168.100.100)为可信任IP地址,不受屏蔽规则限制,以下为日志格式:

日志样式:

May  4  03:43:07  tz-monitor  sshd{14003}:  Failed  password  for  root  from  124.232.135.84  port  25251  ssh2

Myy  4  03:43:07  tz-monitor  sshd{14082}:  invalid  user  postgres  from  124.232.135.84

1.1.2.8 检查OSPF route-ID配置,配置如下,请用shell编写代码,条件如下:检查ospf的route-id值,route-id值必须与interface LoopBack0的IP地址值相同,如果两个值不相等打印出ospf的route-id的值,并且ospf的route-id值必须以139开头,如139.xx.xx.xx,否则也打印出route-id的值

ofpf 100

route-id 139.11.0.1

area 0.0.0.0

network 139.11.0.1 0.0.0.0

network 140.11.0.0 0.0.0.3

network 140.11.0.8 0.0.0.3

network 140.11.0.16 0.0.0.3

network 140.11.0.24 0.0.0.3

network 140.11.0.32 0.0.0.3

interface LoopBack0

ip address 139.11.0.1 255.255.255.255

1.1.2.9 检查IP地址合规,请用shell编写代码,列出不以199或200开头的IP地址,如199.x.x.x 或200.x.x.x

Interface Physical Protocol IP Adderss

Eth1/0/1 up up 199.11.250.1

Eth1/0/2 up up 200.11.250.5

Loop0 up up(s) 199.11.250.1

Vlan1 *down down unassigned

Vlan500 down down 139.100.1.157

Vlan900 up up 140.11.250.41

1.1.2.10 处理以下文件内容,将域名提取并进行计数排序,如处理:

http://www.baidu.com/index.html

http://www.baidu.com/1.html

http://post.baidu.com/index.html

http://mp3.baidu.com/index.html

http://www.baidu.com/3.html

http://post.baidu.com/2.html

得到如下结果:

域名的出现次数  域名

3 www.baidu.com

2 post.baidu.com

1 mp3.baidu.com

可以使用bash/per/php任意一种

1.1.2.11 在单台服务器Linux操作系统环境下,写一行命令,将所有该机器的所有以“.log.bak“为后缀的文件,打包压缩并上传到ftp上,FTP地址为123.234.25.130的/home/bak文件夹
1.1.2.12 Linux脚本:现在要删除本机中若干文件,/root/file.list中记录了这些文件的绝对路径,请用脚本实现。/root/file.list内容范例:/tmp/1.file
1.1.2.13 说出shell的种类,已经常用的shell
1.1.2.14 下面代码会输出什么:

def f(x,1=[]);

for i in range(x);

1.append(i*i)

print 1

f(2)

f(3,[3,2,1])

f(3)

1.1.2.15 根据以下nginx日志信息格式,统计全天PV、UV及UV的前十、PV前十页面;分别列出状态码499、500、502按次数统计的前三位

36.110.86.173 - - [30/Otc2017:09:38:30 +0800] “POST /index.php?r=tuiguang%2Fdelete HTTP/1.1” 200 385 0.036 “http://backend.lepu.cn/index.php?r=tuiguang%2Findex&id=535634“ “Mozilla/5.0 (windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Fecko) Chrome/55.0.2883.87 Safari/537.36” “0.68”

全天PV: 全天UV: PV前十:

UV前十: 499前三: 500前三: 502前三:

1.1.2.16 创建一个函数,能接受两个参数;

(1) 第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存位置;

(2) 如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则函数返回一个51的错误值给调用脚本

(3) 如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功,如果成功,则返回0给调用脚本,否则,返回52给调用脚本;

1.1.2.17 有一个长度为n序列,需要移除掉里面的重复元素,但是对于每种元素保留最后出现的那个。输入描述:输入包括两行

第一行为序列长度n(1≤ n≤ 50)

第二行为n个数scqucencel,以空格分隔

输出描述

输出消除重复元素之后的序列,以空格分隔,行末无空格

输入例子

100 100 100 99 99 99 100 100 100

输出例子

99 100

1.1.2.18 使用一个队列模拟一个栈,在空白处实现下面类中的方法即可。

class Queue(objec ):

defenqueue(self,item):

“’’”“入队”"""

defdequcue(self):

“”"“出队”""

测试

q = Queue()

9 enqucue (1)

输出q [1]

q.enqueue(4)

输出q [1,4]

q.dequeue()

输出14

1.1.2.19 从一个网站上面分别下载100个图片,他们的网址是 http://download.linekong.com/img/1.pnghttp://download.linekong.com/img/2.pnghttp://download.linekong.com/img/100.png 批量下载100个图片文件,并找出大于500kb的文件
1.1.2.20 一个文本文件info.txt每行都是以逗号分隔,其中第二列都是数字,请对该文件按照第二列从小到大排列。

aa,101

bb,302

cc,222

dd,44

1.1.2.21 通过shell如何删除文档中的注释和空白行。
1.1.2.22 根据要求写出linux命令

a.显示当前目录的内容

b.以详细格式显示test用户的家目录内容,包含隐藏文件

c.进入根目录

d.显示/etc/passwd文本文件的内容

e.显示/etc/passwd文件的后十行内容

1.1.2.23 用netstat统计系统当前tcp连接的各种状态的连接数
1.1.2.24 写一个脚本,实现判断10.10.10.0/24网络里,当前在线的ip有哪些。注:能ping通则认为在线。
1.1.2.25 怎么把脚本添加到系统服务里,即使用service来调用。
1.1.2.26 统计指定文件中每个单词出现的次数;如

cat /etc/fstab

/etc/fstab

UUID=94e4e384-Oace-437f-bc96-057dd64f42ee / ext4 defaults.barrier=0 1 1

tmpfs /dev/shm tmpfs defults 0 0

1.1.2.27 练习:写一个脚本

列出如下菜单给用户

disk) show disks info;

mem) show memory info;

cpu) show cpu info;

*) quit;

提示用户给出自己的选择,而后显示对应其选择的相应系统信息

1.1.2.28 写出一个shell脚本希望把****结构表显示出来
1.1.2.29 出a.log中****的waring  但是不包括waring的行
1.1.2.30 **说明以下shell 代码,所完成的功能                          **

n=1

while [ $n -lt 1000 ]

do

cd /root/perl_test/testdir

touch sn.txt

n=`expr $n + 1`

done

1.1.2.31 用最熟悉的脚本语言实现如下功能

如果在/home/pushmail目录下不存在leadtone目录,则创建该目录,并将/var/sync/bin目录下的所有文件拷贝到leadtone目承下,但是不能够拷贝文件长度大于1M的文件。

1.1.2.32 根据要求写出linux命令

a.显示当前目录的内容

b.以详细格式显示test用户的家目录内容,包含隐藏文件

c.进入根目录

d.显示/etc/passwd文本文件的内容

e.显示/etc/passwd文件的后十行内容

1.1.2.33 查找含有特定字符的文件
1.1.2.34 Centos操作系统历史命令记录中,执行次数最多的5条
1.1.2.35 写一个脚本,判断一个指定的脚本是否是语法错误,如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本
1.1.2.36 用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下
1.1.2.37 写一个脚本,实现批量添加20个用户,用户名为user01-20,密码user后面跟5个随机字符
1.1.2.38 统计nginx访问日志,找出访问次数前10的IP
1.1.2.39 找出在文件a中但不在文件b中的内容,用命令后编写脚本实现
1.1.2.40 对文件test中,1>第一列为aaa的行求和;2>对偶数行求和;3>求文件test中的最大值
1.1.2.41 Case语句的语法?while 语句的语法?continue命令的作用?
1.1.2.42 请写出下列shell脚本:使用for循环在/opt目录下通过随机小写10个字母加固定字符串test批量创建10个html文件,创建完成后将test全部改为test_done(for循环实现),并且html大写
1.1.2.43 在UNIX操作系统中,若用户键入的命令参数的个数为1时,执行cat $1命令;若用户键入的命令个数为2时,执行cat >>$2<$1命令,请将下面所示的shell程序的空缺部分补齐

Case (_____)in

cat $1

cat >>$2<$1

*)echo ‘defult…’

case

$#

$@

$$

$*

1.1.2.44 如何在每天23:59分时,将apache的accesslog中,访问次数最多的前10个ip以及访问量最多的10个文件保存到/var/Top.log中
1.1.2.45 写一个脚本,判断一个指定的脚本是否是语法错误。如果有错误,则提醒用户键入Q或q无视错误并退出其它任何键可以指定的脚本
1.1.2.46 shell脚本编程:求100以内的质数
1.1.2.47 如果有10个文件夹,每个文件夹都有1,000,000个url,每个url对应一个访问量,请问如何最快找出前1,000,000个访问量最高的url
1.1.2.48 创建一个shell脚本,它从用户那里接收10个数,并显示已输入的最大的数
1.1.2.49 设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。shell陈旭fileback存放在/usr/bin目录下
1.1.2.50 找出系统中父进程号为105的所有进程,并将其结束
1.1.2.51 如何从history记录中分析最近500次内执行最多的命令?如何查找当前目录90天以前的文件并将其删除?
1.1.2.52 写出命令统计当前连接到本机6379端口连接数最高的ip地址和连接个数,查看自己的ip地址,看这个ip地址所在网段都有哪些机器,任意查看此网段的另外一个ip地址有哪些端口开放了。简述tcp的几种连接状态,高并发服务器一般会遇到什么问题?
1.1.2.53 下面给出了一个shell程序,试对其行后有#(号码)形式的语句进行解释,并说明程序完成的功能

#!/bin/bash

DICNAME=ls /root |grep bak        #(1)

if [ -z “$DICNAME” ] then          #(2)

mkdir /root/bak cd /root/bak          #(3)

fi

YY=date +%y MM=date +%m DD=date +%d  #(4)

BACKETC= Y Y YY YYMM$DD_etc.tar.gz           #(5)

tar zcvf $BACKETC /etc                 #(6)

echo “fileback fiaished!”

1.1.2.54 试编写一个Shell程序,该程序能接收用户从键盘输入的100个整数,然后求出其总和、最大值及最小值
1.1.2.55 请用自己熟悉的脚本语言,快速替换notice服务下config.properties配置文件中所有变量值为jdbc.username,jdbc.password的值为blue和pass1234 说明:配置文件的目录/opt/blue/notice/conf/config.properties

config.properties文件格式如下:

zookeeper.server=127.0.0.1:2181

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://lx-db:3306/gudong

jdbc.username=lanxin

jdbc.password=OnLIDX5

1.1.2.56 会哪些编程语言?写过哪种shell脚本?请现场编写一组
1.1.2.57 判断数字大于500则执行big.sh  小于等于500则退出脚本,并输出报错信息
1.1.2.58 处理以下文件内容,将域名取出并进行计数排序

http://www.baidu.com/index.html

http://www.baidu.com/1.jpg

http://post.baidu.com/index.php

http://mp3.baidu.com/index.jsp

http://www.baidu.com/3.html

http://post.baidu.com/2.bmp

得到如下结果:

域名的出现的次数  域名

3  www.baidu.com

2  post.baidu.com

1  mp3.baidu.com

1.1.2.59 文件ip.txt中包含很多IP地址(以及其它非IP数据),请打印出满足A.B.C.D  其中A=172  C=130  D<=100 条件的所有IP(请用AWK实现)
1.1.2.60 请编写一个可递归创建3级hash目录的shell脚本,hash目录名分别为 a b c d e f 0 1 2 3 4 5 6 7 8 9 (请用bash实现)
1.1.2.61 统计web服务器上网络连接的各个状态(ESTABLISHED/SYN_SENT/SYN_RECV等)的个数并按倒序排列
1.1.2.62 脚本测试test.txt文件

1 2 3

4 5 6

7 8 9

打印出每一列的累加值

1.1.2.63 请在linux下写个bash shell 程序,目的如下:查找/opt/mp3目录下所有mp3后缀的文件,然后计算下每个md5值,文件名跟md5值写入新的文件mp3-md5.txt文件
1.1.2.64 请写出完成下面工作的Linux shell命令或脚本

(1)查看服务器的硬盘占用量

(2)将/usr/test目录下大于100K的文件转移到/tmp目录下

(3)杀死所有启动的servicefx_asr进程

(4)假设某nginx server的日志access.log如下:

198.24.230.194 - - [10/Oct/2015:10:23:50 +0800] “POST /asr/recognize HTTP/1.1 200 177 “-”  ”-”

请查找在2015/10/10,10点这一个小时内,访问“/CheckAuth”接口的IP一共有几个,每个各访问了多少次

1.1.2.65 执行$ time sleep 2  输出如下

real  0m2.003s

user  0m0.004s

sys   0m0.000s

请说明real、user、sys三者具体代表的意思和区别

1.1.2.66 编写脚本完成以下工作

某目录下有两个文件a.txt和b.txt,文件格式为(ip username),例如:

a.txt b.txt

127.0.0.1zhangsan 127.0.0…4lixiaoliu

127.0.0.1wangxiaoer 127.0.0.01lisi

127.0.0.2lisi

127.0.0.3wangwu

每个文件至少有100万行,请使用Linux命令完成下列工作

1)两个文件各自的IP数,以及总IP数

2)出现再b.txt而没有出现再a.txt的IP

3)每个username出现的次数,以及每个username对应的IP数

1.1.2.67 现在一个REST API服务**(名称为ab-service),进程启动后占用8038端口进行网络通信。现需要一个Bash Shell脚本start.sh),在一台Linux机器上启动这个服务,并通过8038端口对所有内外网IP服务。请写出完整的可运行脚本,并尽量考虑可能出现的情况并处理**
1.1.2.68 绑定变量是什么?编订变量有什么优缺点
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一些常见的shell面试题及答案: 1. 什么是shell? 答:Shell是一种用于访问操作系统内核服务的命令行界面,它允许用户与操作系统交互,并执行各种操作。 2.请描述一下Linux的进程和线程? 答:进程是操作系统独立运行的程序,它有自己的内存空间和系统资源。线程是进程的一个执行单元,它可以独立运行并且可以共享进程的资源。 3.请描述一下如何使用grep命令来查找文件的特定字符串? 答:使用grep命令可以在文件查找特定字符串。语法如下:grep 'string' fileName.例如: grep 'hello' test.txt 4.请描述一下如何使用sed命令来替换文件的文本? 答:使用sed命令可以替换文件的文本。语法如下:sed 's/old-text/new-text/g' fileName.例如: sed 's/hello/world/g' test.txt 5.请描述一下如何使用awk命令来处理文本文件? 答:awk命令是一种强大的文本处理工具,可以用来解析和操作文本文件。语法如下:awk 'pattern { action }' fileName. 例如:awk '{print $1}' test.txt 6.请描述一下如何使用cut命令来剪切1. 什么是 shell? 答:shell 是一种用于访问操作系统服务的命令行界面。它提供了用于交互式访问和执行操作系统命令的方法。 2. 什么是 shell 脚本? 答:shell 脚本是一种使用 shell 命令编写的脚本程序,可以在 shell 执行。它可以包含一系列命令和流程控制结构,用于自动执行常见任务。 3. 什么是变量? 答:变量是存储值的占位符。在 shell 脚本,变量可用于存储和引用值,如字符串或数字。 4. 怎样在 shell 创建变量? 答:在 shell 创建变量,需要使用等号 (=) 将变量名和值相关联。如: ``` name="John Doe" ``` 5. 怎样在 shell 调用变量? 答:在 shell 调用变量,需要在变量前面加上美元符号($)。如: ``` echo $name ``` 6. 怎么在 shell 使用条件语句? 答:在 shell 使用条件语句需要使用 if 关键字,并使用 test 命令或者 [] 来测试条件是否成立。如: ``` if [ $a -gt $b ] then echo "a is greater than b" fi ``` 7. 怎么在 shell 使用循环语句? 答:在 shell 使用循环语句可以使用 for 和 while 关1. 什么是 ShellShell 是一种命令解释器,它提供了在操作系统与用户之间进行交互的接口。 2. 常见的 Shell 类型有哪些? 常见的 Shell 类型有:bash, csh, ksh, tcsh, zsh 等。 3. Shell 如何执行外部程序? 在 Shell 可以使用 "./program_name" 或 "program_name" 的形式来执行外部程序。 4. Shell 如何查看进程? 在 Shell 可以使用 "ps" 命令来查看当前系统的进程。 5. Shell 如何查看磁盘使用情况? 在 Shell 可以使用 "df" 命令来查看磁盘使用情况。 6. Shell 如何查看文件或目录的权限? 在 Shell 可以使用 "ls -l" 命令来查看文件或目录的权限。 7. Shell 如何创建一个目录? 在 Shell 可以使用 "mkdir directory_name" 命令来创建一个目录。 8. Shell 如何删除一个文件? 在 Shell 可以使用 "rm file_name" 命令来删除一个文件。 9. Shell 如何重命名一个文件? 在 Shell 可以使1. 什么是 shell? 答:shell 是一种操作系统的命令解释器,它提供了一种用户与操作系统进行交互的方式。 2. 什么是 shell 脚本? 答:shell 脚本是一种用来在 shell 执行的脚本程序,它由一系列 shell 命令组成。 3. 如何查看当前使用的 shell? 答:使用命令 echo $SHELL 可以查看当前使用的 shell。 4. 如何执行一个 shell 脚本? 答:使用命令 sh script.sh 或者 bash script.sh 来执行一个 shell 脚本。 5. 什么是变量? 答:变量是一种存储值的容器,在 shell 可以使用变量来存储和管理数据。 6. 如何设置和使用变量? 答:使用命令 variable_name=value 来设置变量,使用 $variable_name 来使用变量。 7. 什么是环境变量? 答:环境变量是一种特殊的变量,它在整个系统都可以使用,用于存储系统相关的配置信息。 8. 什么是 $PATH? 答:$PATH 是一个环境变量,它存储了系统可执行程序的搜索路径。 9. 什么是 $HOME? 答:$HOME 是一个环境变量,它存储了当前用户的主目录的路径。 10. 什么是条件语句? 答1. 什么是shell? 答:Shell是一种命令行界面的操作系统,它提供了一种简单的方式来交互和控制底层操作系统。 2. 你知道哪些常用的shell? 答:常用的shell有Bash,Zsh,Ksh和Csh。 3. 你能说出几个shell脚本常用的控制结构? 答:if-else, for, while, case, until。 4. 你能解释一下什么是环境变量? 答:环境变量是一种特殊类型的变量,可以在shell会话或者整个操作系统共享,环境变量可以用来存储系统配置信息和用户设置信息。 5. 你能简单描述一下如何使用grep命令? 答:grep命令可以在文本文件搜索指定的字符串。语法为 "grep [options] 'pattern' file" 。例如:“grep 'hello' test.txt” 会在test.txt文件搜索hello。 ### 回答2: 随着Linux的普及和应用场景的不断扩大,越来越多企业对于拥有shell技能的人才的需求也越来越大。在面试,关于shell技能相关的问题也逐渐增多。下面就让我们来详细了解一下常见的shell面试题及答案。 1. 什么是shellshell是操作系统的外壳,它是用户与系统内核之间的接口,提供了用户与操作系统交互的方法。shell可以接收用户的命令,并将其转换为操作系统的命令进行执行,同时还可以执行脚本文件,对一些复杂的任务进行自动化处理。 2. 如何查看当前使用的shell版本? 在Linux系统,可以使用echo $SHELL命令来查看当前使用的shell版本。 3. 如何设置环境变量? 可以使用export命令来设置环境变量,比如: export PATH=$PATH:/usr/local/bin 表示将/usr/local/bin目录加入到PATH环境变量。 4. 如何列出当前目录下的所有文件及目录? 可以使用ls命令来列出当前目录下的所有文件及目录,如: ls -al 其,a表示显示所有文件及目录(包括隐藏文件),l表示以长格式显示。 5. 如何创建目录? 可以使用mkdir命令来创建目录,如: mkdir testdir 表示创建名为testdir的目录。 6. 如何删除文件? 可以使用rm命令来删除文件,如: rm test.txt 表示删除名为test.txt的文件。 7. 如何查找文件? 可以使用find命令来查找文件,如: find /home/user -name test.txt 表示在/home/user目录下查找名为test.txt的文件。 8. 如何在文件搜索指定字符串? 可以使用grep命令来在文件搜索指定字符串,如: grep "hello" test.txt 表示在test.txt文件搜索包含字符串“hello”的行。 9. 如何使用sed命令替换文件指定字符串? 可以使用sed命令来替换文件指定字符串,如: sed 's/hello/world/' test.txt 表示将test.txt文件所有的“hello”替换为“world”。 10. 如何使用awk命令对文件进行处理? 可以使用awk命令对文件进行处理,如: awk '{print $1,$3}' test.txt 表示输出test.txt文件每行第一列和第三列的内容。 以上就是常见的shell面试题及答案,希望对于准备从事Linux运维或开发工作的朋友们有所帮助。同时还需要注意的是,除了掌握shell基础知识外,也需要具备系统、网络、编程等方面的知识和经验,才能够在企业脱颖而出。 ### 回答3: Shell是一种命令语言和程序设计语言,用于控制操作系统及其应用程序。Shell被广泛用于Unix和Linux操作系统,作为用户与操作系统交互的工具。Shell的优点是简单易学、灵活运用和快速调试,因此成为了运维人员不可或缺的技能之一。下面对几个常见的Shell面试题及答案进行介绍。 一、什么是ShellShell是一种命令语言和程序设计语言,它是一种可以理解用户请求并将其转换为操作系统内核所需要执行的命令的程序。 二、什么是Shell脚本? Shell脚本是一种编写Shell程序的方法,它是一种用Shell语言编写的程序,可将一系列的Shell命令组织起来实现一定的功能。 三、如何定义一个Shell函数? 定义一个函数的方法如下所示: ``` 函数名() { 命令1; 命令2; ... } ``` 其,函数名可以任意定义,函数体可包含多个命令。 四、如何判断一个文件是否存在? 使用if语句可以实现对文件是否存在的判断,代码如下: ``` if [ -e "文件名" ] then 命令1; else 命令2; fi ``` 其,-e表示文件是否存在的参数,如果文件存在,则执行命令1,否则执行命令2。 五、如何遍历一个目录下所有的文件及子目录? 使用for循环语句可以遍历一个目录下所有的文件及子目录,代码如下: ``` for file in `ls 目录名` do 命令1; done ``` 其,ls用于列出目录下的所有文件名,for循环语句遍历每一个文件进行相应的操作。 六、如何实现两个字符串的比较? 使用if语句可以实现两个字符串的比较,代码如下: ``` if [ 字符串1 = 字符串2 ] then 命令1; else 命令2; fi ``` 其,=表示比较两个字符串是否相等,如果相等,则执行命令1,否则执行命令2。 七、如何实现输入输出重定向? 使用重定向符号可以实现输入输出重定向,如下所示: ``` 命令 < 输入文件 > 输出文件 ``` 其,<表示输入重定向,>表示输出重定向。 八、如何实现后台运行? 使用&运算符可以实现后台运行,如下所示: ``` 命令 & ``` 其,&表示在后台运行该命令。 以上是Shell面试题及答案的简要介绍。在面试过程,还需要具备一定的实际操作能力,熟练掌握Shell编程的语法、操作符、变量、数组、函数等知识点,才能更好地应对面试题并达到求职的目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值