首页 > 系统相关 >Shell教程

Shell教程

时间:2023-08-10 14:44:05浏览次数:20  
标签:bin 脚本 教程 Shell sh test shell

1.Shell教程

Shell是一个用C语言编写的程序,它是用户使用linux的桥梁。

Shell既是一种命令语言,又是一种程序设计语言。

Shell脚本

是一种为shell编写的脚本程序。

Shell环境

所谓的shell编程跟JS/JAVA编程一样,只要一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

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

(1)Bourne Shell(/usr/bin/sh或/bin/sh)

(2)Bourne Again Shell(/bin/bash)         这是本教程最关注的也是最常用的

(3)C Shell(/usr/bin/csh)

...........

在一般情况下,人们并不区分 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,test,shell
From: https://www.cnblogs.com/ZongZhe/p/17620275.html

相关文章

  • 无涯教程-Perl - glob函数
    描述此函数返回与EXPR匹配的文件的列表,这些文件将由标准Bourneshell进行扩展。如果EXPR未指定路径,请使用当前目录。如果省略EXPR,则使用$_的值。从Perl5.6开始,扩展是在内部完成的,而不是使用外部脚本。扩展遵循csh(以及任何派生形式,包括tcsh和bash)的扩展方式,其翻译如下......
  • CLion入门教程
    1.说点什么以下我将介绍地表最强(可能是之一,别打我)C/C++开发IDE——CLion,以及如何使用它来快乐刷题。工欲善其事,必先利其器。一个好的编程工具对写代码或是做题来说格外重要,尤其是考场上拼手速和debug的时候。首先是各种工具的对比:DEVC++:大伙用的最多的,很方便啊是吧,但是......
  • Window10上CLion极简配置教程
    或许,你是嫌弃VS太麻烦,操作不方便。或许,你是习惯了IDEA的开发。总之,你就是心血来潮想试试CLion。我相信,看到这篇教程的读者可能已经被CLion搞烦了,什么MinGW,Cygwin都是什么鬼,下载慢的要命,安装慢的要命,各种烦。在本人努力爬坑的情况下,总算找到了一种极简的方法。不说了,进入正题......
  • 无涯教程-Perl - getsockopt函数
    描述此函数获取optionsOPTNAME在Socket实现级别LEVEL上在SOCKET上设置的Socketoptions。下表提供了一些OPTNAME在Socket级别的示例值-OPTNAME ResultSO_DEBUG GetstatusofrecordingofdebugginginformationSO_REUSEADDR GetstatusoflocaladdressreuseSO_KEEPA......
  • Dojo mobile TweetView 系列教程之三——Tweets和Mentions视图
    DojomobileTweetView系列教程之三——Tweets和Mentions视图作者:DavidWalsh翻译:Siqi原文:GettingStartedwithTweetView:TweetsandMentions 在上一个教程DojomobileTweetView系列教程之二——TweetView启程 中,我们介绍了将要使用dojox.mobile创建的移动应用程序“Twe......
  • 如何利用PowerShell来监控一个进程中的线程数
    如何利用PowerShell来监控一个进程实际产生了多少个线程$processName="chrome.exe"$process=Get-WmiObject-Query"SELECT*FROMWin32_ProcessWHEREName='$processName'"$threadCount=$process.ThreadCountWrite-Host"Thenumberofthreadsin......
  • 【史上最全面esp32教程】点灯大师篇
    @TOC前言esp32有很多的功能,例如wifi,蓝牙等,这节我们学习最简单的点灯。提示:以下是本篇文章正文内容,下面案例可供参考ESP32简介ESP32模块是ESP8266的升级版本。除了Wi-Fi模块,该模块还包含蓝牙4.0模块。双核CPU工作频率为80至240MHz,包含两个Wi-Fi和蓝牙模块以及各种输入和输出引脚,ES......
  • Linux之shell脚本
    目录一、shell脚本基础1.1shell的作用1.1.1shell脚本的概念1.1.2shell脚本应用场景1.1.3shell的作用--命令解释器1.1.4用户登陆的shell1.2shell脚本的构成1.3shell脚本的执行逻辑和方式1.4脚本错误调试1.5重定向与管道符1.5.1充定向1.5.2管道符二、shell脚本的变量2.1命名要求2.2r......
  • 无涯教程-Perl - getprotoent函数
    描述此函数返回有效协议列表中的下一个条目:($name,$aliases,$protocol_number)语法以下是此函数的简单语法-getprotoent返回值此函数针对错误返回undef,否则返回标量context中的协议编号,并在列表context中返回错误协议记录的空列表(名称,别名,协议编号)。例以下是显......
  • 记录shell脚本漫漫长路one(很基础)
    背景: 实现进程唤醒的一个小需求编程开始:进程探测配置编排唤醒操作一、基础用法if用法:if[command];then符合该条件执行的语句elif[command];then符合该条件执行的语句else符合该条件执行的语句fi例子:不等于空(以下只是简单示例if用法,里边的变量不要强求和较真)i......