当前位置: 首页 > article >正文

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 中,使得该目录下的文件可以直接在终端中执行。

操作步骤

  1. 添加目录到PATH

  • export PATH=/root:$PATH

    这行命令将 /root/ 目录添加到 PATH 环境变量的前面。这样,当系统查找可执行文件时,会首先在 /root/ 目录下查找。

  • 检查PATH变量

  1. echo $PATH

    使用 echo 命令来查看 PATH 环境变量的当前值,以确认 /root/ 目录是否已经被添加。

解释

  • export:这是一个用于设置环境变量的关键字,它确保设置的变量不仅在当前shell中有效,而且在由该shell启动的子进程中也有效。

  • PATH:这是一个非常重要的环境变量,它定义了系统在哪些目录下去寻找可执行程序。当你在命令行输入一个命令(如 lscat 等)时,系统会根据 PATH 环境变量所指定的目录顺序去查找对应的可执行文件,找到后就执行它。

  • 重新定义PATH:通过 /root:$PATH 的形式,/root/ 目录被添加到了原有的 PATH 变量值的最前面。这意味着,当系统去查找可执行程序时,会先在 /root/ 目录下查找,然后再按照原来 PATH 所指定的其他目录顺序查找。

二、永久变量

  • 临时变量:使用 export 命令设置的环境变量是临时的,它们只在当前的shell会话及其子进程中有效。一旦关闭终端或结束会话,这些设置就会丢失。

  • 永久生效:要使环境变量设置永久生效,需要将它们添加到用户的配置文件中。对于bash shell,常用的配置文件包括 .bashrc.bash_profile.profile

操作步骤

  1. 编辑配置文件: 使用文本编辑器(如 vi)打开 .bashrc 文件:

    vi .bashrc

    这将打开当前用户的 .bashrc 文件,允许你进行编辑,打开.bashrc要注意是文件路径。

  2. 添加环境变量设置: 在 .bashrc 文件中添加以下行:

    export PATH=/root:$PATH

    这行命令将 /root 目录添加到 PATH 环境变量的前面,使得 /root 目录下的程序可以直接执行。

  3. 保存并退出编辑器: 在 vi 编辑器中,按 Esc 键退出编辑模式,然后输入 :wq 保存更改并退出。

  4. 使变量生效: 要使在 .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。

 


http://www.kler.cn/a/395582.html

相关文章:

  • 【大模型实战篇】vLLM的由来以及大模型部署、推理加速实践
  • 物料数据对接:轻易云助力聚水潭与金蝶云星空集成方案
  • 基于Python 和 pyecharts 制作招聘数据可视化分析大屏
  • 【力扣热题100】[Java版] 刷题笔记-169. 多数元素
  • LlamaIndex
  • 【云计算解决方案面试整理】1-2云计算基础概念及云计算技术原理
  • (三十三)队列(queue)
  • ES操作命令
  • 信息技术引领未来:大数据治理的实践与挑战
  • 使用视频提升应用在 App Store 中的推广效果
  • 【Java Web】Servlet
  • IntelliJ IDEA新建项目或导入未识别为maven解决
  • 视频流媒体播放器EasyPlayer.js RTSP播放器视频颜色变灰色/渲染发绿的原因分析
  • Spring Boot编程训练系统:开发与管理
  • C语言之MakeFile
  • SQL,力扣题目1126,查询活跃业务
  • 响应“一机两用”政策 落实政务外网安全
  • 【系统架构设计师】真题论文: 论企业集成平台的架构设计(包括解题思路和素材)
  • uniapp小程序分享使用canvas自定义绘制 vue3
  • 【开源免费】基于SpringBoot+Vue.JS高校学科竞赛平台(JAVA毕业设计)
  • 【MYSQL】数据库三大范式是什么?【最简单理解】
  • 多端校园圈子论坛小程序,多个学校同时代理,校园小程序分展示后台管理源码
  • ‌MySQL 5.7和8.0版本在多个方面存在显著区别,主要包括性能优化、新特性引入以及安全性提升
  • 2:Vue.js 父子组件通信:让你的组件“说话”
  • git命令提交项目
  • 适用比亚迪汽车生产线的RFID高频读写器