shell 1基础
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基础的更多相关文章
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Linux shell入门基础(六)
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
- Linux shell入门基础(一)
Linux shell入门基础(一): 01.增加删除用户: #useradd byf userdel byf(主目录未删除) userdel -r byf 该用户的属性:usermod 用 ...
- Shell的基础介绍和案例
一.shell脚本基础 1.第一个脚本 vim first.sh 分别使用三种方法可以执行脚本: ./first.sh (需要有可执行的权限) sh first.sh . fir ...
- 【转】Shell编程基础篇-下
[转]Shell编程基础篇-下 1.1 条件表达式 1.1.1 文件判断 常用文件测试操作符 常用文件测试操作符 说明 -d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立 ...
- 【转】Shell编程基础篇-上
[转]Shell编程基础篇-上 1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应 ...
- shell编程基础(转载)
Shell编程基础 原作者 Leal:请参阅页面底部的编者列表. 授权许可: 创作共享署名协议 GNU 自由文档许可证 注意:本文仍然在持续的修订之中,且错漏之处可能较多.如果能够阅读英语的话,可以考 ...
- Shell编程(二)——shell的基础知识及常用命令
shell的基础知识 一.bash有以下特点: 1.记录命令历史 2.指令和文件名补全 3.别名 alias rm='rm -i' 4.通配符 * 0个或多个字符 ?匹配一个字符 5 输入输出重定向 ...
- shell重温---基础篇(参数传递&echo命令)
经过前两天的学习,关于shell的基础算是知道的一般般啦,最起码不算是小白了(纯属意淫).今天就来点干货哈. 首先是运行shell脚本时的参数传递.脚本内获取参数的格式为$n.n代表了一个数字,例 ...
随机推荐
- java.io.FileNotFoundException: antlr-2.7.7.jar (系统找不到指定的路径。)[待解决]
严重: Failed to destroy the filter named [struts2] of type [org.apache.struts2.dispatcher.ng.filter.St ...
- es6 规范 的 具体用法 -- 待续
链接 1. const 表示不会被重新赋值的, 包括了不会被修改的, const 可以被修改, 但是不会被整体覆盖 由于是静态分析, const 相对 let 执行效率 更高 2. 模板字符串 ...
- Thrift之双向通讯
在实际应用中,却经常会有客户端建立连接后,等待服务端数据的长连接模式,也可以称为双向连接.一.双连接,服务端与客户端都开ThriftServer如果网络环境可控,可以让服务端与客户端互相访问,你可以给 ...
- 玩转TypeScript(3)--类型转换
使用强类型变量常常需要从一种类型向另一种类型转换,通常使用ToString或ParseInt可以来实现一些简单的转换,但是有时候需要像.NET语言中那样将一种类型显示的转换为另一种类型,在TypeSc ...
- 解析Linux中的VFS文件系统机制
转载:原文地址https://www.ibm.com/developerworks/cn/linux/l-vfs/ 1. 摘要 本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2 ...
- tensorflow模型持久化保存和加载
模型文件的保存 tensorflow将模型保持到本地会生成4个文件: meta文件:保存了网络的图结构,包含变量.op.集合等信息 ckpt文件: 二进制文件,保存了网络中所有权重.偏置等变量数值,分 ...
- TI AM335x Linux MUX hacking
/********************************************************************************************* * TI ...
- JavaScript 之call , apply 和prototype 介绍
1. 前言 为什么将这三个概念放在一起说.原因是这些是会在实现js 继承会需要使用到的 2. call 和 apply call 和 apply 的作用基本类似, 都是去执行function并将这个f ...
- jquey学习2之jquery动态添加页面片段
第一个方法:append()方法 [1]$(selector).append(content)//向匹配的所有标签中的内容末尾处添加Html代码,会编译成页面显示. <html> < ...
- WPF控件NumericUpDown (转)
WPF控件NumericUpDown示例 (转载请注明出处) 工具:Expression Blend 2 + Visual Studio 2008 语言:C# 框架:.Net Framework 3. ...