Shell 基础 | 青训营笔记

28 阅读2分钟

概念

  • Shell(也称为命令行界面或终端)是一种通过文本输入和输出进行交互的计算机用户界面。它允许用户通过输入命令来执行操作、运行程序和管理系统,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。

发展历程

  • 贝尔实验室在1971年为UNIX开发了第一个Shell,称为V6 Shell,与 Multics 上的类似,这个 shell (/bin/sh) 在内核外运行,是一个独立的用户程序。
  • 1977年,Stephen Bourne 在 AT&T 贝尔实验室 为 V7 UNIX 研发出 Bourne shell,并且作为实用的 shell 保留至今(在某些情况下,作为默认 shell)。Bourne Shell是基于另一种叫做Algol的语言,主要用于系统任务管理的自动化。
  • 20世纪70年代末,于加州大学Berkeley分校作为2BSD UNIX 一部分开发出了C Shell,C Shell提供了许多Bourne Shell不具备的功能,此外还提供了如作业控制、命令行历史、别名等功能。

定义变量

  • shell支持以下三种定义变量的方式:
variable=value  
variable='value'  
variable="value"

注意,这里“=”两边不能出现空格。举例:

1.  url=https://juejin.cn/
1.  name='C语言中文网'
1.  author="严长生"

Shell命令替换

  • Shell 命令替换是指将命令的输出结果赋值给某个变量,Shell 中有两种方式可以完成命令替换,一种是反引号` `,一种是$()
variable=`commands`  
variable=$(commands)

variable 是变量名,commands 是要执行的命令。commands 可以只有一个命令,也可以有多个命令,多个命令之间以分号;分隔。 原则上来说,两种方法是等价的,但是一般多使用$(),此外,$()支持嵌套,而` `不行。

Shell if else语句

  • Shell中的if语句和c++,Java中的if语句有所不同,基本语法如下:
if condition
then
    command1
    command2
    ......
    commandN
fi

command是需要判断的条件,可以是字符串、变量、数值等。

  • 如果有两个分支,用if else语句。
if condition
then
    command1
else
    command2
fi

如果condition成立,执行command1,否则执行command2。