第十章——Shell基础

一.Shell概述

1.Shell是什么:

(1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

(2)Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

2.Shell的分类:

(1)BourneShell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。

(2)C Shell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。

(3)Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。

(4)Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。

3.Linux支持的Shell:

/etc/shells

二. Shell脚本的执行方式

1.echo输出命令:

2.第一个脚本:

3.脚本执行:

三.Bash的基本功能

1.历史命令与命令补全:

(1)历史命令:

(2)历史命令的调用:

(3)命令与文件补全:

2.命令别名与常用快捷键:

(1)命令别名:

(2)命令执行顺序:

(3)让别名永久生效:

(4)删除别名:

(5)Bash常用快捷键:

3.输入输出重定向:

(1)标准输入输出:

(2)输出重定向:

(3)输入重定向:

4.多命令顺序执行与管道符:

(1)多命令顺序执行:

(2)管道符:

5.通配符与其他特殊符号:

(1)通配符:

(2)Bash中其他特殊符号:

四.Bash的变量

1.用户自定义变量

(1)什么是变量:变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。

(2)变量设置规则:变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。

                                              在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。
                                              变量用等号连接值,等号左右两侧不能有空格。
                                              变量的值如果有空格,需要使用单引号或双引号包括。
                                              在变量的值中,可以使用“\”转义符。
                                              如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含“$变量名”或用${变量名}包含。
                                              如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令。
                                              环境变量名建议大写,便于区分。

(3)变量分类:用户自定义变量。

                                       环境变量:这种变量中主要保存的是和系统操作环境相关的数据。
                                       位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
                                       预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

(4)本地变量:

2.环境变量

(1)环境变量是什么:用户自定义变量只在当前的Shell中生效,而环境变量会在当前Shell和这个Shell的所有子Shell当中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的Shell中生效。

(2)设置环境变量:

(3)系统常见环境变量:

3.位置参数变量

4.预定义变量

(1)预定义变量:

(2)接收键盘输入:

五.Bash的运算符

1.数值运算与运算符:

(1)declare声明变量类型:

(2)数值运算—方法1:

(3)方法2:expr或let数值运算工具

(4)方法3:“$((运算式))”或“$[运算式]”

            (5)运算符:

2.变量测试与内容替换:

六.环境变量配置文件

1.环境变量配置文件简介:

(1)source命令:

(2)环境变量配置文件简介:

2.环境变量配置文件作用:

3.其他配置文件和登录信息:

(1)注销时生效的环境变量配置文件:

(2)其他配置文件:

(3)Shell登录信息:

Linux基础学习(10)--Shell基础的更多相关文章

  1. linux 学习10 shell 基础

    10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...

  2. 【Linux基础总结】Shell 基础编程

    Shell 基础编程 重启虚拟机遇到磁盘损坏如何解决 Shell编程中变量的声明.引用及作用域 Shell程序 概述 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就 ...

  3. python基础学习10

    python基础学习 内容概要 文件内光标的移动 文件数据修改 函数简介 函数语法结构 内容详情 文件内光标的移动 with open(r'路径','r',encoding='utf8') as f: ...

  4. Shell基础学习(一) Shell简介

    Shell是什么? Shell是C语言编写的一种程序,用于用户与linux操作系统交互:Shell既是命令语言,又是程序设计语言. Shell脚本是什么? Shell脚本是用Shell编写的脚本程序. ...

  5. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用

    一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境       2> 练习命令历史.命令别名       3 ...

  6. linux 学习随笔-shell基础知识

    1:用户的shell历史命令保存在home/username/.bash_history中 #!!  执行用户的上一条命令 #!pw  执行命令历史中最近一次以pw开头的命令 2:'*'来匹配零或多个 ...

  7. linux/linux学习笔记-Shell基础(mooc)

    一.shell概述 shell根据ascII表,将命令翻译为0101...传给内核执行. 内核->shell翻译为命令->用户(操作的界面就是shell,shell=翻译官) linux标 ...

  8. Linux 笔记 - 第十章 Shell 基础知识

    博客地址:http://www.moonxy.com 一.前言 Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是一 ...

  9. lesson - 10 shell 基础知识

    课程大纲: 1. shell特性 命令历史 history !!  !$  !n  !字符 Tab 键可以补全文件路径或者命令 alias  a=“b”  unalias a 通配符 *匹配零个或多个 ...

  10. C++基础学习10:继承

    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法(函数)和属性(成员变量)的过程.如果类B继承于类A,那么B就 ...

随机推荐

  1. 11175-From D to E and Back(思维)

    Problem UVA11175-From D to E and Back Accept: 164  Submit: 607Time Limit: 3000 mSec Problem Descript ...

  2. spring boot 注解方式 idea报could not autowire

    File-Project Structure 页面 Facets下删掉 Spring(直接右键Delete) 这个解答是对的.并不会降低安全性!!因为创建项目的时候,都是先创建空项目再创建web mo ...

  3. 【转】Xposed出现 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation

    Xposed出现 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implem ...

  4. day 06 元组、字典、集合的定义及其方法

    一:元组 1.定义:在()内用多个逗号分隔开多个任意类型的元素 元组用来记录多个值,当值没有改变的需求时,用元组更合适. 元组是有序的.不可变的(虽然数据不可变,但是数据的数据是可以改变的) t = ...

  5. Linux 任务计划 crontab 配置概要与常见问题

    Linux 可以利用 crontab 来实现定时任务,自动化操作.本文对此进行简要说明. crontab 操作示例 列出定时任务   crontab -l #列出所有的定时任务,如果没有定时任务,返回 ...

  6. AI SSD目标检测算法

    Single Shot multibox Detector,简称SSD,是一种目标检测算法. Single Shot意味着SSD属于one stage方法,multibox表示多框预测. CNN 多尺 ...

  7. 测试工具使用-Qunit单元测试使用过程

    031302620 应课程要求写一篇单元测试工具的博客,但是暂时没用到java,所以不想使用junit(对各种类都不熟悉的也不好谈什么测试),原计划是要用phpunit,但是安装经历了三个小时,查阅各 ...

  8. 使用ssh登录kali

    SSH为Secure Shell的缩写,SSH为建立在应用层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题 ...

  9. Docker存储卷(V18.X)

    简介 介绍 Docker的存储卷称之为volume,本质上容器上的一个或者多个目录,而这些目录绕过了联合文件系统,与宿主机中的目录或者其他容器目录进行了绑定关系,这种绑定关系可以看作Linux的mou ...

  10. git中Please enter a commit message to explain why this merge is necessary.

    Please enter a commit message to explain why this merge is necessary. 请输入提交消息来解释为什么这种合并是必要的 git 在pul ...