zoukankan      html  css  js  c++  java
  • Shell 入门

    一、简介

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

     二、Shell 解析器

    (1)Linux 提供的 Shell 解析器有:

    [root@centos7 ~]# cat /etc/shells 
    /bin/sh
    /bin/bash
    /usr/bin/sh
    /usr/bin/bash
    /bin/tcsh
    /bin/csh

    (2)bash 和 sh 的关系

    [root@centos7 ~]# cd /bin/
    [root@centos7 bin]# ll | grep bash
    -rwxr-xr-x.   1 root root      964536 4月   1 2020 bash
    lrwxrwxrwx.   1 root root          10 4月  26 16:45 bashbug -> bashbug-64
    -rwxr-xr-x.   1 root root        6964 4月   1 2020 bashbug-64
    lrwxrwxrwx.   1 root root           4 4月  26 16:45 sh -> bash
    [root@centos7 bin]# 

    (3)Centos 默认的解析器是bash

    [root@centos7 bin]# echo $SHELL
    /bin/bash

    三、Shell 脚本入门

    1、脚本格式

    脚本以 #!/bin/bash 开头(指定解析器)

    2、第一个Shell脚本

    (1)需求:创建一个 Shell 脚本,输出helloworld

    (2)案例实操:

    [root@centos7 shell_test]# touch helloworld.sh
    [root@centos7 shell_test]# vim helloworld.sh
    
    在helloworld.sh中输入如下内容
    #!/bin/bash
    echo "helloworld"

    (3)脚本的常用执行方式

    第一种:采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x权限)

    #sh+脚本的相对路径
    [root@centos7 shell_test]# sh helloworld.sh
    
    #sh+脚本的绝对路径
    [root@centos7 shell_test]# sh /home/atguigu/datas/helloworld.sh
    
    #bash+脚本的相对路径
    [root@centos7 shell_test]# bash helloworld.sh
    
    #bash+脚本的绝对路径
    [root@centos7 shell_test]# bash /home/atguigu/datas/helloworld.sh

    第二种:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)

    #1、首先要赋予helloworld.sh 脚本的+x权限
    [root@centos7 shell_test]# chmod 777 helloworld.sh
    
    #2、执行脚本
    #相对路径
    [root@centos7 shell_test]# ./helloworld.sh
    
    #绝对路径
    [root@centos7 shell_test]# /home/atguigu/datas/helloworld.sh

    注意:第一种执行方法,本质是 bash 解析器帮你执行脚本,所以脚本本身不需要执行权限。第二种执行方法,本质是脚本需要自己执行,所以需要执行权限。

    3、第二个 Shell 脚本:多命令处理

    (1)需求:

    在 /opt/shell_test/ 目录下创建一个 banzhang.txt,在 banzhang.txt 文件中增加“I love cls”。

    (2)案例实操:

    [root@centos7 shell_test]# touch batch.sh
    [root@centos7 shell_test]# vim batch.sh
    
    在batch.sh中输入如下内容
    #!/bin/bash
    cd /opt/shell_test
    touch banzhang.txt
    echo "I love cls" >>banzhang.txt
  • 相关阅读:
    OOP3(继承中的类作用域/构造函数与拷贝控制/继承与容器)
    OOP2(虚函数/抽象基类/访问控制与继承)
    OOP1(定义基类和派生类)
    拷贝控制3(对象移动)
    拷贝控制2(拷贝控制和资源管理/交换操作/动态内存管理)
    拷贝控制1(拷贝、赋值与销毁)
    动态内存2(动态数组)
    python--numpy模块、spicy模块、 matplotlib模块
    Java--23种设计模式之decorator模式
    Android开发---开发文档翻译
  • 原文地址:https://www.cnblogs.com/jwen1994/p/14894102.html
Copyright © 2011-2022 走看看