• linux系统shell基础知识入门


    什么是shell

    shell就是我们常说的命令行程序,它是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入要执行的命令。在Linux中安装多个shell是可行的,一般系统有默认的shell,linux中默认的为Bash

    查看系统所有shell及当前起作用shell

    [liangc@ip-10-30-20-114 ~]$ cat /etc/shells
    /bin/sh
    /bin/bash
    /usr/bin/sh
    /usr/bin/bash
    
    查看当前shell,通过shell变量查看
    [liangc@ip-10-30-20-114 ~]$ echo $SHELL
    /bin/bash
    

    如何编写shell

    使用文本编辑工具,将命令组合到一个文件中即可,在linux中,扩展名无特别意义,它只是为了更清楚标识这个文件而已,所以你的shell脚本文件可以无扩展名。但是一般都会加上.sh作标识
    vi first
    敲入如下命令

    #!/bin/sh
    echo "hello world"
    exit 0
    

    以上是一个简单的shell脚本
    第一行#!是一种特殊注释,后面的/bin/sh表示这个脚本将使用此shell来解析执行,需使用绝对路径
    exit的使用确保脚本返回一个有意义的状态码,如果其它脚本需要调用这个脚本程序,那么返回一个有意义的状态码是很有必要的。但建议时,即使这个程序不会被其它程序调用,还是返回一个状态码吧。一般用0表示成功。

    运行shell

    两种运行方式
    1 调用shell,把脚本名当成一个参数

    /bin/sh first
    

    2 使用chmod赋予可执行权限

    chmd +x first
    ./first
    

    shell语法

    变量,在shell里,变量可以不先声明,只是通过使用它们(比如赋初值时)来创建它们。所有变量被看作字符串并以字符串存储,即使值为数字时也如此。linux区分大小写,所以Hello和hello是不同的哦。
    在变量面前加上“$"可访问该变量。

    hello="hello world"
    echo $hello
    echo "$hello"
    echo '$hello'
    echo $hello
    输出
    hello world
    $hello
    $hello
    

    注意,如果字符串里面包含空格,必须用引号把它们括起来。此外,等号两边不能有空格
    使用单引号和反斜线不会进行变量的替换

    环境变量

    环境变量 说明
    $HOME 当前用户家目录
    $PATH 以冒号分隔的用来搜索命令的目录列表
    $0 shell脚本的名字
    $# 传递级脚本的参数个数
    $$ shell脚本的进程号,脚本通常用它来生成一个唯一的临时文件,如/tmp/tmpfile_$$

    参数变量

    参数变量 说明
    $1 ,$2.... 脚本程序的参数
    $* 在一个变量中列出所有参数,各参数之间用环境变量IFS中第一个字符分隔开
    $@ 是$*的变体,它不使用IFS变量,即使IFS为空,参数也不会挤在一起
  • 相关阅读:
    C# html转mht
    前端插件
    通过GhostDoc实现自定义方法概要(summary)
    使用word模板生成pdf文件
    js 二维码
    POST 请求静态文件 响应405
    Notepad++ 两个格式化插件
    朴素的标题:MVC中权限管理实践
    对于api安全性的思考
    RSA私钥加密公钥解密、各种密钥格式转换
  • 原文地址:https://www.cnblogs.com/smartrui/p/10231124.html
Copyright © 2020-2023  润新知