一文带你学会Linux系统的环境变量

背景

由于 Linux 命令行没有图形化界面,因此,所有的设置都采用文本的方式来完成,而其中最重要的用户设置则为 bashrc 文件,bashrc 配置文件非常重要,相当于图形化界面的设置选项。很多时候,命令找不到,缺少 XXX,都可能与这个有关。如果 bashrc 修改错误,会造成严重的影响。下面系统来介绍一下 bashrc 文件。

bashrc:为每一个运行 bash shell 的用户执行此文件。当 bash shell 被打开时,该文件被读取,其中 rc 是“run configure”的简写。在每个用户的 home 目录下,我们使用 ls -a 命令,就会看到以 bash 开始开头的四个隐藏文件。

代码语言:javascript代码运行次数:0运行复制

$ ll -a .bash*-rw-------. 1 meta bio 25K Nov 19 20:51 .bash_history-rw-r--r--. 1 meta bio 18 Nov 9 2019 .bash_logout-rw-r--r--. 1 meta bio 141 Nov 9 2019 .bash_profile-rw-r--r--. 1 meta bio 1.7K Sep 9 14:30 .bashrc

不同的 bashrc 配置会呈现完全不同的效果,我的配置文件主要分为三个部分,分别是 alias部分,PS 变量部分以及 export 部分。接下来我来介绍一下我的 bashrc 配置,仅供参考。

一、Alias 部分

alias 主要是设置一些别名,方便将一些长的命令和选项参数进行简化,例如“less -S”,每次要敲七个字符,简写成 le,两个字符就够了。以下是一些常用的 alias 命令,可以添加到.bashrc中。

代码语言:javascript代码运行次数:0运行复制

# .bashrc# User specific aliases and functionsalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias df='df -h'alias du='du -skh'alias grep='grep --color'alias ls='ls -hF --color=tty' # classify files in colouralias dir='ls --color=auto --format=vertical'alias ll='ls -lh -rt --file-type' # long listalias l='ls -CF' #alias lla='ls -a -l'alias e='exit'alias le='less -S'alias d='display'alias t='top -u $USER'

这其中 rm 和 cp 都是默认带交互模式,这是系统自带的,也可以自己定义一些命令,但是注意,不能和其他命令混了。

二、PS 部分

2.1 修改 PS 变量

Linux 系统中的 PS变量用来控制命令行设置,其中PS 即是Prompt String,命令提示符的意思,可以看到有 PS1,PS2,PS3,PS4 等。其中最重要的就是 PS1,PS2 用来设置二级提示符。修改 PS 中的设置就可以对命令行进行个性化的设置,不过这些都是一些奇怪的符号,不容易看懂。

代码语言:javascript代码运行次数:0运行复制

d :设置日期H :完整的主机名称h :仅取主机名中的第一个名字t :显示时间为 24 小时格式,如:HH:MM:SST :显示时间为 12 小时格式A :显示时间为 24 小时格式:HH:MM@:显示时间,为 12 小时格式:am/pmu :当前用户的账号名称v :BASH 的版本信息w :完整的工作目录名称W :显示最后一个目录名# :下达的第几个命令$ :提示字符,如果是 root 用户,提示符为 # ,普通用户则为 $

这其中我们只选取需要的部分添加到命令行里即可。一般是用户名,时间,工作目录几个部分。

代码语言:javascript代码运行次数:0运行复制

[meta@localhost meta]$ export PS1="u t w n[        DISCUZ_CODE_3        ]quot;meta 09:25:28 /User/meta$

这里我们分别选择了用户名(u),时间(t),工作目录(w),换行加$)四个部分,中间用空格分开。界面清晰了很多。如果想添加其他内容,直接添加进去就行。

2.2 设置颜色

选择完显示内容,接下里可以对每一部分分别添加颜色来进行区分。Linux 命令行终端颜色是通过一些数字来显示的。格式为“[e[F;Bm]…[e[0m],其中“F“为字体颜色,编号为 30-37,“B”为背景颜色,编号为 40-47,[e[0m]作为颜色设定的结束”。

代码语言:javascript代码运行次数:0运行复制

前景 背景 颜色------------30 40 黑色31 41 红色32 42 绿色33 43 黃色34 44 蓝色35 45 紫紅色36 46 青蓝色37 47 白色

有了这些内容我们就可以来添加颜色。

代码语言:javascript代码运行次数:0运行复制

用户名部分:[e[31;1m] u [e[0m]时间部分:[e[32;1m] t [e[0m]工作目录部分:[e[34;1m] w [e[0m]$部分设置:n[e[31;1m] $ [e[0m]

每个设置都分为三部分,前面设置颜色[e[F;Bm],其中数字代表具体颜色,这里我们不要背景色,给个数字 1,然后第二部分就是之前的用户名(u),时间(t),工作目录(w),换行加$),最后是设置结尾部分[e[0m],这里面加了很多“”用来进行转义。

案例模板

这里面给出几个模板。

模板一:

代码语言:javascript代码运行次数:0运行复制

meta 10:02:38 /User/meta$ export PS1="[e[31;1m]u[e[0m] [e[32;1m]t[e[0m][e[34;1m]w[e[0m]n[e[31;1m]$ [e[0m]"meta 10:02:46 /ifs1/User/meta$

模板二:

讯飞听见会议 讯飞听见会议

科大讯飞推出的AI智能会议系统

讯飞听见会议 19 查看详情 讯飞听见会议 代码语言:javascript代码运行次数:0运行复制

meta 10:07:02 /User/meta$ export PS1="[e[35;1m]u[e[0m] [e[36;1m]t [e[0m][e[32;1m]w[e[0m]n[e[31;1m]$ [e[0m]"meta 10:07:06 /ifs1/User/meta$

模板三:

代码语言:javascript代码运行次数:0运行复制

meta 10:11:33 /User/meta$ export PS1="[e[33;1m]u[e[0m] [e[35;1m]t [e[0m][e[36;1m]w[e[0m]n[e[32;1m]$ [e[0m]"meta 10:11:36 /ifs1/User/meta$

如果想设置永久起作用,需要将该变量写入.bashrc 文件中。

代码语言:javascript代码运行次数:0运行复制

if [ -f /etc/bashrc ]; then. /etc/bashrcfiif [ "$TERM" = "xterm" ]thenexport PS1="[e[31;1m]u[e[0m] [e[32;1m]t [e[0m][e[34;1m]w[e[0m]n[e[31;1m]$ [e[0m]"elseexport PS2="[e[31;1m]u[e[0m] [e[32;1m]t [e[0m][e[34;1m]w[e[0m]n[e[31;1m]$ [e[0m]"fi

三、export 部分

export 是最重要的一部分,这部分内容是修改系统一些默认变量的行为,例如敲 env 命令会显示出当前账户所有环境变量,其中比较重要的就是 PATH 变量,export 之后,每次登录之后,系统会重新配置默认环境变量。除了 PATH,也可以修改 perl 模块目录,python 模块目录以及其他一些配置等。

代码语言:javascript代码运行次数:0运行复制

export PATH="$PATH:./:/usr/bin:$PATH"export PATH="$PATH:/Software/bin/:$PATH"export PERL5LIB="/Software/biosoft/tRNAscan-SE-1.3.1/"# added by Miniconda3 installerexport LD_LIBRARY_PATH="/Software/boost-1.60.0-py27_3/lib/"

四、PATH 变量

4.1 PATH 变量简介

PATH 变量是 Linux 系统默认程序路径,当在命令行敲命令时,系统会从 PATH 变量中设定的目录中查找程序,which 命令搜索时也会从 PATH 变量中进行搜索。Linux 系统中常见的软件找不到“command not found…”多是因为 PAHT 变量没有设置成功引起的。PATH 变量可以极大的方便软件的使用,无需使用全路径,在任何目录下直接使用软件名即可运行,否则需要一直使用全路径。

代码语言:javascript代码运行次数:0运行复制

显示当前默认软件路径echo $PATHwhich bwa

windows 系统下也有 PATH 变量。

一文带你学会Linux系统的环境变量

4.2 修改 PATH 变量

PATH 变量中会包含多个软件路径,当在命令行输入命令时,例如 ls,软件会自动按顺序从PATH 变量的路径下开始寻找同名的软件,如果找到直接运行;如果找不到,则到下一个目录查找,以此类推。当所有目录下都找不到的时候,则提示“command not found…”。修改PATH 变量一定要小心,需要提前备份一份,如果设置错误,可以重新恢复。

代码语言:javascript代码运行次数:0运行复制

首先备份一下cp ~/.bashrc ~/.bashrc.bak打开 vim 修改vim ~/.bashrc将路径添加到 PATH 变量中,可以在一行中添加,也可以新建一行export PATH="$PATH:./:/usr/bin:/Software/bin/:$PATH"刷新设置source ~/.bashrc

4.3 创建程序快捷方式

知道了如何添加 PAHT 变量之后,就可以将生物软件的安装目录直接添加到 PATH 变量中,但是生物软件的路径很多,不能将每一个软件安装目录都添加到 PATH 变量中,这样并不是高效的做法。比较好的方案是,在系统中创建一个 biosoft 目录,一个 bin 目录,(bin 代表binary,表示二进制可执行程序),软件安装在 biosoft 目录,只将每个软件可执行程序链接到 bin 目录下即可,最后将这个 bin 目录全路径添加到 PATH 变量中。后面每次安装新程序只需将软件链接到 bin 目录下即可。这个过程相当于 windows 系统的创建桌面快捷方式。

代码语言:javascript代码运行次数:0运行复制

创建软件安装目录与快捷方式目录mkdir ~/biosoft ~/bin将 bin 目录添加到.bashrc 文件的 PATH 变量中export PATH="$PATH:~/bin/:$PATH"将可执行程序链接到 bin 目录中ln -s biosoft/ont-guppy-cpu/bin/guppy_basecaller ~/binln -s biosoft/ont-guppy-cpu/bin/guppy_barcoder ~/binln -s biosoft/ont-guppy-cpu/bin/guppy_aligner ~/bin自动补齐运行 guppy_basecallerguppy_basecaller

五、更新配置

修改完配置,确认没有问题后,保存退出 vim,这些设置并不会立刻起作用,需要重新登录,或者刷新一次。

代码语言:javascript代码运行次数:0运行复制

首先备份一下cp ~/.bashrc ~/.bashrc.bak打开 vim 修改vim ~/.bashrc保存退出,刷新设置source ~/.bashrc

六、恢复初始配置

如果 bashrc 修改错了,导致很多命令无法使用。这个时候就需要恢复到初始设置,可以恢复之前备份的,也可以拷贝系统的。因为这个时候找不到拷贝的 cp 命令,需要使用全路径。

代码语言:javascript代码运行次数:0运行复制

恢复备份cp ~/.bashrc.bak ~/.bashrc也可以恢复到系统初始化cp /etc/skel/.bashrc ~/.bashrc选择覆盖原始文件

写在最后:本次生信基础篇,从linux系统到软件使用等,基本都涵盖的很全面了。童鞋们在学习的同时,别忘了将文章分享、收藏、点击在看哈,有了阅读量我们才有动力更新。

以上就是一文带你学会Linux系统的环境变量的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/481978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
js中的闭包是什么
上一篇 2025年11月8日 11:50:18
怎样在VSCode中管理项目?工作区使用技巧
下一篇 2025年11月8日 11:50:19

相关推荐

  • Matplotlib 地图中多类型图例的创建与优化

    Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化Matplotlib 地图中多类型图例的创建与优化

    本教程旨在解决matplotlib地图可视化中,如何在一个图例中同时展示颜色块(如区域分类)和自定义标记(如特定兴趣点)的问题。文章详细介绍了当传统`patch`对象无法正确显示标记时,如何利用`matplotlib.lines.line2d`创建标记图例句柄,并将其与颜色块图例句柄合并,从而生成一…

    2026年5月10日 用户投稿
    100
  • 利用海象运算符简化条件赋值:Python教程与最佳实践

    本文旨在探讨Python中海象运算符(:=)在条件赋值场景下的应用。通过对比传统if/else语句与海象运算符,以及条件表达式,分析海象运算符在简化代码、提高可读性方面的优势与局限性。并通过具体示例,展示如何在列表推导式等场景下合理使用海象运算符,同时强调其潜在的复杂性及替代方案,帮助开发者更好地掌…

    2026年5月10日
    100
  • 怎么在PHP代码中实现图片上传功能_PHP图片上传功能实现与安全处理教程

    首先创建含enctype的HTML表单,再用PHP接收文件,检查目录、移动临时文件,验证类型与大小,生成唯一文件名,并调整php.ini限制以确保上传成功。 如果您尝试在PHP项目中添加图片上传功能,但服务器无法正确接收或保存文件,则可能是由于表单配置、文件处理逻辑或安全限制的问题。以下是实现该功能…

    2026年5月10日
    100
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • RichHandler与Rich Progress集成:解决显示冲突的教程

    在使用rich库的`richhandler`进行日志输出并同时使用`progress`组件时,可能会遇到显示错乱或溢出问题。这通常是由于为`richhandler`和`progress`分别创建了独立的`console`实例导致的。解决方案是确保日志处理器和进度条组件共享同一个`console`实例…

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • c#文件怎么打开

    打开 C# 文件有三种方法:Visual Studio:启动 Visual Studio,通过“文件”菜单打开 C# 文件。文本编辑器:使用文本编辑器打开 C# 文件,将其视为普通文本。.NET Core 命令行工具:使用 csc.exe 命令行工具编译 C# 文件,生成可执行文件。 如何打开 C#…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • Python递归函数追踪与性能考量:以序列打印为例

    本文深入探讨了Python中一种递归打印序列元素的方法,并着重演示了如何通过引入缩进参数来有效追踪递归函数的执行流程和参数变化。通过实际代码示例,文章揭示了递归调用可能带来的潜在性能开销,特别是对调用栈空间的需求,以及Python默认递归深度限制可能导致的错误,为读者提供了理解和优化递归算法的实用见…

    2026年5月10日
    000
  • python中zip函数详解 python多序列压缩zip函数应用场景

    zip函数的应用场景包括:1) 同时遍历多个序列,2) 合并多个列表的数据,3) 数据分析和科学计算中的元素运算,4) 处理csv文件,5) 性能优化。zip函数是一个强大的工具,能够简化代码并提高处理多个序列时的效率。 在Python中,zip函数是一个非常有用的工具,它能够将多个可迭代对象打包成…

    2026年5月10日
    000
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    100
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • Python中怎样使用pymongo?

    在python中使用pymongo可以轻松地与mongodb数据库进行交互。1)安装pymongo:pip install pymongo。2)连接到mongodb:from pymongo import mongoclient; client = mongoclient(‘mongod…

    2026年5月10日
    000
  • Python 函数参数类型:如何使用可变参数和动态参数?

    python 中的参数类型:关键词参数、可变参数和动态参数 在 python 中,函数的参数可以分为以下几种类型: 关键词参数(kw)**:这些参数具有名称,并且在调用函数时明确指定。可变参数(*args):这些参数没有名称,允许函数接受任意数量的位置参数。它们将被收集到一个元组中。动态参数(kwa…

    2026年5月10日
    000
  • pycharm解析器怎么添加 解析器添加详细流程

    在pycharm中添加解析器的步骤包括:1) 打开pycharm并进入设置,2) 选择project interpreter,3) 点击齿轮图标并选择add,4) 选择解析器类型并配置路径,5) 点击ok完成添加。添加解析器后,选择合适的类型和版本,配置环境变量,并利用解析器的功能提高开发效率。 在…

    2026年5月10日
    000
  • python中numpy的用法

    NumPy是Python中用于科学计算的强大库,它提供了以下功能:多维数组处理矩阵运算快速傅里叶变换(FFT)线性代数随机数生成 NumPy在Python中的强大功能 NumPy是Python中用于科学计算的一个强大且灵活的库。它提供了用于处理多维数组和矩阵的一组高效工具,是数据分析和机器学习项目的…

    2026年5月10日
    100
  • HTML文档如何工作?如何编辑HTML格式文件?

    HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?

    浏览器解析和渲染html的过程包括:1. 解析html构建dom树;2. 结合css构建渲染树;3. 布局计算元素位置;4. 绘制像素到屏幕。编辑html可使用记事本、vs code、sublime text等文本或代码编辑器,其中vs code因语法高亮、自动补全和插件生态成为主流选择。标准htm…

    2026年5月10日 用户投稿
    000
  • python如何捕获所有类型的异常_python try except捕获所有异常的方法

    答案:捕获所有异常推荐使用except Exception as e,可捕获常规错误并记录日志,避免影响程序正常退出;需拦截系统信号时才用except BaseException as e。 在Python中,要捕获所有类型的异常,最常见且推荐的方法是使用 except Exception as e…

    2026年5月10日
    000
  • 函数指针在 C++ 多态中的作用:揭示多态背后的真相

    函数指针在 C++ 多态中的作用:揭示多态背后的真相 简介 多态是面向对象编程的一项强大功能,它允许对象在运行时以不同的方式表现。C++ 中的多态实现依赖于函数指针。本文将深入探讨函数指针在多态中的作用,并通过一个实战案例展示如何利用它们。 函数指针 立即学习“C++免费学习笔记(深入)”; 函数指…

    2026年5月10日
    000
  • python中f怎么用

    f-字符串是 Python 3.6 中引入的格式化字符串语法糖,提供了简洁且安全的方式来插入表达式和变量。f-字符串以字符串前缀 f 为标志,使用大括号包含表达式或变量。f-字符串支持条件表达式和格式规范符,提供了更大的灵活性、安全性、可读性和易维护性。 在 Python 中使用 f-字符串 f-字…

    2026年5月10日
    100

发表回复

登录后才能评论
关注微信