`
ruishen
  • 浏览: 51567 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

shell编程笔记-入门概念

 
阅读更多

本笔记是根据linuxShell编程入门到精通一书学习实验和相关整理做的笔记

pdf文件下载:http://download.csdn.net/detail/ruishenh/6586391

第一章 概念

如何运行程序
运行linux程序有三种方法

1.使用文件具有可执行权限,直接运行文件。

2.直接调用命令解释器执行程序

3.使用source执行文件

Linux可执行的命令分为三种:内建命令、shell函数和外部命令。

1.内建命令就是shell程序本身的命令。这些命令集成在shell解释器中。比如(cd)

2.Shell函数是一系列的程序代码,以shell语言写成,它可以像其他命令一样被引用。

3.外部命令是独立于shell的一个执行程序。例如find, grep, echo.sh。命令行shell在执行外部命令时,会创建一个当前shell的复制进程来执行。在执行过程,存在进程的创建和消亡。外部命令的执行过程如下。

①用POSIX系统fork函数接口,创建一个命令行shell进程的复制(子进程)。

②在子进程的运行环境中,查找外部命令在linux文件系统中的位置。如果外部命令给出了完全路径,则略过查找这一步。

③在子进程里,以新程序取代shell拷贝并执行(exec),此时父进程进入休眠,等待子进程执行完毕。

④子进程执行完毕后,父进程接着从终端读取下一条命令。




Note

(1)子进程在创建初期和父进程一模一样,但是子进程不能改变父进程的参数变童。

(2)只有内建命令才能改变命令行shell的属性设显〔环境变量)。

使用source执行shell脚本时,不会创建子进程,而是在父进程中直接执行!

Linux shell 变量
变量

变量(variable)在许多程序设计语言中都有定义,与变量相伴的有使用范围的定义。变量的本质就是一个键值对(key=value)

shell变量的名称以一个字母或下划线符号开始,后面可以接任意长度的字毋、数字或下划线。和许多其他程序设计语言不同的是,shell变量名称字符并没有长度限制。Linux Shell并不对变量区分类型,一切值都是字符串,并且和变量名一样,值并没有字符长度限制。神奇的是,bash也允许比较操作和整数操作。其中的关键因索是:变量中的字符串值是否为数字。

变量类型:局部变量和全局变量。

局部变量在声明的时候必须用local显示指定。全局变量不用加任何修饰。(环境变量)

Echo 输出

$ echo 'abc'
$ echo $JAVA_HOME


Export 导入变量

exportPATH=/usr/local/pig/pig-0.12.0/bin:$PATH


env函数和set函数是不同的env函数显示的是环境变量,set函数则显示所有的本地变量,包括用户的环境变量。例如,当用户在命令行中设笠Var = 123时,set函数将显示var变量,而Env函数则不显

示(var此时是本地变童,不是环境变量)。如果使用export var = 123命令,则set和Env函数都可以显示var变量。

语言类型

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须把高级语言翻译成机器语言计算机才能执行高级语言编写的程序。

语言一般分为编译型和解释型

编译型语言有比如使用的exe文件。二进制文件。或者java程序的 .class文件(jar文件)

解释型有js,python,shell等。

Linuxshell 优势

1.简洁

Linux Shell所处的内核外层环境使得任何高级操作成为可能。

2.开发容易
由于它遵循了unix的哲学,优化到今天,在前人的积累下变的开发容易

3.便于移植

可以在任何unix/linux上运行



在写shell脚本中都会加入 #! 引入解释器来解释

比如

#!/bin/bash 
#!/bin/sh
#!/bin/rm
#!/bin/more




分享到:
评论

相关推荐

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!

    shell编程教程.chm

    初学者入门教程:Shell编程概述(一) 初学者入门教程:Shell编程概述(二) shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-...

    shell学习笔记-2018-01-09

    ### Shell学习笔记 #### Shell的发展与分类 Shell作为Unix及类Unix系统(包括Linux)的主要用户界面之一,其历史可以追溯到...以上内容涵盖了Shell编程的基础知识和技术要点,是初学者入门Shell编程的重要参考资料。

    《LINUX与UNIX SHELL编程指南》读书笔记-二次发布版

    阅读《LINUX与UNIX SHELL编程指南》,不仅可以帮助初学者快速入门,也能使有经验的开发者进一步提升shell编程技能。书中的每个章节都配有丰富的练习题,鼓励读者动手实践,巩固理论知识。通过对这本书的学习,读者将...

    Linux学习笔记-很不错适合linux入门者

    此外,笔记还会涉及shell脚本编程,这是自动化任务和管理系统的重要工具。初学者将学习到如何编写简单的bash脚本,使用条件语句(if-else)、循环(for, while)以及函数,提高工作效率。 最后,笔记可能还会涉及...

    Shell从入门到工作几百页笔记.pdf

    《Shell从入门到精通》这份笔记详尽地介绍了Shell脚本语言的基础知识和实战应用,旨在帮助读者快速掌握Shell编程,提升日常运维工作的效率。Shell是Linux系统中的一个命令解释器,同时也是一种强大的脚本语言,它...

    Shell教学笔记PDF版

    这篇Shell教学笔记PDF版涵盖了从基础到高级的Shell编程技巧,旨在帮助读者深入理解并熟练掌握Shell脚本的编写。 一、Shell基础 1. Shell介绍:Shell是一个命令行接口,它允许用户输入命令并执行系统操作。Bash是最...

    尚硅谷Linux学习笔记(不包含shell)超级详细版

    我自己看完韩顺平老师在尚硅谷发布的新版的Linux的视频,看到了在Linux下安装Tomcat,JDK这个地方,不包含shell编程的笔记。因为以前我觉得Linux很难,所以一直想学会,这次笔记做得比较详细。另一个亮点是使用...

    linux 基础编程所用的命令和shell入门到精通笔记

    自己看完了linux入门到精通的笔记整理,还有一些linux大部分所有常用的命令笔记,可以值得看看!

    Linux Shell从入门到精通学习笔记

    本文档《Linux Shell从入门到精通》是作者李振良基于个人经验整理的一份全面教程,旨在帮助读者从零基础开始熟悉Linux系统常用命令,掌握Shell脚本语言,并能够独立编写脚本,提升运维效率。 ### Shell基础知识 1. ...

    GCC 使用笔记 linux 编程入门

    ### GCC 使用笔记详解 #### 一、GCC简介与历史 GCC(GNU Compiler Collection)是由Richard Stallman于1984年发起的GNU项目的一部分,旨在为开发者提供一套免费且功能强大的编译工具集。最初,GCC是作为GNU项目中...

    Bash_shell学习笔记

    根据给定的"Bash shell学习笔记"文件信息,我们可以从中提炼出多个重要的IT知识点,具体如下: ...这些知识点不仅可以帮助初学者快速入门Bash Shell编程,也为有经验的用户提供了深入学习的方向。

    openwrt经典笔记-很不错

    ### OpenWRT经典笔记知识点概览 #### 1. 基础部分 - **安装编译环境**:这是OpenWRT开发的第一步,需要在主机上安装一系列工具,如GCC、make等,来构建一个适合编译OpenWRT的环境。 - **下载源码**:官方提供了一...

    shell学习笔记.docx

    在《shell编程从入门到精通》一书中,作者张昊详细讲解了shell编程的基础知识。以下是对该书内容的部分总结: 1. **Linux程序的运行方式**: - **可执行权限**:在Linux中,程序执行前需要有执行权限,可以通过`...

    华为工程师linux的笔记-第5章.pdf

    Linux进阶篇总共包含9个章节,第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业...

    华为工程师linux的笔记-第2章 .pdf

    Linux进阶篇总共包含9个章节,第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业...

    华为工程师linux的笔记-第6章.pdf

    Linux进阶篇总共包含9个章节,第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业...

    华为工程师linux的笔记-第7章.pdf

    Linux进阶篇总共包含9个章节,第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业...

    华为工程师linux的笔记-第8章.pdf

    Linux进阶篇总共包含9个章节,第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业...

Global site tag (gtag.js) - Google Analytics