vs017 linux,Linux017 shell环境变量

本文详细介绍了Linux系统中的环境变量,特别是PATH变量在寻找命令和程序中的作用。当命令路径不在PATH中时,需要将相关目录添加到PATH变量。通过`echo`命令和编辑`.bashrc`文件,可以永久性地更新PATH。同时,文章还讲解了如何使用`export`命令临时设置环境变量,以及使用`unset`命令删除变量。此外,提到了`alias`命令用于创建命令别名,以及如何使别名永久生效。

shell通过环境变量(environment variable)来存储有关shell会话和工作环境的信息,它使得用户可以在内存中存储数据,以便程序或者shell中运行的脚本可以轻松的访问到他们

当在linux系统的shell命令行输入一个外部命令时,shell必须搜索系统来找到对应的程序,而PATH环境变量则定义了用于进行命令和程序查找的目录。在Ubuntu系统中,PATH环境变量的内容如下,其中PATH变量通过冒号进行分割

d1841213e32a

image.png

如果命令或者程序的位置没有被包括在PATH变量中,那么在不使用绝对路径的情况下,shell是无法找到该命令或者运行该程序,它会给我们返回一个报错信息,比如:

d1841213e32a

image.png

linux系统的应用程序放置可执行文件的目录,通常不在PATH环境变量所包含的目录中,解决办法是保证PATH环境变量包含所有存放应用程序的目录,我们只需要引用原有的PATH值,并将新的PATH路径添加即可

在bash shell中,环境变量有两类

全局变量

对所有的shell会话和所有生成的子shell可见

局部变量

仅对创建他们的shell可见

设置用户定义变量

给环境变量赋值

可以通过等号给环境变量赋值,值可以是数字或者字符串,如:

d1841213e32a

image.png

注意

在赋值过程中,变量名,等号,值三者之间没有空格,如果给变量复制有空格的字符串,需要使用单引号或者双引号来界定字符串的首尾,引号内的特殊字符如$,可以保持原本的特性

可以使用转义字符 " \ ",将特殊字符转变为一般字符

linux系统中所有的系统环境变量名都是大写字母,如果是用户自己定义的变量,通常使用小写字母

显示环境变量

通过命令 echo

math?formula=%5B%E5%8F%98%E9%87%8F%E5%90%8D%E7%A7%B0%5D%EF%BC%8C为引用变量

echo命令在linux系统中的意思是命令的输出,很多时候我们引用变量或者运行脚本,但是我们并不知道变量的内容,或者脚本是否运行成功,可以通过echo命令将变量内容或者脚本运行结果返回在终端。

设置环境变量

如果为变量增加路径时可以通过以下命令"PATH='$PATH':绝对路径"

如前文Linux011 Sra toolkit安装及使用我们在解压软件到相应的文件夹之后,需要设置$PATH

# 将软件的绝对路径增加至PATH变量中可以使用 "$变量名称" 或是 "${变量}"

# 方法1:echo "export PATH=\$PATH:/home/sratoolkit/sratoolkit.2.10.8-ubuntu64/bin" >> ~/.bashrc

# 方法2:echo "export PATH=\${/home/sratoolkit/sratoolkit.2.10.8-ubuntu64/bin}" >> ~/.bashrc

# 方法3

echo "export PATH='$PATH':/home/sratoolkit/sratoolkit.2.10.8-ubuntu64/bin" >> ~/.bashrc

# 刷新bashrc文件

source ~/.bashrc

# 查看是否可以调用程序

fastq-dump -h

如果需要是该变量在其他的子进程中运行,需要使用export命令,在 shell 中执行程序时,export 可新增,修改或删除环境变量,供后续执行的程序使用,但export 的效力仅限于该次登陆操作,注销或者推出linux系统后再次登录无效。如需要永久生效,需要将export写入.bashrc文件,如上

删除环境变量

unset命令

unset: unset [-f] [-v] [-n] [name ...]

Unset values and attributes of shell variables and functions.

For each NAME, remove the corresponding variable or function.

Options:

-f treat each NAME as a shell function

-v treat each NAME as a shell variable

-n treat each NAME as a name reference and unset the variable itself

rather than the variable it references

Without options, unset first tries to unset a variable, and if that fails,

tries to unset a function.

Some variables cannot be unset; also see `readonly'.

Exit Status:

Returns success unless an invalid option is given or a NAME is read-only.

需要注意的是unset命令删除变量,不能使用$引用变量,如:

d1841213e32a

image.png

命令的别名

alias命令

alias: alias [-p] [name[=value] ... ]

Define or display aliases.

Without arguments, `alias' prints the list of aliases in the reusable

form `alias NAME=VALUE' on standard output.

Otherwise, an alias is defined for each NAME whose VALUE is given.

A trailing space in VALUE causes the next word to be checked for

alias substitution when the alias is expanded.

Options:

-p print all defined aliases in a reusable format

Exit Status:

alias returns true unless a NAME is supplied for which no alias has been

defined.

如下:

d1841213e32a

image.png

如果想让重设的命令永久生效,可以将其写入home文件夹下的.bashrc文件,同上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值