美文网首页
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语句

相关文章

  • Shell入门笔记

    Shell脚本:Linux Shell脚本学习指南菜鸟教程 - Shell教程Linux入门 - Shell脚本是...

  • shell基础

    Linux学习 一、shell介绍 Linux shell基础 什么是shell shell是一个命令解释器,提供...

  • Linux下的shell

    Shell 和 Linux shell程序是包含若干行shell或linux命令的文件。linux命令语句只能一行...

  • linux shell脚本攻略笔记

    LINUX SHELL脚本攻略笔记[速查] linux shell脚本攻略笔记

  • Shell学习

    Linux Shell基础教程 (一) (二) Linux Shell简明教程(推荐) (一) (二) Linux...

  • Shell 脚本编程简介

    Shell菜鸟教程[https://www.runoob.com/linux/linux-shell.html] ...

  • shell 教程学习推荐地址

    [shell 教程学习推荐地址:] http://www.runoob.com/linux/linux-shell...

  • bash shell学习

    Shell 传递参数 参考链接:https://www.runoob.com/linux/linux-shell-...

  • shell脚本基础应用

    Shell 教程[https://www.runoob.com/linux/linux-shell.html]li...

  • Shell-基础教程-变量

    参考教程链接 http://www.runoob.com/linux/linux-shell.html Shell...

网友评论

      本文标题:Linux Shell

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