linux中shell是一个特殊的应用程序。它介于系统的内核与用户之间。充当命令“解释器”的做用角色。负责接收用户输入的操做指令,并进行解释。将须要执行的操做传递给内核。并输出执行结果;
linux
下面咱们来看一下当前系统所支持的shell的种类:shell
其中/bin/shell 是目前大多数linux中采用的默认shell。咱们主要学习bash、vim
咱们来写第一个脚本文件用做测试。bash
vim first.shide
cd /boot/学习
pwd测试
ls -lh *this
chmod +x first.sh spa
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 给予其执行的权限
也能够经过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脚本,