Shell

第1章 shell概述

  • shell是一个命令解释器,它接受应用程序/用户命令,然后调用操作系统内核。
    Shell
    shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。

第2章 shell解析器

  1. Linux提供的shell解析器有:
    Shell

  2. bash和sh的关系:
    sh其实也是调用bash。

  3. Centos默认的解析器是bash。

第3章 shell脚本入门

  1. 脚本格式:#!/bin/bash开头(指定解析器)。
  2. 第一个shell脚本:helloworld。

创建一个shell脚本,输出helloworld。

touch helloworld.sh
vi helloworld.sh

在helloworld.sh中输入

#!/bin/bash
echo "helloworld"

(echo是向屏幕输入一串字符)

  1. 脚本的常用执行方式
  • 采用bash或sh+脚本的相对路径或绝对路径(不用赋予脚本+x权限)
    bash/sh helloworld.sh
    bash/sh /home/atguigu/datas/helloworld.sh
  • 采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)
    a.首先要赋予helloworld.sh脚本的+x权限
    chmod 777 helloworld.sh
    b.执行脚本
    相对路径
    ./helloworld.sh
    绝对路劲
    /home/atguigu/datas/helloworld.sh
    (注意:第一种执行方式,本质是bash解析器帮你执行脚本,所以脚本本身不需要执行权限。第二种执行方式,本质是脚本需要自己执行,所以需要执行权限。)

拓展:chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
Shell

  1. 第二个shell脚本:多命令处理
    (1)要求:在/home/atguigu/目录下创建一个banzhang.txt,在banzhang.txt文件中增加“I love cls”。
  • 创建一个脚本文件batch.sh并打开
    touch batch.sh
    vim batch.sh
  • 输入脚本开头格式并编辑
    #!/bin/bash
cd /home/atguigu/
touch banzhang.txt
echo "I love cls" >> bangzhang.txt

拓展:1.touch命令可以用来修改文件的访问/修改时间戳。 更多的时候它会被用来快速创建一个空文件。2.在写shell脚本和批处理文件,echo用于将状态文本输出到屏幕或文件。

第4章 shell中的变量

4.1系统变量

  1. 常用系统变量
    $HOME、 $PWD 、 $SHELL、 $USER等。
  2. 案例
    (1)查看系统的变量值
    echo $HOME
    (2)显示当前shell中所有变量:set
set
BASH=/bin/bash
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()

定义:set
取消定义:unset
echo:通常用于将文本字符串或命令结果显示为消息。

  • 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
  • 等号两侧不能有空格。
  • 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
  • 变量的值如果有空格,需要使用双引号或者单引号括起来。
    Shell
    (拓展:export可以将局部变量提升为全局变量。)
上一篇:前后端分离博客项目(SpringBoot/Redis/Shiro/Swagger/MyBatis-Plus/Vue/ElementUI)


下一篇:10天拿到字节跳动Java岗位offer,java高分面试指南