Shell 学习(1)Hello world

本文介绍了Shell的基本概念,它作为用户与Linux操作系统交互的桥梁,特别是BourneAgainShell(Bash)的使用。Bash是Linux的默认Shell,免费且广泛使用。通过查看$SHELL和/etc/shells可以了解系统默认和可用的Shell。文章还展示了创建和运行Shell脚本的步骤,并提及了Bash的历史和版本。
摘要由CSDN通过智能技术生成

Shell 教程官网:网道教程

Shell 基本概念

在Windows操作系统中我们有图形化页面,通过如鼠标、键盘等硬件就可以在可视化页面中操作计算机。

在无可视化界面的Linux服务器中,我们可以通过命令行的方式查看计算机资源,如文件、进程、内存、外存等。
那么有没有思考过,我们执行的命令如:cd、ls、ps、top等命令又是被谁执行的呢?或者说是如何生效的呢?(开始正文)

Shell 是一个用C语言编写的程序,用作一个连接用户与操作系统进行交互的桥梁。操作系统才是真正控制CPU的管理者,只有CPU能够真正意义上的调度硬件。
我们需要将输入的Shell script交给 Shell 程序执行,进而达到访问系统资源的目的。如上面提到的cd、ls等都是 Shell script,我们称之为执行命令。
关系如下:

- 操作用户
    - 应用程序(包括Shell)
        - 系统调用、API
            - 操作系统内核
                - CPU
                    - 硬件

所以说,Shell被用作为一个连接用户与操作系统进行交互的桥梁。

上面说到 Shell 本身是一个程序,这个程序会提供一个界面,用户通过这个界面访问操作系统。比如 Windows 中的 Windows Explorer 就是一个图形化的 Shell。所以说 Shell 是一种抽象概念,而 Shell 汉译后的意思也有的意思。

除了将命令交交给 Shell 执行,也可以在一个批处理文件中编写一组命令,并穿插一些逻辑处理。这样的代码称之为 Script,Shell script。

所以 Shell script 既是一种命令语言,也是一种程序设计语言。而 Shell 是一个程序。

Shell 环境(菜鸟教程)

Linux 的 Shell 种类众多,常见的有:

  1. Bourne Shell(/usr/bin/sh或/bin/sh)
  2. Bourne Again Shell(/bin/bash)
  3. C Shell(/usr/bin/csh)
  4. K Shell(/usr/bin/ksh)
  5. Shell for Root(/sbin/sh)
  6. ……

本次学习使用 Bourne Again Shell。Bash,免费,广泛应用。且,Bash 也是大多数 Linux 系统默认的 Shell。

查看系统默认使用的 Shell

$ echo $SHELL
/bin/bash

查看系统已安装可使用的 Shell

$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

Hello world

touch test.sh
vim ./test.sh
#!/bin/bash

echo "Hello world"

#! 是一个约定标记,告诉系统需要用什么 Shell 解释器来执行。我们声明的为 Bash。

执行 Shell,两种方式:

  1. chmod +x ./test.sh 将文件赋权为可执行文件,直接执行
  2. /bin/bash ./test.sh 作为参数执行,/bin/bash 是一个可执行的 Shell 程序

Shell 和 Bash 的历史

1988年,自由软件基金会的第一个付薪程序员 Brian Fox 写了一个 Shell,功能基本上是 Bourne shell 的克隆,叫做 Bourne-Again SHell,简称 Bash,程序名为bash,任何人都可以免费使用。后来,它逐渐成为 Linux 系统的标准 Shell。

1989年,Bash 发布1.0版。

1996年,Bash 发布2.0版。

2004年,Bash 发布3.0版。

2009年,Bash 发布4.0版。

2019年,Bash 发布5.0版。

用户可以通过bash命令的–version参数或者环境变量$BASH_VERSION,查看本机的 Bash 版本。

$ bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ echo $BASH_VERSION
4.2.46(2)-release
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值