热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎么编译shell_运维如何才能学好Shell?

Shell是种命令解释程序,也可以看作是一种命令语言的解释器。用户在与Shell交互时所输入的命令行必须符合Shell命令的语法和语义规范,才能够被Sh

c7f78790ef18c7c229ecbdd7f2682810.gif

Shell是种命令解释程序,也可以看作是一种命令语言的解释器。

用户在与Shell交互时所输入的命令行必须符合Shell命令的语法和语义规范,才能够被Shell理解并执行。

Shell所使用的这种命令语言称为Shell 语言。Shell语言不仅仅是一种交互式语言, 它还是一种可编程的程序设计语言。将若干个Shell命令行写入个文件就构成了一个Shell程序,它可以被Shell逐条地解释执行。

用Shell语言编写的Shell程序可以使用各种变量、参数和控制结构来组织命令流程,自动化地完成各种复杂冗繁的处理工作。

Linux系统中广泛使用了Shell程序来实现系统的初启、配置、管理和维护等工作。因此,熟练掌握Shell语言可以更加深入地理解系统的运行机制,更加有效地使用和管理系统。

Shell 语言的特点

与其他编程语言相比,Shell 语言具有如下特点:

(1) Shell是一种解释性语言。

这就是说,用Shell语言写的程序不需编译,可以直接由Shell进程解释执行。解释性语言的特点是快捷方便,可以即编即用,但与编译性语言的目标程序来比,解释性语言程序的运行速度要低一些。

(2) Shell 是基于字符串的语言。

Shell 只是做字符串处理,不支持复杂的数据结构和运算。Shell 的输出也全部是字符方式的。

(3) Shell是命令级语言。

Shell 程序全部由命令而不是语句组成,几乎所有的Shell命令和可执行程序都可用来编写Shell程序。Shell命令十分丰富,命令的组合功能也十分强大。所以,用简单的命令和命令组合形成的Shell程序即简洁又高效,可以实现各种复杂的功能。另外需要说明的是,不同版本的Shell程序不完全兼容,差别可能是细微的,也可能是明显的。

Shell 程序

Shell程序也称Shell脚本(script),是由一系列 Shell命令为基本元素构成的文本文件。简单的Shell程序可以只是一个命令序列,高级Shell程序中还可以包含复杂的命令组合,定义各种参数和变量、使用条件命令、控制结构以及其他高级特性。

Shell程序的建立与执行
Shell脚本文是文本文件,因此可以用任何文本编辑器(如vi, emacs等)建立和编辑脚本。Shell脚本文件的名称没有限定的拓展名,通常不带拓展名或者带“.sh”拓展名。 
Shell脚本的执行方式主要有3种。

1.    $ chmod a+x hello  2.    $ ./hello 

(1)将脚本作为可执行文件执行:

用文本编辑器生成的脚本文件默认是没有x权限的,也就是说是不可直接执行的。赋予x权限后,脚本就可以像一般的 Shell命令那样执行了。如果脚本不在系统存放命令的标准目录下,需要在执行时指定脚本的路径。上例中脚本hllo放在当前目录下,所以要用.hello来运行。

(2)启动一一个Shell子进程来执行脚本文件:

1.    $ bash hello  #或bash 

执行此命令行时,Shell 进程先启动一个bash子进程,让它执行hello脚本的内容,执行完毕后bash子进程也终止。在这种方式中,脚本是作为命令参数传给子Shell 的。子Shell运行时读取该文件并执行其内容,因此脚本文件不必有执行权限。这种方法常用于运行一个其他版本的Sbell脚本。假如当前Shell是bash,而chello是用C Shell语言写的脚本,则要执行这个脚本时可以用csh chello命令启动一个csh进程来执行它。

(3)让当前Shell进程执行脚本文件:

1.    $.hello    

“.”是一个shell内部命令,hello是它的参数。命令的功能是读取参数指定的文件,执行其内容。这种执行方式与第2种方式类似,区别在于此方式是由当前Shell进程来执行脚本文件的。

如何学好 Shell?

前面大致简介了一下什么是Shell脚本,它有什么特点,做什么用的,想必现在大家对这个有了一定程度的了解,当然这只是学习Linux操作系统中所接触到的冰山一角,想要学好Linux操作系统,就必须学好Shell,那怎么样才能学好Shell呢?我们先看一个简单的Shell程序:

1.    $ cat hello       # hello program  2.    # this is a shell script to say hello  3.    echo Hello World!  4.    echo -n “Today is”  5.    date “+%A,%B %d,%Y.”  6.    $.hello  # run  7.    Hello World!  8.    Today is Sunday, July 15, 2018.  9.    $_  

这个hello程序的第二行是注释,后面3行是命令,在执行程序时,shell依次执行这3个命令,并输出显示信息。这就是一个简单的hello world代码,几乎所有的程序员学习如何编写代码都是从这里起家的。

学习linux运维,这是必经之路,不管是自学呢,还是参加培训,不过在我看来,学习技术还是的有一个完整的体系,不管你学不学,资料就在哪里不断增多;不管你学不学习,时间就那么多,逐渐流逝!

祝各位运维人前程似锦!加油!!!

达内为帮助零基础想转行的学员选对方向,特推出为期5天26门热门互联网技术任意免费学,11月免费课程抢先中!运维技术免费学,莫错良机,扫码抢免费听课名额!

fdb2e7171e5671ffa9c7bc9ac6c354d9.png

如有疑问,速寻达妹微信:tedu521;达妹QQ:3535503962。

精彩推荐:

  • 拿到认证就奖励1万!这个证对运维来说有多重要?

  • 惊喜!华为认证和红帽认证证书可抵扣个人所得税!

  • 什么是红帽认证?运维拿红帽认证有何优势?

  • 达内教育面向全国用户提供免费课程!(文中申请)

3cfddc0bd6534dc70e21e7066a828142.png

0f293e86cf7fa643cadcf7b37d8962e8.gif点击“



推荐阅读
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 在Linux/WSL环境中,本文对Shell任务的并行处理进行了详细的测试与分析。通过多种并行处理技术,如GNU Parallel和xargs,探讨了如何有效提升任务执行效率和系统资源利用率。实验结果表明,合理配置并行参数能够显著缩短任务完成时间,提高系统整体性能。此外,文章还介绍了Shell脚本编写的基本原则和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 如何在Linux环境中高效地创建、编译与运行C语言代码
    本文面向第一次在linux尝试写C语言程序的新人。有经验的请绕行。C语言用法不是本文介绍的关键,本文只是引入如何第一次在linux系统下编写、编译和执行一个简单的c程序。学会后请自行深入 ... [详细]
  • CentOS7系统目录LINUX有四种基本文件系统类型普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、 ... [详细]
  • BashShell作为Linux的指定合作伙伴我们已经再熟悉不过了,使用Bash可以快速编写简单的脚本方便我们的日常比如善用vim,awk和sed三剑客,也可以创建十分复杂的逻辑, ... [详细]
  • Haskell学习笔记:探索函数式编程之美
    使用教材:《learnyouaHaskell》,中文1-8章戳我准备工作。编译器&调试器:安装HaskellPlatform, ... [详细]
  • mysql和php的关系理解(php技术和mysql怎么结合)
    本文目录一览:1、apachephpmysql他们是什么关系 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • linux用通配符排除指定字符结尾文件的一种方法,Go语言社区,Golang程序员人脉社 ... [详细]
  • 深入解析:Android开发进阶之Vim编辑器基础操作与应用
    本文深入探讨了Android开发中使用Vim编辑器的基础操作与应用。通过详细解析Vim的基本命令、配置文件和常用插件,帮助开发者提高代码编写效率。文章还介绍了如何在Android开发环境中高效利用Vim,包括集成开发环境(IDE)的配置和常见问题的解决方法。适合初学者和有经验的开发者参考。 ... [详细]
  • 系统管理员可以通过多种方法实时监控Linux系统中的用户活动,包括当前已登录的用户及其正在进行的操作。利用特定的命令和工具,管理员可以轻松获取这些信息,确保系统的安全性和稳定性。例如,使用`who`、`w`或`last`等命令可以快速查看当前登录的用户及其活动详情。 ... [详细]
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • SpringBoot启动脚本详解:BAT文件应用与基础入门指南(SpringBoot系列第1篇)
    如果你还在为SSM框架的复杂搭建过程和繁琐的配置文件而烦恼,那么SpringBoot将是你的一大福音。作为SpringBoot系列的第一篇文章,本文详细介绍了如何使用BAT文件来启动SpringBoot应用,并提供了基础入门指南,帮助开发者快速上手,简化开发流程。 ... [详细]
  • ANSI
    ANSI是什么编码?用Notepad创建一个文本文件text.txt,其默认编码格式为ANSI(乍看之下,还以为是ASCII ... [详细]
author-avatar
心痛则痛1314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有