Linux配置shell环境:profile和bashrc初始化脚本

本文介绍了Linux中shell环境的四种类型:交互式登录、非交互式登录、交互式非登录和非交互式非登录,并详细讲解了shell初始化脚本profile和bashrc的作用及执行情况。通过理解这些概念,可以更有效地进行shell环境配置,避免配置过程中的常见问题。
摘要由CSDN通过智能技术生成

在与Linux打交道的过程中经常会遇到配置shell环境的情况,以往总是莫名遇到各种问题反复查资料,现理清原理思路,总结配置方法,避免再遇到类似情况处理起来低效无绪。

1.shell环境分类

首先从是否交互是否登录两个方向区分shell环境:

是否交互是否登录
shell等待用户输入,根据输入实时返回运行结果在命令中需要输入用户和密码,或者参数指定login条件
以脚本方式执行命令,逐行执行后即退出shell环境无需输入用户和密码就可以进入的shell

以此可以将shell环境分为四种:

  • 交互式登录
    eg:
    ssh远程连接获取shell
    bash --login运行的shell
    su -l user输入密码后进入的shell

  • 非交互式登录
    eg:
    以脚本文件方式登录的shell

  • 交互式非登录
    eg:
    在gnome、kde等桌面环境直接打开shell
    su user输入密码后进入的shell

  • 非交互式非登录
    eg:
    以脚本文件方式直接执行shell命令

2.shell初始化脚本

shell环境初始化脚本分为profilebashrc两类,不同的shell环境执行的初始化脚本有所不同,具体如下:

  • 交互式登录 / 非交互式登录
    1./etc/profile:为系统的所有用户设置环境信息,存在则执行/etc/bashrc 或 /etc/bash.bashrc脚本。
    2.~/.profile 或 ~/.bash_profile:配置特定用户的环境信息,存在则执行~/.bashrc 或 ~/bash.bashrc脚本。
    profile初始化文件用于配置系统环境,如系统路径PATH、自定义环境变量、alias命令别名等。当用户重新登录后生效,也可以用source.执行脚本,这样配置会在当前shell环境生效。

  • 交互式非登录
    1./etc/bashrc 或 /etc/bash.bashrc:为系统所有运行bash shell的用户配置运行环境
    2.~/.bashrc:配置专属用户的bash shell运行环境,交互式非登录条件下执行
    rc意为run command,即运行一个软件的初始化命令,vimrc即用于配置vim的运行环境,bashrc即用于配置bash shell的运行环境,rc和profile本质上都是脚本文件,设置的内容可以相同,只是应用于不同的交互和登录shell环境。重新打开一个shell即可生效,也可以用source.执行脚本生效。

  • 非交互式非登录
    不执行初始化文件,子shell和新建shell默认都不会继承当前父shell的环境变量,父shell中配置的环境变量要想在子shell中生效,变量定义时要用export限定(export只影响子shell的环境信息)

3.执行命令区分

不同的命令执行环境不同,相应的环境变量、传递参数也不一样,在执行命令时要加以区分。

在当前shell中执行的命令:

  • source script
  • . script
  • bash -c command
  • $(command)
  • `command`

开启子shell运行的命令:

  • ./script
  • bash script

开启新shell运行的命令:

  • 在gnome、kde等桌面环境新打开的shell
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值