Shell--基础--01--介绍

2023-10-31

Shell–基础–01–介绍


1、Shell 环境

Shell 编程需要2个环境

  1. 文本编辑器
  2. 能解释执行的脚本解释器

2、Linux 的 Shell 常见种类

  1. Bourne Shell(/usr/bin/sh或/bin/sh)
  2. Bourne Again Shell(/bin/bash)
  3. C Shell(/usr/bin/csh)
  4. K Shell(/usr/bin/ksh)
  5. Shell for Root(/sbin/sh)

在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell

2、脚本

创建执行文件

cd 
vim test.sh

内容

#!/bin/bash
# 告诉系统 解释此脚本文件的 Shell 程序是/bin/bash 
echo "Hello World !"

3、运行脚本

3.1、作为可执行程序 运行

 
#使脚本具有执行权限
chmod +x ./test.sh 
#执行脚本
./test.sh  

在这里插入图片描述

注意

一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样。
因为直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

3.2、作为解释器参数

这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名

在这里插入图片描述

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell--基础--01--介绍 的相关文章

  • C程序调用shell脚本

    我有一个小型 C 程序 调用 shell 脚本 myScript sh 我得到的 ret 值为 256 请帮助我了解系统调用出了什么问题 int main int ret ret system myScript sh ret gt gt r
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • 从 Python 调用 PARI/GP

    我想打电话PARI GP http pari math u bordeaux fr dochtml gpman html仅从Python计算函数nextprime n 对于不同的n是我定义的 不幸的是我无法得到帕里蟒蛇 http code
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • bash 行长度限制从何而来?

    在运行 Bash 4 4 19 标准安装 的 Solaris 11 上 输入行似乎有 256 个字符的限制 我想了解这个限制从何而来 我浏览了手册页 但没有找到任何解决此问题的内容 仅当未使用 readline 库时才会发生这种情况 在下面
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 对目录中的所有文件执行命令

    有人可以提供执行以下操作的代码 假设有一个文件目录 所有这些文件都需要通过程序运行 该程序将结果输出到标准输出 我需要一个脚本 该脚本将进入一个目录 对每个文件执行命令 并将输出连接到一个大输出文件中 例如 要在 1 个文件上运行命令 cm
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 使用 find 命令搜索直到第一个匹配项

    我只需要搜索可以在任何地方的特定目录有没有办法运行此命令直到第一个匹配 谢谢 我现在使用 find noleaf name experiment type d wc l 正如鲁道夫 米尔鲍尔 Rudolf M hlbauer 所提到的 qu
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 如何从 Artifactory 存储库下载最新的工件?

    我需要来自存储库的最新工件 例如快照 人工工厂 http en wikipedia org wiki Software repository Repository managers 该工件需要通过脚本复制到服务器 Linux 我有什么选择
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 如何以管理员身份在 rake 任务中运行 shell 命令?

    我有一个简短的 cmd 文件 我想将其作为部署过程的一部分运行 不幸的是 cmd 文件需要管理员权限 是否可以从 rake 中获得管理员权限 或者我是否需要以管理员身份启动 shell 您可以尝试runas http ss64 com nt
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包

随机推荐

  • 如何让微pe上网_如何用U盘重装系统

    现如今电脑普及程度已经涉及到我们生活中的方方面面 日常生活和工作都离不开电脑 作为一个Window使用者 遇到问题时 能自己独立重装操作系统 是一件很有成就的事情 U盘重装系统是目前比较流行和简单的方法 比过去的使用光盘更加简易 小白也能轻
  • JavaScript-运算符篇

    目录 一 算数运算符 二 递增和递减运算符 1 前置递增 2 后置递增 三 比较运算符 四 逻辑运算符 1 逻辑与 2 逻辑或 3 逻辑非 5 短路运算 逻辑中断 6 赋值运算符 7 运算符优先级 8 流程控制 1 顺序机构 2 分支结构
  • 小朋友高矮排列-华为OD

    题目描述 现在有一队小朋友 他们高矮不同 我们以正整数数组表示这一队小朋友的身高 如数组 5 3 1 2 3 我们现在希望小朋友排队 以 高 矮 高 矮 顺序排列 每一个 高 位置的小朋友要比相邻的位置高或者相等 每一个 矮 位置的小朋友要
  • java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    错误如下所示 查了一下发现是配置文件中的数据库密码错了 并且在代码生成器中 也要修改数据库 在查资料时发现 如果出现的错误是using password YES 那么应该是密码输错了 java sql SQLException Access
  • 深度学习实战12(进阶版)-利用Dewarp实现文本扭曲矫正

    大家好 我是微学AI 今天给大家介绍一下深度学习实战12 进阶版 利用Dewarp实现文本扭曲矫正 我们在生活中会看到一些拍摄扭曲的图片 我们在通过OCR识别的时候 因为扭曲的厉害 而无法识别 我们需要对图片进行处理 文件图像的变形有扭曲
  • HarmonyOS学习路之开发篇—多媒体开发(媒体数据管理开发)

    一 媒体数据管理开发概述 HarmonyOS媒体数据管理模块支持多媒体数据管理相关的功能开发 常见操作如 获取媒体元数据 截取帧数据等 在进行应用的开发前 开发者应了解以下基本概念 PixelMap PixelMap是图像解码后无压缩的位图
  • Javascirp异步编程

    在上一篇彻底弄清Javascirpt中的同步和异步一问当中 介绍了Javascirp代码执行的概念 同步和异步的原理 学习过Javascript语言的同学都知道 从Javascript诞生之日起 就是一门单线程 非阻塞的脚本语言 Javas
  • ArcGIS Server开发Web GIS新手体验

    原创作者 lt 不详 gt 一 前述 原创作品网址 http www vscodes com article 3 2379 html 以下针对于windows操作系统 net开发环境 ArcGIS Server是ESRI公司最新推出的服务器
  • java一行代码实现集合写入Excel表格生成数据

    这里使用maven构建项目 导入依赖
  • 高精度加法c++

    介绍 当我们加出来是一个特别大的数 开了long long都会爆的时候 我们就会用到高精度加法了 原题链接 讲解 其实高精度加法就是模拟的竖式运算 竖式运算会出现进位的情况 比如说最高位的这个1是进位 比原来的3位还多出1位 那么我们就应该
  • 语音去噪深度学习模型论文总结(大多基于transformer)

    深度学习模型 我总结了之前看的模型 并又寻找了基于transformer的模型 挑选了四个性能较好 评判标准是各种语音评价指标 该论文提出的模型与已有模型相比较得到的结果 的模型 其中前面三个是基于transformer的模型 最后一个是基
  • 晒问答

    1 如果好人没好报 还要不要做好人 如果做好人的意义是为了让自己有好报 那便永远逃不出世间规律的死循环 自己的命运和选择要牢牢掌握在自己手中 不做一个被世俗绑架来的好人 也不做一个害怕背负骂名的坏人 2 看书太少和不爱思考哪个更致命 给纯粹
  • Windows 解决端口占用方法

    查询9200端口 netstat nao findstr 9200 删除端口关联进程PID taskkill pid 11560 F
  • ORA-12505, TNS:listener does not currently know of SID given in connect desc

    出现以上的问题是无法识别SID 解决方法如下 1 找到以下目录 opt oracle product 10 2 0 db 1 network admin 修改listener ora find name listener ora即可找到该文
  • 带隔离变压器的DC/DC单端正激变换电路设计与Simulink仿真

    前期已经介绍了4种DC DC变换电路 这4种电路有一个共同特点 输入输出直接电气连接 之间没有做隔离措施 但是在实际应用中 由于电压等级的变换 安全 系统串并联等原因 开关电源的输入和输出之间需要进行电气隔离 在基本的非隔离DC DC变换电
  • R语言课程资料

    第一节 R语言简介 R语言简介 R 既是一种语言 R是一种解释性语言 也是一个软件由AT T贝尔实验室的S语言发展而来具有统计分析功能和强大的作图功能开源软件 目前在 R 网站上有 17500个程序包 涵盖了基础统计学 社会学 经济学 生态
  • 【ARM】在NUC977上搭建基于boa的嵌入式web服务器

    一 实验目的 搭建基于arm开发板的web服务端程序 通过网页控制开发板LED状态 二 boa简介 Boa服务器是一个小巧高效的web服务器 是一个运行于unix或linux下的 支持CGI的 适合于嵌入式系统的单任务的http服务器 源代
  • C# 调用SQL Server存储过程,传入参数,返回查询结果,更新dataGridView

    调用SQL Server存储过程 传入参数 返回查询结果 using SqlConnection conn new SqlConnection connectionString String cmdText Screen 存储过程名 Sql
  • Bible读经体会

    诸天述说 神的荣耀 穹苍传扬他的手段 诗篇19 1 花草树木在喊叫 耶和华造我的 数学从耶和华而来 自然界自然启示从耶和华而来 里面体现了耶和华的创意无限和思路周全 我们默默欣赏着观看着 今天阅读了创世纪的一点点体会 做下笔记 请勿用验证的
  • Shell--基础--01--介绍

    Shell 基础 01 介绍 1 Shell 环境 Shell 编程需要2个环境 文本编辑器 能解释执行的脚本解释器 2 Linux 的 Shell 常见种类 Bourne Shell usr bin sh或 bin sh Bourne A