zoukankan      html  css  js  c++  java
  • shell命令(一)

    什么是shell?

    Shell是一个应用程序,它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用Linux内核,这就是Shell的本质。

    shell与Linux系统关系图

    shell也能够编程

    1. 有if...else选择结构,case...in 开关语句,for、while、until循环
    2. 变量、数组、字符串、注释、加减乘除、逻辑运算等概念;
    3. 函数,包含用户自定义的函数和内置函数(例如printfexporteval等)

    shell在运维中的地位

    下面手链形象地展示了Shell在运维工作中的地位

    先看一个简单的shell程序

    #!/bin/bash
    # This is to show what a example looks like.
    
    echo "This first example"
    echo # This inserts an empth line in output.
    echo "We are currently in the following directory"
    pwd 
    echo
    echo "This directory contains the following files"
    ls

     注释:

    #!/bin/bash #!跟shell命令的完全路径。作用:显示后期命令以哪种shell来执行这些命令。如不指shell,以当前shell作为执行的shell

    # shell 中以#开头表示,整行就被当作一个注释。执行时被忽略。

    总结:

    创建shell程序的步骤

    第一步:创建一个包含命令和控制结构的shell文件
    第二步:修改这个文件的权限使它可以执行,使用chmod u+x
    第三步:执行
        方法一:./{文件名}
        方法二:使用决定路径 /root/../{文件名}
        方法三:bash {文件名}

    Shell变量

    变量是shell传递数据的一种方法。变量使用来表示每个值的符号名

    例:x=1

    Shell 有两种变量:临时变量和永久变量。

    临时变量:是shell程序内部定义的,其使用范围仅限于定义它的程序,对于其它程序不可见。

    永久变量:是环境变量,其值不随shell脚本的执行结束而消失。

    例:如:$PATH

    # 用作运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中去查找

    用户定义变量:由字母或下划线打头。由字母、数字或下划线组成,并且大小写字母意义不同。变量名长度没有限制。

    使用变量值时,要在变量名前加上前缀“$”。

    例如:1VAR 就是非法变量。

    变量赋值:赋值号“=”两边应没有空格

    例如:A=123

    例如:将一个命令的执行结构赋值给变量

    可以利用变量和其它字符组成一个新的字符串。

    列出所有变量

    set 列出所有变量 

    | 过滤

    给变量赋值多个单词

    单引号和双引号的区别

    单引号之间的内容原封不动地指定给了变量,

    双引号取消了空格的作用,保留特殊符号的含义

    双引号:

    单引号:

    删除变量 unset

    位置变量和特殊变量

    位置变量:Shell 解释执行用户命令时,将命令行的第一个字作为命令名,而其它名字作为参数。由出现在命令行上的位置确定的参数称为位置参数

    特殊变量:有些变量是一开始执行Script脚本时就会设定,且不能被修改,但我们不叫它只读系统变量,而叫它特殊变量。这些变量当一执行程序时就有了,以下是一些特殊变量

    $*:这个程序的所有参数
    $#:这个程序的参数个数
    $$:这个程序的PID
    $!:执行上一个后台程序的PID
    $?:执行上一个指令的返回值

     程序例子:

    #!/bin/bash
    echo "$*  表示这个程序的所有参数"
    echo "$#  表示这个程序的参数个数"
    touch /tmp/a.txt
    
    echo "$$  表示当前程序的ID"
    touch /tmp/b.txt &
    
    echo "$!  执行上一个后台指令的PID"
    echo "$$  表示程序的进程ID"

    结果:

    变量的使用:

    #!/bin/bash
    
    var1="abcd efg"
    echo $var1
    
    var2=1234
    echo "The value of var2 is $var2"
    echo $HOME
    echo $PATH
    echo $PWD

    执行结果:

  • 相关阅读:
    Shell 脚本学习 — 简单的执行跟踪
    CentOS — 安装Git客户端
    Linux — cat 命令的使用方法
    关于“分叉/联接方案”的一般做法
    读书笔记 —— 《MySQL技术内幕 InnoDB存储引擎》
    MySQL InnoDB 索引
    CentOS — MySQL备份 Shell 脚本
    CI system/libraries/Session.php
    WinForm 处理未处理的异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException
    重构案例1 — ECShop (lib_common.php build_url 函数)
  • 原文地址:https://www.cnblogs.com/pungchur/p/12721688.html
Copyright © 2011-2022 走看看