linux中shell是一个特殊的应用程序。它介于系统的内核与用户之间。充当命令“解释器”的作用角色。负责接收用户输入的操作指令,并进行解释。将需要执行的操作传递给内核。并输出执行结果;
下面我们来看一下当前系统所支持的shell的种类:
其中/bin/shell 是目前大多数linux中采用的默认shell。我们主要学习bash、
我们来写第一个脚本文件用作测试。
vim first.sh
cd /boot/
pwd
ls -lh *
chmod +x first.sh
shell脚本标准的桥本结构:
vim first.sh
#!/bin/bash
#this is my first shell.
cd /boot
echo "当前的目录位于"
pwd
echo "其中以a开头的文件包括:"
ls -lh a*
chmod +x first.sh 给予其执行的权限
也可以通过sh.first 或者. first.sh 来执行脚本。。
重定向和管道操作:
重定向输出使用 > 或者 >> 操作符号。> 用于覆盖 >> 多用于追加使用
例如:
追加的应用:
重定向输入:重定向输入使用"
可以使一些交互式操作过程能够读取文件来完成:
vim pass.txt
123.com
将密码直接定向到hujianli用户里面
错误重定向:
例如:将tar命令备份时出现的错误信息保存到error.log文件中:
使用 2> 时会像 > 一样覆盖掉文件。若要追加内容而不是覆盖掉文件,就要用 2>> 操作符。
例如:自动编译脚本。。把输出的信息定义到/dev/null里面。。
管道操作:
“|” 位于| 左侧命令输出的结果回作为右侧命令的输入(出来对象),同一命令中可有多条管道
在shell中|通常用作过滤所需要的关键信息:
例如:编写一个脚本,只显示passwd中的用户名和登录shell列:
其中awk的作用是把:当做分隔,输出$1,$7的字符串。 -F用作指定分隔符号:未指定是用空格标示分隔。
再列举一个:
grep “/$”代表/分区 对象 awk ‘{print $5}’代表空格作为分隔,第5个
例如:
应用变量的值:
例如:
双引号:
hujianli = “jianli”
echo $hujianli
jianli
单引号,不能解释其他变量,单引号里面的所有内容都是原样输出的。。
这里不做演示。
反撇号:主要将``里面的内容输出显示。。
read 是bash的内置命令,主要给变量赋值。例如:
今天先复习这么一点,改天继续。。。。shell脚本,