当一个用户登录linux系统后,系统初始化程序init就为每个用户运行一个称为shell的程序,确切一点说shell就是一个命令行解释器,它为用户提供了一个向linux内核发送请求以便程序运行的界面系统级程序,用户可以用shell来启动,挂起,停止,甚至编写一些程序。
目前流行的shell有ash,bash,ksh,csh,zsh等。$SHELL是一个环境变量,它记录用户所使用的shell类型。可以用#shell-name来转换到别的shell。这个命令为用户用启动了一个shell,这个shell在最初登陆的那个shell之后,称为下级的shell或子shell。用exit可以退出这个子shell。
Shell程序设计
1.(1)#! /bin/bash 必须的,指出shell的类型
(2)# 注释
(3)变量
(4)控制
一个shell脚本
vi mkdir.sh
#!/bin/bash
# this is mkdir
cd /home
mkdir shellTest
echo "shellTest is created."
编写一个名为ifuser的程序,它执行时带用户名作为命令行参数,判断该用户是否已经在系统中登录,并给出相关信息。
#! /bin/sh -
if test $# -ne 1 then
echo "Incorrect number ofarguments"
echo "Usage: ifuser username"
else
user=$1
if who | grep –q $user ; then
echo $1 "user is logged on."
exit 0
else
echo $1 "user is not logged on."
exit 1
fi