Shell脚本面试题Top50

Shell脚本面试题Top50

[TOC]

1:什么是Shell?

Shell是用户和内核之间的接口。即使只有一个内核; 一个系统可以同时运行许多shell。因此,只要用户通过键盘输入命令,shell就会与内核通信以执行它,然后将输出显示给用户。

2:典型Linux系统上常用的shell有哪些不同类型?

csh,ksh,bash,Bourne。今天使用的最常用和高级shell是"Bash”。

3:在Linux系统上有一个窗口的文件快捷方式相当于什么?

使用Linux上的"链接”创建快捷方式。可以使用两种类型的链接,即"软链接”和"硬链接”。

4:软链接和硬链接有什么区别?

软链接是文件名的链接,也可以驻留在不同的文件名中; 但硬链接链接到文件的inode,并且必须与文件的文件系统相同。删除原始文件会使软链接处于非活动状态(断开链接),但不会影响硬链接(硬链接仍将访问该文件的副本)

5:如何在Linux中传递和访问脚本的参数?

参数可以传递为:

scriptName"Arg1”"Arg2”...."Argn”并且可以在脚本内部以$ 1,$ 2 .. $ n进行访问

6:$#的意义是什么?

$#显示传递给脚本的参数计数。

7:*和 @有什么区别?

@将每个引用的参数视为单独的参数,但 *将整个位置参数集视为单个字符串。

8:使用sed命令替换文件内容(模拟tac命令)

例如:

if cat fille
ABCD
EFGH

然后O / p应该是

EFGH
ABCD

sed'1!G; h; $!d'file1

这里G命令附加到模式空间,

h命令复制模式缓冲区以保存缓冲区

和d命令删除当前模式空间。

9:给定一个文件,将所有出现的单词"ABC”替换为"DEF”,从第 5 行直到结尾仅包含单词"MNO”

sed -n'5,$p' file1|sed '/MNO/s/ABC/DEF/'

10:给定一个文件,写一个命令序列来查找每个单词的计数。

tr -s"(backslash)040”<file1 | tr -s"(backslash)011"| tr"(backslash)040(backslash)011"""(backslash)012"| uniq -c
其中"(backslash)040”是"space”的八进制等价物

"(反斜杠)011”是"制表符”的八进制等效值

"(反斜杠)012”是换行符的八进制等效值。

11:如何仅使用tail和head命令找到文件的第 99 行?

tail +99 file1 | head -1

12:打印10 个行,而无需使用尾部和头部命令。

sed -n'10p'file1

13:在我的bash shell中,我希望我的提示格式为'$'当前工作目录":”hostname">并在我登录时加载包含用户定义函数列表的文件,如何自动执行此操作?

在bash shell中,我们可以创建".profile”文件,该文件在我登录后自动被调用,并将以下语法写入其中。

export PS1 ='$`pwd`:`hostname`>'.File1

这里File1是包含用户定义函数和"。”的文件。在当前shell中调用此文件。

14:解释一个文件中的"s”权限位?

"s”位称为"设置用户ID”(SUID)位。

文件中的"s”位使得进程在程序实例期间具有文件所有者的特权。

例如,执行"passwd”命令更改当前密码会导致用户将其新密码写入影子文件,即使它具有"root”作为其所有者。

15:我想创建一个目录,以便组中的任何人都可以创建文件并访问其中的任何人的文件,但是没有人能够删除除他自己创建的文件之外的文件。

我们可以创建一个目录,为组中的每个人提供读取和执行访问权限,并将其粘滞位设置为"t”,如下所示:

mkdir direc1
 
chmod g + wx direc1
 
chmod + t direc1

16:你怎么知道系统运行了多长时间?

我们可以使用命令"uptime”找到它。

17:任何用户如何找到有关特定用户的所有信息,例如他的默认shell,现实名称,默认目录,他何时以及使用系统多长时间?

>finger "loginName”
//其中loginName是的登录名

预期信息的用户。

18:$$和$之间的区别是什么?

$$给出了当前正在执行的进程的进程ID,而$!显示最近进入后台的进程的进程ID。

19:什么是僵尸进程?

这些过程已经死亡,但其退出状态仍未被父进程选中。即使不起作用,这些进程仍然在进程表中具有其进程id条目。

20:如何将文件从一台机器复制到另一台机器?

我们可以使用"ftp”,"scp”或"rsync”等实用程序将文件从一台机器复制到另一台机器。

例如,使用ftp:

FTP 主机名

>put file1

>bye

上面的副本,文件file1从本地系统到指定了主机名的目标系统。

21:我想监视一个不断更新的日志文件,可以用什么命令最有效地实现这个目的?

我们可以使用tail -f filename。这将导致仅在std o / p上显示默认的最后10行,这连续显示文件的更新部分。

22:我想连接远程服务器并执行一些命令,我该如何实现?

我们可以使用ssh来做到这一点:

ssh username@serverIP -p sshport

ssh [root@122.52.251.171](mailto:root@122.52.251.171) -p 22

执行上述命令后,系统将要求你输入密码

23:我有2个文件,我想打印两个共同的记录。

我们可以使用"comm”命令如下:

comm -12 file1 file2 

24:编写一个脚本来打印Fibonacci系列的前10个元素。

#!/bin/sh
a = 1
B = 1
echo $ a
echo $ b
for I in 1 2 3 4 5 6 7 8
do
c = a
b = $a
b = $(($a+ $c))
echo $b
DONE

25:如何从Linux连接到数据库服务器?

我们可以使用开放客户端驱动程序附带的isql实用程序,如下所示:

isql -S serverName -U username -P password

26:Linux中的3个标准流是什么?

0 - 标准输入1 - 标准输出2 - 标准错误

27:我想从file1读取命令的所有输入,将所有输出直接输出到file2,将错误读取到文件3,我该如何实现?

command <file1 1> file2 2> file3

28:当我使用exec执行命令时,当前进程会发生什么?

"exec”覆盖了当前流程中新分叉的流程; 所以当我使用exec执行命令时,该命令在当前shell上执行而不创建任何新进程。

例如,在命令提示符下执行"exec ls”将执行ls,一旦ls退出,该进程将关闭

29:你将如何使用awk模拟wc -l?

awk'END {print NR} fileName'

30:给定一个文件找到包含单词"ABC”的行数。

grep -c "ABC" file1

31:grep和egrep有什么区别?

egrep是扩展grep,支持添加grep功能,如"+”(前一个字符出现1次或多次),"?”(前一个字符出现0或1次)和"|” (备用匹配)

32:如何打印系统上所有用户的登录名?

/etc/shadow

文件列出了所有用户。

awk -F':''{print $ 1} / etc / shadow'| uniq -u

33:如何在Linux中设置数组?

ksh中的语法:

Set –A arrayname= (element1 element2 ….. element)
In bash
A=(element1 element2 element3 …. elementn)

34:记下"for”循环的语法

语法

for  iterator in (elements)
do
execute commands
done

35:你如何找到特定用户使用的总磁盘空间?

du -s / home / user1 

其中user1是需要找到总磁盘空间的用户。

36:在Linux中编写"if”条件的语法?

语法

If  condition is successful
then
execute commands
else
execute commands
fi

37:$的意义是什么?

命令$?给出最后执行的命令的退出状态。

38:我们如何删除文件中的所有空行?

sed  '^ [(backslash)011(backslash)040]*$/d' file1

其中(反斜杠)011是空格的八进制等价物

(反斜杠)040是选项卡的八进制等效值

39:我怎么会在每100插入行"ABCDEF” 第一个文件的行?

sed '100i \ ABCDEF'file1

40:编写命令序列以查找在不到2天内修改的所有文件并打印每个文件的记录数。

find . –mtime -2 –exec wc –l {} \;

41:如何在当前shell中创建的每个文件上为所有用户设置默认的rwx权限?

我们可以用:

umask 777

这将为为每个用户创建的每个文件设置默认的rwx权限。

42:我们如何从进程ID中找到进程名称?

ps –p ProcessId

43:Linux上每个文件系统的四个基本组件是什么?

Bootblock,超级块,inode块和数据块是Linux上每个文件系统的基本组件。

44:什么是引导块?

该块包含一个名为"主引导记录”(MBR)的小程序,它在系统引导期间加载内核。

45:什么是超级块?

超级块包含有关文件系统的所有信息,例如文件系统的大小,其空闲数据块数使用的块大小以及空闲inode和数据块的列表。

46:什么是inode块?

此块包含文件系统的每个文件的inode以及除其名称之外的所有文件属性。

47:如何将带有压缩文件的邮件作为附件发送?

zip file1.zip file1|mailx –s "subject" Recipients email id

Email content

EOF

48:我们如何在shell中创建命令别名?

别名Aliasname ="要创建其别名的命令”。

49:文件的"c”和"b”权限字段是什么?

"c”和"b”权限字段通常与设备文件相关联。它指定文件是特殊字符文件还是块特殊文件。

50:shebang线的用途是什么?

每个脚本顶部的Shebang行确定用于执行脚本的引擎的位置。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,310评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,618评论 0 10
  • Linux面试题 一、填空题 1. 在Linux 系统 中,以_方式访问设备 。 2. Linux 内核引导时,从...
    秋幻旎苏阅读 1,046评论 0 1
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,754评论 0 5
  • Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。 内核、shell和文件系统一起形成了基本...
    请爱护小动物阅读 2,509评论 0 22