随心一记

一二三四五,上山打老鼠


  • 首页

  • 归档

  • 标签
ywcsb

ywcsb

游戏可以不玩,小说不能不看。

153 日志
3 分类
42 标签
RSS
GitHub 知乎 随心一记
Links
  • 随心一记
  • 追梦人物的
  • MSDN

shell整理资料

发表于 2019-01-16 | 阅读 1054 | 分类于 系统运维 |
  • find使用
find / -name install.log 搜索全盘的install.log
find / -user root 按照所有者(用户名)搜索
find / -nouser 查找没有所有者(用户)的文件
find / -mtime +10 查找10天前修改的文件
            -10 查找10天内修改的文件
            10 查找10当天修改的文件
find / -size 25k  查找等于25k的文件
            +25K 查找大于25k的文件
            -25k 查找小于25k的文件
find / -size +20k -a size -size -50 查找大于20k并且小于50K的文件
                    -a and逻辑与,两个条件都满足
                    -o  or逻辑或,两个条件满足一个
find / -size +20k -a size -50k -exec ls -lh{} \; 查找大于20k并且小于50k的文件,并显示详细信息
                                -exec/ -ok命令{}\对搜索结果执行操作,使用-exec命令之后必须加{}\
  • 通配符
? 匹配任意一个字符
*匹配0个或多个字符,也就是可以匹配任意字符
[] 匹配括号中任意一个字符
[-] 匹配括号中任意一个字符,-代表一个范围;咧如[a-x],代表匹配a和x中间的任意小写字母
[^] 逻辑非,表示匹配不是括号内的一个字符
特殊符号
'' 单引号。在单引号中所有的特殊字符都没有特别的意思
"" 双引号。在双引号中特殊字符都没有特别的含义,但是$,`反引号,\ 是例外。拥有调用变量的值,引用命令,和转移符的特殊含义
$() 是引用系统中命令,和反引号`的作用是一样的,都是调用系统中的命令
\ 转移符,跟在\之后的特殊符号将失去特殊意义,变为普通的字符
  • shell变量

  • 位置变量

    bash $n n为数字,$0代表命令的本身,$1-$9代表第一和第九个参数,十个以上的参数需要用大括号包含,如${10} $* 代表命令行中所有的参数,$*把说有的参数看成一个整体 $@ 也是代表命令行中所有的参数,不过$@把每个参数分区对待 $ 这个变量代表命令行中所有的参数个数

  • 正则表达式

    bash * 前一个支付匹配0次或任意多次 . 匹配除了换行符外的任意字符 ^ 匹配行首 $ 匹配行尾 [] 匹配中括号中指定的任意一个字符,只匹配一个字符 [^] 匹配括号以外的任意字符 \ 转义符用于取消特殊符号的含义 \{n\} 表示前面的字符出现了N次 \{n,m\} 表示前面的字符出现了N次,最多出现M次 ^$ 匹配空格行

  • shell判断

按照文件类型进行判断

-b:判断该文件是否存在,并且是否为块设备文件(是快设备文件为zhen)
-c:判断该文件是否存在,并且是否为字符串设备文件
-d:判断该文件是否存在,并且是否为目录文件
-e:判断该文件是否存在,(存在为真)
-f:判断该文件是否存在,并且是普通文件
-L:判断该文件是否存在,并且是否为符号链接文件
-P:判断该文件是否存在,并且是否为管道文件
-s:判断该文件是否存在,并且是否为非空
-S:判断该文件是否存在,并且是否为套接字文件

按照文件权限进行判断

-r:判断文件是否存在,并且是否拥有读权限
-w:判断文件是否存在,并且是否拥有写权限
-x:判断文件是否存在,并且是否拥有执行权限
-u:判断文件是否存在,并且是否拥有SUID权限
-g:判断文件是否存在,并且是否拥有SGID权限
-k:判断文件是否存在,并且是否拥有SBit权限
  • 两个文件之间进行比较

img

[img

多重条件判断img单分支if语句判断格式

if [条件判断式];then
    程序
fi
或者
if [条件判断式]
    then
    程序
fi

双分支if条件语句格式

if [条件判断式];then
    程序
else
    程序
fi

多分支if条件语句格式

if [条件判断式];then
    当条件判断式1成立时,执行程序1
elif [条件判断式2];then
    当条件判断式2成立时,执行程序2
else
    当所有条件不成立时最后执行此程序
fi

多分支case条件语句 case语句和if elif else 语句一样都是多分支语句,不过和if语句不同的是case语句只能判断一种条件关系,而if语句可以判断多种条件关系

case $变量名 in 
    "值1")
        如果变量的值等于1,则执行程序一
        ;;
    "值2")
        如果变量的值等于2,则执行程序二
        ;;
    *)
        如已上的值都不是的话,则执行次程序
        ;;
    esac

for循环

for 变量 in 值1 值2 值3……;do
    程序
done
s=0
for(( i=1;i<=100;i=i+1));do     循环一百次
    s=$(($s+$i))
done
echo $s

while循环 while循环是不定循环,也称作条件循环。只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循坏才会停止

while [条件判断式];do
    程序
done
while read -r line
do
    echo $line
done < name.txt

until循环 until循环时只要条件判断式不成立则进行循环,并执行循环程序。一但循环条件成立,则终止循环

until [条件判断式];do
    程序
done
觉得不错,支持一下!
geerniya WeChat Pay

微信打赏

geerniya Alipay

支付宝打赏

# 系统运维 # shell
CentOS7 使用Fail2ban工具 防止暴力破解登录
HTTP协议

发表评论

共 0 条评论

    暂无评论
© 2018 - 2022 ywcsb
冀ICP备17022045号-1
Supported by 腾讯云