zoukankan      html  css  js  c++  java
  • bash脚本基础及配置文件

    Shell脚本编程:

    编译语言的分类:根据运行方式

        编译运行:源代码—>编译器(编译)à程序文件

        解释运行:源代码—>运行时启动解释器,由解释器边解释边运行

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

        Shell脚本编程

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

        完整编程:

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

    编程模型:过程式编程语言,面向对象的编程语言

        程序=指令+数据

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

                 顺序执行

                 选择执行

                 循环执行

             代表:C,bash

     

             对象式:以数据为中心来组织代码,指令是服务于数据

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

             代表:java,c++,python

     

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

        如何写shell脚本:

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

             常见的解释器:

                 #!/bin/bash

                 #!/usr/bin/python

                 #!/usr/bin/perl  

       

        文本编程器:

             行编辑器:sed

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

        shell脚本是什么:

             命令的堆积

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

       

    运行脚本

             (1):赋予执行权限,并直接运动此程序文件

                 Chmod +x /PATH/TO/SCRIPT_FILE

                 /PATH/TO/SCRIPT_FILE(使用脚本的绝对路径运行)

             (2):直接运行解释器,将脚本以命令行参数传递给解释器程序

                 bash /PATH/TO/SCRIPT_FILE

        注意:脚本中的空白行会被解释器忽略

        脚本中,除了shebang,余下所有以#开头的行,都会被视作注释行忽略

        Shell脚本的运行是通过运行一个子shell进程实现的

     

    (3):mktemp /tmp/myfile.xxxx

    (1):

        ls -d /etc/[pP]*

    (2):

        ls -d /var/* | tr 'a-z' 'A-Z'

     

    bash的配置文件:

    两类:

        profile类:为交互式登录的shell进程提供配置

        全局:对所有用户都生效

             /etc/profile

             /etc/profile.d/*.sh

        用户个人:公对当前用户有效

             ~/.bash_profile

        功用:

             1:用来定义环境变量

             2:运行命令或脚本     

     

        bashrc类:为非交互式登录的shell进程提供配置

        全局:

             /etc/bashrc

        用户个人:

             ~/.bashrc

        功用:

             1:定义本地变量

             2:定义命令别名

     

    注意:仅管理员可以修改全局配置文件

       

    登录类型:

        交互式登录shell进程:

             直接通过某终端输入帐号和密码后登录打开的shell进程

             使用su命令:su – USERNAME,或者使用su –l USERNAME执行的登录切换

             /etc/profileà/etc/profile.d/*à~/.bash_profileà~/.bashrcà/etc/bashrc

     

        非交互登录shell进程:

             su USERNAME执行的登录切换

             图形界面下打开的终端

             运行脚本

             ~/.bashrcà/etc/bashrcà/etc/profile.d/*

     

    命令行中定义的特性,例如变量的别名作用域为当前shell进程的生命周期

    配置文件定义的特性,只对随后新启动的shell进程有效

    让通过配置文件定义的特性立即生效:

        1:通过命令行重复定义一次

        2:让shell进程重读配置文件

             source /PATH/FROM/CONF_FILE

             . /PATH/FROM/CONF_FILE

     

     

     

  • 相关阅读:
    PHP面试:实现动态获取函数参数的方法
    PHP面试:什么是类的多态性,请写出一个例子
    php相关操作
    客户端app支付宝登录接口
    商品分类设计
    Git连接远程服务器
    iptables/mysql设置指定主机访问指定端口
    CMake安装grpc生成gRPCTargets.cmake文件
    Linux下Springboot解决`APR based Apache Tomcat Native library`提示
    java双重检测或枚举类实现线程安全单例(懒汉模式)
  • 原文地址:https://www.cnblogs.com/gaoyuxia/p/12326377.html
Copyright © 2011-2022 走看看