码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • shell脚本自学笔记


    脚本体知识点

    解释器

    # !/bin/bash(默认)
    
    # !/bin/ksh
    
    # !/bin/bsh
    
    # !/bin/sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    文件权限

    文件权限:-	rw-	r--	r--
    		目录权限:drw-r--r--
    		分三列:每三个为一列,分别是所有者(owner),所属组(group),其他(others)
    
    		rwx r:4 w:2 x:1
    
    		7	5	5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    脚本执行方法

    添加执行权限 chmod +x shell.sh
    
    	方法1:./shell.sh
    
    	方法2:sh shell.sh 或者bash shell.sh
    
    	方法3:source shell.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    脚本内容知识点

    常见变量

    shell的变量直接使用,eg:a=15
    调用变量的话 $a 或者 ${a}
    
    • 1
    • 2

    image-20221126232135595

    
    $0 当前执行shell脚本的名字
    $1-9 从输入的参数中,按位次取数
    $# 脚本获得到的输入参数个数
    $* 脚本获取到的所有参数
    
    • 1
    • 2
    • 3
    • 4
    • 5

    例子:

    #/bin/bash
    #变量
    #author:YS
    echo "shell_name: $0"
    echo "账号:$2"
    echo "密码:$1"
    echo "总共输出的参数:$# "
    echo "输入的参数为:$* "
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    输出图示:

    image-20221126230933657

    常见的符号

    	>  会覆盖原有的内容
    
    	>> 不会覆盖原有的内容
    
    	;	#执行多条命令
    
    	|  #管道符 将前面的结果传递给后面
    
    	&& #前面的命令执行成功,后面的才可以执行
    
    	|| #前面的命令执行失败,后面的才可以执行
    
    	"" #会输出变量值
    
    	'' #输出本身
    
    	`` #输出命令结果 eg:a=`date`;echo $a
    
    	2>/dev/null  #错误输出到无底洞
    	1>/dev/null	 #正确输出到无底洞
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    演示例子

    • ‘>’ 和 ‘>>’

    image-20221126234305151

    • ; #执行多条命令

      image-20221126234429756

    • | #管道符 将前面的结果传递给后面

      image-20221126234707373

    • && #前面的命令执行成功,后面的才可以执行

    image-20221126234806271

    • || #前面的命令执行失败,后面的才可以执行

    image-20221126234842539

    • “” #会输出变量值 ,‘’ #输出本身

      修改之前的test.txt,将密码的那一行 “”变为了‘’。
      #/bin/bash
      #变量
      echo "shell_name: $0"
      #author:YS
      echo "账号:$2"
      echo '密码:$1'
      echo "总共输出的参数:$# "
      echo "输入的参数为:$* "
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10

    image-20221126235334095

    • `` #输出命令结果 eg:a=date;echo $a(提示这和符号是esc键下面的那个按键 ,我叫它为反撇号)

    image-20221126235803812

    • ​ 2>/dev/null #错误输出到无底洞
    • ​ 1>/dev/null #正确输出到无底洞

    image-20221127000509620

    符号是esc键下面的那个按键 ,我叫它为反撇号)

    image-20221126235803812

    • ​ 2>/dev/null #错误输出到无底洞
    • ​ 1>/dev/null #正确输出到无底洞

    image-20221127000509620

    运算符

  • 相关阅读:
    (09_22)【有奖体验】轻点鼠标,让古籍数字化“重生_
    以技术御风险,护航云原生 | 同创永益 X 博云举办产品联合发布会
    行泊一体冰火两重天:1000万辆市场释放,量产难题待解
    Qt5开发从入门到精通——第十一篇三节(Qt5 事件处理及实例——事件过滤及实例)
    java学习第179天,javaWeb学习第38天,复习第15天,p225-227(08/02)
    centos服务器搭建安装Gitlab教程使用教程
    vue3.0父子组件方法调用(setup语法糖)
    SpringBoot系列之集成Redission入门与实践教程
    如何封装安全的go
    flutter开发实战-webview插件flutter_inappwebview使用
  • 原文地址:https://blog.csdn.net/weixin_43432438/article/details/128063647
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号