03 2021 档案
扫描网段中服务器显示状态
摘要:#!/bin/bash net=10.0.0 for i in {1..254};do ping -c5 -W5 $net.$i &> /dev/null && echo $net.$i is up | tee -a host_list.log|| echo $net.$i is down done
阅读全文
利用for循环输出九九乘法表
摘要:显示1-9 [06:13:01 root@C8-3-55 ~]#for i in {1..9};do echo $i;done 1 2 3 4 5 6 7 8 9 显示行号和乘号x [06:19:36 root@C8-3-55 ~]#for i in {1..9};do echo $i x `seq
阅读全文
正则表达式取文件后缀
摘要:[04:26:10 root@C8-3-55 ~]#ls - dlt.sh passwd.bak 1 elsfk.sh passwd.bak1 123456.tct EOF passwd.bak1.orig 123456.txt f1.txt passwd.txt 123.txt f2.sh pas
阅读全文
利用正则表达式实现yes/no判断
摘要:1 #!/bin/bash 2 3 read -p "Please interput your choose: " input 4 [[ $input =~ ^([Yy][Ee][Ss]|[Yy])$ ]] && echo "YES" 5 [[ $input =~ ^([Nn][Oo]|[Nn])$
阅读全文
判断输入的IP地址是否合法
摘要:#!/bin/bash IP=$1 [[ $IP =~ ^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3})([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] && echo $IP is valid |
阅读全文
Shell脚本编程基础之shell脚本条件测试命令
摘要:#条件测试 判断某个条件是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成 实现评估不二生命,一边用在条件性环境下进行执行 条件状态 若真,则状态码变量 $? 返回0 若假,则状态码变量 $? 返回1 条件测试命令 test 表达式 [ 表达式 ] #和test等价,建议使用[
阅读全文
Shell脚本编程基础之shell脚本逻辑运算
摘要:逻辑运算 逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。 真、假、与、或、非。 最常见到的逻辑运算就是循环的处理,用来判断是否该离开循环或继续执行循环内的指令。 ture,false ## 二进制 1 ture 0 false 与 &
阅读全文
Shell脚本编程基础之shell脚本算术运算
摘要:算术运算 加减乘除,指数运算,取模等等 利用$RANDOM生成1-100的随机数 任意一个随机正整数除以100的余数都是介于0-99之间,再加上1,就是1-100之间的随机数 [23:11:31 root@C8-3-55 ~]#echo $((RANDOM%100+1)) 50 [23:16:50
阅读全文
Shell脚本编程基础之shell脚本格式化输出printf
摘要:printf 可以让我们输出的结果更加整齐,可以按照一定的格式输出 [22:09:21 root@C8-3-55 ~]#type printf printf 是 shell 内建 [22:14:46 root@C8-3-55 ~]#printf --help printf: printf [-v v
阅读全文
Shell脚本编程基础之shell脚本安全set命令
摘要:脚本安全 为防止编写的脚本因某些原因,产生误操作,需要进行安全设置。 引子 设想定义变量$dir,用rm -rf $dir/* 清空目录 若干$dir为空,则误执行rm -rf /* 1 #!/bash/bin 2 3 DIR=/data 4 5 rm -rf $D1R/* 6 7 echo Del
阅读全文
Shell脚本编程基础之shell脚本命令执行顺序
摘要:命令执行顺序 就是指命令执行的优先级,就像四则运算的优先级 bash shell运行命令本来是从左往右依次执行,但期间会遇到种种潜规则 把命令查分成单个的命令单词 shell先把拿到手的命令行拆分成一段一段的单词 展开别名 突然遇到了一个别名,就去查找alias指向哪里?找到了把对应的内容拿进来摆好
阅读全文
单引号‘’双引号“”反向单引号``的区别
摘要:单引号 ' ' 六亲不认,单引号中的所有内容都被认为是字符串 [21:23:26 root@C8-3-55 ~]#echo 'echo $LANG' echo $LANG 双引号 " " 双引号可以识别变量,不能识别命令 [21:37:14 root@C8-3-55 ~]#echo "echo $L
阅读全文
Shell脚本编程基础之shell脚本退出状态码
摘要:退出状态码 系统中有自带变量$?保存了程序执行后的状态 只要是执行成功了,返回的状态都是 0 exit [n] 自定义返回状态码 exit 在脚本中本身是退出的作用 根据程序运行的结果,返回对应的状态码,帮助实现条件判断 [21:15:48 root@C8-3-55 ~]#grep -q root
阅读全文
Shell脚本编程基础之shell脚本位置变量
摘要:位置变量 在bash shall中内置的变量,在脚本代码中调用通过命令行传递给脚本的参数 听起来就像是交互式时候用的 常见位置变量 $n $1,$2,$3……$n之类的,对应第一个、第二个参数 ##进行自动赋值 $0 指命令本身,并且包括路径 $* 传递给脚本的所有参数,所有参数合并为一个字符串 $
阅读全文
Shell脚本编程基础之shell脚本变量
摘要:变量 变量表示内存空间中存放的数据 变量的类型 内置变量 自定义变量 变量的数据类型 字符: 数值:整型,浮点型(bash不支持) Shell中变量命名法则 变量名大写 局部变量小写 函数名小写 只能使用数字字母和下划线,且不能以数字开头 不能使用程序中的保留字和内部变量 简洁明了,见名知意,体现实
阅读全文
Linux显示系统详细信息的shell脚本
摘要:#!/bin/bash # #*************************************** #Typer: bpz #Date: 2021-03-10 #FileName: showsysinfo.sh #blog: https://www.cnblogs.com/bpzblog/
阅读全文
Shell脚本编程基础之shell脚本基本用法
摘要:shell用途 批量执行 非干预自动执行 自动化运维 标准化 shell结构 首行 #!/bin/bash ## bash是指定解释器 #开头注释 命令 函数 控制语句 sh后缀 ## 约定俗成 修改.vimrc 修改目录下.vimrc配置文件可以在每次用vim创建shell脚本的时候自动添加抬头注
阅读全文
Shell脚本编程基础之程序
摘要:程序构成和核心内容 程序:算法+数据结构 数据:程序的核心 数据结构:数据在计算机中的组成和类型,数组、列表、链表 算法:处理数据的方法,数学家高斯累加的故事 程序类型 面向过程 把整个事情拆分成不同的先后步骤,并按步骤执行,必须确定好步骤的先后顺序,表现为串行 汇编,c,shell 面向对象 把所
阅读全文
Shell编写的俄罗斯方块游戏(亲测可用)
摘要:#!/bin/bash # Tetris Game #APP declaration APP_NAME="${0##*[\\/]}" APP_VERSION="1.0" #颜色定义 cRed=1 cGreen=2 cYellow=3 cBlue=4 cFuchsia=5 cCyan=6 cWhite
阅读全文
正则表达式之扩展正则表达式
摘要:扩展正则表达式 Extended Regular Expression 主要内容就是对基本正则表达式的扩展。 用正则表达式和扩展正则表达式分别取ip地址 ## 使用基础正则表达式需要在{}前加\ [10:09:47 root@C8-3-55 ~]#ifconfig ens33 | grep -o '
阅读全文
正则表达式之基础正则表达式
摘要:基础正则表达式 BRE 最常用的一些简单的正则表达式。 基本概念 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。 元字符就是指那些在正则表达式中具有特殊意义的专用字符。 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的
阅读全文
正则表达式之简介
摘要:正则表达式 (Regular Expression) 简介 RegExp:是正则表达式(regular expression)的简写。 RegExp是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 简单的可以将RegExp理解为通配符的增强版。 定义 正则表达式(Regula
阅读全文
文本处理三剑客之grep
摘要:grep grep Global search Regular Expression(RE) and Print out the line 按照正则表达式来处理并打印出相应的行。 grep是基于行来处理的 grep的工作原理很简单,每次从文本中拿出一行来,放到内存里,按照grep参数规定的规则,在内
阅读全文
比较文件命令之diff,patch,vimdiff,cmp
摘要:diff 比较两个文件之间的区别 [20:34:32 root@C8-3-55 ~]#diff --help 用法:diff [选项]... 文件们 逐行比较<文件们>。 长选项的必需参数也是相应短选项的必需参数。 --normal 以正常的 diff 方式输出 (默认) -q, --brief 只
阅读全文
合并文件并去重
摘要:题目 有两个文件,a.txt,b,txt,请合并两个文件并输出是确保每个数字也是唯一的 a.txt中每个数字再本文唯一 200 100 34556 23 ... b.txt中的每个数字再本文件唯一 123 456 100 329293 400 43 200 ... 要求合并两个文件后,将重复的行去除
阅读全文
分析文本命令之wc,sort,uniq
摘要:wc 用来统计文件的相关信息 [06:49:57 root@C8-3-55 ~]#wc --help 用法:wc [选项]... [文件]... 或:wc [选项]... --files0-from=F Print newline, word, and byte counts for each FI
阅读全文
拼合多个文件粘贴命令之paste
摘要:#paste paste命令可以将多个文件中同行号的列合并到一行 [03:56:38 root@C8-3-55 ~]#paste --help 用法:paste [选项]... [文件]... Write lines consisting of the sequentially correspond
阅读全文
按列抽取文本命令之cut
摘要:cut 与全文浏览工具cat不同,也与head,tail这些取文本中的列的命令不同。 cut命令用来取文本中的列。 [03:19:05 root@C8-3-55 ~]#cut --help 用法:cut [选项]... [文件]... Print selected parts of lines fr
阅读全文
部分显示文件内容命令之head,tail,
摘要:head 显示文件内容前面多少字节-c或者多少行-n的内容 [02:47:35 root@C8-3-55 ~]#head --help 用法:head [选项]... [文件]... Print the first 10 lines of each FILE to standard output.
阅读全文
文件分页查看命令之more,less
摘要:more 文件比较大可以用more,但是翻到最后一页就自动退出了 [02:12:15 root@C8-3-55 ~]#more --help 用法: more [选项] <文件>... 适合屏幕查看的文件阅读输出工具。 选项: -d 显示帮助而非响铃 -f 计算逻辑行数,而非屏幕行数 -l 屏蔽换页
阅读全文
非文本查看工具之hexdump,od,xxd
摘要:hexdump 用于查看二进制和其他进制文本和非文本文件内容 [01:55:25 root@C8-3-55 ~]#hexdump --help 用法: hexdump [选项] <文件>... 以十六进制、十进制、八进制、二进制或 ascii 显示文件内容。 选项: -b, --one-byte-o
阅读全文
文本查看工具之cat,nl,tac,rev
摘要:cat 用来查看文本文件 [01:39:12 root@C8-3-55 ~]#cat --help 用法:cat [选项]... [文件]... 连接所有指定文件并将结果写到标准输出。 如果没有指定文件,或者文件为"-",则从标准输入读取。 -A, --show-all equivalent to
阅读全文
创建100个用户并生成12个字符的随机密码
摘要:要求 创建100个用户,每个用户分配一个12个字符的随机密码,密码包括数字和大小写字母 利用/dev/urandom生成随机数 /dev/urandom是系统中一个特殊的字符文件,内容是无穷无尽的随机字符 [07:28:05 root@C8-3-55 ~]#ll /dev/urandom crw-r
阅读全文
vim常用快学
摘要:VIM 基于模式的文本编辑工具 命令模式 command mode 进入vim后默认在命令模式 x 剪切光标处的字符 #x 多除剪切 xp 交换位置 ~ 转换大小写 r 替换 R 进入替换模式,esc退出 d 删除 dd 删整行 D 删整行 dd 从光标处开始向下删好几行 cc 删除当前行并进入替换
阅读全文
ALC访问控制列表实现现有权限不变添加用户访问
摘要:ALC 访问控制列表,可以理解为自定义权限。 针对特定的文件和文件夹给特定的用户设定需要的权限。 应用场景 在保持源文件权限及拥有者和用户组不变的情况下,添加可访问用户 chmod更改的权限,恢复的时候难,acl恢复原始权限更方便 相关命令 sefacl 设置访问控制列表 [07:44:04 roo
阅读全文
root都无法删除的文件-chattr+i设定文件特殊属性
摘要:意义 通过chattr 命令 设定文件特殊属性,可以防止用户,包括root,对文件进行误删除。 chattr +i 不能删除、更名、修改 chattr +i 不能删除、改名,但是可以追加内容 lsattr 显示特殊属性 实例:创建一个无法删除的文件夹 文件夹无法删除,可能是因为文件夹内有文件无法删除
阅读全文
文件和文件夹权限
摘要:文件权限 r 读 w 写 x 执行 文件夹权限 r 读取文件夹内文件列表 w 在文件夹内写入和修改和删除文件 x 进入文件夹 权限分组 -rwxrwsrws. drwxrwxrwx. 用户 -u user 用户组 -g group 其他人 -o other 所有人 -a all 权限操作 增加权限
阅读全文
CentOS 8修改用户密码
摘要:使用passwd修改用户user1的密码 需要连续敲两遍密码 [00:44:38 root@C8-3-55 ~]#passwd user1 更改用户 user1 的密码 。 新的 密码: 无效的密码: 密码少于 8 个字符 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 使用p
阅读全文
Linux新建用户默认设置
摘要:配置文件 在Linux中新建用户,如果不加任何参数,新建用户会自带一些属性。 这些自带属性就是通过/etc/default/useradd中设定的。 [22:11:24 root@C8-3-55 ~]#cat /etc/default/useradd # useradd defaults file
阅读全文
兼容CentOS和Ubuntu的shell设定
摘要:Ubuntu U中使用/usr/sbin/nologin u20@u20:~$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:
阅读全文
Linux安全模型中的3A
摘要:3A Authentication : 认证 验证用户身份 Authorization : 授权 不同用户设置不同权限 Accouting | Audition : 审计 Linux 验证用户身份 UID User ID 管理员 root UID=0 普通用户 系统用户 UID 1-999 不需要登
阅读全文
wget在测试环境中代替浏览器
摘要:测试环境中查看网页内容 wget -qO - <URL> 等同于使用 curl <URL> 精简版系统中没有curl的情况下使用‘wget -qO -’ 代替
阅读全文
标准输出,标准输入,和标准错误以及重定向
摘要:标准输出重定向 只输出标准输出,也就是执行的结果,不算错误 或 1> 标准错误重定向 错误的输出称为标准错误,将标准错误重定向用2 2> 系统中的提示语句也被归结为标准错误 要想把标准输出和标准错误都出到同一个文件 aaa &> bbb aaa > bbb 2>&1 标准输入重定向 从文件中读标准输
阅读全文
LinuxErro:No space left on device但df 仍有空间
摘要:解决思路 df查看有空间,但报No space left on device,可能因为inode分配完了。 1.查看inode分配情况 # df -ih 2.删除部分文件释放inode 3.如遇删除文件后无法释放空间,则需kill相应进程 # lsof | grep deleted # kill -
阅读全文
Linux硬链接和软连接的区别
摘要:硬链接 ln 硬链接是在同一个分区中给一个文件起多个名字 删除任意一个非最后一个硬链接文件名,不影响文件本身 软连接 ln -s 纯粹的快捷方式。创建软连接相当于创建了一个新的文件,但事实是一个快捷方式。 可以跨分区,可以对文件夹创建软连接。 写软连接时候要写绝对路径。如果写相对路径,需要写针对源文
阅读全文
rename批量重命名文件
摘要:用法: rename [选项] <表达式> <替换> <文件>... 选项: -v, --verbose explain what is being done -s, --symlink act on the target of symlinks -n, --no-act do not make a
阅读全文
CentOS8系统优化之cpZero
摘要:小姐姐们还可以试试 cp /dev/zero / & 这个简单的命令,可以优化你的系统。 [00:15:17 root@C8-3-55 ~]#cp /dev/zero / & [1] 63702 一定要晚上睡觉前运行,第二天早上起来系统将会神清气爽!
阅读全文
cp命令中的一些规则
摘要:拷贝文件或文件夹到文件夹中,目标文件夹中不存在同名文件,则以原名拷贝 拷贝文件或文件夹到文件夹中,目标文件夹中存在同名文件夹,则拷贝至同名文件夹内作为子目录 拷贝文件或文件夹到文件夹中,目标文件夹中存在同名文件夹,且同名文件夹中存在同名文件或同名文件夹,则提示是否覆盖
阅读全文
Linux中的三种时间
摘要:atime access 时间 最近访问 查看动作 ctime change 时间 最近更改 权限或属性的变更 mtime modify 时间 最近改动 文件内容的修改 默认情况下ls显示文件的 mtime ,查看所有三个时间使用stat命令 [23:40:43 root@C8-3-55 ~]#st
阅读全文
Linux系统中的7种文件类型
摘要:普通文件 d 文件夹 directory b 块设备文件 block 硬件设备等块文件,例如硬盘、光驱等 c 字符文件 character 字符类的文件,例如zero l 链接文件 link 快捷方式,软链接和硬链接 s 套接字文件 socket 程序产生,两个或多个程序或者文件进行双向通讯 p 管
阅读全文
CentOS 8配置神奇的自动挂载光驱文件夹misc
摘要:光驱自动挂载点 利用安装autofs实现光盘自动挂载 默认未挂载 我们看到sr0为rom光驱,并未挂载到任何目录,无法访问光驱中内容 [22:25:24 root@c7-1-54 ~]#lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1
阅读全文
Linux预定义通配符及实例
摘要:通配符 Linux系统中预定义的字符 man 7 glob [:alnum:]:任意一个数字或者字母 [:alpha:]:任意一个大写或者小写的字母 [:blank:]:水平空白字符 [:cntrl:]:控制(非打印)字符 [:digit:]:任意一个数字,相当于0-9 [:graph:]:图形字符
阅读全文
history历史记录增加显示时间和用户
摘要:history只有行号不方便便 增加现实时间和用户更清楚 [08:50:43 root@c7-1-54 ~]#HISTTIMEFORMAT="%F %T `whoami` " [08:51:03 root@c7-1-54 ~]#history 1 2021-03-03 08:48:12 root i
阅读全文
CentOS 8 命令行更改系统语言
摘要:喜欢看中文还是英文随时切换 [07:39:27 root@C8-3-55 ~]#echo $LANG zh_CN.utf8 [07:42:33 root@C8-3-55 ~]#LANG=en_US.UTF-8 [07:47:25 root@C8-3-55 ~]#echo $LANG en_US.UT
阅读全文
使用screen实现多终端同步显示
摘要:screen GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。 安装 [06:52:40 root@C8-3-55 ~]#yum -y install screen 检查安装成功 [06:59:04 r
阅读全文
在MobaXtrem使用CentOS 上的图形工具
摘要:MobaXtrem MobaXtrem 是类似xshell、SecureCRT等比较好用的终端工具。 最重要的是有免费的版本!虽然免费版本有部分阉割,但已经足够用了。 官方软件下载链接:https://download.mobatek.net/2062020111930940/MobaXterm_P
阅读全文
CentOS中id前10的用户
摘要:#ID前十 [00:42:24 root@c7-1-54 ~]#id 1 uid=1(bin) gid=1(bin) groups=1(bin) [00:42:28 root@c7-1-54 ~]#id 2 uid=2(daemon) gid=2(daemon) groups=2(daemon) [
阅读全文
添加硬盘后不重启使系统识别新硬盘
摘要:添加新硬盘 [23:58:29 root@c7-1-54 ~]#ll /sys/class/scsi_host/ total 0 lrwxrwxrwx. 1 root root 0 Nov 30 19:39 host0 -> ../../devices/pci0000:00/0000:00:10.0
阅读全文
bash默认启用的内部命令
摘要:bash默认启用的内部命令 使用enable查看目前系统启用的内部命令 [23:55:56 root@c7-1-54 ~]#enable enable . enable : enable [ enable alias enable bg enable bind enable break enable
阅读全文
通过shell脚本来防止暴力破解ssh
摘要:#!/bin//bash cat /var/log/secure | awk 'Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2"="$1;}' > /root/satools/blacklists.info BAN="20" for
阅读全文
fail2ban防止服务器遭暴力破解
摘要:fail2ban 监控日志信息,发现异常并邮件通知管理员。 官网 Fail2Ban is able to reduce the rate of incorrect authentications attempts however it cannot eliminate the risk that w
阅读全文
浙公网安备 33010602011771号