首页 > 系统相关 >shell和bash 你是不是傻傻分不清?什么又是shell脚本

shell和bash 你是不是傻傻分不清?什么又是shell脚本

时间:2024-07-30 15:27:38浏览次数:11  
标签:脚本 Shell 傻傻 文本 命令 shell 执行 bash

什么是shell

Shell在计算机科学中是指一个提供给用户使用操作系统功能的接口。这种接口可以是图形化的,也可以是基于文本的命令行接口。

在Linux和Unix-like系统中,“shell”一词通常特指命令行接口(Command Line Interface, CLI)。它允许用户通过键入命令来与操作系统交互。Shell接收用户的命令,然后将其传递给操作系统的内核去执行。之后,它将执行结果返回给用户。

有许多不同类型的shell,每个都有自己的特性集和语法。
最常见的Linux shell 包括:

  • Bash (Bourne Again Shell): Bash是许多Linux发行版的默认shell,以及MacOS之前版本的默认shell。它是Bourne Shell (sh) 的增强版,提供了更多的功能和改进。
  • Tcsh / Csh (C Shell): Csh的语法和C编程语言类似。Tcsh是Csh的改进版本,添加了命令行编辑等特性。
  • Zsh (Z Shell): Zsh包含了Bash的许多特性,并且还加入了自己的额外功能,如改进的自动补全和主题支持。
  • Fish (Friendly Interactive Shell): Fish是设计来易于使用的,它提供了丰富的功能,比如高级自动补全和人性化的界面。

在shell中,用户可以运行各种各样的命令,从文件管理、查看系统信息到复杂的脚本编写等等。由于命令行界面没有图形,它依赖于输入的文本命令和返回的文本输出,这使得它非常灵活和强大,尤其是对于那些已经熟悉了命令和脚本的用户。
Shell脚本是一系列以文本形式保存的命令集合,可以被shell顺序执行,这使得自动化复杂的任务成为可能。

总结来说,shell是用户和Linux操作系统之间互动的媒介,类似于Windows中的命令提示符或PowerShell,但功能要更加强大和灵活。

那为什么会有shell脚本一说?

Shell 脚本的出现是为了允许用户自动化命令行任务,使得重复性或复杂的操作可以方便地一次性执行。使用 Shell 脚本可以组合多个命令,创建更加强大和灵活的工具,提高工作效率。以下是 Shell 脚本存在的几个原因:

  • 自动化: 通过将一系列命令和逻辑写入一个脚本文件中,您可以简单地运行该脚本来自动执行这些命令。这种自动化对于定期需要运行的任务尤其有用。

  • 批处理: Shell 脚本通常用于批处理大量文件,例如批量重命名、转换格式或提取数据。

  • 系统管理: 系统管理员使用 Shell 脚本来管理系统状态,如备份、更新、监控系统性能等。

  • 编程功能: Shell 提供了许多传统编程语言的特性,如变量、循环、条件判断和函数,允许开发者写出相对复杂的程序。

  • 快捷方式: 如果您经常需要输入长串的命令,可以把它们写入一个脚本中,以后就可以简单地调用脚本而无需重新输入全部命令。

  • 可移植性: Shell 脚本基于文本,不依赖于特定的IDE或编译器,通常在任何类Unix系统上都可以运行,只要交互的Shell类型(如Bash, Zsh等)兼容。

  • 集成和扩展: Shell 脚本可以轻松地调用其他命令行工具和程序,也可以通过各种各样的命令和资源与操作系统进行交互。

事实上,Shell 脚本是 Unix 和 Linux 系统管理的一个核心工具。由于它们是基于文本的,所以易于编辑和分享,并且可以通过常见的版本控制系统进行管理。此外,学习 Shell 脚本是理解操作系统工作方式的好方法,这在很多情况下都是一项非常宝贵的技能。

什么是脚本?为什么叫脚本?

像javascript、shell这类是不是可以写入一个文本文档,然后直接被解释器执行(nodejs、bash)

创建一个名为 script.js 的文件
写入
console.log('Hello, World!');
命令行执行
node script.js

script.sh
 用vim 编辑
#!/bin/bash
echo "Hello, World!"
保存后 赋予执行权限
chmod +x script.sh

如果你在当前目录下,可以通过在脚本名前加上 ./ 来执行脚本:
sh
./script.sh

bash script.sh 可以用解释器直接执行

“脚本”(Script) 这个词在计算机编程语境中指的是一种用来自动化执行任务的编程代码。脚本通常由一系列命令组成,可以由解释器直接逐行读取和执行,而不需要像编译型语言那样事先编译成机器语言。

以下是为什么它们被称为“脚本”的一些原因:

  • 轻量级: 脚本通常比完整的程序简单,大小较小,并且易于编写和理解。

  • 即时执行: 脚本语言设计成被解释执行,这意味着代码可以立即运行,而无需编译过程。这使得开发者能快速测试和修改代码。

  • 自动化流程: 脚本最初的目的之一就是自动执行操作系统中的常规任务,如批处理文件、管理系统配置、运行定期的备份等。

  • 灵活性: 脚本允许用户快速地更改程序的行为,只需编辑文本文件即可调整脚本逻辑。

  • 文本形式: 脚本是以纯文本形式保存,使得它们容易使用普通的文本编辑器进行编辑、共享和分发。

  • 支持交互: 脚本常常用于创建交互式环境,如Shell脚本可与用户进行交互、获取输入并提供输出。

另外,“脚本”一词也可能源自早期的电影和戏剧产业,其中“剧本”或“脚本”是演员和导演用来指导演出的文字记录。类似地,在计算机世界里,“脚本”是计算机用来执行一连串操作的指令集。

Shell脚本是这一概念的一个实例,它包含了一系列的Shell命令,以文本形式存储,并可被Shell程序读取和执行。这些脚本大大简化了系统管理和任务自动化的复杂性。其他类型的脚本语言还包括Python、Ruby、Perl和JavaScript(尤其是Node.js环境下)。

标签:脚本,Shell,傻傻,文本,命令,shell,执行,bash
From: https://blog.csdn.net/weixin_45705239/article/details/140797674

相关文章

  • Finalshell下载Docker【Linix】
    1、卸载旧版本(第一次安装可跳过)yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine2、安装yun库yuminstall-yyum-utils3、配置y......
  • Windows系统CMD和PowerShell常用命令
    目录CMDPowerShellCMD检查端口查看所有端口:netstat-ano带过滤器:netstat-ano|findstr<端口号>检查进程进程列表:tasklist带过滤器:tasklist|findstr<进程名或PID>杀掉进程:taskkill/f/t/im<PID或服务名>文件处理重命名文件ren<路径\文件名>删除文件......
  • Linux Shell远程执行命令
    shell远程执行:    经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了。一下介绍两种shell命令远程执行的方法。 前提条件:配置ssh免密码登陆对于简单的命令:如果是简单执行几个命令,则:ssh......
  • git 、shell脚本
    git文件版本控制 安装gityum-yinstallgit创建仓库将文件提交到暂存gitadd.#将暂存区域的文件提交仓库gitcommit-m"说明"#推送到远程仓库gitpush#获取远程仓库的更新gitpull#克隆远程仓库gitclone#分支,提高代码的灵活性#检查分支gitbranch#......
  • 【Linux中Shell的功能】
    一、Shell概念Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell编程跟JavaScript、php编程一样,只要有一个......
  • linux shell read 按列读取txt文本
    前言全局说明一、说明通常情况下,如果文本里有多列数据,会先读入,然后用grep和awk先拆分成行,在拆分成列。这样费时费力,遇到特殊字符行,还不好处理。在解决别的问题时候,无意发现read有直接按列读取的功能。二、文件2.1存放两列数据的文件文件名:list.txt1libCommonA......
  • Linux shell mktemp -d命令生成临时文件
    前言全局说明一、说明二、mktemp命令2.1创建临时文件mktemp2.1创建临时目录mktemp-d三、命令行示例mktempll/tmp/tmp.fvi5gFbDgr四、sh脚本使用4.1创建tmpfile=$(mktemp)4.2删除rm"$tmpfile"免责声明:本号所涉及内容仅供安全研究与教学使用......
  • shell执行脚本的方法
    执行脚本的方法(1)bash./filename.sh(产生子进程,再运行,使用当前指定的bashshell去运行)(2)./filename.sh(产生子进程,再运行,使用脚本里面指定的shell去运行。使用该种方式执行需要x权限)(3)source./filename.sh(source命令是一个shell内部命令,其......
  • shell
    1、写一个shell脚本,计算1+2+……+n共n个值的和,n值由用户输入2、让用户输入一个文件名,分别输出该文件的所在目录和该文件的扩展名3、判断用户输入的数值是几位数4、统计用户输入的目录文件中文件的个数[root@localhost~]#catsum......
  • 使用 powershell 或 python 从网页列出公司名称
    我希望使用PowerShell或python仅列出URL中的公司名称:https://www.moneycontrol.com/markets/earnings/results-calendar/?activeDate=2024-07-29下面是我的python脚本用于获取网页的结构:importrequestsfrombs4importBeautifulSoup#URLo......