我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell怎么使用

这篇文章主要为大家展示了“Shell怎么使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell怎么使用”这篇文章吧。

Shell 运行程序方法:1、使文件具有可执行权限,直接运行;2、直接调用命令解释器执行程序;3、使用 source 命令执行程序。

Shell怎么使用

     上图是一个完整的、可执行的 Linux Shell 程序,使用上述第一种方法运行此程序,结果如下:

Shell怎么使用

     可以看出,当前目录并未被程序中的代码改变。
     当命令行 shell 执行程序时,首先判断程序是否具有执行权限,然后调用 Linux 内核命令新建(fork)一个进程,在新建的进程中调用指定的命令,如果程序文件是编译型(为禁止文件),则 Linux 内核知道如何执行。但是,上图中的 echo.sh 程序文件是文本文件,内核不知道如何执行。于是内核返回“not executable format file”(不是可执行的文件类型),当 shell 收到这个消息时,则判定此文件是一个脚本。
     当 shell 判定此文件为脚本后,启动一个新的 shell 执行它。但是现在的 Linux 系统一般都有好几个 shell,通过脚本的第一行“#!”告诉运行 shell 创建一个相应的进程来执行脚本。

Shell怎么使用

   
     上图就是运行 shell 程序的第二种方法:调用命令解释器执行脚本。

Shell怎么使用

   
     上图是运行 shell 程序的第三种方法:直接使用 source 命令(也被称为点命令)执行脚本。

  1.    
        Linux Shell 可执行的命令有三种:内建命令、shell 函数和外部命令。


     内建命令就是 shell 程序本身包含的命令,这些命令集成在 shell 解释器中,例如 cd、echo 等。在执行内建命令时,没有进程的创建和消亡。
     shell 函数是一系列程序代码,以 shell 语言写成,可以像其他命令一样被引用。
     外部命令是独立于 shell 的可执行程序,例如 find、grep、echo.sh。命令行 shell 在执行外部命令时,会创建一个当前 shell 的复制进程来执行,因此存在进程的创建和消亡。执行过程如下:

Shell怎么使用


     子进程在创建初期和父进程一模一样,但是它不能改变父进程的参数变量。只有内建命令才能改变环境变量。
     通过上面的解释,在使用前两种方法执行 shell 脚本时,执行过程如下:父进程接收到命令“./echo.sh”或“/bin/bash echo.sh”时,发现不是内建命令,于是创建了一个和自己一模一样的子进程来执行这个外部命令;子进程用 /bin/sh 取代自己,sh 进程设置自己的运行环境变量;sh 进程依次执行内建命令 cd 和 echo,环境变量被改变,但是父进程的环境变量并没有受到改变;sh 子进程执行完毕,消亡。父进程从等待状态醒来继续接收命令。
     而使用 source 命令执行 shell 脚本时,没有子进程的创建与消亡,而是直接在父进程中执行。


    
    变量(variable)实际上是一个键值对,例如 str="Hello",就是将字符串值(value)“Hello”赋予键(key)str。在 str 的使用范围内,都可以使用 str 来引用“Hello”值,这个操作叫做变量替换。Shell 中的变量名称以一个字母或下划线开始,后面接任意长度的字母、数字或下划线。而且它对变量类型不做区分,一切值都是字符串,键值都没有长度的限制,但是在值为数字的时候,bash 是允许进行比较操作和整数操作的。键值对赋值的时候,等号两边不能有任何的空格,想要使用变量名称获取值,需要使用 $ 符号,当赋值的内容包含空格时,需要加上引号。

Shell怎么使用

     
     需要注意的时,使用 $ 符号获取变量值的时候,只是 ${with_space} 的简写形式,在某些上下文中,使用 $with_space 可能会引起错误,这时就需要使用完全形式了。当变量没有 $ 前缀出现的时候,可能是如下几种情况:变量被声明或赋值、变量被 unset、变量被 export。
     变量赋值可以使用等号,也可以在 read 命令中或者循环头进行赋值,例如 for var in 1 2 3。被双引号括起来的变量替换是不会被阻止的,因此它被称为部分引用或弱引用,而使用单引号将会禁止变量替换,变量名只会被解释成字面的意思,因此单引号被称为全引用或强引用。在 shell 中,变量值可以是空值(NULL),这很常见且合理,但是在算术运算中,空值变量往往被看作 0,不过这是一个为文档化(同时可能是不可移植)的行为。

Shell怎么使用


     Linux Shell 中变量类型有两种:局部变量可见范围在代码块或函数中,并且必须明确以 local 声明,否作它是全局可见的;全局变量(例如环境变量)可见范围为全局,不需要加任何修饰词。

Shell怎么使用

Shell怎么使用

     上图中执行了一个变量相关的程序,运行结果如下:变量 num 初始值为 123;调用 func1() 函数将它赋为 321,需要注意的是此处是修改了全局变量;调用 func2() 函数将它赋为 456,此处赋值加上了 local 声明,因此修改的是局部变量。
     echo 命令通常用来将各个参数打印到标准输出。参数间以一个空格隔开,在输出打印结束后,换行。下图为它的转义字符序列。

Shell怎么使用

     export 命令通常用来设置环境变量,但是这里设置的环境变量,仅仅作用于当前进程,进程消亡之后就会消失;也就是说子进程用 export 命令设置的变量无法影响到父进程。但是如果使用 source 方式调用脚本,脚本里有 export 命令修改了环境变量,则会影响到父进程。
     env 命令不带参数的情况下,显示所有环境变量,-i 参数表示不带环境变量,-u 参数表示从环境变量中删除一个变量。(与 set 函数显示所有本地变量不同,env 函数只显示环境变量)
     unset 命令默认为删除变量(-v 参数),如果使用 -f 参数,则被视为删除函数。
     
    语言类型:计算机内核(CPU)不能直接理解高级语言(Linux Shell、Java、Python 等),只能直接理解机器语言,所以必须把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
     翻译的方式有两种:一个是编译(compile),一个是解释(interpret),这两种方式只是翻译的时间不同。编译型语言在执行程序之前,需要一个专门的编译过程,把程序编译成机器语言的文件,在之后的运行中,就不用重新翻译了。解释性语言不需要编译,只是在程序运行的同时进行翻译,通常会有一个专门的解释器(

例如 Linux Shell 中的

/bin/sh、bash、zsh、csh 等)。
     两种类型的语言,差异如下:许多中、大型程序都是用编译型语言(例如 C/C++、Java、Fortran)完成,它们的源代码文件(source code)经过编译之后转为目标代码文件(object code),机器才能读取并执行目标代码文件;编译型语言高效,但是由于贴近于机器底层,难以执行上层的一些简单操作(例如 C++ 难以对某目录下的所有文件批量重命名),而解释型语言执行层面高于编译型语言,因此能轻松完成一些高级操作;脚本语言(Shell、Perl、Python、awk、Ruby 等)都是解释性语言。
     (Python 是一种解释型语言,但是它采用了 Java 语言的 VM 机制,提供了编译功能,它的源代码文件经过编译后,产生了字节码文件(bytecode),可以节省加载模块的时间从而提高效率)

以上是“Shell怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell怎么使用

这篇文章主要为大家展示了“Shell怎么使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell怎么使用”这篇文章吧。Shell 运行程序方法:1、使文件具有可执行权限,直接运行;2、直接调
2023-06-06

mysql shell怎么使用

MySQL Shell 是MySQL 8.0中新引入的交互式命令行工具,它提供了一种更现代化和强大的方式来与MySQL数据库进行交互。下面是使用MySQL Shell的步骤:1. 安装MySQL Shell:首先确认你已经安装了MySQL
2023-08-18

python Scrapy shell怎么使用

本文小编为大家详细介绍“python Scrapy shell怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“python Scrapy shell怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前
2023-06-29

Shell的Zsh怎么使用

这篇文章主要介绍了Shell的Zsh怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Shell的Zsh怎么使用文章都会有所收获,下面我们一起来看看吧。Zsh 是一款功能强大的 Shell 软件,既可以作为
2023-06-27

Shell过滤器怎么使用

这篇文章主要介绍“Shell过滤器怎么使用”,在日常操作中,相信很多人在Shell过滤器怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell过滤器怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-09

case怎么在shell中使用

这期内容当中小编将会给大家带来有关case怎么在shell中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该
2023-06-09

sqlmap之os shell怎么使用

这篇文章主要介绍“sqlmap之os shell怎么使用”,在日常操作中,相信很多人在sqlmap之os shell怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”sqlmap之os shell怎么使用
2023-07-05

shell脚本语言怎么使用

Shell脚本语言是一种在Unix/Linux操作系统上使用的脚本语言,用于编写批处理命令。下面是使用Shell脚本的基本步骤:1. 创建一个新的文本文件,后缀名为.sh,例如:script.sh。2. 在文件的第一行添加Shebang,指
2023-08-18

Shell编程中Shift怎么使用

在Shell编程中,`shift`命令用于将命令行参数列表向左移动一个位置。它会丢弃第一个参数,并将所有参数的位置向左移动一个位置。以下是`shift`命令的使用方式:```shellshift [n]````n`是一个可选的数字参数,指定
2023-08-09

Shell中while循环怎么使用

本文小编为大家详细介绍“Shell中while循环怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Shell中while循环怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。while 循环是 She
2023-06-27

shell四则运算怎么使用

在Shell中,可以使用各种工具和语法来进行四则运算。1. 使用`expr`命令:`expr`命令可以用来进行简单的算术运算,例如加法、减法、乘法和除法。下面是一些示例:```shell# 加法result=$(expr 2 + 3)ech
2023-09-08

Shift怎么在Bash Shell中使用

这篇文章给大家介绍Shift怎么在Bash Shell中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。shift可以用来向左移动位置参数。Shell的名字 $0第一个参数 $1第二个参数 $2第n个参数 $n所有参
2023-06-09

shell的双括号怎么使用

这篇文章主要介绍“shell的双括号怎么使用”,在日常操作中,相信很多人在shell的双括号怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell的双括号怎么使用”的疑惑有所帮助!接下来,请跟着小编
2023-06-28

linux中怎么使用shell取余

在Linux中,可以使用`%`符号来进行取余操作。下面是一个示例:```shell#!/bin/basha=10b=3result=$((a % b))echo "结果是:$result"```在这个例子中,我们定义了两个变量`a`和`b`
2023-08-08

shell脚本之sed怎么使用

这篇文章主要介绍“shell脚本之sed怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“shell脚本之sed怎么使用”文章能帮助大家解决问题。sed的作用sed是Stream Editor(
2023-07-02

awk print怎么在shell中使用

这期内容当中小编将会给大家带来有关awk print怎么在shell中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。awk 的工作原理:1。AWK读取输入文件一次一行。2。对于每一行,它匹配在给定的顺
2023-06-09

怎么在shell中使用变量

怎么在shell中使用变量?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。变量删除和替换案例:从头开始匹配,将符合最短的数据删除 (#)variable_1="I
2023-06-09

Linux 中怎么使用Shell脚本

Linux 中怎么使用Shell脚本,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux Shell脚本示例在Linux上完成的大多数shell脚本都涉及bash sh
2023-06-16

怎么使用Shell解析处理XML

这篇文章给大家分享的是有关怎么使用Shell解析处理XML的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言前几天在干活的时候遇到一个需要解析处理xml文件的一个需求,当时考虑到逻辑比较复杂,因此用java慢慢搞
2023-06-09

shell脚本中/dev/null怎么使用

在Shell脚本中,/dev/null用于丢弃输出或输入。下面是一些/dev/null的使用示例:1. 丢弃输出:```shellcommand > /dev/null```这将运行命令并将其输出重定向到/dev/null,而不是在标准输出
2023-08-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录