Shell编程-2
声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队的教学
视频地址:shell编程(2)永久环境变量和字符串显位_哔哩哔哩_bilibili
一、环境变量
环境变量是在shell启动时设置的变量,它们可以被shell及其子进程访问。环境变量通常用于配置系统和应用程序的行为。
方法一:
目的:将自定义的 1.sh
脚本放置到 /usr/bin/
目录下,以便在终端中直接执行。
操作步骤
#查看环境变量
echo $PATH
#编写脚本
vim test.sh
#移动目录
mv test.sh /usr/bin
将脚本移动到 /usr/bin/
目录。这个目录是系统默认的可执行文件路径之一,因此放置在此的脚本可以直接通过命令名执行。
方法二:
- 目的:通过将
/root/
目录添加到环境变量PATH
中,使得该目录下的文件可以直接在终端中执行。
操作步骤
-
添加目录到PATH:
-
export PATH=/root:$PATH
这行命令将
/root/
目录添加到PATH
环境变量的前面。这样,当系统查找可执行文件时,会首先在/root/
目录下查找。 -
检查PATH变量:
-
echo $PATH
使用
echo
命令来查看PATH
环境变量的当前值,以确认/root/
目录是否已经被添加。
解释
-
export:这是一个用于设置环境变量的关键字,它确保设置的变量不仅在当前shell中有效,而且在由该shell启动的子进程中也有效。
-
PATH:这是一个非常重要的环境变量,它定义了系统在哪些目录下去寻找可执行程序。当你在命令行输入一个命令(如
ls
、cat
等)时,系统会根据PATH
环境变量所指定的目录顺序去查找对应的可执行文件,找到后就执行它。 -
重新定义PATH:通过
/root:$PATH
的形式,/root/
目录被添加到了原有的PATH
变量值的最前面。这意味着,当系统去查找可执行程序时,会先在/root/
目录下查找,然后再按照原来PATH
所指定的其他目录顺序查找。
二、永久变量
-
临时变量:使用
export
命令设置的环境变量是临时的,它们只在当前的shell会话及其子进程中有效。一旦关闭终端或结束会话,这些设置就会丢失。 -
永久生效:要使环境变量设置永久生效,需要将它们添加到用户的配置文件中。对于bash shell,常用的配置文件包括
.bashrc
、.bash_profile
或.profile
。
操作步骤
-
编辑配置文件: 使用文本编辑器(如
vi
)打开.bashrc
文件:vi .bashrc
这将打开当前用户的
.bashrc
文件,允许你进行编辑,打开.bashrc
要注意是文件路径。 -
添加环境变量设置: 在
.bashrc
文件中添加以下行:export PATH=/root:$PATH
这行命令将
/root
目录添加到PATH
环境变量的前面,使得/root
目录下的程序可以直接执行。 -
保存并退出编辑器: 在
vi
编辑器中,按Esc
键退出编辑模式,然后输入:wq
保存更改并退出。 -
使变量生效: 要使在
.bashrc
中所做的更改立即生效,可以使用source
命令:source .bashrc
这将重新加载
.bashrc
文件,应用其中的所有更改,包括对PATH
的修改。
通过将环境变量设置添加到 .bashrc
或其他配置文件中,你可以确保这些设置在每次登录时自动应用,从而实现永久生效。
三、字符串操作
当变量是字符串时,有以下操作
(1)获取字符串长度
假设我们想知道一个字符串的长度,可以使用 ${#str} 来获取字符串 str 的长度
str="hello world"
echo ${#str}
这将输出字符串 str 的长度,在这个例子中是 11。
(2)打印完整字符串
可以通过 echo 命令和变量展开来打印包含变量的完整字符串。
name="xiaoyu"
age=27
echo "my name is $name, and i am $age years old"
这将输出:my name is xiaoyu, and i am 27 years old。
(3)截取字符串的一部分
可以使用 ${str:start:length} 来截取字符串 str 从位置 start 开始的 length 个字符。
str="hello world"
echo ${str:0:3}
这将输出字符串 str 的前三个字符,即 hel。