用户在命令行输入命令后,一般情况下Shell会fork
并exec
该命令,但是Shell的内建命令例外,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程。以前学过的cd
、alias
、umask
、exit
等命令即是内建命令,凡是用which
命令查不到程序文件所在位置的命令都是内建命令,内建命令没有单独的man手册,要在man手册中查看内建命令,应该
$ man bash-builtins
本节会介绍很多内建命令,如export
、shift
、if
、eval
、[
、for
、while
等等。内建命令虽然不创建新的进程,但也会有Exit Status,通常也用0表示成功非零表示失败,虽然内建命令不创建新的进程,但执行结束后也会有一个状态码,也可以用特殊变量$?
读出。
执行脚本
script.sh
:
第一行开头,并且是#!
(称为Shebang),表示该脚本使用后面指定的解释器/bin/sh
解释执行。如果把这个脚本文件加上可执行权限然后执行:
$ chmod +x script.sh
$ ./script.sh
执行上述脚本相当于执行程序
$ /bin/sh ./script.sh
不过后一种方式执行的好处是不需要script.sh
文件具有可执行权限。
交互Shell(bash
)fork
/exec
一个子Shell(sh
)用于执行脚本,父进程bash
等待子进程sh
终止。
如果将命令行下输入的命令用()括号括起来,那么也会fork
出一个子Shell执行小括号中的命令,一行中可以输入由分号;隔开的多个命令,比如:
$ (cd ..;ls -l)
和上面两种方法执行Shell脚本的效果是相同的,cd ..
命令改变的是子Shell的PWD
,而不会影响到交互式Shell。然而命令
$ cd ..;ls -l
则有不同的效果,cd ..
命令是直接在交互式Shell下执行的,改变交互式Shell的PWD
,然而这种方式相当于这样执行Shell脚本:
$ source ./script.sh
或者
$ . ./script.sh
source
或者.
命令是Shell的内建命令,这种方式也不会创建子Shell,而是直接在交互式Shell下逐行执行脚本中的命令。
分享到:
相关推荐
**Shell基础——Shell入门资料** 在信息技术领域,Linux操作系统因其开放源码、稳定性和灵活性而备受推崇。Linux的用户界面主要是命令行界面,也就是我们常说的终端或控制台,而Shell则是用户与操作系统交互的接口...
### 大数据Shell入门到精通视频教程知识点概览 #### 一、Shell基础概念与环境搭建 - **Shell简介**:Shell是Unix/Linux系统用户与操作系统之间的交互接口,通过命令行方式实现对系统的操作。 - **Shell种类**:介绍...
Shell 入门:掌握基础与实践 Shell 是操作系统中的一个命令解释器,主要用于与操作系统交互,特别是在Linux和Unix系统中。它不仅提供了丰富的命令集,还允许用户通过编写脚本来自动化执行一系列任务,极大地提高了...
【中文shell十三问--shell入门】是一篇关于Shell基础知识的文章,旨在帮助初学者掌握Shell的基础概念和用法。本文将详细解析其中提到的第三种变量替换方法,即只有当变量已赋值时才用指定值替换的形式:`${variable:...
Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本
"人性化解析shell脚本,快速入门sh、bash、shell入门" Shell脚本是Linux操作系统中的一种编程语言,用于自动化系统管理和任务执行。本文档旨在快速入门Shell脚本,帮助读者快速掌握Shell脚本的基本知识和使用方法...
### Linux Shell 入门基础知识详解 #### 一、Shell简介 **什么是Shell?** Shell是Linux操作系统中的一个重要组成部分,它充当用户与系统内核之间的接口。简单来说,Shell就是一个命令解释器,它能够接收用户的...
Shell 入门实战到精通 Shell 编程语⾔介绍 Shell 编程语⾔是指计算机能理解的语⾔,⼈类通过使⽤计算机语⾔可以给计算机批量下达任务,让其按照⼈类的思想去完成⼯作。最常⻅的语⾔有:汇编语⾔、C语⾔、java语...
【Shell入门学习笔记】 Shell是Linux/Unix操作系统中的一种命令解释器,它为用户提供了与操作系统交互的界面。本文档主要介绍了Shell脚本的基础知识,适用于初学者。 ### 1. Shell脚本基础 1.1 脚本结构 在Shell...
Linux Shell脚本系列教程(一):Shell入门 Linux Shell脚本系列教程(一):Shell入门是Linux操作系统中的一种基本组件, Shell是命令行界面或文本界面,它使得用户能够与操作系统的核心功能进行交互。 一、Shell...
Linux Shell入门教程是针对那些对Linux系统操作感兴趣并希望学习如何使用命令行界面进行有效操作的初学者的理想资源。Shell是Linux系统中的一个命令解释器,它允许用户通过输入命令来与操作系统交互,执行各种任务,...
Linux Shell入门资料主要涵盖的是如何在Linux操作系统中使用Shell脚本进行自动化任务处理和系统管理。Shell是Linux或Unix系统中的命令解释器,它提供了一个用户与操作系统内核交互的界面。通过编写Shell脚本,我们...
### Linux Shell 入门知识点概览 #### 一、Linux 历史与介绍 - **Linux 的起源与发展** - Linux 是一个基于 Unix 的开源操作系统内核,由 Linus Torvalds 在 1991 年创建。 - Linux 的发展受到了 Minix 和 GNU ...
【Linux Shell 入门必读】 Linux Shell 是操作系统与用户交互的重要工具,它是一种命令行解释器,同时也是一种强大的程序设计语言。本文将详细介绍Linux Shell的基础知识,包括其概念、流行种类及基本编程技巧。 *...
shell入门.docx
shell入门.pdf
《Python阮一峰:Fishshell入门教程》 Python开发者在日常工作中经常需要与命令行交互,而Shell作为命令行的接口,其重要性不言而喻。常见的Shell有Bash和zsh,但本文作者阮一峰推崇的是Fish Shell,认为它在易用性...