Linux笔记丨shell脚本零基础入门,基础操作

简介: Linux笔记丨shell脚本零基础入门,基础操作

摘要:shell是用户使用Linux的桥梁,本文学习shell脚本的入门使用方法,包括变量、数组、传递参数等内容。

1运行shell脚本

    #!/bin/bash
    echo "hello word"

    上面是常见代码样式,“#!”的意思是告诉系统使用哪个脚本执行器,echo向窗口输出文本。

      chmod +x ./test.sh
      ./test.sh #执行脚本
        /bin/sh test.sh
        #直接运行脚本,无需“#!”


        2shell变量

          bianliangming="xxxx"
          ##定义变量,注意以下规则
          #等号两旁不加空格,变量名不加$
          #首字符不能数字
          #不能使用标点,可以用下划线
          echo ${bianliangming}
          #使用变量时加$
          #如上方法大括号可加可不加,帮助识别变量界限
          readonly bianliangming
          #设置成只读变量,不可修改
          unset 变量名
          #删除变


          3shell字符串

            bianliang="abc"
            bianliang_1='abc'

            字符串可以用单引号,也可以用双引号,单引号是原样输出,里面不能有变量。双引号内可以有变量,可以出现转义字符。

              string="abcdefg"
              echo $string #获取字符长度
              echo ${string:1:4} #提取,从第2个字符起截取4个字符,第一个字符是第0个
              echo `expr index "${string}" a` 
              #查找a字符在变量的哪个位置,`是反引号,在键盘esc键下面那个


              4shell数组

                数组名=(1 2 3 4)  #定义数组
                数组名[1]=值 #定义第一个分量

                shell数组下标由0开始编号,用括号表示数组,元素用空格分隔。可以单独定义数组的各个分量,下标的范围没有限制。

                  ${数组名[下标]} #读取数组的元素值
                  echo ${数组名[@]} #显示出所有元素
                  length=${数组名[@]} #获取元素个数
                  length=${数组名[n]} #获取第n个元素的长度


                  5shell传递参数

                    #特殊字符
                    $# #传递的参数的个数
                    $* #以单个字符串传递参数
                    $@ #传递所有参数
                    $$ #当前进程号ID
                    $! #显示最后一个进程号
                    $- #显示shell使用的当前选项
                    $? #显示最后命令的状态,返回0为正常

                    执行shell脚本时,传递参数的格式为:$n,n为数字,$*和$@都是引用多有参数,如果有双引号存在,$@会分别传递三个参数,而另外一个只会传递一个参数。


                    今日随笔:Linux基础部分内容已经快更新完了,之后笔者抽时间补充一下学习过程中漏掉的知识点,如果笔记中存在错误请后台交流。

                    相关实践学习
                    CentOS 7迁移Anolis OS 7
                    龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
                    相关文章
                    |
                    1月前
                    |
                    Shell
                    一个用于添加/删除定时任务的shell脚本
                    一个用于添加/删除定时任务的shell脚本
                    75 1
                    |
                    17天前
                    |
                    Shell Linux 测试技术
                    6种方法打造出色的Shell脚本
                    6种方法打造出色的Shell脚本
                    40 2
                    6种方法打造出色的Shell脚本
                    |
                    3天前
                    |
                    XML JSON 监控
                    Shell脚本要点和难点以及具体应用和优缺点介绍
                    Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
                    13 1
                    |
                    8天前
                    |
                    Ubuntu Shell 开发工具
                    ubuntu/debian shell 脚本自动配置 gitea git 仓库
                    这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
                    22 2
                    |
                    14天前
                    |
                    Ubuntu Linux Shell
                    Linux 系统中的代码类型或脚本类型内容
                    在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
                    |
                    22天前
                    |
                    监控 网络协议 Shell
                    ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
                    这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
                    43 6
                    |
                    18天前
                    |
                    运维 监控 Shell
                    深入理解Linux系统下的Shell脚本编程
                    【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
                    |
                    1月前
                    |
                    运维 Java Linux
                    【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
                    ### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
                    35 1
                    |
                    1月前
                    |
                    监控 Unix Shell
                    shell脚本编程学习
                    【10月更文挑战第1天】shell脚本编程
                    65 12
                    |
                    1月前
                    |
                    存储 运维 监控
                    自动化运维:使用Shell脚本简化日常任务
                    【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
                    49 2