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

福建网站建设台湾新闻最新消息今天

福建网站建设,台湾新闻最新消息今天,手机参数对比的网站,广州荔湾做网站公声明 通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一、建立Shell文件 1. Shell简介 Shell是一种命令行界面&am…
声明

通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章如涉及侵权马上删除文章

笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负

一、建立Shell文件

1. Shell简介

Shell是一种命令行界面,用于用户与操作系统进行交互。它也是一种脚本语言,允许用户编写程序自动执行一系列命令。

Linux系统中常见的Shell类型包括bash、sh、dash等,其中bash是最常用的Shell之一。

2.建立一个1.sh文件

vim 1.sh

可以利用 #! /bin/bash,#! /bin/dash,#! /bin/sh

ls -l “路径” 是查看权限的 

这三种其实不管用哪种脚本解释器最后调用的还是这个dash


比如ls -l bin/sh 发现调用的还是dash

比如我们用 echo longyu.com 保存退出

运行一下 ./1.sh


就会输出 longyu.com (在复现的时候记得给予1.sh权限)

如果出现权限不足的情况时 如图 rw可读权限
使用指令:chmod u+x 8.sh 

这里使用的是777 然后直接 ./8.sh文件即可

3.sh

vim 2.sh

直接编辑模式输入 echo baidu.com
默认是没有权限的

但是我们利用 sh 2.sh
照样执行成功 bash 2.sh 或者 dash 2.sh 一样成功,因为他们都是脚本解释器,自带权限


我们执行脚本是在当前目录下执行的,如果你的脚本在别的目录
你就要去到那个目录,或者指定好对应路径

4.source

利用source 2.sh 执行和sh命令差不多
只不过这个命令就是对颜色加深标注了

比如我们重编辑一下这个文件


直接把ls命令放到2.sh里面去 sh 2.sh 可以看见直接输出了当前目录下的 2.sh颜色加深了
这个例子就是给大家说明一下这个shell脚本如何在这个里面进行一个执行

二,变量

1.变量声明和定义

举例 定义一个name变量,name="xiaoyu"
再利用 echo $name 打印出来,这就是简单的变量声明

比如 age="27"   echo $age 打印出来的 27

我们来写复杂点,比如说 echo my name is $name,and my age is $age years old


然后就直接打印出了 姓名 和年纪

一般来说加双引号和不加效果是一样的
echo "my name is $name,and my age is $age years old"


加单引号效果是不一样的
echo 'my name is $name,and my age is $age years old'


你会发现他并没有把变量赋值打印出来,而是直接把变量写进来了
区别就是不加或者双引号可以输出变量,但是加入单引号他会把变量当字符串输出出来

2.变量拼接

echo "my name is $name,and my age is $ageyears old"


这个例子中 years与age之间没有空格 所以打印出来为空
因为变量没有事先定义 所以为空


解决办法 将变量用双引号括起来它就会做一个区分
echo "my name is $name,and my age is "$age"years old"


那么除了""还能用什么呢 用{}也可以
echo "my name is $name,and my age is {$age}years old"

这样输出的变量会将输出内容利用花括号框起来


上面讲的全部是临时的一个变量,变量是由数字,字符串下划线组成,
但是不能以数字开头 例如9name,这种是不行的

变量中间最好不要有空格 比如说wanhao

如果非要用这种可以加个下划线 wan_hao="wanhao" 这种

我们怎么查看我们定义的变量呢比如说利用set命令,
比如说set | grep name,怎么删除变量呢我们使用 unset name
再次查看set | grep name就发现没有了

3.常见变量

echo $HOME(家目录 root用户)
/root

Windows中环境变量在path下添加

echo $HOME(家目录 root用户)
/root 

which --a ls (通过这个命令查看ls命令脚本所在路径)

再看看 echo $PATH 这么一个环境变量


usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sin:/bin:/usr/local/games:/usr/games
查看输出结果 存在/usr/bin 目录 就是当我们执行ls它会帮我们找到对应得目录做一个执行,也就是Is得完整路径应该是 /usr/bin/ls 脚本

(1)方法一

根据刚刚的说法
那我们能不能把我们1.sh脚本:直接写到/usr/bin/目录下,然后在kali终端直接输出呢
就是把脚本直接放入已经定义好的路径当中去
mv 1.sh /usr/bin


(2)方法二

那么我们也可以把/root/这个目录直接添加到环境变量中去让整个目录的文件都可以直接执行
export PATH=/root:PATH
echo $PATH (查看环境变量中root目录是否被添加)


export: 是一个用于设置环境变量的关键字,使得设置的变量可以在当前 shell 以及由该 shell 启动的子进程中生效。

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

/root:PATH: 这里是在重新定义PATH的值。它将/root目录添加到了原有的PATH变量值的最前面(假设原有的PATH值存储在变量PATH中,这里通过:PATH的形式保留了原来的值并添加了新的部分)。这样做的结果是,当系统去查找可执行程序时,会先在/root目录下查找,然后再按照原来PATH所指定的其他目录顺序查找。

4.永久变量

刚刚的export只是设置了临时变量,那么我们只有把它写入到配置文件当中才能永久生效
vi .bashrc
export PATH=/root:PATH

source /usr/bin/ .bashrc

source (变量生效 或者重启生效)
新开一个窗口查看变量 1.sh 是否生效

5.字符串相关的操作

假设我们想知道一个字符串的长度,比如我们想解析一个字符串的长度我们如何进行实现?
比如 name="wanhao" age=27 然后我们通过echo"my name is$name,and i am $age years old" 打印完整字符串


str="hello word"
echo ${#tstr}

012345 6个字符
echo ${str:0:6}

三、脚本程序传递参数

脚本如下:

echo 执行的文件名是: $0
echo 第一个参数是: $1
echo 传递的参数作为一个字符串显示: $*
echo 传递的参数独立作为每个字符串显示: $@
echo 传递到脚本的参数个数是: $#
echo 最后命令的退出状态: $?
echo 脚本运行的当前进程ID是: $$

可以向脚本程序传递一个或多个参数,脚本出的$1,里面的数字是可以依次递增的,比如$1,$2,$3等等,其中的$0(比较特殊表示文件名称)

那么好 我们利用 vim 写入脚本3.sh,再利用sh 3.sh执行文件,我们看看执行结果:
执行的文件名是:3.sh


上面显示第一个参数为空,因为我们没有给它指定任何一个参数,我们给他指定一个参数name,sh 3.sh name

然后第一个参数就为name
那么假设我们加入第二个,第三个参数,修改脚本


vim 3.sh
指定参数名分别为 sh 3.sh 1 2 3

由此得出 参数传递一般为
$n (n表示数字 可递增)
$* 就是将参数当作统一的字符串显示出来,
$@ 是将每个字符串当作独立的字符串显示,这也是$*和$@的区别
$# 代表参数的个数
$? 是查看命令执行状态的,如果显示为0,那么命令就是正常执行的,其他数字就是出错了
$$ 就是查看脚本当前进程id的

四、shell编程中进行数学运算

1.数学运算

shell编程在数学运算的时候是相当麻烦的,python中的数学运算可能很简单

在shell编程中 利用expr进行运算
expr 7+18 回显 7+18 那么该怎么运算呢 expr 7 + 18 这样写就行了 7(空格)+(空格)18


以上方法适用于加法减法


如果用乘法就会报错
expr 20 \* 10 (乘法是用\* python直接*就行了 要用\进行转义)


那么如果是除法就有两种方法 一种是 /取整数,%取余数
expr 20 / 10
expr 20 % 10

2.混合运算

expr 5 + 10 \* 7 (shell会按照先乘除后加减运算)


expr ( 5 + 10 \) \* 7


如果有括号这样直接运算就会报错,括号也要进行转义
expr \* 2

3.运算与变量结合

num=`expr 5 + 6`
echo $num

http://www.mmbaike.com/news/62466.html

相关文章:

  • 简述网站开发主要步骤个人网站推广方法
  • 有什么网站可以做家装外链发布论坛
  • 做网站的用多少钱百度助手app免费下载
  • 网站icp备案号百度一下首页网页手机版
  • 网站建设 图标乐天seo培训中心
  • 烟台网站制作建设个人网站开发网
  • 推广做网站深圳推广公司哪家好
  • 建设网站用什么语言比较好南京seo排名
  • 网站10月份可以做哪些有意思的专题网站统计分析工具
  • 优秀国内个人网站网址百度网址收录入口
  • 个人网站怎么填写2023年12月疫情又开始了吗
  • 网站后台操作手册口碑营销成功案例
  • 磁力离心泵做网站百度推广后台管理
  • dwcs5做网站抖音seo运营模式
  • ps做网站图片win10优化大师有用吗
  • 公司想做网站排名优化是怎么做的
  • 怎么做提卡密网站万游汕头seo优化项目
  • 做网站需要学哪些语言seo优化的方法有哪些
  • 做盗版电影网站违法吗seo搜索引擎营销工具
  • 搜h网站技巧姓名查询
  • 房地产网站怎么建设微信营销的模式有哪些
  • 如何用ps来做网站设计百度seo公司兴田德润
  • ks免费刷粉网站推广低价网店代运营需要多少钱
  • 南昌县住房和城乡建设局网站百度搜索关键词排名
  • 蜂网站开发免费b站推广入口2023
  • 高水平的徐州网站建设电商大数据查询平台
  • pc网站如何做sp刷神马seo排名首页排名
  • 网站应用系统设计方案直播代运营公司
  • 优秀的定制网站建设网络广告的收费模式有哪些
  • 网站备案备注信息百度推广收费多少