linux学习19 shell脚本基础-bash脚本编程基础及配置文件

一、shell脚本编程

  1、编程语言的分类,根据运行方式

    a、编译运行:源代码 --> 编译器(编译) --> 程序文件

      C语言:

    b、解释运行:源代码 --> 运行时启动解释器,由解释器边解释边运行;即源代码本身并不能运行,而是启动一个解释器的进程,把整个源代码的内容当做解释器的参数。因为其是边解释边运行因此运行过程中比起编译运行速度会差一些。

    c、无论是编译器还是解释器中间总需要另外一个程序,即在运行过程中全程参与,这就是我们说的翻译官,他需要将我们人能识别的代码转换成机器所能识别的机器码。

  2、根据其编程过程中功能的实现是调用库还是调用外部的程序文件:

    a、shell脚本编程:

      利用系统上的命令及编程组件进行编程

    b、完整编程:

      利用库或编程组件进行编程

  3、根据编程模型进行分类:过程式编程语言,面向对象的编程语言

    程序=指令+数据

      过程式:以指令为中心来组织代码,数据是服务于代码的。

        顺序执行。

        选择执行

        循环执行

        C,bash

      对象式:以数据为中心来组织代码,围绕数据来组织指令。

        类(class):实例化对象,method;

        代表:java,C++,Python

  4、shell脚本编程:过程式编程,解释运行,依赖于外部程序文件运行;

二、如何写shell脚本

  1、脚本文件的第一行,顶格:给出shebang,解释器途径,用于指明解释执行当前脚本的解释器程序文件。

    a、常见的解释器

      #!/bin/bash

      #!/usr/bin/python

      #!/usr/bin/perl

    b、常见的文本编辑器:nano

      行编辑器:sed

      全屏幕编辑器:nano,vi,vim

[[email protected] ~]# nano myfirst.sh
[[email protected] ~]# cat myfirst.sh
#!/bin/bash
useradd user3
echo "user3"|passwd --stdin user3
mktemp -d /tmp/test.xxxx

[[email protected] ~]# chmod +x myfirst.sh
[[email protected] ~]# ./myfirst.sh
Changing password for user user3.
passwd: all authentication tokens updated successfully.
mktemp: too few X‘s in template ‘/tmp/test.xxxx’

  2、shell脚本是什么?

    命令的堆积

    但很多命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足,以避免其运行中发生错误。

  3、运行脚本

    a、赋予执行权限,并直接运行此程序文件即可

      chmod +x /PATH/TO/SCRIPT_FILE

      /PATH/TO/SCRIPT_FILE

    b、直接运行解释器,将脚本以命令行参数传递给解释器程序

      bash /PATH/TO/SCRIPT_FILE

    c、练习1:写一个脚本,实现如下功能:

      (1)、显示/etc目录下所有以大写p或小写p开头的文件或目录本身

[[email protected] ~]# ls -d /etc/[pP]*
/etc/pam.d   /etc/passwd-  /etc/pkcs11  /etc/plymouth  /etc/polkit-1  /etc/postfix  /etc/prelink.conf.d  /etc/profile    /etc/protocols
/etc/passwd  /etc/pinforc  /etc/pki     /etc/pm        /etc/popt.d    /etc/ppp      /etc/printcap        /etc/profile.d  /etc/python

      (2)、显示/var目录下的所有文件或目录本身,并将显示结果中的小写字母转换为大写后显示;

[[email protected] var]# ls -d /var/* |tr ‘a-z‘ "A-Z"
/VAR/ACCOUNT
/VAR/ADM
/VAR/CACHE
/VAR/CRASH
/VAR/DB
/VAR/EMPTY
/VAR/GAMES
/VAR/GOPHER
/VAR/KERBEROS
/VAR/LIB
/VAR/LOCAL
/VAR/LOCK
/VAR/LOG
/VAR/MAIL
/VAR/NIS
/VAR/OPT
/VAR/PRESERVE
/VAR/RUN
/VAR/SPOOL
/VAR/TMP
/VAR/WWW
/VAR/YP

      (3)、创建临时文件/tmp/myfile.XXXX

[[email protected] var]# mktemp -d /tmp/myfile.XXXX
/tmp/myfile.Z19s

46:14

原文地址:https://www.cnblogs.com/Presley-lpc/p/12085132.html

时间: 2024-12-26 08:25:53

linux学习19 shell脚本基础-bash脚本编程基础及配置文件的相关文章

linux学习之shell练习

linux学习之shell练习 1.描述shell程序的运行原理(可附带必要的图形说明): 2.总结shell编程中所涉及到的所有知识点(如:变量.语法.命令状态等等等,要带图的哟): 总结文章:http://pizimsn.blog.51cto.com/7002551/1697671 3.总结课程所讲的所有循环语句.条件判断的使用方法及其相关示例:(if (jpg|png is not exist):echo "You say a XX") 总结文章:http://pizimsn.b

Linux学习记录--文件IO操作相关系统编程

文件IO操作相关系统编程 这里主要说两套IO操作接口,分别是: POSIX标准 read|write接口,函数定义在#include<unistd.h> ISO C标准 fread|fwrite接口,函数定义在#include<stdio.h> 有书上说POSIX标准与ISO C标准的区别在于文件读写是否带缓冲区,我则不是很认同,因此POSIX标准下的IO操作也是带缓冲区的,至于这两个标准下的IO性能谁更加好则不一定,因为这和缓冲区的大小,以及用户逻辑有很大关系. POSIX标准

linux学习18 shell脚本基础-bash变量和逻辑运行

一.回顾 1.用户管理,权限管理,install,mktemp 2.用户管理: 3.权限管理: mode,ownership mode: user group other r w x 4.命令:install,mktemp 二.bash特性及bash脚本编程初步 1.终端:附着在终端的接口程序 GUI:KDE,GNome,Xfce CLI:/etc/shells 2.bash的特性: a.命令行展开:~,{} b.命令别名:alias,unalias c.命令历史:history d.文件名通配

Linux学习笔记(四)——Linux_shell脚本基础

一.  BashShell脚本初步 之前我们学习了很多Linux命令,但是这些命令都是在命令提示符下执行的,一次只能执行一条命令并产生结果.如创建一个文件或目录等等.但是有些情况下,我们需要执行多个命令来完成一个完整的任务,我们可以在命令行提示符下也可以同时执行多个命令,但需要用分号分割每个单独的命令,如下所示,先定位到当前用户的工作目录下,然后在目录下创建一个logs目录,并且在logs目录中创建一个空的syslog.log日志文件并在日志文件中添加当前的系统日期和时间. 命令: cd  /h

linux学习之shell脚本

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] Shell脚本基本元素: #!/bin/bash --- 第一行 # --- 注释 变量 流程控制结构 看一个简单的例子,学任何语言,我想大多数情况下都是从helloworld程序开始的,shell也是一门语言,我们也从helloworld开始. 新建一个名为helloworld.sh的文件,在里面写入: helloworld.sh #!/bin/sh #这是一个很简单的打

linux学习笔记:shell脚本编程相关(上)

前言 unix/linux操作系统下的shell,是一种壳,其目的是提供一个用户与计算机相互交互的命令接口,通过输入各种命令,达到操作的目的. 与此同时,shell支持控制流程,进而可以组合出各种各样的应用实例. shell脚本的格式 首行shebang机制: bash脚本,首行添加#!/bin/bash [options] csh脚本,首行添加#!/bin/csh [options] ksh脚本,首行添加#!/bin/ksh [options] -- 描述脚本的注释部分: 包括Author,

linux学习之shell脚本 ------- 变量

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 今天来看一下Shell中的一些变量. 变量类型: Shell中有以下几种变量: 1) 本地变量 2) 环境变量 3) 位置变量 4) 标准变量 5) 特殊变量 1) 本地变量 本地变量在用户现在的Shell生命周期的脚本中使用. 用法: variable-name=value set: 可以显示本地所有的变量 注意,本地变量如果加上readonly,则该本地变量不能被修改,

Shell之/bin/bash脚本的基础实战

本人菜鸟一枚,初次接触linux的shell脚本: shell script,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell script更是提供了数组,循环,条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序,而不必使用类似C程序语言等传统程序编写的语法. shell脚本的好处: 在一些复杂的linux运维工作中,大量的重复的输入和交互操作,可以通过shell脚本批量的处理,自动化的完成维护,从而减轻更多的人力成本. linux的s

Linux学习笔记——Shell基础(八)

+++++++++++++++++++++++++ +++++Shell基础+++++++++++++++++++++++++++++++ 1. Shell概述 Shell定义: Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至编写一些程序. Shell还是一个功能相当强大的编程语言,易编写.调试.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令. Shell分类: Bo