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"
bash基础之三配置文件的更多相关文章
- cmd 与 bash 基础命令入门
身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>∀<) cmd 与 bash 基础命令入门 简介 CMD 基础命令 ...
- Linux系列(10):入门之bash基础与bash环境设置
了解什么是shell吗? 知道如何查询当前系统支持的shell版本吗? 了解如何判断某个指令是否是bash的内置指令吗? 了解Linux的变量吗,知道如何定义与删除变量吗,知道如何赋值吗,知道如何获取 ...
- bash 的环境配置文件
http://www.cnblogs.com/ggjucheng/archive/2012/11/01/2750179.html bash 的环境配置文件 你是否会觉得奇怪,怎么我们什么动作都没有进行 ...
- Bash基础——减号-
参考:Bash基础——pipe pipe命令在 bash 的连续的处理程序中相当重要.在pipe命令当中,常常会使用到前一个命令的 stdout 作为这次的 stdin , 某些命令需要用到文件名 ( ...
- Linux就该这样学--之常用linux命令及bash基础
Linux就该这样学--之常用linux命令及bash基础 Linux命令 管道 重定向 环境变量 常用命令 常用系统工作命令 系统状态检测命令 工作目录切换命令 文本文件编辑命令 文件目录管理命令 ...
- linux学习19 shell脚本基础-bash脚本编程基础及配置文件
一.shell脚本编程 1.编程语言的分类,根据运行方式 a.编译运行:源代码 --> 编译器(编译) --> 程序文件 C语言: b.解释运行:源代码 --> 运行时启动解释器,由 ...
- linux文件系统及bash基础特性
linux文件系统 一.根文件系统 linux被识别的第一个被称为根之间关联的文件系统叫做根文件系统(rootfs),其他分区要想被读到,需要挂载到根目录的某个挂载点(根的子目录)上.根文件系统至关重 ...
- bash 基础命令
bash的基础特性(): () 命令历史 history 环境变量: HISTSIZE:命令历史记录的条数: HISTFILE:~/.bash_history: HISTFILESIZE:命令历史文件 ...
- webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server
一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...
随机推荐
- (七)Action之ActionContext(OGNL表达式的使用)
一.ActionContext的重要性 struts中的数据都存放在ActionContext里,所以这部分是Action中的核心. ActionContext又称广义值栈,既然有广义值栈就有侠义值栈 ...
- (一)shiro简介和用户登录demo及角色管理
一.shiro简介 Apache Shiro是Java的一个安全框架.Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境.Shiro可以帮助我们完成 ...
- bin文件夹下的某个dll总是自动刷新为不同版本的dll的解决方法
如上图所示,一般这种问题都是dll版本和配置文件中的dll版本对应不上才引起的,可以通过替换对应版本的dll或者修改配置文件中的版本号即可. 然而我的情况是:修复后,还是不定时出现这样的问题,我以为是 ...
- C# 中类的成员有哪些?
类(class)是C#类型中最基础的类型.类是一个数据结构,将状态(字段)和行为(方法和其他函数成员)组合在一个单元中.类提供了用于动态创建类实例的定义,也就是对象(object).类支持继承(inh ...
- SIFT算法研究
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://underthehood.blog.51cto.com/2531780/65835 ...
- webbrowser 屏蔽脚本错误
webBrowser1.ScriptErrorsSuppressed = true
- centos搭建集群
centos 搭建集群步骤 1.使用yum安装所需要的工具 yum -y install wget vim tcl gcc make 2.下载redis并解压 cd /usr/local wget h ...
- java - day010 - 基本类型包装,自动装箱和拆箱,日期,集合
基本类型的包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolea ...
- 如何使用Metasploit进行汽车安全性测试
前言 针对汽车的攻击和入侵是当前最前沿的领域和最热门的话题之一.随着自动驾驶汽车技术的发展,在未来这个领域将变得更加重要.作为汽车黑客快速发展的一部分,我最喜欢的黑客工具之一Metasploit也开发 ...
- Cookie操作、ASP.Net文件上传HttpPostedFile
概述 Cookie用来保存客户浏览器请求服务器页面的请求信息. 我们可以存放非敏感的用户信息,保存时间可以根据需要设置.如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止,Cookie ...