linux中shell是一个特殊的应用程序。它介于系统的内核与用户之间。充当命令“解释器”的作用角色。负责接收用户输入的操作指令,并进行解释。将需要执行的操作传递给内核。并输出执行结果;

下面我们来看一下当前系统所支持的shell的种类:

linux中shell脚本的学习(一)_定向其中/bin/shell 是目前大多数linux中采用的默认shell。我们主要学习bash、



我们来写第一个脚本文件用作测试。

vim first.sh

cd /boot/

pwd

ls -lh *

chmod +x first.sh 



           

linux中shell脚本的学习(一)_定向_02

shell脚本标准的桥本结构:

vim first.sh


#!/bin/bash

#this is my first shell.

cd /boot

echo "当前的目录位于"

pwd

echo "其中以a开头的文件包括:"

ls -lh a*


chmod +x first.sh  给予其执行的权限


linux中shell脚本的学习(一)_管道_03

也可以通过sh.first 或者. first.sh 来执行脚本。。


重定向和管道操作:

重定向输出使用 > 或者 >> 操作符号。> 用于覆盖 >> 多用于追加使用

例如:

linux中shell脚本的学习(一)_定向_04 

追加的应用:

linux中shell脚本的学习(一)_管道_05


重定向输入:重定向输入使用"<"操作符

可以使一些交互式操作过程能够读取文件来完成:

vim pass.txt

123.com

linux中shell脚本的学习(一)_应用程序_06

将密码直接定向到hujianli用户里面

错误重定向

例如:将tar命令备份时出现的错误信息保存到error.log文件中:

linux中shell脚本的学习(一)_解释器_07

使用 2> 时会像 > 一样覆盖掉文件。若要追加内容而不是覆盖掉文件,就要用 2>> 操作符。


例如:自动编译脚本。。把输出的信息定义到/dev/null里面。。

linux中shell脚本的学习(一)_定向_08



管道操作

“|” 位于| 左侧命令输出的结果回作为右侧命令的输入(出来对象),同一命令中可有多条管道

在shell中|通常用作过滤所需要的关键信息:

例如:编写一个脚本,只显示passwd中的用户名和登录shell列:

linux中shell脚本的学习(一)_linux_09

其中awk的作用是把:当做分隔,输出$1,$7的字符串。 -F用作指定分隔符号:未指定是用空格标示分隔。

再列举一个:

linux中shell脚本的学习(一)_管道_10grep “/$”代表/分区 对象  awk ‘{print $5}’代表空格作为分隔,第5个


 例如:

linux中shell脚本的学习(一)_解释器_11


应用变量的值:

例如:

linux中shell脚本的学习(一)_应用程序_12


双引号:

hujianli = “jianli”

echo $hujianli

jianli


linux中shell脚本的学习(一)_管道_13


单引号,不能解释其他变量,单引号里面的所有内容都是原样输出的。。

这里不做演示。

反撇号:主要将``里面的内容输出显示。。

linux中shell脚本的学习(一)_应用程序_14


read 是bash的内置命令,主要给变量赋值。例如:

linux中shell脚本的学习(一)_应用程序_15



今天先复习这么一点,改天继续。。。。shell脚本,