linux中Shell 基本知识

一、脚本概述

 1.Shell脚本是一种解释型语言

 2.用Shell脚本保存执行命令

 3.用脚本判定命令的执行条件

 4.用脚本实现命令的批量执行

二、脚本基础知识

 1.脚本编写

  #!/bin/bash    ##执行脚本的shell类型

 2.脚本运行

[root@desktop8 mnt]# sh hello.sh    ##用sh打开脚本

[root@desktop8 mnt]# chmod  +x  hello.sh   ##添加执行权限

[root@desktop8 mnt]# /mnt/hello.sh    ##用脚本本身的shell打开

 

 3.脚本调试

[root@desktop8 mnt]# sh -x hello.sh    

+ echo hello everyone    ##命令行

hello everyone     ##运行结果

 

 4.自动添加脚本信息说明  ##配置文件/etc/vimrc

 66 autocmd  BufNewFile  *.sh  exec ":call WESTOS( )"

 67     ##新建的以.sh结尾的文件自动添加函数WESTOS

 68 " map  <F4>  ms: call WESTOS( )<cr>'s

 69      ##按F4自动添加函数WESTOS,“ 表示注释

 

  建立新的脚本文件

 

 

三、简单脚本练习   ##脚本添加x权限

 1.运行脚本 ip_show.sh 显示当前主机ip

 

  显示主机IP

 

 

 2.运行脚本 user_show.sh 显示当前主机可登陆的用户

 

  显示主机可登陆用户

 

 

 3.运行脚本 clear_log.sh 清空当前日志

 

四、基本脚本命令

diff  ##比较文件差异

 

 1.对比两个文件的不同

 

 2.生成补丁

 

patch

 1.安装补丁软件 patch.x86_64

 2.打补丁

 

 3.打补丁的同时对原文件备份 (.orig)

 

cut  ##多用于截取字符

 1.cut参数

  cut  -d      ##指定分隔符

  cut  -f  1  ##指定截取每行第1列

  cut  -c  3  ##指定截取每行第3个字符

 2.用cut编辑脚本 user_show.sh

 

  执行脚本

 

 

 3.用cut编辑脚本 ip_show.sh

 

  执行脚本

 

 

sort  ##多用于字符排序

 1.sort参数

 sort -n   ##纯数字排序                              sort -r     ##倒序

 sort -u   ##去掉重复数字                          sort -o    ##输出到指定文件中

 sort -t   ##指定分割符                                sort -k   ##指定要排序的列

 2.对mnt文件排序,找出最大的两个文件

 

uniq  ##对重复字符的处理

 1.uniq参数

  uniq  -u   ##显示唯一的行

  uniq  -d   ##显示重复的行

  uniq  -c   ##每行显示的次数

  ##注意:配合sort命令使用

 2.编辑文件,对重复字符处理

 

&&和||

 1.&& 用来执行条件成立后执行的命令

 2.|| 用来执行条件不成立后执行的命令

 3.显示ping其他主机的结果

 

  ping其他主机结果

 

 

  注意:当执行脚本并没有加IP地址时,没有报错,不合理,需改善

 

test    ##判断条件是否成立

 1. test 参数

 test  等同于   [  ]

字符型数据

 [ "$a" = "$b" ]    ##$a和$b是否一致

 [ "$a" != "$b" ]    ##$a和$b是否不一致

 [ ! "$a" = "$b" ]   ##$a和$b是否一致,且该条件不成立时

整型数据

 [ "$a"  -eq  "$b" ]    ##是否$a = $b

 [ "$a"  -ne  "$b" ]   ##是否$a != $b

 [ "$a"  -lt  "$b" ]     ##是否$a < $b

 [ "$a"  -le  "$b" ]    ##是否$a <= $b

 [ "$a"  -gt  "$b" ]    ##是否$a > $b

 [ "$a"  -ge  "$b" ]    ##是否$a >= $b

 [ "$a" = "$b"  -o  "$a"  -lt  "100" ]  ##$a是否等于$b,或者$a小于100

 [ "$a" = "$b"  -a "$a"  -gt  "100" ]  ##$a是否等于$b,并且$a大于100

 [ -z  "$a" ]   ##$a是否为空

 [ -n  "$a" ]   ##$a是否不为空

文件

 [ "file1"  -ef  "file2" ]    ##节点是否一致,即文件是否一样

建立文件,查看节点,创建硬链接

 [ "file1"  -nt  "file2" ]   ##file1是否比file2时间new

 [ "file1"  -ot  "file2" ]   ##file1是否比file2时间out

 [ -e  "file" ]   ##文件是否存在

 [ -f  "file" ]   ##是否是普通文件

 [ -L  "file" ]   ##是否是软链接文件

 [ -S  "file" ]   ##是否是套接字

 [ -b  "file" ]   ##是否是块设备

 [ -d  "file" ]  ##是否是目录

 [ -c  "file" ]  ##是否是字符文件

 2.编写脚本check_num.sh判断数字是否在0-10之间

 3.编写脚本clean_log.sh,当超级用户时,情况日志,当普通用户,提示请切换用户

 4.编写脚本check_file.sh判断文件类型

   编写脚本如下:

   运行脚本检测

tr   ##转换字符

find  ##查找文件

 1.find 参数

 -group   ##查找组

 -type     ##查找类型

 -user    ##查找用户

 -not   -group  ##查找不是该组的文件

 -a  |  -o  ##  and  |  or

 -perm  777    ##精确匹配权限777的文件

 -perm  -644   ##匹配u=6、g=4、o=4的文件

 -perm  /666   ##匹配u=6或g=6或o=6的文件

 -size  20k    ##查找文件大小为20k的文件

 -size  -20k   ##查找文件大小为小于20k的文件

 -size  +20k   ##查找文件大小为大于20k的文件

-maxdepth  1  -name  passwd   ##查找目录的深度为1层

 -mindepth  2  -maxdepth  2  -name  passwd   ##只查找目录的第2层

 注意:最大深度为2层

 

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值