学习使用linux系统,绕不过去的就是shell脚本编程,在编写shell脚本之前。当然还要熟悉linux上的一些常用的命令(ls、mv、alias、cp、crontab、find、grep、mkdir等等很多),只有熟悉了linux上的命令才能进一步学习linux上的shell编程。

虽然linux现在的图形界面做的也已经不错了,但linux上最重要最便捷的操作还是通过命令行(也就是只有黑底白字的窗口)实现的,图形界面只是实现了其中的一部分功能,而且图形界面(如:KDE、GNOME等)只是linux上的套件,并不是linux上必备的软件,完全可以在不需要的情况下删除掉。所以要想学好linux,还是要熟悉命令和shell脚本,这是基础。

那什么是shell脚本呢?一说脚本好像不太懂是什么东东,脚本只是对某一种文件的称呼而已,实际上还是用户可读的文本文件。而该文件中写的不是令人捧腹的笑话,也不是文章,更不是你对某个学科所做的笔记,而是一堆命令,对,就是一堆命令。如果每个命令都是一个东西(比如一本书),那shell脚本就是盛放书籍的箱子,而书籍在其中是按照一定的顺序排放的。

那shell脚本到底是什么呢?慢慢听我说,你可能使用过ls命令,很简单,显示当前目录的文件嘛。那多次执行各种命令(比如要生成一个含有hello的文件,并且将该文件命名为test,然后将文件重命名为test.txt,最后浏览当前目录然后将输出信息写入到该文件但不能覆盖掉hello。这样是不是就比较难一些了)。这样的一个任务分成了好多步骤执行,就要在终端下输入很多次的命令,但如果重新来一遍的话,还要重新输入。累不累啊?很累。大牛们感觉这样实在不是办法,就想了个主意,将这些命令依次序写到一个文件中,然后开发了一个叫做shell的程序去从上到下、从左到右读取文件中的内容来替代手动输入的内容。就这样,我们只需要让shell读一下文件即可了,是不是很省事了。而这样的文件就被称为shell脚本。

而实际上处理的任务比上面举的例子要复杂的多啊,简单的罗列命令的方式不好用啊,而且很多时候重复的内容能不能只写一次在多处调用呢?当然。大牛们为了偷点懒省电时间又为shell增加了一些语法,因此就出现了if-else 和 for循环、while循环等控制语句以及函数function,增加了shell的功能和复杂度。而这些控制语句和函数是借鉴的编程语言(比如C),因此编写shell脚本的过程又叫做shell编程。
因此在linux下,当使用者面对重复繁重的命令操作时,就可以将linux中的命令或者shell内置的命令,通过控制语句的编排,写入到一个文本文件中就成了shell脚本。然后给予该文本一个可执行权限,把该文件交给shell执行。那这样就完成了shell编程,是不是既便捷又轻松还显得高大上呢?

转载于:https://www.cnblogs.com/JZZ1026/p/4417303.html

你是这样理解shell编程的嘛?相关推荐

  1. 【Linux命令行与Shell脚本编程】第五章 理解 Shell 父子关系 后台进程 协程

    Linux命令行与Shell脚本编程 第五章 理解 Shell 文章目录 Linux命令行与Shell脚本编程 五,理解 Shell 5.1,shell的类型 5.2,shell的父子关系 5.2.1 ...

  2. Bourne Shell及shell编程

    Bourne Shell及shell编程<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office ...

  3. Powershell快速入门(二) Shell编程

    这一部分着重于介绍Powershell的程序知识,让我们能够编写功能强大的Powershell脚本,执行比较复杂的任务. 变量 变量使用$变量名创建和引用.举个例子,Get-Location命令用于获 ...

  4. (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单

    (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 原文 (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu ...

  5. shell编程必须要掌握的命令-xargs

    一,说xargs命令前,说一下什么是shell编程 什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情.纯属个人理解,哈哈.不管是交互式的shell,还是非交互的shel ...

  6. Linux Shell编程基础

    linux系统下给命令指定别名alias命令用法: 在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名.虽然可以为命令建立"链接"解决长文件名的问题,但 ...

  7. Linux Shell 编程学习总结

    Shell 教程 Shell简介:什么是Shell,Shell命令的两种执行方式 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成 ...

  8. Shell 编程快速入门

    什么是Shell脚本? Shell脚本(英语:Shell script)是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作.被当成是一种脚本语言来设计 ...

  9. linux shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select 学习笔记

    SHELL编程一UNIX和Shell工具简介 什么是shell? shell只是一个程序,它在系统中没有特权.因此,有多个不同风格shell共同存在原因--Bourne Shell,Korn Shel ...

最新文章

  1. 快排递归非递归python_Python递归神经网络终极指南
  2. H5 客户端设置title 滑动验证码
  3. CS184.1X 计算机图形学导论 第8讲 学习笔记
  4. (11)vue.js 指令(3)
  5. logback之使用demo
  6. Bolt XML和JQBolt Lua代码自动补全插件配置教程
  7. 获取公司的maven库 和 idea maven 中Projects Settings的Libraries中正常,但是在Maven Projects中Dependencies一直出现红线的解决办法
  8. MATLAB 插值与拟合
  9. 脉宽调制功能(PWM)
  10. 实现DevOps的三步工作法
  11. Springboot 中类不能使用@Value注解从yml中加载值
  12. 奶爸级教学---webpack详细教学
  13. 专题-参数方程与极坐标
  14. H5C3进阶——播放器
  15. Hermite Polynomials(厄米多项式)
  16. 汽车can网络分析仪汽车CAN
  17. eaysUI版本兼容问题
  18. Excel操作 Microsoft.Office.Interop.Excel.dll的使用
  19. 使用dd整盘克隆jetson nano tf卡
  20. 类似pyinstaller_全网首份Python打包工具Pyinstaller实战指南,如丝滑般体验

热门文章

  1. 【Vegas原创】Exchange报550 5.7.1 Unable to relay for …错误的分析
  2. LeetCode简单题目(#203 #204 # #205 #206 #217 #219)-6道(序列、数字)
  3. 2018-04-08椭圆曲线测试程序
  4. linux进入vi编辑报错,Linux Vi编辑器的使用及C编程
  5. linux find返回数据不一样,请问一个linux的find的问题,如何让find的返回结果不显示“Perm...
  6. uos系统终端调试linux命令,uos怎么开启开发者模式
  7. java提示没有main,有main方法却还是提示没有
  8. mysql 360怎么安装_mysql 5.7 安装配置方法图文教程
  9. clover更新驱动 后不能开机_黑苹果笔记本电池模式下省电驱动,延长笔记本续航...
  10. php 保存错误日志,PHP中把错误日志保存在系统日志中_PHP教程