挖矿网站怎么免费建设,网站建设与维护 许宝良 课件,做服装广告素材网站有哪些,wordpress插件手动升级学习视频来自B站UP主泷羽sec#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学
请一定遵循《网络空间安全法》#xff01;#xff01;#xff01;
Linux目录介绍
/bin 二进制可执行文件#xff08;kali里面是工具一些文件#xff09;/etc 系统的管理和配置文…学习视频来自B站UP主泷羽sec如涉及侵权马上删除文章 感谢泷羽sec 团队的教学
请一定遵循《网络空间安全法》
Linux目录介绍
/bin 二进制可执行文件kali里面是工具一些文件/etc 系统的管理和配置文件/etc/rc.d 启动的配置文件和脚本/home 用户主目录的基点/lab 标准程序设计苦逼又叫动态链接共享库/sbin 超级管理命令这里存放的是系统管理员使用的管理程序/tmp 公共的临时文件存储点/root 系统管理员的主目录/mnt 系统提供这个目录是让用户临时挂载的文件系统/lostfound 这个目录平时是空的系统非正常关机而留下的无家可归的文件就在这里面/proc 虚拟的目录是系统内存的映射。可直接访问这个目录来获取系统信息/var 某些大文件的溢出区比如说各种服务器的日志文件/usr 最庞大的目录要用到的应用程序和文件几乎都在这个目录/usr/bin众多的应用程序/usr/sbin 超级用户的一些管理权限
Linux中的vim编辑器
什么是vim
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富在程序员中被广泛使用。
vim的使用
vim分为三种模式
命令模式输入模式底线命令模式
命令模式
输入vim文件名(如果没有则会创建一个新的文件)进入vim编辑器
vim 1.txt此时就是在命令模式中此状态下敲击键盘动作会被 Vim 识别为命令而非输入字符比如我们此时按下 i并不会输入一个字符i 被当作了一个命令。
命令模式常用命令
i – 切换到输入模式在光标当前位置开始输入文本。x – 删除当前光标所在处的字符。: – 切换到底线命令模式以在最底一行输入命令。a – 进入输入模式在光标下一个位置开始输入文本。o在当前行的下方插入一个新行并进入输入模式。O – 在当前行的上方插入一个新行并进入输入模式。dd – 剪切当前行。yy – 复制当前行。p小写 – 粘贴剪贴板内容到光标下方。P大写-- 粘贴剪贴板内容到光标上方。u – 撤销上一次操作。Ctrl r – 重做上一次撤销的操作。:w – 保存文件。:q – 退出 Vim 编辑器。:q! – 强制退出Vim 编辑器不保存修改。
输入模式
在命令模式下按下 i 就进入了输入模式使用 Esc 键可以返回到普通模式。
输入模式里面想输入什么就可以输入什么并且可以通过cat命令查看 底线命令模式
在命令模式下按下 :英文冒号就进入了底线命令模式。
常用命令
:w 保存文件。:q 退出 Vim 编辑器。:wq 保存文件并退出 Vim 编辑器。:q! 强制退出Vim编辑器不保存修改。
像这样就是保存退出
Shell编程
Shell 是一个用 C 语言编写的程序它是用户使用 Linux 的桥梁。Shell 既是一种命令语言又是一种程序设计语言。
进行shell编程的时候编程中的第一行一般都是
#! /bin/bash输出Hello World!
#! /bin/bash
echo Hello World!运行shell脚本的两种方法
作为可执行程序
将上面的代码保存为 test.sh并 cd 到相应目录
chmod x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本注意一定要写成 ./test.sh而不是 test.sh运行其它二进制的程序也一样直接写 test.shlinux 系统会去 PATH 里寻找有没有叫 test.sh 的而只有 /bin, /sbin, /usr/bin/usr/sbin 等在 PATH 里你的当前目录通常不在 PATH 里所以写成 test.sh 是会找不到命令的要用 ./test.sh 告诉系统说就在当前目录找。
作为解释器参数
这种运行方式是直接运行解释器其参数就是 shell 脚本的文件名如
/bin/sh test.sh
/bin/php test.php这种方式运行的脚本不需要在第一行指定解释器信息写了也没用。
Shell变量
定义变量
在 Shell 编程中变量是用于存储数据值的名称
注意变量名和等号之间不能有空格变量名的命名须遵循如下规则
只包含字母、数字和下划线 变量名可以包含字母大小写敏感、数字和下划线 _不能包含其他特殊字符。不能以数字开头 变量名不能以数字开头但可以包含数字。避免使用 Shell 关键字 不要使用Shell的关键字例如 if、then、else、fi、for、while 等作为变量名以免引起混淆。使用大写字母表示常量 习惯上常量的变量名通常使用大写字母例如 PI3.14。避免使用特殊符号 尽量避免在变量名中使用特殊符号因为它们可能与 Shell 的语法产生冲突。避免使用空格 变量名中不应该包含空格因为空格通常用于分隔命令和参数。
使用变量
使用一个定义过的变量只要在变量名前面加美元符号即可如
ahello
echo $a
echo ${a}变量名外面的花括号是可选的加不加都行加花括号是为了帮助解释器识别变量的边界比如下面这种情况
for skill in Ada Coffe Action Java; doecho I am good at ${skill}Script
done如果不给skill变量加花括号写成echo I am good at s k i l l S c r i p t 解释器就会把 skillScript解释器就会把 skillScript解释器就会把skillScript当成一个变量其值为空代码执行结果就不是我们期望的样子了。
只读变量
使用 readonly 命令可以将变量定义为只读变量只读变量的值不能被改变。
语法
readonly 变量删除变量
使用 unset 命令可以删除变量。
语法
unset 变量变量被删除后不能再次使用。unset 命令不能删除只读变量。
变量类型
字符串变量
在 Shell中变量通常被视为字符串。
可以使用单引号 ’ 或双引号 来定义字符串
如
ahello
ahello整数变量
在一些Shell中可以使用 declare 或 typeset 命令来声明整数变量。
这样的变量只包含整数值例如
declare -i a42这样的声明告诉 Shell 将 a 视为整数如果尝试将非整数值赋给它Shell会尝试将其转换为整数。
数组变量
数组可以是整数索引数组或关联数组以下是一个简单的整数索引数组的例子
my_array(1 2 3 4 5)或者关联数组
declare -A my_array
my_array[name]John
my_array[age]30字符串拼接
字符串可以用单引号也可以用双引号也可以不用引号。
例
your_namerunoob
# 使用双引号拼接
greetinghello, $your_name !
greeting_1hello, ${your_name} !
echo $greeting $greeting_1# 使用单引号拼接
greeting_2hello, $your_name !
greeting_3hello, ${your_name} !
echo $greeting_2 $greeting_3Shell数组
bash支持一维数组不支持多维数组并且没有限定数组的大小。
定义数组
数组名(值1 值2 值3...)例如
array_name(value0 value1 value2 value3)
或者
array_name(
value0
value1
value2
value3
)
或者
array_name[0]value0
array_name[1]value1
array_name[n]valuen读取数组
读取数组元素值的一般格式是
${数组名[下标]}使用 符号可以获取数组中的所有元素如
echo ${array_name[]}注释
以 # 开头的行就是注释会被解释器忽略。
单行注释
比如
#这
#是
#注
#释多行注释
例
:EOF
注释内容...
注释内容...
注释内容...
EOF
或者
:
这是注释的部分。
可以有多行内容。这个格式为:空格单引号Shell流程控制
判断语句if else
语法
if 条件1
then执行命令1
elif 条件2
then执行命令2
else执行条件n
fiif else 的 […] 判断语句中大于使用 -gt小于使用 -lt
if [ $a -gt $b ]; then...
fi如果使用 ((…)) 作为判断语句大于和小于可以直接使用 和 。
if (( a b )); then...
fifor循环
for循环格式
for var in item1 item2 ... itemn
do命令1命令2...命令n
done也可以写成一行
for var in item1 item2 ... itemN; do command1; command2… done;while语句
语法
while 条件
do命令
donecase … esac
case … esac 为多选择语句与其他语言中的 switch … case 语句类似是一种多分支选择结构每个 case 分支用右圆括号开始用两个分号 ;; 表示 break即执行结束跳出整个 case … esac 语句esac就是 case 反过来作为结束标记。
可以用 case 语句匹配一个值与一个模式如果匹配成功执行相匹配的命令。格式
case 值 in
模式1)command1command2...commandN;;
模式2)command1command2...commandN;;
esac跳出循环break/continue
和C语言一样break 命令允许跳出所有循环终止执行后面的所有循环continue 命令与 break 命令类似只有一点差别它不会跳出所有循环仅仅跳出当前循环。
Shell函数
linux shell 可以用户定义函数然后在shell脚本中可以随便调用
格式
[ function ] funname [()]{action;[return int;]}例
helloFun(){echo Hello,World!
}
helloFun输出结果
例
funWithReturn(){echo 这个函数会对输入的两个数字进行相加运算...echo 输入第一个数字: read aNumecho 输入第二个数字: read anotherNumecho 两个数字分别为 $aNum 和 $anotherNum !return $(($aNum$anotherNum))
}
funWithReturn
echo 输入的两个数字之和为 $? !输出 Linux资源耗尽病毒
使用alert或notify-send等工具发送通知
使用vim编辑器编写一个脚本名为shell.sh
内容为
#!/bin/bashwhile truedonotify-send 无限弹窗 这是一个无限循环的弹窗sleep 2done然后
然后运行这个脚本./shell.sh
就会无限弹窗了
… echo 输入第一个数字: read aNum echo 输入第二个数字: read anotherNum echo “两个数字分别为 $aNum 和 $anotherNum !” return ( ( (( ((aNum$anotherNum)) } funWithReturn echo “输入的两个数字之和为 $? !” 输出[外链图片转存中...(img-xmPK20vu-1731557854155)]### Linux资源耗尽病毒使用alert或notify-send等工具发送通知使用vim编辑器编写一个脚本名为shell.sh内容为bash
#!/bin/bashwhile truedonotify-send 无限弹窗 这是一个无限循环的弹窗sleep 2done然后
然后运行这个脚本./shell.sh
就会无限弹窗了