Linux环境变量与修改配色

理解环境变量的原理,以后在Linux上安装软件才会畅行无阻。

环境变量

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

常见环境变量

HOME:当前用户的主目录(大家的家目录)

PATH:shell查找命令的目录列表,由冒号(:)分隔。(PATH有一个规律:路径很多,用冒号:分开)

SHELL:bash shell的全路径名
LOGNAME:当前用户的登录名
PS1:shell命令行界面的主提示符(之前接触过,是用来修改命令行配色)
PS2:shell命令行界面的次提示符

在Linux里,是用echo打印变量。

  • **echo **

(1)打印字符串

(2)打印变量的值,变量调用要加 $

几个常见的环境变量的介绍

  • $HOME 记录了用户的家目录所在的路径
echo  $HOME
#/home/ashu
echo打印位置
  • PS1 命令行配色
$ echo  $PS1
\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\]

$ echo  $PATH
/trainee2/vip28/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

  • 修改命令行配色

感兴趣的自行搜索

echo  'export PS1="\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\]" ' >> ~/.bashrc
source  ~/.bashrc

##>> ~/.bashrc,linux系统原来有.bashrc这个文件,把配色PS1追加>>到~/.bashrc,修改配色,把黑白命令行,改成有彩色的。

~/.bashrc:系统配置文件,包含专用于你的 bash shell 的 bash信息、设置,每次登录或打开新的 shell 时,该文件会 被自动读取和执行如果正确修改了.bashrc,需要source,不想source的话,就是重新登入服务器,~/.bashrc在登录时会被执行

  • PATH(最关键的知识点)

PATH保存的信息是命令,可执行文件

$PATH输入命令时Linux(系统)会去查找PATH里面记录的路径,如果命令存在某一个路径中,就可以成功调用。

:::------:

打个比方,PATH 是一个工具箱,有很多层(对应很多个路径),每一层放着各式各样的工具(对应各种命令)。(PATH里有的命令才可以被使用,就如工具箱有的工具才能被使用,没有的话就不能使用,)


生信技能树小郭老师的PATH形象例子
$ echo $PATH
##记录很多个路径:路径之间没有空格,用冒号(:)分开
/trainee2/vip28/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

# 可以把 : 替换成换行符 \n 
$ echo $PATH | tr ':'  '\n'
/trainee2/vip28/miniconda3/condabin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin
##每个路径下保存的是命令

##查看命令保存在哪里,用which
# 比如 ls 命令存在
$ ls  
$ which ls 
/bin/ls
ls /bin

有一位同学提出的问题:可以创建自己的./bashrc吗?

答案:不可以,在创建用户名时已经创建./bashrc,查看./bashrc里面保存什么

cat .bashrc
##里面有很多信息
##里面前面加#的内容,可能是一些注释信息
##没有注释的代码,在登入服务器是就被自动执行
##举例子:
##alias的意思是取别名
alias ll='ls -alF'
##让ll等于ls -alF
##分别运行ls -alF和ll,它们运行出的结果一样
##这是被设置好的,如果以后拿到一台服务器,不一定是这个设置
alias la='ls -A'
alias l='ls -CF'

安装conda时,修改了系统里的bashrc,source或是重新登录就会被激活

写入conda一句非常关键的信息
 export PATH="/home/ashu/miniconda3/bin:$PATH"
 ##这个是原来的$PATH,添加了bin目录
 echo $PATH
 echo $PATH | tr ':' '\n'

conda在.bashrc里添加两句

/home/ashu/miniconda3/bin
/home/ashu/miniconda3/condabin
#/usr/local/bin
##现在能理解
#安装conda之后,需要source ./bashrc,重新运行里面的代码,才能生效。或是重新登录
写入的两句代码

conda在PATH和bashrc里,在哪个位置

conda --help
which conda
#/home/ashu/miniconda3/bin/conda
echo $PATH |tr ':' '\n'
##理解conda,bashrc,PATH三者的关系:安装conda,conda修改bashrc,conda所在目录是在我们PATH里面,所以可以调用成功。conda修改了PATH,添加路径/home/ashu/miniconda3/bin,然后又把添加的代码写在bashrc,激活bashrc或是重新登录服务器

  • 如何管理 PATH

在小环境rna里安装fastqc,在base里fastqc --help报错

echo $PATH | tr ':' '\n'
fastqc --help
conda activate rna
fastqc --help
echo $PATH | tr ':' '\n'
##发现多加了一句/home/ashu/miniconda3/envs/rna/bin
##激活小环境后,修改bashrc,就是多加上面那一句代码。
##激活小环境的原理是,在PATH里添加一个路径
which fastqc
##/home/ashu/miniconda3/envs/rna/bin/fastqc
conda deactivate
##退出小环境rna,不需要加rna
which fastqc
是否在小环境运行which fastqc结果不同

小郭老师踩了很多坑探索出来的,有空再看看这个PATH的视频

如何管理$PATH:理解环境变量 $PATH 是非常重要的,对后续的环境和软件管理都非常重要。

推荐方法:在自己家目录下创建一个 ~/bin/ 文件夹并将其添加到环境变量,后续安装软件,就将软件的可执行文件拷贝或软链接(绝对路径)到这个 bin 文件夹:

##一定要退出小环境,才进行以下的操作
mkdir  ~/bin 
echo  'export "PATH=${HOME}/bin:$PATH" ' >> ~/.bashrc 
##${HOME}加上{}是让系统能识别到,避免与其它变量混在一起后续出问题
##原来的echo  'export "PATH=~/bin:$PATH" ' >> ~/.bashrc 
##有时候波浪线~会识别错误,所以用${HOME}替代~
source  ~/.bashrc
cat ~/.bashrc
echo $PATH | tr ':' '\n'
##/home/ashu/bin,多了这一句
成功加上PATH
echo $PATH | tr ':' '\n'
打印PATH

说明

以上内容是听生信技能树小郭老师授课内容以及参考课件。

你可能感兴趣的:(Linux环境变量与修改配色)