shell
cxs123678
心之所向,素履以往。生如逆旅,一苇以航!
展开
-
shell脚本之cut
cut命令; -d 指定分隔符 -f指定要截取的列 -c指定第几个区块题目:写一个脚本 1.设定变量FILE的值为/etc/passwd 2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么 形如: Hello,root,your UID is 0. 3.统计一个有多少个用户 分析:文原创 2017-11-13 22:26:50 · 574 阅读 · 0 评论 -
shell之获取系统信息
获取系统信息比赛规则仔细阅读题目描述,在实验环境中完成任务完成任务后点击文档下方的提交结果按钮系统自动评测并给出是否通过的信息 获取系统信息 简介小楼是一个系统管理员,需要编写一个脚本 getinfo.sh 获取 Linux 服务器的 CPU、内存等信息。脚本 getinfo.sh 脚本执行时候不需要任何参数,输出的内容包括以下信息:$ bash getinfo.sh cpu num:原创 2018-03-24 18:54:30 · 3775 阅读 · 0 评论 -
shell 数组
1.数组的定义arr=(1 2 3 4 5 6) 2.数组元素的读取echo ${arr[0]} #输出arr[0] # 1echo ${arr[*]} #输出整个数组内容# 1 2 3 4 5 6echo ${arr[@]} #输出整个数组内容# 1 2 3 4 5 63.遍历数组 (for 循环)for 变量名 in 循环的条件do comm...原创 2017-11-12 22:08:54 · 513 阅读 · 0 评论 -
shell之作为密码生成器
题目 密码生成器 介绍实验楼为每位用户生成的环境中用户名都是 shiyanlou,但密码都是随机的。请为我们实现一个满足要求的随机密码生成器:生成的密码字符串长度为12位密码中必须同时包含数字,大小写字母及至少1个特殊字符只允许使用这些特殊字符:><+-{}:.&;目标请实现一个 bash 脚本,脚本的存放位置 /home/shiyanlou/ge...原创 2018-04-15 00:20:11 · 947 阅读 · 0 评论 -
shell之解决DOS攻击的方法
一、问题DOS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。解决DOS攻击方法:可以通过分析web日志,或者查看网络连接数,当某个IP并发连接数过多(或判断PV短时内达到1000),则调用防火墙命令封掉对应的ip,监控频率可是每隔3分钟。二、详解...转载 2018-04-15 13:35:22 · 443 阅读 · 0 评论 -
shell 之统计网络数据包
统计网络数据包 介绍实验楼的环境有的时候需要检测下网络通信状况,例如某个端口统计有多少数据包传输。目前有一个需求,实现一个 Bash 脚本 /home/shiyanlou/netcheck.sh,获取指定端口的数据包统计信息。这个脚本输入参数为统计的目标端口号,只会执行3秒钟,并打印这3秒钟指定端口传输的数据包数量。例如:$ /home/shiyanlou/netcheck.sh 22 Pack原创 2018-04-05 15:29:52 · 618 阅读 · 0 评论 -
shell之批量创建删除用户和组
小楼是一个系统管理员,需要为一个教室中的服务器添加一个老师和若干学生用户,手动添加太麻烦了,请你为他编写一个bash脚本 userctr.sh 实现批量添加和删除用户。老师用户名,学生用户名和学生数量使用参数进行控制。userctr.sh 脚本执行时候包括四个参数:bash userctr.sh 操作(add或者del)教师名 学生名前缀 学生数量脚本成功执行后将创建1个教师用户和若干个学生用户,满原创 2018-03-28 19:26:07 · 2044 阅读 · 0 评论 -
shell 文本处理三剑客之grep
先介绍一下正则表达式的基本组成部分^ 行起始标记 ^tux匹配以tux起始的行$ 行尾标记 tux$匹配以tux结尾的行. 匹配任意一个字符 它只能匹配单个字符[] 匹配包含在[字符]之中的任意一个字符 coo[kl] 匹配cook或cool[^] 匹配除[^字符]之外的任意字符 9[^01] 匹配92...原创 2018-02-24 15:43:18 · 221 阅读 · 0 评论 -
http头部详解与curl工具
http头部详解curl -I www.baidu.com #-I只打印http的头部-----------------------------------------------------------HTTP/1.1 200 OK #响应行,请求状态码Server: bfe/1.0.8.18 #服务器主机Date: Fri, 20 Apr 2018 09:56:19 GMT #原创 2018-04-20 18:49:12 · 640 阅读 · 0 评论 -
shell脚本实现Linux系统监控
运行结果如下所示: 代码如下:#!/bin/bashfunction bule(){ echo -ne "\e[32m$1\e[0m" }/usr/bin/clearbule 'Internet: '[ ping -c 2 www.baidu.com &> /dev/null ] && echo 'connected' || echo 'disc原创 2018-04-21 22:51:27 · 588 阅读 · 0 评论 -
LeetCode之shell习题
1、写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。为了简单起见,你可以假设:words.txt只包括小写字母和' ' 。 每个单词只由小写字母组成。 单词间由一个或多个空格字符分隔。 示例:假设 words.txt 内容如下:the day is sunny the the the sunny is is 你的脚本应当输出(以词频降序...转载 2018-08-22 14:07:12 · 581 阅读 · 0 评论 -
shell之收集指定时间的文件
收集指定时间的文件 介绍将实验楼实验环境中的 /etc 目录下的所有最后更新时间在2015年的文件拷贝到 /tmp 目录,需要保持目录结构。例如 /etc/fstab 文件更新时间为2015年,则会被拷贝到 /tmp/etc/fstab 路径位置。注意 /etc 目录下的子文件夹中也有很多文件最后更新时间在2015年,需要拷贝。如果只是文件夹的更新时间为2015年,则不需要拷贝文件夹。拷贝完成后点原创 2018-03-29 22:08:10 · 1007 阅读 · 0 评论 -
shell之备份日志
先介绍命令crontab 常用选项-u:表示指定某个用户,不加-u选项则为当前用户-e:表示指定任务计划-l:表示列出任务计划-r:表示删除任务计划[root@localhost ~]# crontab -ecrontab: no changes made to crontab#输入如下内容:0 2 * * * echo 'ok' > /root/cron.log分 时 日 月原创 2018-03-29 21:53:26 · 1045 阅读 · 0 评论 -
shell之函数以及参数
先介绍脚本参数$0 脚本名称$1 -$9${10} 第十个参数$* 打印出所有参数$# 打印出参数的个数1、定义函数function fname(){ statements;}或者fname(){ statements;}2、只要使用函数名就可以调用某个函数fname3、函数参数与脚本参数类似原创 2018-03-22 20:06:11 · 677 阅读 · 0 评论 -
shell 打印九九乘法表
有两个关于echo的选项:-e #使用转义序列-n #输出不换行很简单的一个小程序就直接上代码了!#! /bin/bash#打印九九乘法表for i in `seq 1 9`do for j in `seq 1 $i` do echo -n -e "${i}x${j}=$[$i*$j]\t" done ech原创 2017-11-28 16:46:43 · 595 阅读 · 0 评论 -
shell 文本处理三剑客之sed
grep只能实现查找行,不能把查找的内容替换。 sed流编辑器(stream editor)的缩写。配合正则表达式使用。sed命令众所周知的一个用法是进行文本替换。cat text.txt#rot:x:0:0:/rot:/bin/bash##operator:x:11:0:/root/:/sbin/nologin##operator:x:11:0:/rooot/:/sbin/n...原创 2018-02-26 10:23:08 · 213 阅读 · 0 评论 -
shell 文本处理三剑客之awk
awk是一款设计用于数据流的工具。它颇有颇有玩头的原因就在于可以对列和行进行操作。awk工作模式(逐行读取)、分隔符cat file============================ll 1045670921 80 97 70kk 1234566789 90 90 90hh 1233454562 60 60 60jj 5234364142 59 58 57aa 1232341234原创 2018-02-27 11:27:15 · 352 阅读 · 0 评论 -
find,exec及xargs命令
先看几个例子[root@localhost exec]# touch {1..5}.txt[root@localhost exec]# touch {1..5}.sh[root@localhost exec]# ls1.sh 1.txt 2.sh 2.txt 3.sh 3.txt 4.sh 4.txt 5.sh 5.txt[root@localhost exec]# fin原创 2018-03-15 16:08:18 · 293 阅读 · 0 评论 -
shell之变量
脚本的几种执行方法: 1、bash解释器执行 sh 1.sh 2、添加可执行权限 chmod +x 1.sh 3、source命令执行 source 1.shvar.sh#!/bin/bash#shell变量#env命令显示用户环境变量#set命令显示shell预先定义的变零以及用户环境变量# $SHELL 表示当前用户的shell类型# $HOSTNAME 表示当前主机名# $原创 2018-02-22 17:21:58 · 145 阅读 · 0 评论 -
shell之字符串以及echo 打印彩色文本、背景
${} 有很重要的功能string.sh#!/bin/bash#获取字符串长度var='hello world'echo ${#var}#11#字符串切片#截取helloecho ${var:0:5}#截取worldecho ${var:(-5)}#打印彩色文本#\e[1:31m This is red text \e[0m#\e[1;31m 将颜色设置为红色#\e[0m 将原创 2018-02-22 22:25:24 · 232 阅读 · 0 评论 -
shell之流程控制
在执行这个脚本的时候,想让它停止执行,于是再打开一个终端,输入ps aux | grep if_for.sh #找到进程的PIDkill PID#!/bin/bash#判断crond进程是否运行NAME=crondNUM=$( ps aux |grep $NAME |grep -vc grep )#去除grep进程if [ $NUM -eq 1 ]; then echo "$NAME原创 2018-02-24 08:55:14 · 225 阅读 · 0 评论 -
Linux之运算符及一些数学计算
1、算术运算符 :+ - * / = % == != 2、逻辑运算符:&& 逻辑与 || 逻辑或 3、判断[] (()) 内放置判断的语句-lt 小于-gt 大于-le 小于等于-ge 大于等于-eq 等于-ne 不等于#!/bin/basha=10if [ $a -lt 5 ] ;then echo "true"e...原创 2018-02-23 12:54:25 · 937 阅读 · 0 评论 -
linux 输入/输出重定向
文件描述符(fd)是与某个打开的文件或数据流相关联的整数。文件描述符0,1,2是系统预留的。0 ---- stdin(标准输入)1 ---- stdout(标准输出)2 ---- stderr(标准错误) 输入重定向的命令 < ,输出重定向的命令 > ; 错误重定向的命令 2>,追加重定向的命令 >> ;重定向到文件mkdir /tmp/10cd /tmp/10echo "123" >原创 2018-02-24 11:10:18 · 618 阅读 · 0 评论 -
shell打印正三角形
用shell打印出一个正三角形#!/bin/bashfor i in 1 3 5 7 9do for j in `seq $[$[9-$i]/2]` do echo -n ' ' done for m in `seq $i` do echo -n '*' done echodone运行结果原创 2018-03-22 16:23:20 · 2862 阅读 · 0 评论 -
Linux的PS1
先分享以下我自己的PS1vim .bashrc # 写入以下代码export PS1=&amp;quot;\[\e[32m\][\[\e[0m\]\[\e[32m\]\u\[\e[0m\]\[\e[32m\]@\[\e[0m\]\[\e[32m\]\h\[\e[0m\]\[\e[32m\]]\[\e[0m\]\[\e[32m\]#\[\e[0m\] &amp;quot;有些时候更改会出现命令行提示符无法换行的情况,我是参考...原创 2018-12-21 18:18:45 · 513 阅读 · 0 评论