一文带你学会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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 11:49:42
下一篇 2025年11月8日 11:55:02

相关推荐

  • 如何解决本地图片在使用 mask JS 库时出现的跨域错误?

    如何跨越localhost使用本地图片? 问题: 在本地使用mask js库时,引入本地图片会报跨域错误。 解决方案: 要解决此问题,需要使用本地服务器启动文件,以http或https协议访问图片,而不是使用file://协议。例如: python -m http.server 8000 然后,可以…

    2025年12月24日
    200
  • CSS元素设置em和transition后,为何载入页面无放大效果?

    css元素设置em和transition后,为何载入无放大效果 很多开发者在设置了em和transition后,却发现元素载入页面时无放大效果。本文将解答这一问题。 原问题:在视频演示中,将元素设置如下,载入页面会有放大效果。然而,在个人尝试中,并未出现该效果。这是由于macos和windows系统…

    2025年12月24日
    200
  • 如何模拟Windows 10 设置界面中的鼠标悬浮放大效果?

    win10设置界面的鼠标移动显示周边的样式(探照灯效果)的实现方式 在windows设置界面的鼠标悬浮效果中,光标周围会显示一个放大区域。在前端开发中,可以通过多种方式实现类似的效果。 使用css 使用css的transform和box-shadow属性。通过将transform: scale(1.…

    2025年12月24日
    200
  • 如何用HTML/JS实现Windows 10设置界面鼠标移动探照灯效果?

    Win10设置界面中的鼠标移动探照灯效果实现指南 想要在前端开发中实现类似于Windows 10设置界面的鼠标移动探照灯效果,有两种解决方案:CSS 和 HTML/JS 组合。 CSS 实现 不幸的是,仅使用CSS无法完全实现该效果。 立即学习“前端免费学习笔记(深入)”; HTML/JS 实现 要…

    2025年12月24日
    000
  • 如何用前端实现 Windows 10 设置界面的鼠标移动探照灯效果?

    如何在前端实现 Windows 10 设置界面中的鼠标移动探照灯效果 想要在前端开发中实现 Windows 10 设置界面中类似的鼠标移动探照灯效果,可以通过以下途径: CSS 解决方案 DEMO 1: Windows 10 网格悬停效果:https://codepen.io/tr4553r7/pe…

    2025年12月24日
    000
  • 如何用前端技术实现Windows 10 设置界面鼠标移动时的探照灯效果?

    探索在前端中实现 Windows 10 设置界面鼠标移动时的探照灯效果 在前端开发中,鼠标悬停在元素上时需要呈现类似于 Windows 10 设置界面所展示的探照灯效果,这其中涉及到了元素外围显示光圈效果的技术实现。 CSS 实现 虽然 CSS 无法直接实现探照灯效果,但可以通过以下技巧营造出类似效…

    2025年12月24日
    000
  • 使用 Mask 导入本地图片时,如何解决跨域问题?

    跨域疑难:如何解决 mask 引入本地图片产生的跨域问题? 在使用 mask 导入本地图片时,你可能会遇到令人沮丧的跨域错误。为什么会出现跨域问题呢?让我们深入了解一下: mask 框架假设你以 http(s) 协议加载你的 html 文件,而当使用 file:// 协议打开本地文件时,就会产生跨域…

    2025年12月24日
    200
  • 苹果浏览器网页背景图色差问题:如何解决背景图不一致?

    网页背景图在苹果浏览器上出现色差 一位用户在使用苹果浏览器访问网页时遇到一个问题,网页上方的背景图比底部的背景图明显更亮。 这个问题的原因很可能是背景图没有正确配置 background-size 属性。在 windows 浏览器中,背景图可能可以自动填满整个容器,但在苹果浏览器中可能需要显式设置 …

    2025年12月24日
    400
  • 苹果浏览器网页背景图像为何色差?

    网页背景图像在苹果浏览器的色差问题 在不同浏览器中,网站的背景图像有时会出现色差。例如,在 Windows 浏览器中显示正常的上层背景图,在苹果浏览器中却比下层背景图更亮。 问题原因 出现此问题的原因可能是背景图像未正确设置 background-size 属性。 解决方案 为确保背景图像在不同浏览…

    2025年12月24日
    300
  • 构建模拟:从头开始的实时交易模拟器

    简介 嘿,开发社区!我很高兴分享我的业余项目 Simul8or – 一个实时日间交易模拟器,旨在为用户提供一个无风险的环境来练习交易策略。该项目 100% 构建在 ASP.NET WebForms、C#、JavaScript、CSS 和 SQL Server 技术堆栈上,没有外部库或框架。从头开始构…

    2025年12月24日
    300
  • 苹果电脑浏览器背景图亮度差异:为什么网页上下部背景图色差明显?

    背景图在苹果电脑浏览器上亮度差异 问题描述: 在网页设计中,希望上部元素的背景图与页面底部的背景图完全对齐。而在 Windows 中使用浏览器时,该效果可以正常实现。然而,在苹果电脑的浏览器中却出现了明显的色差。 原因分析: 如果您已经排除屏幕分辨率差异的可能性,那么很可能是背景图的 backgro…

    2025年12月24日
    000
  • 正则表达式在文本验证中的常见问题有哪些?

    正则表达式助力文本输入验证 在文本输入框的验证中,经常遇到需要限定输入内容的情况。例如,输入框只能输入整数,第一位可以为负号。对于不会使用正则表达式的人来说,这可能是个难题。下面我们将提供三种正则表达式,分别满足不同的验证要求。 1. 可选负号,任意数量数字 如果输入框中允许第一位为负号,后面可输入…

    2025年12月24日
    000
  • 如何在 VS Code 中解决折叠代码复制问题?

    解决 VS Code 折叠代码复制问题 在 VS Code 中使用折叠功能可以帮助组织长代码,但使用复制功能时,可能会遇到只复制可见部分的问题。以下是如何解决此问题: 当代码被折叠时,可以使用以下简单操作复制整个折叠代码: 按下 Ctrl + C (Windows/Linux) 或 Cmd + C …

    2025年12月24日
    000
  • 为什么多年的经验让我选择全栈而不是平均栈

    在全栈和平均栈开发方面工作了 6 年多,我可以告诉您,虽然这两种方法都是流行且有效的方法,但它们满足不同的需求,并且有自己的优点和缺点。这两个堆栈都可以帮助您创建 Web 应用程序,但它们的实现方式却截然不同。如果您在两者之间难以选择,我希望我在两者之间的经验能给您一些有用的见解。 在这篇文章中,我…

    2025年12月24日
    000
  • 姜戈顺风

    本教程演示如何在新项目中从头开始配置 django 和 tailwindcss。 django 设置 创建一个名为 .venv 的新虚拟环境。 # windows$ python -m venv .venv$ .venvscriptsactivate.ps1(.venv) $# macos/linu…

    2025年12月24日
    000
  • 花 $o 学习这些编程语言或免费

    → Python → JavaScript → Java → C# → 红宝石 → 斯威夫特 → 科特林 → C++ → PHP → 出发 → R → 打字稿 []https://x.com/e_opore/status/1811567830594388315?t=_j4nncuiy2wfbm7ic…

    2025年12月24日
    000
  • css怎么设置超出显示省略号

    css设置超出显示省略号的方法:1、使用“overflow:hidden;”语句把超出的部分隐藏起来;2、使用“text-overflow:ellipsis;”语句在文本溢出包含元素时,显示省略符号来代表被隐藏的部分。 本教程操作环境:windows7系统、CSS3&&HTML5版、…

    2025年12月24日
    000
  • css和c的区别是什么

    区别是:1、C语言是一门面向过程、抽象化的通用程序设计语言、计算机编程语言,广泛应用于底层开发;2、CSS是一种用来表现HTML或XML等文件样式的计算机语言,可以做到网页和内容进行分离的一种样式语言。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电…

    2025年12月24日
    000
  • 如何使用纯CSS实现Windows启动界面的动画效果

    本篇文章给大家带来的内容是关于如何使用纯css实现windows启动界面的动画效果 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 d…

    2025年12月24日
    000
  • html5怎么导视频_html5用video标签导出或Canvas转DataURL获视频【导出】

    HTML5无法直接导出video标签内容,需借助Canvas捕获帧并结合MediaRecorder API、FFmpeg.wasm或服务端协同实现。MediaRecorder适用于WebM格式前端录制;FFmpeg.wasm支持MP4等格式及精细编码控制;服务端方案适合高负载场景。 如果您希望在网页…

    2025年12月23日
    300

发表回复

登录后才能评论
关注微信