欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Bash 第一讲 简介 脚本 文件系统及权限 入门

程序员文章站 2022-05-11 11:13:42
...

Bash简介

Bash 是 Bourne Shell 程序“sh”的升级版本,这是一个开源 GUN 项目。它提供了比 Bourne Shell 更好的功能,适用于编程和交互使用。 我们可以这么理解,Bash 是一个命令处理器,通常运行于文本窗口中,可以将用户输入的命令解释并执行相应的操作,这样式的文件被称作脚本。 Bash 是绝大多数 Linux 、MAC 及 OS 默认的 shell 程序,并且 Shell Script 都大致相同。当您学会一种 Shell 后,其它的 Shell 都能够很快上手,而且一种 Shell Script 通常可以在很多 Shell 上使用,因此您不必在学习哪种 Shell 的选择上耗费太多的时间。

Bash 的特点
  • Bash 与 sh 兼容,并具有 Korn Shell 和 C Shell 的最佳功能特性。
  • Bash 中的每个文件都有其特定用途,这些文件的集合用于创建环境。
  • Bash 可以通过键位绑定设置自定义的编辑键序列。
  • Bash 包含了一维数组,它们可以帮助您轻松的引用和操作数据列表。
  • Bash 中的目录堆栈指定了列表中最近访问的目录历史记录。操作示例:pushed用于将目录添加至堆栈中;popd用于将目录从堆栈中删除;dirs用于显示堆栈中的内容。
  • Bash 包含用于环境安全的受限模式。
Linux操作系统中不同类型的 Shell 程序:
  • Bourne Shell
  • Korn Shell
  • GNU Bourne Shell
    若想知道您的操作系统支持哪些 Shell 类型,可在终端中输入命令:
$ cat /etc/shells

Bash 第一讲 简介 脚本 文件系统及权限 入门

若想知道 Bash 的绝对路径,可在终端中输入命令:

$ which bash

Bash 第一讲 简介 脚本 文件系统及权限 入门

Bash 脚本

在编程中,脚本是用于控制软件应用程序的一组命令,这些命令在被调用时自动执行任务。

Bash脚本

Bash Shell脚本是用Bash编写的计算机程序,它是一个包含了自定义数量命令的纯文本文件,用于在Linux系统上自动循环执行重复性任务。

Bash脚本的创建

使用cd命令进入将要保存脚本的目录。使用文本编辑器(如gedit/vi/vim命令),并键入shell命令
使用touch命令创建脚本

touch file_name

在文本编辑器中打开脚本,键入以下命令(编辑器命令可根据个人更改)

gedit file_name.sh

脚本的第一行一般如下:

#!/bin/bash
echo "Hello World!"

注:
#!(SheBang)是一个约定的标记(解释器指令),它告诉系统这个脚本使用哪一种Shell
echo是Bash中的内置命令,用于通过传递参数来显示标准输出,将文本或字符串打印到屏幕上。
Bash脚本的运行

作为可执行程序

chmod +x ./file_name.sh
./file_name.sh

注:
第一行给予脚本执行权限
第二行执行脚本
作为解释器参数

/bin/sh file_name.sh

注:
该方式不需要在第一行指定解释器信息

Bash 文件系统及权限

在正式进入 Bash 教程之前,我们需要来了解一下 Linux 的文件系统及文件权限。
文件系统

Linux 文件系统中的所有文件都可以被称为目录,这些文件的类别可划分为以下三种:
  • 普通文件(数据、文本、图像、程序指令)
  • 特殊文件(用于访问硬件设备)
  • 目录(包含普通文件和特殊文件的文件夹)
    我们可以使用ls -l命令来罗列出所有文件和目录
    Bash 第一讲 简介 脚本 文件系统及权限 入门

上图共有七列,其意如下:
代表文件类型及权限,每个文件均以类型开头,接着指定访问权限。以特定字符表示:

  • 常规文件(-)
  • 特殊档案(c)
  • 命名管道(p)
  • 块设备(b)
  • 套接字(s)
  • 目录(d)
  • 链接(l)
    代表存储块的数量。
    代表文件的所有者或具有管理权限的超级用户。
    代表所有者、超级用户组
    代表文件大小
    代表文件的最后修改日期(具体到分钟)
    代表文件或目录的名称
文件权限

Linux 通过以下两个授权属性来保护其文件系统:
权限

  • 阅读权限(r),该权限允许查看文件内容。
  • 写入权限(w),该权限允许修改文件内容。
  • 执行权限(x),该权限允许运行编程文件或脚本。
  • 在调用权限的情况下会提供(-)
    所有权
  • 所有者是创建文件的超级用户,具有访问与文件关联的任何权限。
  • 用户组是超级用户创建的一或多用户,与超级用户一样具有访问与文件关联的任何权限。
  • 其他用户是排除在超级用户和用户组之外的用户,只具有前两者创建或拥有的任何文件或目录关联的权限。
    举个例子
    Bash 第一讲 简介 脚本 文件系统及权限 入门

在上图红色框体内的第一列共有十个字符,我们先排除第一个字符(文件类型),往后的九个字符均表示权限。 第2-4个字符(rw-)指定了超级用户的读取和写入权限。 第5-7个字符(r–)指定了用户组的读取权限。 第8-10个字符(r–)指定了其他用户的读取权限,但在这里,读写均被拒绝。

更改权限

使用chmod命令可以更改用不同用户类型的文件权限。添加或删除任何用户类型的任何权限的基本形式:

chmod [class][operator][permission] file_name
chmod [ugoa][+or-][rwx] file_name
  • class由u(超级用户),g(用户组),o(其他用户),a(所有类型)表示。
  • operator(+或-)表示添加或删除权限。
  • permission由指示符r(读取),w(修改),x(运行)表示。
    为所有类型添加运行权限
    Bash 第一讲 简介 脚本 文件系统及权限 入门

入门

打开终端,使用cd命令移动至目标目录。
使用touch命令创建一个空文件命名为bash_script.sh作为shell脚本的容器。
查看bash_script.sh文件的所有权限属性,在下图中可以看到该文件没有运行权限。
使用任意编辑器打开bash_script.sh,此处以gedit作为例子:

$ gedit bash_script.sh

编写脚本代码,打印Hello World!。

#!/bin/bash
# This is the basic bash script
echo " Hello World!"
  • 第一行是#!(SheBang)指定Ball Shell的路径
  • 第二行是注释行
  • 第三行是echo命令执行打印输出内容
    将运行权限添加到文件。
$ chmod +x bash_script.sh

使用./执行脚本,打印输出。

$ ./bash_script.sh
Hello World!

Bash 第一讲 简介 脚本 文件系统及权限 入门

Bash注释

注释对于任何编程语言都是不可忽视的重要组成部分,编写者通过注释来为其他人提供解释或提示,能有效提高代码的可读性。 Bash 同其他编程语言一样提供了两种类型注释的支持。

  • 单行注释
  • 多行注释
Bash 单行注释

在注释段落的开头使用#,如下:

#!/bin/bash

#This is the basic bash script

echo "Hello World!"

将上面的代码执行后,在执行命令的过程中会自动忽略注释部分,不会被解释输出

$ ./bath_script.sh
Hello World!
Bash 多行注释

插入多行注释有两种方法:
在**<< BLOCKBLOCK**之间的内容会被当成注释。

#!/bin/bash

<< BLOCK
This is the basic bash script
This is the basic bash script
BLOCK

echo "Hello World!"

在**:’** 和**’**之间的内容会被当成注释

#!/bin/bash

:'
This is the basic bash script
This is the basic bash script
'

echo "Hello World!"
相关标签: bash