[b][i]去年学习linux时做过的部分笔记,浅显易懂,比较简单[/i][/b]
//
shell脚本
与windows 批处理相似 功能更加强大 已经是一门编程语言了
为了使用bash shell来执行脚本magic,其命令是:
$bash magic 或 $ ./magic
$为终端提示符(普通用户)
shell可以起任何名字,为了规范,使用 .sh后缀
echo命令
用于在屏幕上显示信息
例如: $echo "This is an example"
# 注释符号
linux中所有的变量都被挡作字符串
读入值给变量$read fname 屏幕会暂停等待用户输入内容
export命令指出的才是shell全局变量 默认的是局部变量
显示用户的home目录 echo $HOME(大小写区别)
PATH变量用冒号定界而不是分号
echo $PATH 显示path
修改path vi /etc/profile
例如: 增加当前路径 在文件中添加
PATH=$PATH:.
export PATH
改命令提示符 $PS1="HELLO>"
LOGNAME 显示登陆用户名
SHLVL 显示当前工作的shell level
SHELL 存储了用户缺省的shell
env 查看所有的已移出的环境变量表和他们各自的值
$expr 4 + 5 将在屏幕上显示9 (+前后都必须有空格)
echo "the date is `date`" 显示日期
echo $((expression)) 计算表达式的值
例1:
# the first shell
echo "please enter your name :"
read fname
echo ${fname}
s=xxx
echo $s
增加执行权限 chmod a+x first.sh
例2:
#callcenter.sh
echo "please enter totle number:"
read totlenumber
echo "please enter resolve number:"
read resnumber
echo $((totlenumber-resnumber))
增加执行权限 chmod a+x callcenter.sh
例3:if程序
#Avg.sh
echo "please enter score:"
read score
if [ $score -lt 80 ] #小于
then
echo "wrong!!!"
elif [ $score -ge 80 -a $score -lt 90 ] #大于并且
then
echo "Good!!!"
else
echo "very good!!!"
fi
增加执行权限 chmod a+x Avg.sh
例4:菜单程序
#CaseExample.sh
echo "Services:"
echo -n "1)ls"
echo -n "2)ls -l"
echo -n "3)Exit"
echo "please enter choice[1-3]"
read choice
case $choice in
1) ls;;
2) ls -l;;
3) exit;;
*) echo "enter wrong";;
esac
增加执行权限 chmod a+x CaseExample.sh
例5:while循环
#WhileExample.sh
ecode=1000
while [ $ecode -le 1002 ]
do
echo "please enter employee info ecode=$ecode"
echo "Enter name:"
read name
echo "Enter mail:"
read mail
echo "Name:$name Mail:$mail">>employee.dat
((ecode=$ecode+1))
done
增加执行权限 chmod a+x WhileExample.sh
查看运行的线程 ps
将查找passwd文件变成后台进程 find / -name passwd & 加了&
杀死线程 kill (PID号码)
查看执行时间有错误的话重定向 time find /etc -name passwd 2>/dev/null
利用管道符号分页查看 ls -l /dev |more
/dev目录下的文件比较多 容易理解管道
//
shell脚本
与windows 批处理相似 功能更加强大 已经是一门编程语言了
为了使用bash shell来执行脚本magic,其命令是:
$bash magic 或 $ ./magic
$为终端提示符(普通用户)
shell可以起任何名字,为了规范,使用 .sh后缀
echo命令
用于在屏幕上显示信息
例如: $echo "This is an example"
# 注释符号
linux中所有的变量都被挡作字符串
读入值给变量$read fname 屏幕会暂停等待用户输入内容
export命令指出的才是shell全局变量 默认的是局部变量
显示用户的home目录 echo $HOME(大小写区别)
PATH变量用冒号定界而不是分号
echo $PATH 显示path
修改path vi /etc/profile
例如: 增加当前路径 在文件中添加
PATH=$PATH:.
export PATH
改命令提示符 $PS1="HELLO>"
LOGNAME 显示登陆用户名
SHLVL 显示当前工作的shell level
SHELL 存储了用户缺省的shell
env 查看所有的已移出的环境变量表和他们各自的值
$expr 4 + 5 将在屏幕上显示9 (+前后都必须有空格)
echo "the date is `date`" 显示日期
echo $((expression)) 计算表达式的值
例1:
# the first shell
echo "please enter your name :"
read fname
echo ${fname}
s=xxx
echo $s
增加执行权限 chmod a+x first.sh
例2:
#callcenter.sh
echo "please enter totle number:"
read totlenumber
echo "please enter resolve number:"
read resnumber
echo $((totlenumber-resnumber))
增加执行权限 chmod a+x callcenter.sh
例3:if程序
#Avg.sh
echo "please enter score:"
read score
if [ $score -lt 80 ] #小于
then
echo "wrong!!!"
elif [ $score -ge 80 -a $score -lt 90 ] #大于并且
then
echo "Good!!!"
else
echo "very good!!!"
fi
增加执行权限 chmod a+x Avg.sh
例4:菜单程序
#CaseExample.sh
echo "Services:"
echo -n "1)ls"
echo -n "2)ls -l"
echo -n "3)Exit"
echo "please enter choice[1-3]"
read choice
case $choice in
1) ls;;
2) ls -l;;
3) exit;;
*) echo "enter wrong";;
esac
增加执行权限 chmod a+x CaseExample.sh
例5:while循环
#WhileExample.sh
ecode=1000
while [ $ecode -le 1002 ]
do
echo "please enter employee info ecode=$ecode"
echo "Enter name:"
read name
echo "Enter mail:"
read mail
echo "Name:$name Mail:$mail">>employee.dat
((ecode=$ecode+1))
done
增加执行权限 chmod a+x WhileExample.sh
查看运行的线程 ps
将查找passwd文件变成后台进程 find / -name passwd & 加了&
杀死线程 kill (PID号码)
查看执行时间有错误的话重定向 time find /etc -name passwd 2>/dev/null
利用管道符号分页查看 ls -l /dev |more
/dev目录下的文件比较多 容易理解管道