一、什么是Shell?

  Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序。Shell还是一个功能强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

二、Shell的分类

  1、Bourne Shell:简称:B Shell,从1979年起Unix就开始使用Bourne Shell,B Shell的主文件后缀是.sh,bshell不支持历史记录。主要包括:sh、Bash、psh、zsh。

  2、C Shell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言类似而得名。CShell主要包括:csh,tcsh。

  3、显示当前系统中所使用的是什么版本的Shell。例如:echo $SHELL

  4、显示当前系统中所有可以支持的Shell。例如:cat /etc/shells

  5、切换到不同的Shell可以直接使用shell的名称即可。例如:bash、sh等等。exit退出shell。

三、Shell脚本的执行方式

  1、echo:表示在控制台输出一句话。如果输出内容包含空格,必须使用双引号;如果 echo中使用了-e选项则可以使用特殊字符。

 
控制字符 作用
\a 输出警告音
\b 显示退格键
\n 换行符
\r 回车键
\t 制表符。
\v 垂直制表符
\0nnn 按照八进制ASCII码输出字符,其中0为数字零,nnn为三位八进制数。例如:echo -e "\0123" 显示大写S
\xhh 按照十六进制ASCII码输出字符,其中hh为两位十六进制数。例如:echo -e "\x61" 显示小写a
\e[1;31m  \e[0:m

通过颜色显示输出的字符串。

颜色列表:

#30m=黑色  #31m=红色  #32m=绿色  #33m=黄色  #34m蓝色  #35m=洋红  #36m=青色  #37m=白色

例如:echo -e "\e[1;31mhello world\e[0m"  以红色输出hello world。

  2、定义脚本:

  a、创建一个hello.sh的文本文件;

  b、然后以#!/bin/bash开头,这里的表示脚本的声明,必须要加上。

  c、输出指令。指令中#表示注释的意思。

  例:

#!/bin/bash
#My First Program!
echo -e "\e[1;31mhello wolrd\e[0m"

  3、执行脚本

  a、直接使用bash hello.sh执行脚本,但是这种不方便,优点是不需要赋予脚本执行权限。

  b、首先赋予脚本执行权限,然后再执行脚本。执行方便,缺点需要手动赋予执行权限。

chmod  hello.sh
./hello.sh

Linux学习笔记 (八)Shell概述的更多相关文章

  1. Linux学习笔记 -- 初识 Shell

    Shell 是什么 Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell既是 ...

  2. #Linux学习笔记# 自定义shell终端提示符

    我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入一个比较深的目录 ...

  3. Linux学习笔记(17) Shell编程之基础

    1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...

  4. linux学习笔记之shell

    本文参考:shell脚本学习指南 本文阅读前提为:知道shell指令,但不知道如何完成一个自动化的shell脚本. 因为编辑本文时,作者也是一个新手.所以,在一些理论上,可能存在错误.如果存在错误,希 ...

  5. Linux学习笔记:Shell脚本学习

    概念 真正能够控制计算机硬件(CPU.内存.显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁. 由于安全.复杂.繁琐等原因,用户不能直接接触内核(也没有 ...

  6. Linux学习笔记<五>——<Shell部分>

    管道命令(pipe) 1.把一个命令的输出作为另一个命令的输入 ls -al /etc | less 2.选取命令:cut和grep cut命令可以将一段消息的某段切出来. -d接分隔符,-f是取出第 ...

  7. Linux学习笔记(18) Shell编程之流程控制

    1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...

  8. Linux学习笔记 -- 为 Shell 传递参数

    我们可以在执行 Shell 脚本时,可以向脚本传递参数.脚本内获取参数的格式为:$n.(n 代表一个数字,0为所执行的shell脚本名称,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类 ...

  9. linux学习(八)Shell中变量的数学运算

    目录 常见的运算符 expr命令 @(Shell中变量的数学运算) 常见的运算符 环境变量 说明 + 加 - 减 * 乘 / 除 % 取模 因为Shell中将*作为通配符使用, expr命令 expr ...

  10. Linux学习笔记:shell

    目录 通配符 特殊符号 变量 环境变量 默认变量 shell script case if for until while function 本文更新于2019-08-23. 通配符 *:0个至无穷多 ...

随机推荐

  1. KVM(一)简介及安装

    1. KVM 介绍 1.0 虚拟化简史 其中,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Lin ...

  2. 查询oracle数据库中当前数据库所有表的名称

    http://www.cnblogs.com/hyq0002013/p/5948419.html select t.table_name from user_tables t;

  3. 从sizeof(string)到引用计数的漫游

    前言: 说是漫游,其实就是扯,一点一点的扯. 话说之前参加华为的德州扑克比赛,我用C++解析消息的时候碰到一个小问题,就是定长收消息的时候出错,在Linux下调了很久很久,终于发现,sizeof(st ...

  4. 遇见requestAnimationFrame

    今天,在读javascript异步编程的js事件深入理解部分的时候,了解到了requestAnimationFrame 这个api,在这里记录一下. 原文: setTimeout 和 setInter ...

  5. 16、Django实战第16天:优化url

    今天完成的是一个优化url.... 前面我们所有的url都是配置在一个mxonline.urls.py中.因为我们根据项目实际情况配置了多个app,那么我们相应的url是可以配置在自己的app中的,这 ...

  6. 【第二类Stirling数】Gym - 101147G - The Galactic Olympics

    如果K>n,就无解: 如果K==n,就答案是P(n,n): 如果K<n,答案就是s(n,K)*P(K,K): P为排列数,s为第二类斯特林数. 第二类斯特林数就是将n个球,划分为K个非空集 ...

  7. [CF877F]Ann and Books

    题目大意: 有$n(n\le10^5)$个数$w_{1\sim n}(|w_i|\le10^9)$,并给定一个数$k(|k|\le10^9)$.$q(q\le10^5)$次询问,每次询问区间$[l,r ...

  8. spring boot 2.x静态资源会被HandlerInterceptor拦截的原因和解决方法

    在spring boot 1.5.x中,resources/static目录下的静态资源可以直接访问,并且访问路径上不用带static,比如静态资源放置位置如下图所示: 那么访问静态资源的路径可以是: ...

  9. 【MySQL笔记】mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法

    step1:查看 1.1 Mysql命令行里输入"show engines:"查看innoddb数据引擎状态, 1.2 show variables "%_buffer% ...

  10. 使用IDEA创建package

    1)使用IDEA创建java工程 什么也不选,直接点击Next 无脑继续下一步 点击“Finish”完成工程的创建. 2)在使用IDEA创建了工程之后,首先选中“src”文件夹,然后 紧接着输入包名 ...