zoukankan      html  css  js  c++  java
  • shell 基础

    Shell

    好久没写过shell了,复习一下

    Shell 简介

    Shell是一个程序,由C语言编写,是用户和Linux内核沟通的桥梁。它既是一种命令语言,又是一种解释性的编程语言。
    shell命令解析器->kernel。 shell对接用户。
    作用:
        1.命令行解释器。
        2.启动程序
        3.输入输出重定向
        4.管道连接
        5.文件名置换(echo /*)
        6.变量维护
        7.环境控制
        8.shell编程
    

    Shell 语法

    shell脚本就是将完成一个任务的所有的命令按照执行先后顺序,自上而下写入一个文本文件中,然后给予执行权限。
    

    脚本命名规范

    脚本命名名字要有意义,30个字节以内,以.sh结尾。
    开头必须解释环境
    
        #!/bin/bash  --意思是要在/bin/bash下运行。#!是一个组合,特殊标记。
        #!/bin/bash/env env 表示: python|bash 等,什么语言就用什么解释器。# 作为注释。
    

    格式:

        脚本名字:
        解释器环境:
        脚本信息:
        脚本代码:
    
        #!/bin/bash
        #Author: Ye --作者
        #Create Time: 2021-02-26
        #Release :1.0
        #Script Description: 这个脚本的作用。
    

    脚本运行方法

    给执行权限

        chmod 700 first.sh
        ./first.sh
    

    解释器直接运行

    sh first.sh
    

    shell 特殊符号

    ~ home目录
    - 回到上一个目录
    ! 执行历史命令,如!! 执行上一个 命令,!p 上一个带p的
    $ 变量
    & 后台执行
    * 通配符
    ? 匹配一个字符
    ; 执行一条命令中有多个命令,用;号分开
    | 管道
     转义字符
    `` 能解释变量
    "" 字符串
    $? 判断上一条命令是否成功
    

    管道

    上一个命令的输出作为下一个命令的输入
    

    重定向

    > 重定向输入 覆盖数据
        $>/dev/null;$? 把命令执行结果扔到null里面去,等于黑洞
    >> 重定向追加输入,在原数据的末尾添加
    < 重定向输出 wc -l < /etc/passwd
    << 重定向追加输出 fdisk /dev/sdb<<EOF
        wc <<EOF
            Hello World!
        EOF
         开头输出和结束都用EOF作为标记
    

    数学运算 expr

        expr 1 + 2
        expr 1 * 2
        expr 1 / 2
        let sum=1-1
            let 赋值到sum,然后 $sum 中运行
        # 小数运算
            可以安装,然后使用
        scale=2 表示保留两位小数点
        echo "`echo "scale=3;1/3"|bc`%"
        双括号数学运算
            echo $(((1+1)*10))
    

    执行脚本后返回值

        #!/bin/bash
        echo ee
        exit 0  # 退出后返回此值,返回值1-255
    
        $? #获得上面的返回值
    

    shell 格式化输出

    -- 一个程序有0个或以上输入,一个或更多输出
    

    echo 命令介绍

    功能:将内容输出到默认显示设备
    echo命令的功能是在显示器上显示一段文字。
    

    命令格式

    -n 不要再最后自动换行
    -e 若字符串中出现一下字符,则特别加以处理,而不是将它当作字符串输出
        -e后,将会使用下列转义
    a 发出警告声
     删除前一个字符
    	 制表符
    v与f相同
    

    代码示例

        #!/bin/bash
        for time in `seq 9 -1 0`;
        do
                echo -n -e "$time"
                sleep 1
        done
    

    字体颜色

        echo -e "33[40;2m 字符 33[4m dddd 字符串"
    

    shell输入

    read

    执行到这里之后,等待用户输入
    
        #!/bin/bash
        clear
        echo -n -e "Login:"
        read loginUser
        echo -n -e "Password:"
        read -s -t5 -n6 loginPasswd
        echo "$loginUser $loginPasswd"
        read -p "请输入密码" $loginPasswd
        echo $LoginPasswd
    
    -s 超时
    -t5 表示5秒超时
    -n 表示读取6个字符
  • 相关阅读:
    vim编辑器
    centos7启动顺序加密的问题
    centos7进入单用户模式
    centos7修改默认运行级别的变化
    C#构建DataTable(转)
    策略模式简介
    简单工厂模式(转)
    NPOI导Excel样式设置(转)
    VS2012启用angularjs智能提示Intelligence
    WebForm页面间传值方法(转)
  • 原文地址:https://www.cnblogs.com/yeqifeng2288/p/14461241.html
Copyright © 2011-2022 走看看