Shell基本操作和常见面试题

Shell基本操作和常见面试题

基本操作

Shell脚本可用于自动执行任务、创建脚本来管理系统,极大提高了工作效率。

常见面试题

什么是shell?

答:
shell 是一个程序,它从键盘获取命令并将它们提供给操作系统以执行,在大多数 Linux 系统上,一个名为bash(代表 Bourne Again Shell,原始 Unix shell 程序 sh 的增强版本,由 Steve Bourne 编写)的程序充当命令解释器。

为何叫做shell?

答:
我们知道计算机的运作不能离开硬件,但使用者却无法直接操作硬件,硬件的驱动只能通过一种称为操作系统(OS,Opertating System)的软件来管控。linux严格来说只是一个操作系统(OS),我们称之为内核(kernel)。

使用者没有办法直接操作一个kernel,而是通过kernel的外壳程序,也就是所谓的shell,来与kernel沟通。shell是一个使用者与系统的交互界面(interface), 只能让使用者通过命令行(command line)来使用系统来完成工作。因此 ,
shell最简单的定义就是——命令解译器(Command Interpreter):

将使用者的命令翻译给核心处理;
同时,将核心处理结果翻译给使用者。
不同的OS使用不同的kernel;
同一个kernel之上,也可以使用不同的shell
常见的shell有sh; bash; csh; ksh;等

shell和终端区别

答:
终端是访问操作系统的用户界面,shell 是一种为操作系统提供命令行界面的计算机程序。

shell脚本是什么?

答:
shell 脚本是一种计算机程序,旨在由 Unix shell(一种命令行解释器)运行,shell脚本的各种方言被认为是脚本语言。

Shell prompt(PS1)与Carriage Return(CR)的关系?

答:
成功登录一个shell终端后,游标cursor左边部分,称之为提示符prompt
通常一般用户使用$,管理员用户root使用#

shell prompt:可以输入命令了
键入命令后,直到读进CR(Carriage Return)字符为止
Carriage Return:可以执行命令了
若从技术的细节来看,shell会依据IFS(Internal Field Seperator) 将command line所输入的文字拆解为"字段"(word/field)。然后再针对特殊字符(meta)先作处理,最后重组整行command line。

echo是什么?

答:
echo将argument送到标准输出(stdout),通常显示在屏幕

  • stdin 标准输入
  • stdout 标准输出
  • stderr 标准错误输出
echo -n  # 取消换行符
echo -e # 启用反斜杠转译

双引号和单引号的区别?

答:
hard quote:''(单引号),关闭所有引用
soft quote:""(双引号),保留$引用

shell变量和环境变量有什么区别?

答:
shell 变量是一个仅包含在设置或定义它的 shell 中的变量,环境变量是可以从shell传递到它创建的任何子进程的属性。

“子shell”和“子进程”有什么区别?

答:
子shell 是为执行特定脚本而创建的shell 的单独实例,子进程是由另一个进程(父进程)创建的进程。

Linux 上有哪些不同类型的 shell?

答:
Shell 的两种主要类型是 Bourne Shell(用 $ 表示)和 C Shell(用 % 表示)。

Bourne Shell 进一步分为两种类型:

BASH:它是 sh 的开源实现。它代表伯恩再次壳牌。
KSH:它最初是使用 bash 脚本 shell 实现的,但后来使用其高级属性进行了更新。KSH 代表 Korn Shell。
C Shell也有两个细分,

CSH:它使用 c 编程语法风格,这使得它比 Bourne Shell 先进得多。CSH 是“C Shell”的缩写。
TCSH:这是 CSH 的另一种实现,旨在向后兼容 CSH。它是一个名为 Tenex 的操作系统的默认外壳,因此是字母“t”。

如何在 shell 脚本中传递参数?

答;
传递给脚本的参数存储在变量1 、2、3等。1 是第一个参数,2是第二个参数,3 是第三个参数,以此类推。

参考资料:
https://blog.csdn.net/daocaokafei/article/details/125711982
https://zhuanlan.zhihu.com/p/555452448

posted @ 2023-08-30 20:05  我好想睡觉啊  阅读(29)  评论(0编辑  收藏  举报