Linux之Bash基础特性配置文件(4)

简介:

前言

    在bash进程中,读取到bash进程内存中的数据,在bash进程终止时,进程中的数据会被操作系统回收,变量也是定义在当前shell进程内存空间的数据。在shell终止时,变量也会失效


作用

    选项:定义命令的工作行为

    配置文件也能定义工作行为,主要存储命令的诸多选项,定义长期有效的行为


功能

    让用户能更好的使用bash


配置文件的分类

    对所有用户生效的配置:

        /etc/profile,/etc/profile.d/

        /etc/bashrc

    对当前用户有效    

        ~/.bashrc

        ~/.bash_profile


    profile类,定义环境变量和脚本

    bashrc类:定义本地变量和别名

    

登陆式切换:会读取目标用户的配置文件,初始化环境

    1)su -l user

    2)输入密码登陆

1
2
3
4
5
6
# echo $PATH
/usr/local/apache/bin : /usr/local/nginx/sbin : /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /root/bin
# su -l testbash
-sh-4.2$  echo  $PATH
/usr/local/nginx/sbin : /usr/local/bin : /bin : /usr/bin : /usr/local/sbin : /usr/sbin
-sh-4.2$

    读取配置文件的顺序:  profile --> profile.d --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

1
2
3
4
5
6
7
8
9
10
$ nano  /etc/profile .d /nginx .sh   ##在profile.d中定义nginx的二进制文本的路径在$PATH之前 
export  PATH= /usr/local/nginx/sbin :$PATH
$ vim ~/.bash_profile             ##在~/.bah_profile中¥PATH之前定义mysql的二进制文件的路径
PATH= /usr/local/mysql/bin :$PATH:$HOME/. local /bin :$HOME /bin 
export  PATH
 
如果先读到的,显示在后,读取配置文件的顺序在前
重启 bash 进程
echo  $PATH
/usr/local/mysql/bin :usr /local/nginx/sbin :

     

非登陆式切换:不会读取目标用户的配置文件

    2)无需输入密码登陆:su user, 图形界面下的终端

    2)脚本运行时,在当前shell的子shell中运行

1
2
3
4
5
# echo $PATH
/usr/local/apache/bin : /usr/local/nginx/sbin : /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /root/bin
# su testbash
echo  $PATH
/usr/local/apache/bin : /usr/local/nginx/sbin : /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /root/bin

    读取配置文件的顺序:~/.bashrc --> /etc/bashrc --> profile.d


******验证脚本运行为当前shell的子shell进程*********

    环境变量对当前shell的子shell进程生效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@izpo45bh60h6bsz ~] # name="obama jerry"  ##有空格的字符引用,加引号,否则会报错
[root@izpo45bh60h6bsz ~] # echo $name
obama jerry
[root@izpo45bh60h6bsz ~] # declare -x name     ##申明为环境变量
 
[root@izpo45bh60h6bsz ~] # nano tr_d_dc_s_I.sh 
#!/bin/bash
echo  $name
 
[root@izpo45bh60h6bsz ~] # chmod +x tr_d_dc_s_I.sh  ##给予脚本执行权限 
[root@izpo45bh60h6bsz ~] # ls -l tr_d_dc_s_I.sh
-rwxr-xr-x 1 root root 23 Jun 10 14:48 tr_d_dc_s_I.sh
 
[root@izpo45bh60h6bsz ~] # ./tr_d_dc_s_I.sh       ##变量生效
obama jerry
 
[root@izpo45bh60h6bsz ~] # unset name             ##撤消变量
[root@izpo45bh60h6bsz ~] # ./tr_d_dc_s_I.sh       ##变量为空
 
[root@izpo45bh60h6bsz ~] #










本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1952878,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
109 0
|
2月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
42 2
|
3月前
|
Java Shell Linux
解决 centos下执行sh文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
解决 centos下执行sh文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
|
11天前
|
存储 Shell Linux
Linux Bash 脚本中的 IFS 是什么?
【4月更文挑战第25天】
18 0
Linux Bash 脚本中的 IFS 是什么?
|
9天前
|
Shell Linux
【Linux】Bash支持各种指令选项的原理:命令行参数
【Linux】Bash支持各种指令选项的原理:命令行参数
|
9天前
|
Linux Shell 调度
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
|
17天前
|
Java Shell Linux
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
|
1月前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
1月前
|
Java Linux
Linux运行jar并选择配置文件
Linux运行jar并选择配置文件
11 1
|
2月前
|
Linux Shell 开发工具
linux】-bash:vim:未找到命令
linux】-bash:vim:未找到命令
24 0