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

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 的绝对路径,可在终端中输入命令:

$ which 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命令来罗列出所有文件和目录
    在这里插入图片描述

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

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

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

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

在上图红色框体内的第一列共有十个字符,我们先排除第一个字符(文件类型),往后的九个字符均表示权限。 第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(运行)表示。
    为所有类型添加运行权限
    在这里插入图片描述

入门

打开终端,使用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 单行注释

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

#!/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!"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值