https://blog.51cto.com/13520779/2093146

合格linux运维人员必会的30道shell编程面试题及讲解:https://blog.51cto.com/oldboy/1632876

MySQL数据库多种安装方法及企业级安装实践:https://blog.51cto.com/oldboy/1917295

625某电商网站数据库宕机故障解决实录:https://blog.51cto.com/oldboy/1431161

bash 及其特性 : shell :外壳

GUI :Gnome , RDE , Xfce

CLI :sh、csh、ksh、bash

程序 :进程

进程 :在每个进程看来,当前主机上只存在内核和当前进程 允许用户一个账号登入多次,每一个打开的shell都各不相关 进程是程序的副本 ,进程是程序执行的实例 用户工作环境 shell , 里面存在子shell 彼此间的家不是同一个家

1、命令行编辑

crtl +a :跳到命令行首 相当于Home

ctrl +e : 跳到命令行尾 相当于End

ctrl+ u:删除光标至命令行首的内容

ctrl+k : 删除光标至命令行尾的内容

ctrl + l:清屏 相当于clear命令

Ctrl + c :终止命令

Ctrl + s :锁定屏幕

Ctrl + q :解锁


一、一些编程的基础概念

1.程序=指令+数据
2.程序的编程风格:

  • 过程式:以指令为中心,数据服务于指令
  • 对象式:以数据为中心,指令服务于数据

3.编程语言:

  • 低级:汇编
  • 高级:
    • 编译:高级语言-->编译器-->目标代码(英文演讲,事先把中文演说稿翻译为英文的)
      java,C#
    • 解释:高级语言-->解释器-->机器代码(英文演讲,一遍讲英文,另一个人翻译)
      shell, perl, python

4.编程逻辑处理方式:

  • 顺序执行
  • 循环执行
  • 选择执行

5.shell编程:过程式、解释执行
编程语言的基本结构:

  • 各种系统命令的组合
  • 数据存储:变量、数组
  • 表达式: a + b
  • 语句:if

6.shell脚本的用途有:

  • 自动化常用命令
  • 执行系统管理和故障排除
  • 创建简单的应用程序
  • 处理文本或文件

二、shell脚本的格式要求

格式要求:首行shebang机制

#!/bin/bash # 表示表示在执行脚本时内部会使用该路径的bash去执行。
#!/usr/bin/python # 表示表示在执行脚本时内部会使用该路径的Python去执行。
#!/usr/bin/perl

2.1如何创建shell脚本

第一步:

  • 第一行必须包括shell声明序列:#!
    #!/bin/bash
  • 添加注释
    注释以#开头

第二步:运行脚本

  • 给予执行权限,在命令行上指定脚本的绝对或相对路径
chmod +x abc.sh  # 给脚本添加执行权限
./abc.sh #执行当前目录(相对路径)
或者
/tmp/abc.sh #绝对路径方式

注意:给予执行权限后,直接在命令行输入脚本命令也不会像cd、cat等命令直接执行,因为该shell脚本不在$PATH路径中,而hash是在$PATH寻找命令。因此要想直接输入命令就执行,需要将shell脚本放在$PATH路径下:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 直接运行解释器,将脚本作为解释器程序的参数运行
bash  /data/hello.sh

cat /data/hello.sh | bash

  变量:

    命名的内存空间

    数据存储方式:

      字符:

      数值:整型、浮点型

  变量:变量类型    

    作用:
     数据存储格式
    参与的运算
    表示的数据范围

2.2脚本规范

脚本代码开头约定:
1、第一行一般为调用使用的语言
2、程序名,避免更改文件名为无法找到正确的文件
3、版本号
4、更改后的时间
5、作者相关信息
6、该程序的作用,及注意事项
7、最后是各版本的更新简要说明

脚本的基本结构:
#!SHEBANG
CONFIGURATION_VARIABLES
FUNCTION_DEFINITIONS
MAIN_CODE

示例:

#!/bin/bash
# ------------------------------------------
# Filename: hello.sh
# Revision: 1.1
# Date: //
# Author: wang
# Email: wang@gmail.com
# Website: www.magedu.com
# Description: This is the first script
# ------------------------------------------
# Copyright: wang
# License: GPL
echo “hello world”

三、脚本调试

bash -n /path/to/some_script    # 检测脚本中的语法错误
bash -x /path/to/some_script # 调试执行

注意:对于shell脚本中的命令行:
①如果是某个行的命令错误,那么其他的命令仍继续执行
②如果是语法错误,那么后续的命令直接终止执行
所以,我们在写完脚本后,先执行上面两个命令进行调试!

 

shell基础之二 bash特性详解的更多相关文章

  1. java基础(十二 )-----Java泛型详解

    本文对java的泛型的概念和使用做了详尽的介绍. 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”.一提到 ...

  2. 3-2 bash 特性详解

    根据马哥Linux初级 3-2,3-3,编写 1. 文字排序 不影响源文件,只是显示根据ASCII码字符升序 nano的用法, 其实这个是生成一个文本,然后就可以在里面编辑. Ctrl + o, 后回 ...

  3. linux初级学习笔记五:bash特性详解!(视频序号:03_2,3)

    本节学习的命令:history,alias,ualias,\CMD 本节学习的技能:   bash的特性 光标跳转 查看命令历史 命令历史的使用技巧 给命令起别名 命令替换 文件名通配符 shell: ...

  4. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  5. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  6. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  7. Java基础学习总结(33)——Java8 十大新特性详解

    Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...

  8. Git使用总结 Asp.net生命周期与Http协议 托管代码与非托管代码的区别 通过IEnumerable接口遍历数据 依赖注入与控制反转 C#多线程——优先级 AutoFac容器初步 C#特性详解 C#特性详解 WPF 可触摸移动的ScrollViewer控件 .NET(C#)能开发出什么样的APP?盘点那些通过Smobiler开发的移动应用

    一,原理 首先,我们要明白Git是什么,它是一个管理工具或软件,用来管理什么的呢?当然是在软件开发过程中管理软件或者文件的不同版本的工具,一些作家也可以用这个管理自己创作的文本文件,由Linus开发的 ...

  9. HTTPD之二————HTTPD服务详解————httpd的配置文件常见设置

    HTTPD之二----HTTPD服务详解----httpd的配置文件常见设置 HTTP服务器应用 http服务器程序 httpd apache nginx lighttpd 应用程序服务器 IIS,a ...

随机推荐

  1. Tomcat的架构

    Tomcat 7.0---Servlet API 3.0---JSP API 2.2---JDK 1.6 一个Tomcat实例,或者服务器(server),是Tomcat容器层次结构中的顶级组件. 只 ...

  2. 运行tomcat7w.exe提示指定的服务未安装 解决办法

    一.问题重现点击bin下tomcat7w.exe出现如下提示:提示指定的服务未安装 二.原因分析tomcat7.exe和tomcat7w.exe要起作用必须先为这两个文件安装服务.其中tomcat7. ...

  3. 织梦后台系统设置在PHP5.4环境中不能保存中文参数的解决方法

    在没用PHP5.4的环境做Dede后台的时候,织梦58一直没有遇到这个问题,昨天上传一个新的模版到空间去测试发现后台的系统基本参数设置中所有的中文内容都无法保存,关于这个问题,其实以前也听说过,知识一 ...

  4. php的小数位数最长多少位

    在php中, echo 0.1234567890123456;exit; // 结果为:0.12345678901235, 整数部分为0时,最多到14位小数,如果后面还有,就自动四舍五入 echo 7 ...

  5. Windows Phone惨遭微软放弃

    微软在电脑操作系统上的用户保有量一直处于遥遥领先的地位,特别是最新的Windows 10系统,一经推出,市场表现就比较好,但相比起来,微软的手机操作系统Windows Phone就被贴上“差等生”的标 ...

  6. 去掉行尾的^M

    1. 处理掉行尾的^M 在windos下进行linux内核驱动编写,调试成功后需要集成到内核代码中去,所以会通过虚拟机共享文件夹拷贝到内核对应目录,这时候看源码文件还是没有异常的. 当对该文件进行回车 ...

  7. 前端基础(四):BOM和DOM

    前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DO ...

  8. 关于从入 OI 以来学的各种知识点的系统总结

    前言 OI 之路差不多快结束了,最近水平也萎得很厉害,这里就开个目录,记录一些需要总结的知识点吧.不定期更,勿催,我还要改模拟赛的题. 目录

  9. requests模拟浏览器请求模块初识

    requests模拟浏览器请求模块初识  一.下载 requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/lates ...

  10. OEL7.2下Oracle11.2.0.4RAC部署

    OEL7.2下Oracle11.2.0.4RAC部署 一. 安装步骤简述 u OEL7.2操作系统安装 u RAC 安装环境配置 u ORACLE CRS安装 u ORACLE DB软件安装 u OR ...