zoukankan      html  css  js  c++  java
  • bash 环境配置及脚本

    bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来

    查看当前shell
    echo $SHELL
    查看系统支持的shell
    cat /etc/shells

    cd /bin
    ls -la *sh

    一、 bash shell的配置
    变量可分为自定义变量和环境变量
    他们作用范围不同
    set 可以查看所有变量
    set|more 查看 enter一行一行查看
    set|less enter换行 pagedown换页 q退出

    env只能查看环境变量

    bash shell的设置方式
    1.通过自定义变量设置
    key=value
    比如 aaa=ajax
    echo aaaajaxkey1=testonekey1=testone2key2="key2isaaa即可得到ajax变量名不能以数字或者特殊字符开头key1=testone不可key1=′testone′而且等号左右2边不可有空格key2="key2iskey1" 双引号能解析
    key1='kkk'
    key2='kk2'
    key3=key1key1−−−−key2
    echo $key3
    kkk----kk2
    unset key3 删除变量

    常见的变量
    set|grep HIST
    HISTFILESIZE :记录历史指令保存的最大值
    HISTSIZE:执行history时显示的个数
    COLUMNS:终端窗口显示的宽度
    LINES:终端窗口显示的高度
    PS1:设置提示符号前面的内容样式(d,h, ,u,W,!,$,l 等)
    u 当前用户
    W 当前工作目录 
    w 当前完整的工作目录从/算起
    h 主机名
    当前时间
    # 登录后下达的第几个指令
    比如
    PS1='[u@h-w- -#]'
    [root@bogon-/var/var/lib-08:35:26-38]

    2.通过别名(Aliases)设置
    设置,查看所有,查看某别名值,type -a ,删除
    type ll
    [root@bogon-/var/var/lib-08:35:26-38]type ll
    ll 是 `ls -l --color=auto' 的别名
    [root@bogon ~]# alias ll
    alias ll='ls -l --color=auto'
    [root@bogon-/var/var/lib-08:35:43-39]type -a ls
    ls 是 `ls --color=auto' 的别名
    [root@bogon-/var/var/lib-08:35:45-40]type cd
    cd 是 shell 内嵌
    查看所有别名 alias
    设置
    alias cls='clear'
    [root@bogon-/var/var/lib-08:42:55-51]type cls
    cls 是 `clear' 的别名
    查看alias的值 alias cls
    [root@bogon-/var/var/lib-08:43:00-52]alias cls
    alias cls='clear'
    删除别名定义
    unalias cls

    3.通过set指令设置
    set自身查看所有变量的值
    设置shell内部的属性值(set -o noclobber,set -o vi)
    ll>a.txt 可以写入
    ll>a.txt 可以覆盖

    ll>a.txt 
    -bash: a.txt: 无法覆盖已存在的文件
    ll>>a.txt 可以追加
    set -o noclobber /*设置禁止重定向覆盖*/
    set +o noclobber /*设置允许重定向覆盖*/
    [root@bogon ~]# set -o
    allexport off
    braceexpand on
    emacs on
    errexit off
    errtrace off
    functrace off
    hashall on
    histexpand on
    history on
    ignoreeof off
    interactive-comments on
    keyword off
    monitor on
    noclobber off
    noexec off
    noglob off
    nolog off
    notify off
    nounset off
    onecmd off
    physical off
    pipefail off
    posix off
    privileged off
    verbose off
    vi off
    xtrace off

    [root@bogon ~]# set +o
    set +o allexport
    set -o braceexpand
    set -o emacs
    set +o errexit
    set +o errtrace
    set +o functrace
    set -o hashall
    set -o histexpand
    set -o history
    set +o ignoreeof
    set -o interactive-comments
    set +o keyword
    set -o monitor
    set +o noclobber
    set +o noexec
    set +o noglob
    set +o nolog
    set +o notify
    set +o nounset
    set +o onecmd
    set +o physical
    set +o pipefail
    set +o posix
    set +o privileged
    set +o verbose
    set +o vi
    set +o xtrace

    -o,+o
    set -o vi
    设置输入命令的模式为vi下
    ls 按esc 进入vim命令行模式编辑状态

    4.通过环境变量设置
    自定义变量只能在当前shell环境下有效
    环境变量在整个主机下的shell环境中有效

    可使用 export variable name来设置

    unset 变量名可以删除变量

    定义过的普通变量和通过export 变量名来升级为环境变量,在子bash里生效

    如果重新打开连接会话(root或者admin 身份登录)
    key1,key2都是没有的

    常用变量:

    PATH

    PATH=$PATH.: 
    将隐藏的路径设置到PATH中,会带来安全问题?

    [root@bogon ~]# which chgrp
    /usr/bin/chgrp

    [root@bogon ~]# which ll
    alias ll='ls -l --color=auto'
    /usr/bin/ls

    二、shell startup scripts原理
    login和non-login
    用户登录或者其它非登录动作时自动执行的一些脚本
    建立自定义变量或者执行set设置shell
    建立环境变量,设置其它程序
    使用alias 简化后续操作
    登录时执行哪些程序

    login

    完整登录流程(centos)


    /etc/profile           (PATH/USR/HOSTNAME/HISTSIZE等))
        /etc/profile.d/*.sh    (颜色语言 指令别名)
    ~/.bash_profile
        ~/.bashrc
          /etc/bashrc
    ~/.bash_login
    ~/.profile

    ~/.bash_profile,~/.bash_login,~/.profile (只能依次读取其中一个)

    任何一个读取成功,不再读取下一个

    各自home目录的只对各自生效
    修改完成功后 source 重新加载脚本即可

    non-login
    无需登录即可运行的shell,如su和 原bssh下的新bash动作
    涉及到的脚本
    ~/.bashrc 和/etc/bashrc
    /etc/profile.d/*.sh (颜色语言 指令别名)
    执行bash命令

    ~/.bash_logout 用户注销时执行的命令,备份,清理等

    source 别名 .

    history 历史命令
    1007 set|grep HI
    1008 set|grep HISTFILE
    1009 set|grep HIST
    1010 cat /root/.bash_history
    1011 vim /root/.bash_history
    1012 set|grep HIST
    1013 history
    1014 set|grep HIST
    1015 ll
    1016 history
    !! 表示上一个命令
    !s 表示执行最近的s开头的命令 当前即1014号命令
    !1013 执行历史编号的1013号命令

  • 相关阅读:
    图像融合之拉普拉斯融合(laplacian blending)
    真实场景的虚拟视点合成(View Synthsis)详解
    真实场景的双目立体匹配(Stereo Matching)获取深度图详解
    OpenCV亚像素角点cornerSubPixel()源代码分析
    OpenCV角点检测goodFeaturesToTrack()源代码分析
    OpenCV角点检测源代码分析(Harris和ShiTomasi角点)
    引导图滤波(Guided Image Filtering)原理以及OpenCV实现
    OpenCV3.4两种立体匹配算法效果对比
    文件操作常用函数
    two Pass方法连通域检测
  • 原文地址:https://www.cnblogs.com/think-and-do/p/7103301.html
Copyright © 2011-2022 走看看