学习了一段时间shell脚本,今天写一篇自己总结的学习shell脚本的基础知识的文章。
-
shell基本语法
在我个人看来,shell可以分为在终端上直接运行的shell,这种shell是一行一行执行的;另一种shell则是一种脚本文件.sh文件,类似于Windows下的批处理文件.bat文件。
以下列举一些常用的shell命令:
pwd: 当前所在路径
ls: 列举当前路径下的文件。-l 以列表形式列出; -a 把隐藏文件也一起列出
who: 列出当前登录的用户的信息
cd : 切换路径
. : .代表当前路径
… : …代表上一路径
file : 查看文件类型
echo: 打印输出内容
printf: 打印输出内容,用法和C语言的printf类似
kill:杀死已知PID的进程
ps : 列出当前正在运行的进程
top: 功能类似于Windows下的任务管理器,可动态显示进程状态
vim: 文本编辑器
cat: 查看文件内容
more: 查看文件内容,在内容比较多时方便查看
less: 与more类似
wc:统计行数、字节数、单词数
tr: 替换
find: 查找
getenforce:查询selinux状态
setenforce:设置selinux状态
poweroff:关机
shutdown -h now:立即关机
reboot:重启
crontab -l: 列出当前用户的定时任务
crontab -e:编辑当前用户的定时任务
touch:创建一个空白文件
rm:删除文件或者目录
cp:复制文件或者目录
mv:移动文件或者重命名文件
cc:用gcc编译器编译C源代码
g++:用g++编译器编译C++源代码
ifconfig:查看和设置网卡状态
ping:ping测试网络连通性
history:查看历史命令
mkdir:常见目录
passwd:改变密码
chmod:设置权限
usradd:创建用户
usrdel:删除用户
chown:更改文件的拥有者和所属组
su:切换用户
apt-get install:安装软件
apt-get uninstall:卸载软件
bc:计算器 -
shell脚本编程
shell脚本编程的基本规范:
第一行:#!/bin/bash
第二行:#explain function
shell脚本的语法和shell命令行的语法基本一致。
写个例子:
#!/bin/bash
#do something
echo "you are $USER"
dir=`pwd`
echo "current dir is $dir"
echo "num of para is $#"
#sum 1 to 10
sum=0
for((i=1;i<11;i++))
do
let sum=$sum+$i;
done
echo "sum is $sum"
- shell脚本调试
跟踪执行过程:bash -x xxx.sh
给shell脚本输入参数:bash xxx.sh para1 para2
执行脚本不加任何参数:bash xxx.sh
执行脚本:./xxx.sh