泷羽sec学习打卡-shell命令2
声明
学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
关于shell的那些事儿-shell2
- 临时变量和永久变量
- 为什么使用ls、dir命令可以输出一些内容呢?
- 如何创建属于自己的脚本且全局运行呢?
- 创建永久变量
- 如何解析字符串呢?
- 实践是检验真理的唯一标准
临时变量和永久变量
上期分享了变量的定义都是一些临时变量,实际中临时变量用的少,只有全局变量和永久变量才是yyds
常见的变量
echo $HOME(家目录 root用户)
HOME 是另一个环境变量,它存储了当前用户的主目录(或称为家目录)的路径。
运行 echo $HOME 命令会显示当前登录用户的主目录的完整路径。
/root
打印用户根目录
window中的环境变量都是在path中添加的
为什么使用ls、dir命令可以输出一些内容呢?
这里的命令对应的变量和脚本是哪些呢?
通过整个命令可以查看ls命令脚本所在的路径
which ls
它用于查找并显示给定命令(在这种情况下是ls命令)的完整路径。ls命令是英文“list”的缩写,用于列出目录内容,显示指定目录下的所有文件和子目录。
echo $PATH
PATH 是一个环境变量,它定义了系统在执行命令时搜索可执行文件的目录列表。这个变量通常包含一系列以冒号分隔的目录路径。
当你运行 echo $PATH 命令时,它会打印出当前用户环境变量 PATH 的值,即系统在寻找可执行文件时会查看的目录路径。
整个输出了/usr/bin目录是什么意思呢?
这个也就是本地的环境变量配置的目录
也就是说kail会找到ls命令对应的完整目录路径去执行ls脚本 /usr/bin/ls
如何创建属于自己的脚本且全局运行呢?
方法一:
创建一个dw.sh文件,直接写到/usr/bin目录下。
直接执行定义的变量
标准流程:
touch ~/dw.sh
nano ~/dw.sh(也可以用vi vim)
编写shell脚本内容
#!/bin/bash
echo "Hello, world!"
添加执行权限
chmod +x ~/dw.sh
复制到指定运行目录下
sudo cp ~/dw.sh /usr/bin/dw
设置用户权限
sudo chmod 755 /usr/bin/dw
方法二:
可以把root目录添加号环境变量中,这个类似windows中配置环境变量
export PATH=/root:PATH
把 /root 这个目录加到你的系统路径(PATH)的最前面。
这样,当你在命令行输入一个命令时,系统会先在 /root 目录下找这个命令。
这个命令只在当前打开的命令行窗口有效,关闭窗口后设置就失效了。
查看root目录是否被添加到环境变量中
echo $PATH()
但是这个只能在当前窗口生效
创建永久变量
export知识创建了临时变量,那么我们如何创建永久变量呢?
我们可以把变量写入配置文件中
vi .bashrc
export PATH=/root:PATH
source (变量生效或者重启生效)
cat查看环境变量配置文件
.bashrc 文件是位于用户主目录(通常是 /home/your_username)下的一个隐藏文件,它用于存储用户的 Bash shell 个性化设置,包括环境变量、命令别名、函数定义等
。这个文件在每次启动新的终端会话时都会被加载,以应用这些个性化设置
新开一个终端查看变量是否生效
如何解析字符串呢?
定义字符串变量
name=“xiaoyu” age=18
打印变量字符串
echo ""my name is $name and i am $age years old
str="hello world"
echo ${#str}
打印指定的字符串,这个类似python中的且切片
echo ${str:0:3}
咱就是说,这些命令,咋说呢?比较基础,但是依然需要掌握,基础不牢,地动山摇。