Shell基础2
声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)
目录
一、 Linux临时变量和永久变量... 1
(一) 临时变量... 1
(二) 永久变量... 1
二、 常见变量相关命令... 2
(一) echo $HOME. 2
(二) which -a ls. 2
(三) echo $PATH.. 2
(四) 示例... 2
三、 临时变量... 3
(一) 方法一... 3
(二) 方法二... 3
四、 永久变量... 4
五、 字符串相关操作... 5
-
Linux临时变量和永久变量
-
临时变量
定义:临时变量是在当前Shell会话中临时定义的变量,它们只在当前Shell或其子Shell中有效。
设置方法:使用export命令可以直接在Shell命令行下定义临时变量。例如,export TEMP_VAR=value会定义一个名为TEMP_VAR的临时变量,并将其值设置为value。
生效范围:临时变量只在当前Shell会话中有效。一旦Shell关闭,这些变量就会失效。因此,它们适合用于一次性或临时性的环境调整。
查看与删除:可以使用echo命令查看临时变量的值,例如echo $TEMP_VAR。要删除临时变量,可以使用unset命令,例如unset TEMP_VAR。
-
永久变量
定义:永久变量是通过修改配置文件来定义的变量,它们会在系统重启或用户重新登录后仍然有效。
设置方法:
系统级别:要设置对所有用户都有效的永久变量,可以编辑/etc/profile文件。在这个文件中添加export命令来定义变量。修改后,需要运行source /etc/profile命令使设置立即生效,或者等待下次系统启动或用户登录时生效。
用户级别:要设置仅对当前用户有效的永久变量,可以编辑用户目录下的.bash_profile或.bashrc文件(取决于Shell的类型和配置)。在这些文件中添加export命令来定义变量。修改后,同样需要运行source ~/.bash_profile(或对应的.bashrc文件)来使设置立即生效。
生效范围:永久变量在系统重启或用户重新登录后仍然有效。对于系统级别的永久变量,它们对所有用户都有效;对于用户级别的永久变量,它们仅对当前用户有效。
查看与删除:与临时变量类似,可以使用echo命令查看永久变量的值。但是,要删除永久变量,需要编辑相应的配置文件并删除对应的export命令。然后,保存文件并重新加载Shell(或等待下次登录)以使更改生效。注意,直接运行unset命令只能删除当前Shell会话中的临时变量,而不能删除永久变量。
-
常见变量相关命令
-
echo $HOME
echo 是一个命令,用于在终端输出文本或变量的值。
$HOME 是一个环境变量,它包含了当前用户的主目录(也称为家目录)的路径。
-
which -a ls
which 是一个命令,用于查找并显示指定命令的绝对路径。
-a 是一个选项,告诉 which 命令显示所有匹配指定命令的路径,而不仅仅是第一个找到的路径。
ls 是您想要查找路径的命令。
-
echo $PATH
$PATH 是一个环境变量,它定义了一个由冒号分隔的目录列表。这些目录是系统搜索可执行文件的路径。
当您在终端中输入一个命令时,系统会按照 PATH 变量中列出的目录顺序来搜索这个命令的可执行文件。一旦找到,系统就会执行该命令。
-
示例
-
临时变量
-
方法一
创建好的1.sh脚本,添加执行权限,移动到usr/bin目录下
mv 1.sh /usr/bin
/usr/bin 是一个通常用于存放系统级可执行文件的目录。将文件移动到这里意味着您希望该文件能够像其他系统命令一样,从任何目录通过终端直接调用。
-
方法二
把/root目录直接添加到环境变量中让整个目录的文件都可以执行
export PATH=/root:PATH
export 是一个 shell 内建命令,用于设置或导出环境变量,使其对当前 shell 会话及其启动的任何子进程都可见。
PATH=/root:$PATH 是一个赋值表达式,它将 PATH 变量的值设置为 /root 目录加上原来的 PATH 值(通过 $PATH 引用)。这里,: 是目录分隔符。
-
永久变量
打开文件vi /usr/bin/.bashrc
添加变量export PATH=/root:PATH
变量生效 source /usr/bin/.bashrc
.bashrc 的作用:.bashrc 是一个 shell 脚本,用于 Bash shell 的个人初始化设置。当用户登录到一个基于 Bash 的终端会话时,这个文件会被执行。它通常用于设置环境变量、别名、函数等个性化配置。
/usr/bin/ 的用途:/usr/bin/ 目录通常包含系统级的可执行文件,这些文件对所有用户都是可用的。这个目录不是用来存放用户个人配置文件的。
source 命令:source
是一个 shell 内建命令,用于在当前 shell 会话中读取并执行指定文件中的命令。这意味着,执行 source
文件名
会将文件中的内容作为当前 shell 会话的输入并执行。
-
字符串相关操作
假设想知道一个字符串的长度,该如何实现
str = "hello word"
echo ${#str}
${#str} 是参数扩展的一种形式,其中 # 符号用于获取变量 str 的长度。
${} 是参数扩展的基本形式,用于获取变量的值。
在 ${} 内部加上 #,后面紧跟着变量名(在这个例子中是 str),就构成了获取变量长度的语法。
显示前三个字符
echo ${str:0:3}
在 ${} 内部,冒号 : 后面跟着两个数字,分别表示起始位置和长度。在这个例子中,0 表示起始位置(字符串的第一个字符),3 表示要提取的字符数量。
需要注意的是,Bash 中的字符串索引是从 0 开始的,这与许多编程语言一致。
相关文章:

Shell基础2
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…...

7z 解压器手机版与解压专家:安卓解压工具对决
7z 解压器手机版和解压专家都是在安卓设备上广受欢迎的解压软件。7z 解压器手机版由深圳乡里云网络科技有限公司开发,大小为 32.8M,支持多种常见的压缩文件格式,如.zip、.rar、.7z 等。 它对安卓操作系统的特性和用户习惯进行了优化…...

C++清除所有输出【DEV-C++】所有编辑器通用 | 算法基础NO.1
各位小伙伴们,上一期的保留小数位数教学够用一辈子,有不错的点赞量,可我连一个粉丝铁粉都没有,你愿意做我的第一个铁粉吗?OK废话不多说,开始! 温故与知心 可能你也学过,且是工作者…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页
Android 设置启动页 自定义 splash.xml 通过themes.xml配置启动页背景图 IOS 设置启动页 LaunchScreen.storyboard 设置为启动页 storyboard页面绘制 Assets.xcassets 目录下导入图片 AppLogo Flutter 设置启动页 Flutter Android 设置启动页 自定义 launch_background.xm…...

SpringBoot 2.2.10 无法执行Test单元测试
很早之前的项目今天clone现在,想执行一个业务订单的检查,该检查的代码放在test单元测试中,启动也是好好的,当点击对应的方法执行Test的时候就报错 tip:已添加spring-boot-test-starter 所以本身就引入了junit5的库 No…...

聊天服务器(8)用户登录业务
目录 登录状态业务层代码数据模型层代码记录用户的连接信息以及线程安全问题客户端异常退出业务 登录状态 登录且状态变为online 业务层代码 #include "chatservice.hpp" #include "public.hpp" #include <string> #include <muduo/base/Loggi…...

stm32在linux环境下的开发与调试
环境安装 注:文末提供一键脚本 下载安装stm32cubeclt 下载地址为:https://www.st.com/en/development-tools/stm32cubeclt.html 选择 linux版本下载安装 安装好后默认在家目录st下 > $ ls ~/st/stm32cubeclt_1.16.0 …...

flinkOnYarn并配置prometheus+grafana监控告警
flinkOnYarn并配置prometheusgrafana监控告警 一、相关服务版本: flink版本:1.17.2 pushgateway版本:1.10.0 prometheus版本:3.0.0 grafana-v11.3.0参考了网上的多个文档以及学习某硅谷的视频,总结了一下文档&#x…...

麒麟系统下docker搭建jenkins
首先我们需要创建宿主机挂载路径,我这里放在本地的/data/henkins/home,然后赋予权限,命令如下: mkdir -p /data/jenkins/home chown -R 1000:1000 /data/jenkins/home chmod -R 777 /data/jenkins/homedocker run -d --restart …...

论文阅读 - Causally Regularized Learning with Agnostic Data Selection
代码链接: GitHub - HMTTT/CRLR: CRLR尝试实现 https://arxiv.org/pdf/1708.06656v2 目录 摘要 INTRODUCTION 2 RELATED WORK 3 CAUSALLY REGULARIZED LOGISTIC REGRESSION 3.1 Problem Formulation 3.2 Confounder Balancing 3.3 Causally Regularized Lo…...

计算机网络之会话层
一、会话层的核心功能 会话层作为OSI模型的第五层,不仅承担着建立、管理和终止通信会话的基本任务,还隐含着许多复杂且关键的功能,这些功能共同确保了网络通信的高效、有序和安全。 1. 会话建立与连接管理: 身份验证与授权&…...

blind-watermark - 水印绑定
文章目录 一、关于 blind-watermark安装 二、bash 中使用三、Python 调用1、基本使用2、attacks on Watermarked Image3、embed images4、embed array of bits 四、并发五、相关 Project 一、关于 blind-watermark Blind watermark 基于 DWT-DCT-SVD. github : https://githu…...

reduce-scatter:适合分布式计算;Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响
目录 Gather Scatter Reduce reduce-scatter:适合分布式计算 Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响 计算结果理论正确性 资源消耗方面 Gather 这个也很好理解,就是把多个进程的数据拼凑在一起。 Scatter 不同于Br…...

DAY64||dijkstra(堆优化版)精讲 ||Bellman_ford 算法精讲
dijkstra(堆优化版)精讲 题目如上题47. 参加科学大会(第六期模拟笔试) 邻接表 本题使用邻接表解决问题。 邻接表的优点: 对于稀疏图的存储,只需要存储边,空间利用率高遍历节点链接情况相对容…...

使用Git工具在GitHub的仓库中上传文件夹(超详细)
如何使用Git工具在GitHub的仓库中上传文件夹? 如果觉得博主写的还可以,点赞收藏关注噢~ 第一步:拥有一个本地的仓库 可以fork别人的仓库或者自己新创建 fork别人的仓库 或者自己创建一个仓库 按照要求填写完成后,点击按钮创建…...

Python酷库之旅-第三方库Pandas(218)
目录 一、用法精讲 1021、pandas.DatetimeIndex.inferred_freq属性 1021-1、语法 1021-2、参数 1021-3、功能 1021-4、返回值 1021-5、说明 1021-6、用法 1021-6-1、数据准备 1021-6-2、代码示例 1021-6-3、结果输出 1022、pandas.DatetimeIndex.indexer_at_time方…...

斗鱼大数据面试题及参考答案
MySQL 索引及引擎区别 一、MySQL 索引 索引是一种数据结构,用于快速查找数据库中的数据。它就像是一本书的目录,通过索引可以快速定位到需要的数据行,而不用全表扫描。 普通索引 普通索引是最基本的索引类型,它没有任何限制,可以在一个或多个列上创建。例如,在一个用户表…...

后仿真中的GLS测试用例的选取规则
一 仿真目的 门级仿真的主要目的,从根本上来说,是确保在物理实现阶段所应用的SDC(Standard Delay Constraint,标准延迟约束文件)中的各项约束条件准确无误地反映了设计的初衷和要求。这一环节在芯片设计的整体流程中占据着至关重要的地位,因为它直接关系到最终芯片的物理…...

对接阿里云实人认证
对接阿里云实人认证-身份二要素核验接口整理 目录 应用场景 接口文档 接口信息 请求参数 响应参数 调试 阿里云openApi平台调试 查看调用结果 查看SDK示例 下载SDK 遇到问题 本地调试 总结 应用场景 项目有一个提现的场景,需要用户真实的身份信息。 …...

UI库架构设计
UI库架构设计 分层 rc-xxx,提供基础组件,unstyled component (headless) ,只具备功能交互,不具备UI表现样式体系基础组件复合组件,Search:Input Select ,IconButton:Icon Button业…...

电子应用产品设计方案-9:全自动智能马桶系统设计方案
一、系统概述 本全自动智能马桶系统旨在提供舒适、卫生、便捷和智能化的如厕体验。通过融合多种传感器技术、电子控制单元和机械执行机构,实现马桶的自动冲洗、座圈加热、臀部清洗、烘干等功能,并具备智能感应、用户个性化设置和健康监测等特色功能。 二…...

My_SQL day3
知识点:约束 1.dafault 默认约束 2.not null 非空约束 3.unique key 唯一约束 4.primary key 主键约束 5.anto_increment 自增长约束 6.foreign key 外键约束 知识点:表关系 1.一对一 2.一对多 3.多对多 知识点:约束 1.default 默认约束 …...

【代码随想录day31】【C++复健】56. 合并区间;738.单调递增的数字
56. 合并区间 遇到了三个问题,一一说来: 1 比较应该按左区间排序,我却写了右区间。由于本题是合并区间,判断是否连续显然是用下一个的左区间与前一个的右区间比较,属于没想清楚了。 2 在写for循环时写成了如下的代码…...

jmeter常用配置元件介绍总结之逻辑控制器
系列文章目录 安装jmeter jmeter常用配置元件介绍总结之逻辑控制器 逻辑控制器1.IF控制器2.事务控制器3.循环控制器4.While控制器5.ForEach控制器6.Include控制器7.Runtime控制器8.临界部分控制器9.交替控制器10.仅一次控制器11.简单控制器12.随机控制器13.随机顺序控制器14.吞…...

解决Windows远程桌面 “为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多。请稍后片刻再重试,或与系统管理员或技术支持联系“问题
当我们远程连接服务器连接不上并提示“为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多。请稍候片刻再重试,或与系统管理员或技术支持联系”时,根本原因是当前计算机远程连接时输入了过多的错误密码,触…...

中文书籍对《人月神话》的引用(161-210本):微软的秘密
中文书籍对《人月神话》的引用(第001到160本)>> 《人月神话》于1975年出版,1995年出二十周年版。自出版以来,该书被大量的书籍和文章引用,直到现在热潮不退。 2023年,清华大学出版社推出《人月神话》…...

关于写React的一些反思和总结
这两个星期我都一直在写IT资产管理这个模块。关于这个模块,前端和后端都是我来处理,对于后端,我碰到了很多问题,但是很多问题都可以在比较短的时间内解决,而且不会说完全没有头绪的那种,这一方面源于我本身…...

Qt 每日面试题 -10
91、Qt设计界面有哪些方式? 手工编写创建界面的代码︰此方法比较复杂,不够直观;使用Qt Designer界面编辑器设计︰可直接拖放控件、设置控件的属性,简单、直观、易于操作;动态加载Ul文件并生成界面︰(QUiLoader类加载xx.ui)此方法很灵活,当需…...

三正科技笔试题
(15题,45分钟,闭卷) 一、( 8 分 )请问以下程序输出什么结果? char *getStr(void) 。 { char p[] "hellow world"; return p; } void test(void) { ch…...

Selective attention improves transformer详细解读
Selective attention improves transformer Google 2024.10.3 一句话:简单且无需额外参数的选择性注意力机制,通过选择性忽略不相关信息并进行上下文剪枝,在不增加计算复杂度的情况下显著提升了Transformer模型的语言建模性能和推理效率。 论…...