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

泷羽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}

在这里插入图片描述

咱就是说,这些命令,咋说呢?比较基础,但是依然需要掌握,基础不牢,地动山摇。

实践是检验真理的唯一标准


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

相关文章:

  • 鸿蒙心路旅程:从实践到创新——开发者的深度技术分享
  • nodepad配置c/c++ cmd快速打开创建项目文件
  • [SWPUCTF 2021 新生赛]error
  • Scala习题
  • 【Reinforcement Learning】强化学习下的多级反馈队列(MFQ)算法
  • uniapp vue2项目迁移vue3项目
  • 【webrtc】 mediasoup中m77的IntervalBudget及其在AlrDetector的应用
  • Day3 苍穹外卖项目 公共字段自动填充(AOP)、文件上传、新增菜品、菜品分页查询、删除菜品、修改菜品
  • 【linux】手搓线程池
  • 彻底理解微服务的作用和解决方案
  • JS听到了替罪的回响
  • Flink 之 Window 机制详解(上):基础概念与分类
  • java基础知识(Arrays类)
  • Java爬虫:深入解析商品详情的利器
  • 基于Springboot的流浪宠物管理系统
  • Vue.js 中 v-for 指令与 JavaScript 数组方法
  • Nvidia的hami是什么,以及如何再K8S中起作用
  • Zookeeper3.5.8集群部署
  • 数据库---HSQLDB使用教程详解
  • 什么是虚拟机栈
  • 200. 岛屿数量【 力扣(LeetCode) 】
  • 数据结构 (7)线性表的链式存储
  • uni-app中的样式尺寸单位,px,rpx,vh,vw
  • C++多线程——线程
  • 【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南
  • SpringBoot+Vue的音乐网站项目