1. shell简介

shell是一个用C语言编写的程序,是用户使用Linux的桥梁。shell既是一种命令语言,又是一种程序设计语言。
shell脚本(shell script),是一种为shell编写的脚本程序。

2. shell环境

  • Bourne Shell(/usr/bin/sh 或/bin/sh)是unix最初使用的shell,而且在每种unix上都可以使用
  • Bourne Again Shell(/bin/bash)LinuxOS默认的,他是Bourne Shell的扩展。于Bourne Shell完全兼容,并且在Bourne Shell的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

3. 第一个shell脚本

3.1 编写脚本

```#log
#!/usr/bin/bash 告诉系统使用那种shell来执行脚本。
echo用于向窗口输出文本
```
```#shell
#!/usr/bin/bash #告诉系统使用那种shell来执行脚本。
echo "Hello World!" #出echo用于向窗口输出文本 结果:Hello World!
```

3.2 执行shell脚本

### 3.2.1直接执行,不需给予权限
```#shell
sh test.sh
source test.sh
```
### 3.2.2 ./需要给予可执行权限
```#shell
chmod +x ./test.sh #需要赋予可执行权限
./test.sh  #使用./ 执行脚本
```

4 其他

## 4.1 bash是一个进程
bash下还可以再重新启动一个shell,这个shell是sub shell,原shell会复制自身给它。
在sub shell中定义的变量,会随着sub shell的消亡而消失
* () 子shell中运行 (a=hello;echo $a) |echo $a #shell echo $a
* {} 当前shell中执行{ a=world;echo $a; } # world
* $$ 当前脚本执行的pid
* & 后台执行
* $! 运行在后台的最后一个作业的PID(进程ID)
```#shell
#!/bin/bash
(a="testhome";echo $a) #testhome
echo $a #子shell中定义的变量消失
{ a=world;echo $a; } #world
echo $a #world 当前shell的变量依然有效
```
## 4.2 通配符
bash可以自动扩展特定的关键词
```#shell
echo * #打印当前目录下的文件
echo ???? #匹配特定字符个数的文件
echo "*????" #输出字符串,避免被匹配
```

shell 1基础的更多相关文章

  1. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  2. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  3. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  4. Shell的基础介绍和案例

    一.shell脚本基础 1.第一个脚本 vim  first.sh 分别使用三种方法可以执行脚本:   ./first.sh (需要有可执行的权限)   sh    first.sh   .  fir ...

  5. 【转】Shell编程基础篇-下

    [转]Shell编程基础篇-下 1.1 条件表达式 1.1.1 文件判断 常用文件测试操作符 常用文件测试操作符 说明 -d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立 ...

  6. 【转】Shell编程基础篇-上

    [转]Shell编程基础篇-上 1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应 ...

  7. shell编程基础(转载)

    Shell编程基础 原作者 Leal:请参阅页面底部的编者列表. 授权许可: 创作共享署名协议 GNU 自由文档许可证 注意:本文仍然在持续的修订之中,且错漏之处可能较多.如果能够阅读英语的话,可以考 ...

  8. Shell编程(二)——shell的基础知识及常用命令

    shell的基础知识 一.bash有以下特点: 1.记录命令历史 2.指令和文件名补全 3.别名 alias rm='rm -i' 4.通配符 * 0个或多个字符 ?​匹配一个字符 5 输入输出重定向 ...

  9. shell重温---基础篇(参数传递&echo命令)

    经过前两天的学习,关于shell的基础算是知道的一般般啦,最起码不算是小白了(纯属意淫).今天就来点干货哈.   首先是运行shell脚本时的参数传递.脚本内获取参数的格式为$n.n代表了一个数字,例 ...

随机推荐

  1. L1-035 情人节

    以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家.第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”.现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋. 输入格式: ...

  2. ansible 列表变量、字典变量

    ansible的变量不仅可以是单个的值,也可以为列表. - hosts: localhost gather_facts: no vars: - list: [1,2,3] tasks: - name: ...

  3. 玩转X-CTR100 l STM32F4 l PS2无线手柄-4WD智能小车

    我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 前面已介绍X-CTR100控制器解码PS2无线手 ...

  4. MyEclipse WebSphere开发教程:WebSphere 7安装指南(一)

    [周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 一.先决条件和系统信息 想要使用WebSphere,您必须拥有MyEclipse Blu ...

  5. <NET CLR via c# 第4版>笔记 第18章 定制特性

    18.1 使用定制特性 FCL 中的几个常用定制特性. DllImport 特性应用于方法,告诉 CLR 该方法的实现位于指定 DLL 的非托管代码中. Serializable 特性应用于类型,告诉 ...

  6. sql server 表结构 导出 到excel

    SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, -- 字段序号 = a.colorder, 字段 ...

  7. anu - pureComponent

    import { inherit } from "./util"; import { Component } from "./Component"; impor ...

  8. MySQL Performance Tuning: Tips, Scripts and Tools

    With MySQL, common configuration mistakes can cause serious performance problems. In fact, if you mi ...

  9. SWIFT中获取配置文件路径的方法

    在项目中有时候要添加一些配置文件然后在程序中读取相应的配置信息,以下为本人整理的获取项目配置文件(.plist)路径的方法: 1.获取沙盒路径后再APPEND配置文件 func documentsDi ...

  10. magento常见的问题及解决方法

    刚接触magento时,会遇到很多问题,大多数都是些magento配置及操作上的问题,因为刚接触magento不久所有对这些问题比较陌生也不知道如何处理.今日根据模版堂技术指导下和网上的相关例子,这里 ...