泷羽sec学习打卡-shell命令2

ops/2024/11/28 18:13:09/

声明
学习视频来自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.ppmy.cn/ops/137431.html

相关文章

java 集合 菱形内定义封装类 而非基本数据类型 原因解释 详解

在 Java 中&#xff0c;泛型&#xff08;例如 List<E>、Map<K, V>&#xff09;要求使用封装类&#xff08;Wrapper Class&#xff09;而不是基本数据类型&#xff08;Primitive Types&#xff09;。这是因为 Java 泛型的实现机制&#xff08;基于类型擦除&#xff…

Vue 是如何实现数据双向绑定的?

前言 Vue.js 核心特性之一是数据双向绑定&#xff08;Two-way Data Binding&#xff09;&#xff0c;这一特性不仅简化了开发者与数据交互的过程&#xff0c;还大大提升了开发效率和用户体验。那么在 Vue.js 的内部机制中&#xff0c;数据双向绑定究竟是如何实现的呢&#xff…

docker如何安装mysql8

第一步 直接docker pull 拉取镜像 docker pull mysql:8 如果使用这个命令出现类似这种错误 Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 124.11.210.175:443: connect: connection refused 首先看443端口是否在云服务器上打开&a…

数学期望在算法中的应用

数学期望在算法中的应用 数学期望是概率论和统计学中的一个核心概念&#xff0c;主要用于描述所有数据的平均值或者是中心趋势。在计算机算法竞赛中&#xff0c;期望算法属于一个中高等难度的算法&#xff0c;在程序设计中发挥着至关重要的作用。在近些年的 CSP/ USACO 等国际…

Python爬虫爬取网页小说

分析 注意&#xff1a;不同小说url不同&#xff0c;不同小说需采用的正则也不同 1.安装requests包 pip install requests2.导入必要的库 re模块用于进行正则表达式相关的操作&#xff0c;比如使用正则表达式在获取到的网页文本内容中匹配提取特定格式的信息。 resquests模块用…

使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件

使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件 Python 是一门强大的编程语言&#xff0c;它不仅可以用于数据处理、自动化脚本&#xff0c;还可以用于创建图形用户界面 (GUI) 应用程序。在本教程中&#xff0c;我们将使用 Python 的标准库模块 tkinter 创建一…

daos源码编译

1. 前言 本文详细介绍如何在almalinux8.9上编译daos.2.0.0源码。系统环境如下&#xff1a; daos: 2.0.0 linux os: almalinux 8.9 linux kernel: 4.18.0-513.5.1.el8_9.x86_64之所以选择2.0.0版本&#xff0c;是因为daos从2.0.0开始是一个全新的架构设计&a…

Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)

tetris-demo A Tetris example written in Rust using Piston in under 500 lines of code 项目地址: https://gitcode.com/gh_mirrors/te/tetris-demo 项目介绍 "Tetris Example in Rust, v2" 是一个用Rust语言编写的俄罗斯方块游戏示例。这个项目不仅是一个简单…