什么是shell?

shell是用户使用linux的工具,它有两种执行方式,一种是交互式解释执行,我们平时操作linux的各种命令就属于这种。另一种是批处理的方式,类似于程序性语言,有变量和参数,具有流程控制结构。

shell中的变量

我们可以在shell中定义一个变量,并赋值,正如其它语言一样。

  • env #显示全局变量(系统变量)
  • set #显示所有变量
  • unset + 变量名 #删除一个变量。
  • echo $变量 # 打印变量的值
  • export 变量 # 把变量声明为全局变量(即在当前终端开一个子bash或新开终端,通过export 变量,可以让变量继续生效)
  • 修改环境变量PATH: 编辑系统文件/etc/profile,将python的路径加入PATH全局变量,保存退出。
  • {}声明变量的边界

shell中的运算符(( )):

  • 算术运算符:+、-、*、/、%
  • 赋值运算符:=、+=、*=、/=、%= 例子:

  • 关系运算符:
    • ==、>、>=、<、<= 例子:
    • &&逻辑与、||逻辑或、!=逻辑非 例子:
  • bc 计算器,支持浮点数运算

test测试命令:

  • (()) 常用于数字之间的关系运算,但是有很大的局限性。而test命令适用于各种情况,应用更方便。
  • test -n 'abc' # 测试字符串abc的长度是否为零,如果不为零,那么测试结果为真0;如果是空字符,那么为假1
  • [  ] 我们习惯用两个中括号来代替test命令。注意:中括号内的首位打空格。测试字符串长度不为零,用[  ]表达
  • test / [  ] 命令测试字符常用的选项:
    • -n #字符串长度不为零
    • -z #字符串长度为零
    • = #字符串是否相等
    • != #字符串不相等
  • test / [  ]:-a逻辑与、-o逻辑或
  • test / [  ] 测试数字常用选项:
    • -eq #整数相等
    • -ge #大于等于
    • -le #小于等于
    • -gt #大于
    • -lt #小于
    • -ne #不等于
  • test / [  ] 测试文件类型:
    • -b #判断文件是块设备
    • -d #判断文件是目录
    • -f #判断文件是普通文件
    • -h #判断文件是普通文件
  • 例子:
    • 用户认证
    • 判断块设备
    • 判断目录

shell流程控制:

  • if...fi:写一个判断登录是否成功的脚本
    注意:如果脚本无法执行,chmod +x 脚本 修改权限
  • if...elif...else...fi 判断文件类型,多个分支条件:


  • while ...do...done 循环:


    sleep 1 暂停1秒;第10次不满足,done结束;done下面可以跟下一条命令

  • 循环猜年龄:
  • 判断登录用户,登录成功后执行命令:
  • for循环:
    • C语言风格,例子:打印乘法表

      控制打印格式:-n 当前行不换行打印,echo 空 换行
    • shell格式:

    • 实战:测试哪些ip地址可用

      每次ping会输出一长串提示信息,所以通过 &> /dev/null 把提示信息写入空文件;
      ping成功了输出提示,并写入一个文档记录下来。
    • 检测/dev下各种类型的文件数量
      for后面跟的有结果就行,比如:

      输出/test目录下的文件
      另外,相对路径不能被判断文件类型的条件检测到,所以要写绝对路径。


      注意:

      如果链接文件的判断条件在普通文件之下,那么,在if判断普通文件时,回去寻找连接文件的源文件类型,如果源文件是普通文件,那么算作普通文件,稍后之后的链接文件就不会再判断了,为0. 因为if判断过的文件不会再去重复判断。
      除非把链接文件的判断条件放在前面。

shell脚本的简单学习相关推荐

  1. shell脚本实操学习之函数、正则表达式

    shell脚本实操学习之函数.正则表达式 shell函数 函数介绍 函数语法 函数应用 正则表达式 正则表达式介绍 特殊字符 POSIX字符 shell函数 函数介绍 在写代码的时候,我们很多人习惯从 ...

  2. shell脚本的系统性学习笔记

    shell脚本的系统性学习笔记 文章目录 shell脚本的系统性学习笔记 一.入门基础 1.1 脚本的书写格式 1.2脚本的各种执行方式 1.3数据的输入与输出 1.4输入输出重定向 1.5变量 二. ...

  3. Shell脚本实现简单分割字符串

    这篇文章主要介绍了Shell脚本实现简单分割字符串,本文讲解使用CUT命令实现以逗号.分号或其它分隔符来切割字符串,需要的朋友可以参考下 我们有这样一个字符串: 复制代码代码如下: info='abc ...

  4. 详细介绍Linux shell脚本系列基础学习(列表)

    本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格式等. 不断更新中,是Shell学习的必读经典教程.现主要包含以下文章: Linux S ...

  5. html怎么shell脚本语言,简单shell脚本例子

    为什么要使用Shell脚本 使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象.缺点是:它们的效率通常不如编译型语言.不过权衡之下,通常使用脚本编程还是值 ...

  6. (1)Shell 编程学习 Shell是什么?Shell的浅显原理 为什么要学Shell 及其第一个Shell脚本 CTF角度学习Shell

    最近刷CTF题目的时候经常要用到Shell语言,但是自己并没有系统的学习,所以最近花了点时间学习一下,所以重新来梳理一下.对于稍微有一点编程语言基础的同学,能上手Shell其实不需要半小时(甚至更短) ...

  7. Shell脚本中简单脚本示例

    26.1 发送消息 Shell脚本也可以向登录用户发送消息 26.1.1 功能分析 确定系统中都有谁 who命令默认给出的是可用信息的简略版本.  用户名  用户所在终端  用户登入系统的时间 ...

  8. shell脚本100 例(上) shell 脚本知识点,学习、进修、面试、居家旅行必备精品.--潜心研究必有所成

    [SHELL 脚本 100 例] 此内容为个人学习笔记,如有雷同,纯属巧合 编写 hello world 脚本 #!/bin/bash echo "hello world" 通过位 ...

  9. Linux Shell脚本攻略学习总结:一

    终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...

最新文章

  1. Android开发——回调(Callback)
  2. 如何保证RabbitMQ消息队列的高可用?
  3. DATA - RANGE OF
  4. 第二天:Swift手势操控弹性按钮
  5. python智慧树章节答案_Python程序设计_知到智慧树_章节答案
  6. zabbix agent安装_OpenSUSE RPM安装 zabbix-agent
  7. html下拉菜单的某个值被选定,使用JavaScript在下拉列表中获取选定的值?
  8. 苹果cms用php几,苹果CMS用的B站播放器
  9. IT规划 最容易犯的五大错误
  10. Android 源码编译生成framework.jar
  11. java打印设置_java如何设置系统默认打印机
  12. java LPT1,java 打印机打印跟开钱箱
  13. 从谷歌搜获更多~[一些谷歌搜索的提示和技巧]
  14. 电源学习总结(二)——线性稳压主要特点及原理
  15. uml中的关系-类图关系
  16. 360 重磅开源性能监控平台 ArgusAPM
  17. AD18中高速信号等长线使用
  18. 基于工业路由器的工业机器人远程监控系统方案应用
  19. 使用微波雷达传感器都有那些优势呢?
  20. Autonomous bubble pattern | 雷达哔哔哔

热门文章

  1. 面试题3:二维数组中的查找
  2. C#几个经常用到的字符串的截取
  3. 自制基于HMM的python中文分词器
  4. 全球数据库--基金/管理产品--分类/行业平均
  5. 安卓学习第10课——listview
  6. 一文读懂「中台」的前世今生
  7. 回顾计算机产业发展的4个阶段:美国企业统治全球市场了吗?
  8. 6年级学Python,高中学AI?这6本书,助你找回输掉的起跑线
  9. 面试基操:微服务拆分需要考虑什么因素?
  10. 流量超过谷歌的Tiktok,在扩张过程中被质疑“偷窃”OBS代码