ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

重新点亮shell————什么是shell[一]

2021-12-19 23:35:48  阅读:201  来源: 互联网

标签:脚本 shell 点亮 filename 命令 重新 执行 bash


前言

这里简介一下什么是shell。 写linux和shell 系列是为了后面的docker 系列的整理,本来想直接整理k8s的,但是呢,想想docker 系列整理完了的话,那么整理k8s系列就没有那么多的文章需要引用,直接引用自己的随笔即可。

正文

shell 是命令解释器,用于介绍用户对操作系统的操作。

介绍shell 之前,来看一下linux的启动过程。

启动过程:

BIOS-MBR(识别硬盘是否可引导)-BootLoader(grub,选择内核和内核版本)-kernel-systemd-系统初始化 shell

也就是说这个shell只要是我们内核启动了,那么shell 实际上就是可以使用的。

首先shell 有很多种。

一般来说我们使用的是bash。

Bash,Unix shell的一种,在1987年由布莱恩·福克斯为了GNU计划而编写。1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上,包括Linux与Mac OS X v10.4都将它作为默认shell。

现在我们知道了shell了,那么什么是shell脚本呢?

  1. unix 的哲学: 一条命令只做一件事情

  2. 为了组合命令和多次执行,使用脚本文件来保存需要执行的命令

  3. 赋予该文件执行权限(chmod u+rx filename)

shell 脚本其实就是保存shell 命令的脚本。

那么还有一个问题,前面提及到shell 有很多种。

一般默认是bash,但是有些系统中默认不是bash,可能是sh,那么怎么办呢?

这个时候shell 命令脚本前面会加一个声明式:

#! /bin/bash

那么指定了声明方式后,那么执行方式也有很多种,大体分为四种。

  1. bash ./filename.sh

  2. ./filename.sh

  3. source ./filename.sh

  4. .filename.sh

第一种呢,就直接是bash命令执行了,这个时候不管上面声明了什么,声明部分当做注释,直接是bash执行。

同样这种情况下,我们指定如果没有执行权限的话,那么shell脚本不会运行,但是在bash命令下,脚本不需要可执行权限。还有一个区别就是bash运行脚本命令是在另外一个子进程中执行的。

第二种呢,会直接查看声明来执行,声明了什么就什么来执行,同样是另外一个子进程执行的。

第三种和第四种其实是一样的,声明了什么就什么来执行,是在当前进程执行的。

同样的,我们前面提及的内建命令和外部命令的时候,内建命令不需要创建子进程,也就是说内建命令对当前的shell生效。

现在理解shell脚本了,下面正式进入shell环节。

标签:脚本,shell,点亮,filename,命令,重新,执行,bash
来源: https://www.cnblogs.com/aoximin/p/15026914.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有