首页 > 系统相关 >Shell 简介

Shell 简介

时间:2023-04-02 12:12:27浏览次数:37  
标签:bin 脚本 shell 简介 sh Shell test

C(汇编)、编译原理、操作系统编程、数据结构和算法是打假程序员的核心标尺,这些不懂基本都是假程序员。

因为离开这些搞得那些庞杂的知识体系都是没有根的,就算你记住了所谓的架构原理,也是封装后的一些假象。

Shell 教程

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

Shell 脚本

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。

由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。


Shell 环境

Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux 的 Shell 种类众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

本教程关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。

在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash

#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。


第一个shell脚本

打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。

输入一些代码,第一行一般是这样:

#!/bin/bash
echo "Hello World !"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

echo 命令用于向窗口输出文本。

运行 Shell 脚本有两种方法:

1、作为可执行程序

将上面的代码保存为 test.sh,并 cd 到相应目录:

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 告诉系统说,就在当前目录找。

2、作为解释器参数

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

/bin/sh test.sh
/bin/php test.php

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

标签:bin,脚本,shell,简介,sh,Shell,test
From: https://www.cnblogs.com/hcgk/p/17280221.html

相关文章

  • Thanos工作原理及组件简介
    Thanos简介Thanos是一个「开源的,高可用的Prometheus系统,具有长期存储能力」。很多知名公司都在使用Thanos,也是CNCF孵化项目的一部分。Thanos的一个主要特点就是通过使用对象存储(比如S3)可以允许“无限”存储空间。对象存储可以是每个云提供商提供的对象存储也可以是c......
  • Quine-McCluskey算法简介及其C++代码实现
    AlgorithmListallminterms(anddon'tcareterms)Stepbystepmergingonelayeratatime(notethatonlytwominimumtermswithadistanceof1canbemerged),andpayattentiontoremovingduplicatesFindtheessentialprimeimplicationthrough......
  • shell练习2
    1.编写函数,实现打印绿色OK和红色FAILED判断是否有参数,存在为Ok,不存在为FAILED   2.编写函数,实现判断是否无位置参数,如无参数,提示错误      3.编写函数实现两个数字做为参数,返回最大值   ......
  • Ubuntu 无法连接Xshell
    情况刚下载ubuntu,正确输入账号和密码发现没法打开xshell原因没有安装和开启对应的服务解决方法直接在终端中执行下面的语句sudoapt-getinstallsshsudoapt-getinstallopenssh-server之后在Xshell中正确输入账号和密码就可以了.如果还不行,请先禁用VMnet8,然后等......
  • CSS简介
    CSS是一门语言,用于控制网页表现CSS(CascadingStyleSheet):层叠样式表W3C标准:网页主要由三部分组成结构HTML表现HTML行为JavaScript<!DOCTYPEhtml><htmllang="en"><heah><metacharset="UTF-8"><title>Title</title><st......
  • shell 脚本之一键部署安装 Nginx
    今天咸鱼给大家分享个源码编译安装Nginx的shell脚本 这个shell脚本可重复执行 完整源码放在最后 定义一个变量来存放nginx版本号version=1.15.4 nginx下载地址:http://nginx.org/download/ 下列函数功能则是判断当前步骤是否执行成功,并将结果输出出......
  • 项目一众筹网07_01_SpringSecurity框架简介和用法、SpringSecurity负责的是 权限验证
    项目一众筹网07_01_SpringSecurity文章目录项目一众筹网07_01_SpringSecurity01简介SpringSecurity负责的是权限验证02-SpringSecurity简介03-Spring的注解模式maven引入Spring环境04-准备测试环境05-加入SpringSecurity环境06-实验1-放行首页和静态资源(下一篇)01简介现在主流的权......
  • SHELL创建钉钉群接入机器人推送报警信息(text消息类型)
    步骤一:获取自定义机器人Webhook选择需要添加机器人的群聊,然后依次单击群设置 > 智能群助手。在机器人管理页面选择自定义机器人,输入机器人名字并选择要发送消息的群,同时可以为机器人设置机器人头像。 完成必要的安全设置,勾选我已阅读并同意《自定义机器人服务......
  • xshell - 强制更新 前 备份服务器连接信息
    1.背景今天打开xshell,提示要求强制更新版本,且打不开页面,以前是关闭提示是可以打开的,那么,更新就更新吧,可我配置好的服务器连接信息不可丢2.解决我在这个路径找到了,不同的电脑位置有点差异,基本一致 ......
  • 多线程简介以及线程同步
    1.实现多线程1.1简单了解多线程【理解】是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。1.2并发和并行【理解】并行:在同一时刻,有多个指令在多个CPU上同时执行。并发:在同一时刻,有多个指令......