shell脚本

Linux设备(\\dev)介绍

风格不统一 提交于 2020-03-26 09:06:35
linux是文件型系统,所有硬件如软件都会在对于的目录下面有相应的文件表示。对于dev这个目录,我们知道它下面的文件,表示的是linux的设 备。在windows系统中,设备大家很好理解,象硬盘,磁盘指的是实实在在硬件。而在文件系统的linux下面,都有对于文件与这些设备关联的。访问它 们就可以放到实际硬件,想想还是linux灵活了。变成文件,操作该多简单了。不用调用以前com,prt等接口了。直接读文件,写文件就可以向设备发送 读或者写操作了。 按照读写存储数据方式,我们可以把设备分为以下几种:字符型设备,块设备,伪设备。 一、设备分类 字符型设备 字符设备是指每次与系统传输1个字符的设备。这些设备节点通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务,它通常不支持随机存 取数据。 字符设备在实现时,大多不使用缓存器。系统直接从设备读取/写入每一个字符。例如,键盘这种设备提供的就是一个数据流,当你敲入“cnblogs”这个字 符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由七个字符组成的数据流。它们是顺序的,先返回c,最后是s。 块设备 块设备是指与系统间用块的方式移动数据的设备。这些设备节点通常代表可寻址设备,如硬盘、CD-ROM和内存区域。 块设备通常支持随机存取和寻址,并使用缓存器。操作系统为输入输出分配了缓存以存储一块数据

神奇高效的Linux命令行

蓝咒 提交于 2020-03-25 17:47:48
一、为什么要学linux命令 Linux是由命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的。Linux命令有许多强大的功能:从简单的磁盘操作、文件存取,到进行复杂的多媒体图像和流媒体文件的制作,都离不开命令行。虽然Linux也有桌面系统,但是X-window也只是运行在命令行模式下的一个应用程序。 因此,可以说命令是学习Linux系统的基础,在很大程度上学习Linux就是学习命令,很多Linux高手其实都是玩儿命令很熟练的人。 也许对于刚刚从Windows系统进入Linux学习的初学者来说,立刻进入枯燥的命令学习实在太难,但是一旦学会就爱不释手。因为它的功能实在太强大了。 有很多初学者都会遇到这么一个问题,自己对系统的每个命令都很熟悉,但是在系统出现故障的时候,就无从下手了,甚至不知道在什么时候用什么命令去检查系统,这是很多Linux新手最无奈的事情了。说到底,就是学习的理论知识没有很好地与系统实际操作相结合。 很多Linux知识,例如每个命令的参数含义,在书本上说得很清楚,看起来也很容易理解,但是一旦组合起来使用,却并不那么容易,没有多次的动手练习,其中的技巧是无法完全掌握的。 人类大脑不像计算机的硬盘,除非硬盘坏掉或者硬盘被格式化,否则储存的资料将永远记忆在硬盘中,而且时刻可以调用。而在人类记忆的曲线中

Shell while循环用法总结

强颜欢笑 提交于 2020-03-25 16:22:40
while循环用于不断执行一系列命令,也用于从输入文件中读取数据。命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假。 目录 语法格式 无限循环的实现 写法一 写法二 while读取键盘信息 while读取文件内容 写法一 写法二 语法格式 while 测试条件 do 命令 done 无限循环的实现 写法一 while : do 命令 done 写法二 while true do 命令 done while读取键盘信息 下面这段代码可以接收一行键盘的输入,然后把输入的内容复述在屏幕上,就像复读机一样。当然,我没给它退回while循环的条件,除非你按ctrl+c,否则它会一直“复读”下去。 while read re do echo $re done while读取文件内容 写法一 while read line do echo $line done < file line是一个变量,read逐行读取文件的内容,赋值给line。 file是要读取的文件. 代码功能:逐行读取file文件的内容并输出. 示例: file.txt文件 Tom man 21 Jerry woman 19 脚本代码 #!/bin/bash while read name sex age do echo $name $sex $age done < file.txt 执行以上脚本,结果如下 read

shell脚本--循环

此生再无相见时 提交于 2020-03-24 14:21:21
1、基于C语言格式的for语句写法: for((i=0;i<10;i++));do【for(初始条件;条件判断语句;值变化语句);do】   循环体 done for循环的优点:不容易进入死循环 2、while语句的格式: 初始值 While 条件;do   循环体   Let i++(使初始值变化) Done 练习:写一个for循环遍历本网段中所有的up的电脑 1 2 3 4 5 6 7 8 9 10 11 12 13 #!/bin/bash declare -i sum =0 for i in $( seq 1 100); do ping -c 1 -w 1 10.6.12.$i &> /dev/null if [ $? - eq 0 ]; then let sum ++ echo "10.6.12.$i是通的" else echo "10.6.12.$i是不通的" fi done echo "总共有$sum台电脑在线" 求1-100的偶数和 1 2 3 4 5 6 7 #!/bin/bash for i in $( seq 0 2 100); do let sum +=$i echo $i done echo $ sum 打印九九乘法表 1 2 3 4 5 6 for i in {1..9}; do for ((j=1;j<=$i;j++)); do echo -n -e "

linux Shell学习笔记第三天

假装没事ソ 提交于 2020-03-24 06:19:52
第三天:条件选择 大 纲 应用实例分析 条件测试 if…else…fi case…in…esac 实现功能菜单: 执行脚本后 按1,显示当前时间 按2,显示CPU负载 按3,显示剩余内存 按0,退出脚本 按其他字符,提示超出选择范围后退出 分析步骤。 #date +%T uptime awk截取 free –m 条件测试格式 #test –option obj #[ -option obj ] 返回结果 表达式内容测试结果是真的 表达式内容测试结果是假的 测试的对象分类 执行结果(执行成功或失败) 文件(文件是否存在等) 文本(是否一致) 数字(数值比较) 条件测试的选项 选项 作用 -d 目录 -e 是否存在 -f 是否是普通文件 -s 文件大小是否等于0 -r 是否可读 -w 是否可写 -x 是否可执行 逻辑操作符号 选项 作用 -a 与操作 -o 或操作 ! 非操作 实例: #test –e /etc/passwd –a –e /etc/shadow 中间是a与操作,则都为0才得0 #test –e /etc/passwd –o –e /etc/groups 中间是o或操作,则有一真则真0 字符串操作符 == 两个字符串相等 != 两个字符串不相等 -z 空字符串 -n 非空字符串 实例: #test –z $LOGNAME #echo $LOGNAME #echo $?

03.yaml语法和playbook写法

巧了我就是萌 提交于 2020-03-23 17:38:20
ansible的playbook采用yaml语法,它简单地实现了json格式的事件描述。yaml之于json就像markdown之于html一样,极度简化了json的书写。在学习ansible playbook之前,很有必要把yaml的语法格式、引用方式做个梳理。 1.1 初步说明 以一个简单的playbook为例,说明yaml的基本语法。 --- - hosts: 192.168.100.59,192.168.100.65 remote_user: root pre_tasks: - name: set epel repo for Centos 7 yum_repository: name: epel7 description: epel7 on CentOS 7 baseurl: http://mirrors.aliyun.com/epel/7/$basearch/ gpgcheck: no enabled: True tasks: # install nginx and run it - name: install nginx yum: name=nginx state=installed update_cache=yes - name: start nginx service: name=nginx state=started post_tasks: - shell:

1. shell 简明教程

∥☆過路亽.° 提交于 2020-03-23 17:20:17
1.变量运算 2.条件分支语句 3.循环语句 4.函数 5.read 使用 6.sort 使用 7.grep 使用 8.sed 使用 9.awk 使用 10.获取当前脚本所在的绝对路 11. 批量替换文件里面的内容 12. 如何判断一个变量是否被赋值 TOC 1.变量运算 特殊变量 $0 :当前脚本变量名字 $n :传入脚本或函数的第几个参数 $# :传输脚本或函数的参数个数 $* :传给脚本或函数的所有参数 $@ :传给脚本或函数的所有参数 $? :上一个命令的返回值 $$ : 当前shell 进程ID 测试脚本 #!/bin/bash a=20 b=10 val=$(expr ${a} + ${b}) echo ${val} val=$(expr ${a} - ${b}) echo ${val} val=$(expr ${a} \* ${b}) echo ${val} val=$(expr ${a} / ${b}) echo ${val} val=$(expr ${a} % ${b}) echo ${val} if [ ${a} == ${b} ];then echo "a == b" fi if [ ${a} != ${b} ];then echo "a != b" fi 测试脚本 #!/bin/bash name1="mark" name2="mark" age1=22

CentOS下编写shell脚本来监控MySQL主从复制的教程

拜拜、爱过 提交于 2020-03-23 09:14:37
这篇文章主要介绍了在CentOS系统下编写shell脚本来监控主从复制的教程,文中举了两个发现故障后再次执行复制命令的例子,需要的朋友可以参考下 目的:定时监控MySQL主从数据库是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态 1、创建脚本文件 vi /home/crontab/check_mysql_slave.sh #编辑,添加下面代码 #!/bin/sh # check_mysql_slave status ip=eth0 #网卡名称 mysql_binfile=/usr/local/mysql/bin/mysql mysql_user=root #MySQL数据库账号 mysql_pass=123456 #密码 mysql_sockfile=/tmp/mysql.sock datetime=`date +"%Y-%m-%d/%H:%M:%S"` #获取当前时间 mysql_slave_logfile=/home/logs/check_mysql_slave.log #日志文件路径,必须提前创建好 slave_ip=`ifconfig $ip|grep "inet addr" | awk -F[:" "]+ '{print $4}'` status=$($mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql

Windows反弹shell方法总结

我的未来我决定 提交于 2020-03-22 15:31:45
一、运行exe程序反弹shell 需要先生成exe木马,然后将exe文件上传到服务器上,最后在服务器上运行该文件。可使用msfvenom生成exe木马。 二、加载dll文件反弹shell 需要先生成dll文件,然后使用regsvr32.exe加载dll。可使用msfvenom生成dll文件。 三、PowerShell反弹shell 通过执行PowerShell代码反弹shell能有效绕过杀毒软件对拦截,因为通常将PowerShell代码直接加载到内存中,不会在磁盘上创建任何恶意文件,所以能绕过杀软的监控。可使用Cobalt Strike的Web脚本投递功能反弹shell。 四、脚本语言反弹shell 可通过运行PHP、Python、Shell等脚本语言程序反弹shell。可使用msfvenom生成各种语言的脚本程序。 五、Python脚本转换成exe反弹shell 将Python脚本转换成exe程序能有效绕过杀毒软件的检测实现免杀。 六、netcat反弹shell 在VPS上监听端口:netcat -l -p 443 在被控服务器上运行:netcat.exe -t -e cmd.exe 16.79.5.26 443 ... 来源: https://www.cnblogs.com/dgjnszf/p/12317025.html

shell概述

蓝咒 提交于 2020-03-21 15:46:48
1 shell 是什么? shell是一个命令解释器,他为用户提供了一个象Linux内核发送请求以便运行程序的界面系统及程序。用户可以使用shell来启动,挂起,重启,或者编写一些应用程序。 shell还是一个功能强大的编程语言,容易编写,容易调试,灵活性较强。shell是解释性的脚本语言,shell可以直接调用Linux命令。 2 shell 的分类   Bourne Shell :1979年开始,Unix就开始使用Bourne Shell,Bourne Shell的主文文件名为sh.   C shell :C Shell 主要在BSD的Unix系统中使用,其语法和c语言相似而得名。 shell的两种主要语法类型有Bourne 和 C,其中Bourne主要包括:sh,ksh,Bash,psh。C 主要包括:csh,tcsh。 Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell 3 第一个shell程序: 使用vim新建文件hello.sh,打开 #!/bin/bash #The first program echo -e "\e[1;31m天上掉下个林妹妹\e[0m" 脚本执行方式: 1赋予执行权限,直接执行 td@td-Lenovo-IdeaPad-Y410P:~$ chmod 755 hello.sh td@td-Lenovo-IdeaPad