声明:
本文的学习内容来源于B站up主“泷羽sec”视频【shell编程(2)永久环境变量和字符串显位】的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。
本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文中的信息从事违法活动,均与本文作者和“泷羽sec”无关。请读者自觉遵纪守法,合理合法使用相关知识。
1 常见环境变量
家目录 root用户
echo $HOME
查看环境变量$PATH
echo $PATH
在Linux中,$PATH
是一个环境变量,用于定义系统在运行命令时搜索可执行文件的目录列表。
/usr/bin
目录的作用:/usr/bin
是Linux系统中的一个标准目录,通常存放用户可执行的常用命令和二进制文件。- 典型的命令如
ls
,cp
,mv
,grep
等可能位于/usr/bin
。
$PATH
中的/usr/bin
:- 如果
PATH
环境变量包含/usr/bin
,说明系统在运行命令时,会在该目录中查找命令。 - 例如,当你在终端输入
ls
时,系统会按顺序在$PATH
中的目录中查找ls
的可执行文件。如果/usr/bin/ls
存在且有执行权限,就会运行它。
- 如果
PATH
的查找机制:- 系统按从左到右的顺序依次查找
$PATH
中列出的目录,找到匹配的命令后立即执行。 - 如果
$PATH
中不包含/usr/bin
,则位于该目录的命令将无法直接运行,除非使用绝对路径。
- 系统按从左到右的顺序依次查找
2 永久执行自定义脚本,修改环境变量
呢么为了可以直接在命令行运行我们的脚本,就可以将自己写的脚本放入/usr/bin
目录下,或者将脚本直接添加到$PATH
里。
2.1 方法一:
将脚本直接移动到/usr/bin
目录下,这样1.sh
就可以直接当做命令来运行
2.2 方法二:
将整个/root
目录添加到环境变量中去
export PATH=/root:$PATH
2.3 方法三:
将修改环境变量的代码写到.bashrc
然后使用source
命令运行,.bashrc在用户根目录下,当前为root用户,则在/root
下,或者可以使用符号~
代替根目录
备份.bashrc
为.bashrc.bak
cp ~/.bashrc ~/.bashrc.bak
修改.bashrc
export PATH=/root:$PATH
使用source
运行.bashrc
source ~/.bashrc
尝试运行1.sh
脚本成功
但开一个新窗口运行但是修改失败
原因:当前使用的shell
是zsh
,并不是bash
,所以修改bashrc
无效,需要修改zshrc
查看所有shell
cat /etc/shells
查看当前默认使用的shell
echo $0
echo $SHELL
备份.zshrc
为.zshrc.bak
cp ~/.bashrc ~/.bashrc.bak
修改.zshrc
export PATH=/root:$PATH
使用source
运行.bashrc
source ~/.bashrc
尝试运行1.sh
新开一个窗口执行
若想变回原来的命令行提示符,运行source ~/.zshrc.bak
即可
3 字符串相关操作
创建字符串
str="hello world"
查看字符串长度
echo ${#str}
截取字符串
echo ${variable:offset:length}
例如,截取str
中world
部分,即偏移(offset)6个字符,长度(length)为5。
echo ${str:6:5}