昨天在听完生信技能树关于环境变量的课以后,醍醐灌顶,又去鸟叔的书里翻了翻,趁我现在还记得,抓紧把笔记做下来,所以本期介绍环境变量。

你是否想过,我们第一次进入服务器,什么都没做却能有一堆能用的变量呢?这是因为系统中有一些环境配置文件的存在。

环境变量是用来存储有关shell会话和工作环境的系统变量。

常见环境变量:

  • HOME:当前用户的主目录

  • PATH:shell查找命令的目录列表,由冒号分隔

  • SHELL:bashshell的全路径名

  • LOGNAME:当前用户的登录名

  • PS1:shell命令行界面的主提示符

  • PS2:shell命令行界面的次提示符

通过echo命令可以打印变量的值,但需要注意的是变量调用需要在前面加$

.bashrc

系统配置文件,包含专用于你的bash shell的bash信息、设置,每次登录或打开新的shell时,该文件会被自动读取和执行。如果修改了该文件,需要source(类似于重启电脑)。

$PATH

which ls

我们知道ls命令的完整路径为/bin/ls,那么为什么我可以在任何地方直接输入ls去执行命令,而不是提示找不到该命令呢?

这就不得不提到环境变量PATH。

输入ls命令时,系统会按照PATH的设置去每个PATH的定义的路径中查找ls的可执行文件,如果PATH定义的路径中有多个ls的可执行文件,则执行先查找到的同名命令。

再举一个grep命令的例子,通过which命令可以发现grep命令位于 /bin目录中

再去查看一下$PATH中是否有该路径,确实有。

因此,我们在安装新命令后,也应该修改环境变量。

我们再回过头来看一下:安装conda的最后一步时,有一个需要输入yes/no的操作,当我们输入yes以后,.bashrc文件中多出了这么一段代码,export PATH="/home/zwang/anaconda3/bin:$PATH",即修改了环境变量,保证了通过conda安装的软件不需要再去修改环境变量。同时,这也解释了为什么我们在安装完conda以后需要source或重启。

关于PATH的几个点

  1. 不同身份用户默认的PATH不同,默认能够随意执行的命令也不同

  2. PATH是可以修改的

  3. 使用绝对路径或相对路径直接指定某个命令来执行会比查找PATH更准确

小环境与$PATH

经过上面的学习,我们已经能够理解$PATH和.bashrc了。

当我们运行不同的项目时,往往会由于不同软件依赖条件和环境不同而通过[conda create -n 环境名]去创建不同的小环境。

举个例子,我在名为rna的小环境下通过conda安装了fastqc。

这时在base环境下,查看fastqc的帮助文档

发现在base环境下并不能调用fastqc,我们查看一下此时的$PATH。

base环境下的$PATH

当我们激活rna环境以后,就可以成功的查看fastqc的帮助文档了

我们现在再来看看$PATH

rna环境下的$PATH

与base环境下的$PATH进行对比,我们可以发现路径/home/zwang/anaconda3/bin居然变成了/home/zwang/anaconda3/envs/rna/bin!!!

这就说明激活环境时改变了环境变量!我们再来查看fastqc的路径,确实如此!

参考资料

  1. 「生信技能树」生信入门课-2021第6期

https://mp.weixin.qq.com/s/Q-Rp2Vnr-_4sJWQ4xOLieQ

  1. 鸟哥的Linux私房菜

Linux||环境变量相关推荐

  1. Linux环境变量说明与配置

    相关的配置文件说明: /etc/profile 范围:对所有用户生效 作用: a.定义USER变量 b.定义LOGNAME变量 c.定义MAIL变量 d.定义PATH变量 e.定义HOSTNAME变量 ...

  2. linux mv 环境变量,linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用...

    linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用 [email protected] ~]# cp /usr/bin/ls   /tmp/ [[email p ...

  3. 超详干货!Linux 环境变量配置全攻略

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习实验室 Linux环境变量配置 在自定义安装软件 ...

  4. python脚本设置linux环境变量_Linux环境变量export方法与修改文件方法的区别

    玩蛇网推荐图文教程:python 列表 要想修改Linux环境变量有两种方法可以实现,但是关于Linux环境变量export方法与修改文件方法的区别你又了解多少呢?设置 Linux 环境变量可以通过 ...

  5. Linux环境变量加载的研究

    我们经常遇到在linux执行某条命令时出现xxx文件没找到的问题.很多情况都不是库没有安装,而是环境变量的错误. 但是,我明明是设置了环境变量啊.所以,我对此进行了试验. 我们登录linux有很多种, ...

  6. Linux环境变量配置出错,导致登录不了......

    Linux环境变量配置出错导致的后果: 1.登陆不了 linux 了 2.基本命令全失效了(如:ls,vi,sudo,su,find,cp等),除了cd命令可用. 解决方法有如下三步: 1.从图形登陆 ...

  7. Linux环境变量配置

    这篇文章主要介绍了Linux环境变量配置全攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 在自定义安装软件的时候,经常需要 ...

  8. linux环境变量配置的方法,Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种.环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同.Linux环境变量本身配置过 ...

  9. 中修改环境变量_超详干货!Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  10. 【Linux】19.Linux环境变量名LD_LIBRARY_PATH 和 ldd命令详解

    Linux环境变量名LD_LIBRARY_PATH 和 ldd命令详解 参考链接: https://www.jianshu.com/p/a62e1d327023 LD_LIBRARY_PATH中的LD ...

最新文章

  1. MySQL_解决ERROR 2006 (HY000) at line XX MySQL server has gone away问题
  2. LeCun、河北大学校长康乐当选美国科学院院士,另有6位华人学者位列其中
  3. Spring Boot自定义错误页面
  4. extjs5的grid垂直滚动条bug_ExtJS 6.2.1 Classic Grid 滚动条bug解决方案
  5. 【渝粤教育】21秋期末考试马克思主义基本原理概论(A)10882k1 (2)
  6. python matplotlib绘图显示中文
  7. 数据遍历打印得小列子
  8. 梯度,散度,旋度的理解
  9. 团队二阶段冲刺个人工作总结7
  10. linux win10五笔码表,wubiLex(Win10微软五笔码表安装管理助手)V9.6.0.1 正式版
  11. 排队器拦截_如何绕过浏览器的弹窗拦截机制
  12. 第一篇什么都没写的博客
  13. 鸿蒙开发者招募!给后辈的一点建议,终局之战
  14. HTML5的优势,语法变化以及基础常用标签
  15. 路由器和交换机简单总结(cisco设备)
  16. android弹出输入法内存,android 输入法导致内存泄露问题
  17. 一路走来,电子信息工程毕业生的嵌入式之路!
  18. 详细功能及代码快速帮您接入百度大脑人脸融合
  19. 如何安装 IntelliJ IDEA 最新版本——详细教程
  20. 基于PID调节的两轮自平衡小车的循迹控制

热门文章

  1. Fiber架构的简单理解与实现
  2. Go程序设计语言翻译问题(goroutine)
  3. 渗透学习之PHP--webshell
  4. PostgreSQL如何删除不使用的xlog文件
  5. 极米NEWZ8X和当贝F1C有什么区别 哪个好
  6. 【Linux篇】jstack命令简介
  7. 隐形钢:超硬木材的前景
  8. 支付宝支付新版 SDK 上线,让支付触手可及
  9. 股票个人交易接口怎样导入excel 数据?
  10. 工业外观设计中色彩如何有效运用