linux中shell脚本的学习(一)

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

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

wKioL1RUM_nich3bAAD5PvaLXpY860.jpg其中/bin/shell 是目前大多数linux中采用的默认shell。咱们主要学习bash、vim



咱们来写第一个脚本文件用做测试。bash

vim first.shide

cd /boot/学习

pwd测试

ls -lh *this

chmod +x first.sh spa



           

wKioL1RUNW7AMbqzAAL3l-Y8G4k812.jpg

shell脚本标准的桥本结构:3d

vim first.sh


#!/bin/bash

#this is my first shell.

cd /boot

echo "当前的目录位于"

pwd

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

ls -lh a*


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


wKioL1RUN0ugCAaAAACzQDMsIao927.jpg

也能够经过sh.first 或者. first.sh 来执行脚本。。


重定向和管道操做:

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

例如:

wKiom1RUOBfxUVpMAABLlYVclX0640.jpg 

追加的应用:

wKiom1RUOI2zMMFUAABrJKw-PcE851.jpg


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

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

vim pass.txt

123.com

wKiom1RUOeazNPdCAABcQoPD7dU030.jpg

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

错误重定向

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

wKiom1RUOtPhv-RMAAC0kqrfw-g992.jpg

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


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

wKiom1RUPPqyvg_-AAC4NyJ4tbU647.jpg



管道操做

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

在shell中|一般用做过滤所须要的关键信息:

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

wKiom1RUPqeiIIdrAADvQhWVLzw320.jpg

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

再列举一个:

wKiom1RUQF6Qh_T_AAIZwzeBtxA346.jpggrep “/$”表明/分区 对象  awk ‘{print $5}’表明空格做为分隔,第5个


 例如:

wKiom1RUQhujc9tiAADeuJ74w-4510.jpg


应用变量的值:

例如:

wKioL1RUQ0CwblCkAAEhNmaQpq0325.jpg


双引号:

hujianli = “jianli”

echo $hujianli

jianli


wKioL1RURCHD46UKAAFTBMQxVAk699.jpg


单引号,不能解释其余变量,单引号里面的全部内容都是原样输出的。。

这里不作演示。

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

wKiom1RURR3RPi47AAGCG0hsPIs298.jpg


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

wKiom1RUReGDrLA-AADJgKO4OH4075.jpg



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

相关文章
相关标签/搜索