• bash基础之三配置文件


    一、shell的两种登录方式:

    1、交互式登录:
    (1)直接通过终端输入账号密码登录
    (2)使用“su - UserName” 或“su -l Username”切换的用户
    执行顺序:/etc/profile --> /etc/profile.d/*.sh (所有文件)--> ~/.bash_profile(用户家目录下的) --> ~/.bashrc --> /etc/bashrc

    2、非交互式登录:
    (1)su UserName
    (2)图形界面下打开的终端
    (3)执行脚本
    (4)任何其它的bash实例
    执行顺序: ~/.bashrc(用户家目录下的)  --> /etc/bashrc --> /etc/profile.d/*.sh

    二、bash的配置文件

    1、按生效范围划分,有两类:

    • 全局配置:
      • /etc/profile
      •   /etc/profile.d/*.sh (注:有可能会没有权限读取,执行不了)
      • /etc/bashrc
    • 个人配置:
      • ~/.bash_profile
      • ~/.bashrc

    2、按功能划分,存在两类:

    • profile类:为交互式登录的shell提供配置
      • 全局:/etc/profile, /etc/profile.d/*.sh
      • 个人:~/.bash_profile
        功用:用于定义环境变量;用于运行命令或脚本

    (1) 用于定义环境变量

    (2) 运行命令或脚本

    • bashrc类:为非交互式和交互式登录的shell提供配置
      • 全局:/etc/bashrc
      • 个人:~/.bashrc
        功用:用于定义命令别名;定义本地变量

    (1) 定义命令别名和函数

    (2) 定义本地变量

    3.修改profile和bashrc文件后需生效
    两种方法:
    1重新启动shell进程
    2 . 或source(注:副作用,任何一个变量被重新赋值就表示读取现有的值再加上新有的值)
    例:
    . ~/.bashrc

    注意:(1) . 或source 是在当前shell中生效;bash file 是开一个子进程去生效。
    (2) 脚本中不支持别名

    三、bash退出任务

    退出时运行的脚本
    保存在~/.bash_logout文件中(用户)
    在退出登录shell时运行,常用于:

    • 创建自动备份
    • 清除临时文件

    四、练习

    1、让所有用户的PATH环境变量的值多出一个路径,例如:/usr/local/apache/bin
    在 /etc/profile.d/env. sh 文件,重新添加PATH变量。

    PS1="[e[1;36m][u@h W]\$[e[0m]"
    PATH=/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    
    echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    2、用户root登录时,将命令指示符变成红色,并自动启用如下别名:

    rm=‘rm –i’
    cdnet=‘cd /etc/sysconfig/network-scripts/’
    editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eth0’
    editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 或 ifcfg-ens33 ’ (如果系统是CentOS7)


    命令符红色:

    在/etc/profile.d/env.sh中定义
    PS1="[e[1;31m22][u@h W]\$[e[0m]"

    定义别名:

    在 ~/.bashrc中将放入以下命令:
    alias rm=‘rm –i’
    alias cdnet=‘cd /etc/sysconfig/network-scripts/’
    alias editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eth0’
    alias editnet=‘vim  /etc/sysconfig/network-scripts/ifcfg-eno16777736 或  ifcfg-ens33 ’ 

    3、任意用户登录系统时,显示红色字体的警示提醒信息“Hi,dangerous !”
    在/etc/profile.d/env.sh 中添加

    echo -e "e[1;31mHi,dangerous ! e[0m"
  • 相关阅读:
    JSON.parse()和JSON.stringify()
    对于火狐浏览器中title不能换行自动变成...怎么解决的?
    Python中文编码过程中遇到的一些问题
    【Java并发编程实战】—–“J.U.C”:ReentrantLock之二lock方法分析
    PHP CURL 中文说明
    Windows系统下正确安装MongoDB
    js笔试题
    记录真实想法,在路上不断前行——关于工作,学习,职场
    Ansible@一个高效的配置管理工具--Ansible configure management--翻译(十一)
    Java第四次作业
  • 原文地址:https://www.cnblogs.com/liuzhiyun/p/11317285.html
Copyright © 2020-2023  润新知