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 编写脚本

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

3.2 执行shell脚本

3.2.1直接执行,不需给予权限

sh test.sh
source test.sh

3.2.2 ./需要给予可执行权限

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)
#!/bin/bash
(a="testhome";echo $a)    #testhome
echo $a    #子shell中定义的变量消失
{ a=world;echo $a; }    #world
echo $a    #world 当前shell的变量依然有效

4.2 通配符

bash可以自动扩展特定的关键词

echo *     #打印当前目录下的文件
echo ????    #匹配特定字符个数的文件
echo "*????"    #输出字符串,避免被匹配
原文地址:https://www.cnblogs.com/csj2018/p/9534871.html