009.配置文件定制bash

在命令行中输入的绝大部分命令都可以放置在一个特殊的文件中,留待登录或启动新的bash会话时执行。将函数定义、别名以及环境变量设置放置在这种特殊文件中,是一种定制shell的常用方法。

# 定义ls命令使用的颜色
LS_COLORS='no=00:di=01;46:ln=00;36:pi=40;33:so=00;35:bd=40;33;01'
export LS_COLORS# 主提示符
PS1='Hello $USER'; export PS1# 正常路径之外的个人应用程序安装目录
PATH=$PATH:/opt/MySpecialApplication/bin; export PATH# 常用命令的便捷方式
function lc () {/bin/ls -C $* ; }

Linux和Unix中能够放置定制脚本的文件不止一个。这些配置文件分为3类:登录时执行的、启动交互式shell时执行的以及调用shell处理脚本文件时执行的。

当用户登录shell时,会执行下列文件:

/etc/profile, $HOME/.profile, $HOME/.bash_login, $HOME/.bash_profile /
  • 注意:如果你是通过图形化登录管理器登入的话,是不会执行/etc/profile、$HOME/.profile和$HOME/.bash_profile这3个文件的。这是因为图形化窗口管理器并不会启动shell。当你打开终端窗口时才会创建shell,但这个shell也不是登录shell。
  • 如果.bash_profile或.bash_login文件存在,则不会去读取.profile文件。

交互式shell(如X11终端会话)或ssh执行单条命令(如ssh 192.168.1.1 ls /tmp)时,会读取并执行以下文件:

/etc/bash.bashrc $HOME/.bashrc

如果运行如下脚本:

#!/bin/bashecho "Running

不会执行任何配置文件,除非定义了环境变量BASH_ENV:

export BASH_ENV=~/.bashrc
./myscript.sh

使用ssh运行下列命令时:

ssh 192.168.1.100 ls /tmp
  • 会启动一个bash shell,读取并执行/etc/bash.bashrc和$HOME/.bashrc,但不包括/etc/profile或.profile。

如果调用ssh登录会话:ssh 192.168.1.100

这会创建一个新的登录bash shell,该shell会读取并执行以下文件:

/etc/profile
/etc/bash.bashrc
$HOME/.profile or .bashrc_profile

危险:像传统的Bourne shell、ash、dash以及ksh这类shell,也会读取配置文件。但是这些shell并不支持线性数组(列表)和关联数组。因此要避免在/etc/profile或$HOME/.profile中使用这类不支持的特性。

可以使用这些文件定义所有用户所需要的非导出项(如别名)。例如:

alias l "ls -l"/etc/bash.bashrc /etc/bashrc

也可以用来保存个人配置,比如设置需要由其他bash实例继承的路径信息,就像下面这样:

CLASSPATH=$CLASSPATH:$HOME/MyJavaProject; export CLASSPATH
$HOME/.bash_login $HOME/.bash_profile $HOME/.profile
  • 如果.bash_login或.bash_profile存在,则不会读取.profile。不过其他shell可能会读取该文件。

另外还可以保存一些需要在新shell创建时定义的个人信息。如果你希望在X11终端会话中能够使用别名和函数的话,可以将其定义在$HOME/.bashrc和/etc/bash.bashrc中。

导出变量和函数会传递到子shell中,但是别名不会。你必须将BASH_ENV的值设置为.bashrc或.profile,然后在其中定义别名,这样就可以在shell脚本中使用这些别名了。

当用户登出会话时,会执行下列文件:

	$HOME/.bash_logout

例如,远程登录的用户需要在登出的时候清屏:

cat ~/.bash_logout
# 远程登出之后清屏
Clear

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/145449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解析:用Python爬虫逆向破解dappradar的URL加密参数(最详细逆向实战教程,小白进阶高手之路)

特别声明:本篇文章仅供学习与研究使用,不得用做任何非法用途,请大家遵守相关法律法规 目录 一、逆向目标二、准备工作三、逆向分析 - 太详细了!3.1 逆向前的一些想法3.1.1 加密字符串属性猜测3.1.2 是否可以手动复制加密API?3.2 XHR断点调试3.3 加密前各参数属性的变化情况…

GRS认证是什么认证为何如此重要

在全球化日益盛行的今天,环保和可持续性成为了企业发展的关键词。其中,GRS认证作为企业实现可持续生产和全球环境保护的一个重要手段,越来越受到人们的关注。那么,GRS认证究竟是什么认证呢?   GRS,全称为Global Rec…

010.cat、find

1、用cat进行拼接 cat命令能够显示或拼接文件内容,不过它的能力远不止如此。比如说,cat能够将标准输入数据与文件数据组合在一起。通常的做法是将stdin重定向到一个文件,然后再合并两个文件。而cat命令一次就能搞定这些操作。 用cat读取文件…

关于 Spring :松耦合、可配置、IOC、AOP

关于 Spring :松耦合、可配置、IOC、AOP 文章目录 关于 Spring :松耦合、可配置、IOC、AOP一、关于 Spring1、概述2、Spring 的“松耦合”体现在哪3、Spring 的“可配置”体现在哪4、Spring 的 IOC 容器的主要作用5、Spring 的 AOP 容器的主要作用 一、关…

人工智能基础_机器学习039_sigmoid函数_逻辑回归_逻辑斯蒂回归_分类神器_代码实现逻辑回归图---人工智能工作笔记0079

逻辑斯蒂回归(Logistic Regression)是一种常用的分类算法,其基本思想是通过拟合一个逻辑斯蒂函数来预测样本所属的类别。它广泛应用于各个领域,如医学、金融、市场营销等,具有较好的解释性和可解释性。在逻辑斯蒂回归中,我们通常使用的是二分类问题,即样本只属于两个类别…

线下保薪班开启

大家都知道我们有线上班,对于想技能提升的同学来说,线上足以满足技能提升需求,对于想转行找工作,或者学生想就业的同学来说,线上却并不是一个好的选择,担心的可能有:担心自身基础较弱怕学不懂,担…

数据库实验报告(六)

实验报告(六) 1、实验目的 (1) 掌握关联查询的用法 (2) 掌握集合查询的区别和用法 (3) 掌握EXISTS的用法 2、实验预习与准备 (1) 了解ANY&…

运维知识点-Windows操作系统cmd/Dos批处理命令与脚本手册bat

Windows操作系统命令与脚本总结 管理员权限:添加账号并加入管理员组添加用户至远程桌面组允许修改密码 防火墙 :关闭防火墙 匹配出注册表信息中的软件:获取完整补丁信息(比systeminfo全):获取系统和版本信息显示本地或…

IntelliJ IDEA cmd和idea Terminal查看java版本不一致

参考:IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解决方案 1、idea清缓存重启 没用 2、删除缓存文件 没试 3、修改环境变量的顺序 没试 4、重启电脑 麻烦,没试 5、项目配置jdk7 没试 按照这个url配置了一个遍 https://blog.csdn…

跟李沐学AI-深度学习课程04数据操作

数据操作 🏷sec_ndarray 为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。 通常,我们需要做两件重要的事:(1)获取数据;(2)将数据读入计算机后对其进行处理…

AI视频检索丨历史视频标签化,助力重要事件高效溯源

随着科技的不断发展,安全监控已成为我们生活中不可或缺的一部分。当发生盗窃、人员走失、安全事故等重要事件时,常常需要通过查看视频回放了解事情经过,为解决问题提供证据或指明查找方向。但是,人工查看视频回放往往费时费力&…

npm 全局配置

前言 以 Win 为例: npm 默认在当前路径下,将下载的包存到自动创建的node_modules文件夹里npm i 默认全局安装路径是: C:\Users\你的用户名\AppData\Roaming\npmnpm 如果已经安装了包,修改全局配置并不能迁移过去 需要一个一个地…

Mongodb 副本集名称重命名

副本集重命名 要重命名副本集,您必须关闭副本集的所有成员,然后使用新的副本集名称配置每个成员的数据库。 此过程需要停机。 先决条件 确保您的副本集未分片。重命名过程仅适用于未分片的副本集。 在重命名副本集之前,请 对 MongoDB 部…

IgH Master环境搭建

目标:实时linux内核中运行IgH主站,ethercat的用户态工具能看到主站信息。 一、需要的软件 1,vbox虚拟机 https://www.virtualbox.org/,下载VirtualBox 7.0, 备注:windows中不要用wsl开发,wsl运行unbuntu…

file_put_contents锁的问题

记一次线上生产file_put_contents锁的问题 php项目,很多地方加了日志记录,方法为 function logstr($namelog,$str"",$type"Ymd"){$file date("$type")._.$name..log;$add __DIR__./../runtime/cuslog/.date("Ym&q…

苹果MAC安装绿盾出现问题,安装时没有出现填服务器地址的页面,现在更改不了也卸载不了绿盾 怎么处理?

环境: Mac mini M1 Mac os 11.0 绿盾v6.5 问题描述: 苹果MAC安装绿盾出现问题,安装时没有出现填服务器地址的页面,现在更改不了也卸载不了绿盾 怎么处理? 解决方案: 大部分企业是Windows和Mac终端混合使用,在进行文档加密管理时通常会遇到不兼容的现象,而为了统一…

M系列 Mac使用Homebrew下载配置git和连接GitHub

一、首先我们需要安装Homebrew M系列 Mac安装配置Homebrewhttps://blog.csdn.net/W_Fe5/article/details/134428377?spm1001.2014.3001.5501 二、下载git 1、终端输入一下命令 brew install git 2、这时下载完成 二、配置git 1、创建用户名和邮箱 这里以我自己的邮箱举例…

云骑士数据恢复软件会对硬盘造成伤害吗?

当今时代,数据已经成为我们生活的重要组成部分,而硬盘又是存储数据的主要设备之一。然而,由于各种原因,我们的数据很容易丢失。是的,我们可以通过数据恢复软件来找回丢失的数据,但是这个过程是否会对硬盘造…

如何防止重复提交订单?

文章目录 如何防止重复提交订单?重复提交原因常见解决方案方案一:提交订单按钮置灰幂等性方案二:预生成全局唯一订单号方案三:前端生成全局唯一订单号方案四:从订单业务的本质入手结语如何防止重复提交订单? 重复提交原因 其实原因无外乎两种: 一种是由于用户在短时间…

从哪里下载 Oracle database 11g 软件

登入My Oracle Support,选择Patches & Updates 标签页,点击下方的Latest Patchsets链接: 然后单击Oracle Database,就可以下载11g软件了: 安装单实例数据库需要1和2两个zip文件,安装GI需要第3个zip文…