美文网首页
Linux Shell

Linux Shell

作者: hazydream | 来源:发表于2017-05-18 09:54 被阅读8次

    一、 Linux Shell 基础

    1. 基本概念

    1> 简介

    Shell是一个程序

    • 一个命令行解释器
    • 解释用户的指令,发送给内核执行,并将结果显示给用户

    Shell还是一个脚本语言

    • 定义和使用变量
    • 使用流程控制语句
    2> Shell中执行命令

    启动一个新的进程来运行命令

    新进程和Shell进程之间是父子关系

    • Shell进程等待子进程执行完
    • 子进程返回结果给Shell进程

    一次执行多个命令

    • cmd1; cmd2
    • cmd1 && cmd2 || cmd3
    3> 子进程的输入输出

    标准输入(stdin,0)

    • cat < a.txt
    • cat a.txt

    标准输出(stdout,1)

    • cat a.txt > b.txt
    • cat a.txt >> b.txt

    标准错误(stderro,2)

    • cat a.txt 2> err.txt
    4> 在Shell中使用管道

    可以将多个命令通过管道(|)连接起来
    上一个命令的输出数据就是下一个命令的输入数据
    例如:ls -al /etc | less

    2. Bash介绍

    1> Shell的种类

    sh

    • Bourne Shell,Unix系统最早的Shell

    bash

    • Bourne Again Shell,使用最广泛,Linux系统默认的Shell
    • 提供40个内置命令

    zsh

    • 最大的Shell之一,具有非常强大的功能
    • 提供84个内置命令

    其他

    • ksh,csh,tcsh...
    2> Bash特点
    • 记录历史命令

    • tab键自动补全

    • alias命令别名

    • 任务控制

    • 通配符*

    • help查看帮助

    • man cd查看所有的内置命令

    3> Bash的别名

    为冗长的命令去一个简单易记的名字

    • alias ll='ls -l'
    • alias rm='rm -i'

    取消命令别名

    • unalias ll
    4> Bash的变量
    • 多人同时运行Bash,每人都有自己运行时的配置(环境)

    • 不同的程序执行的时候也可以有不同的配置(环境)

    • 环境中包含了各种各样的变量

    • 程序可以读取变量的值,并根据值进行相应的动作

    • 可分为系统环境变量和用户自定义变量

    • 变量的格式

      • x=1
    • 查看系统环境变量

      • env
      • export
    • 查看单个变量

      • echo $PATH
    5> Bash常用环境变量
    环境变量 说明
    LOGNAME 登录名(账户名)
    PATH 命令搜索路径
    PS1 命令提示符
    PWD 用户的当前目录
    SHELL 用户的Shell类型
    TERM 终端类型
    HOME 用户的主目录位置,通常是/home/用户名
    6> Bash的环境配置

    二、 Linux Shell 编程

    1. 基本概念

    1> 什么是Shell Script
    • 使用Shell语言编写的一个程序

    • 包含一系列Shell命令,这些命令可以被批量执行

    • 可以变量定义、循环、条件与逻辑判断结构

    • 无需变异,解释执行

    2> Shell编程的基本步骤
    • 采用任意文本编辑器

      • 推荐采用vim,gedit等带有语法高亮的编译器
    • 按照规范编写程序

      • 添加注释,增强可读性
      • 定义变量
      • 返回结果
    • 执行脚本

    • 调试脚本

    3> Shell编程规范
    • 第一行

      • #!/bin/bash
      • 使用bash shell来执行改恒组
    • #表示注释

    • 环境变量定义

    • 程序主体

    • 返回结果

    3> 执行脚本
    • 三种方式
      • bash test.sh 需要文件可读权限
      • bash < test.sh 需要文件可读权限
      • ./test.sh 需要文件可执行权限

    2. Shell编程语言

    1> 概览
    • 变量的定义和使用

    • 条件判断

    • Case语句

    • 循环控制语句

      • if控制语句
      • for控制语句
      • while控制语句
    • 定义和使用函数

    • 输入输出

    • 调试Shell

    3> 变量
    1. 变量定义
    • 文本变量

      • message='hello world'
    • 数字变量

      • declare -i x=5+1+2
    • 数组变量

      • arr=(1 2 3 4 5)
      • arr[1]="e1", arr[2]="e2"
    • 文本变量

      • message='hello world'
    2. 变量使用
    • 文本&数字变量
      • $name
      • ${my_name}
      • ${my_name:-"guest"}
    • 数组变量
      • ${arr[1]}
      • ${#arr[@]}
      • ${arr[@]}
    3. 特殊变量
    • /path/to/scriptname opt1 opt2 opt3 opt4
      • $1,$2,$3,$4
      • $@:"$1" "$2" "$3" "$4"
      • $*:$1 $2 $3 $4
      • $0:脚本路径
    • 上一个命令的返回值
    3> test判断
    test判断
    4> []判断
    • 判断方式同test
      • 空格分隔
      • 变量以双引号引起来
      • 常量以单引号或双引号引起来
      • ["$1" == "test"]
    5> Case
    Case语句

    相关文章

      网友评论

          本文标题:Linux Shell

          本文链接:https://www.haomeiwen.com/subject/pfxsxxtx.html