什么是shell?
shell 也是操作系统中的一个软件,它包在 linux 内核的外面,为用户和内核之间的交互提供了一个接口系统中的命令用 shell 去解释,shell 接收系统回应的输出并显示其到屏幕中bash = GNU Bourne-Again Shell
什么是shell脚本?
脚本是一种解释型语言,用shell脚本保存执行动作,用脚本判定命令的执行条件,用脚本实现动作的批量执行。
shell文件
/usr/bin/shell 包含 shell 命令。
/etc/security/user 包含用户的扩展属性。
/etc/passwd 包含用户标识。
/etc/group 包含组标识。
/etc/security/audit/config 包含审计配置信息。
/etc/security/environ 定义用户的环境属性。
/etc/security/limits 定义每个用户的进程资源限制。
什么是内核?
内核是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用。
内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
内核是由一系列程序组成,只是程序的调度器,但是不能直接被设别,如果直接被调度的话,会被篡改,会导致系统程序凌乱,决定了程序的优先级。
系统是一个多用户多任务的,那么就存在优先级的问题。
主要负责管理系统资源。
如何创建新shell脚本
vim file.sh 用vim编写脚本
#!/bin/bash 脚本使用的解释器,通常用幻数“#!”指定
#AUTHOR 脚本作者
#DATE 脚本创作时间
#MAIL 脚本作者联系方式
#VERSION 脚本的版本
在配置文件中建立使其自动生成shell脚本的常规操作
vim 的配置文件:/etc/vimrc
自动调用 (快捷键) 调用函数
8个"#"是一个table
两部分“.”链接;
Buf:状态;
快捷键生成:map ms:call WESTOS()'s
自动生成:autocmd BufNEWFile *.sh exec “:call WESTOS()”
#将以.sh结尾的文件,运行WESTOS()函数,
执行方式
sh bash file.sh 当前的shell开启一个子shell
source file.sh 当前shell上运行,不会出现子shell
用ps f查看进程树
. file.sh 和source的作用类似;
./file.sh 需要可执行权限 ==== 当前用户下的文件,绝对路径,
当前的shell开启一个子shell
两个不同的 shell
脚本的调式
sh -x scritps.sh
vim scritps.sh shell脚本必须有x权限
#!/bin/bash
date 时间
cal 日志
watch -n 1 date 监控
sh -x file.sh 适用于所有的shell脚本,-x作用:是将执行命令和输出内容一起输出
+执行
非+输出
练习:
1、执行ip_show.sh 显示当前主机的ip地址
ifconfig | awk ‘/inet>/&&!/127.0.0.1/{print $2}’
注意:后面的’'如果写成引号""那么会造成报错
2、执行user_show.sh 显示当前主机中能登陆系统的用户
3、执行host_message.sh 显示当前主机的名称,ip,以及能够登陆系统的用户
4、clear_log.sh 执行命令后可以清空日志;
-eq相当于"="
#!/bin/bash
[ "$USER" = "root" ]&&{ ##当用户是主机root的时候,可以进行删除,否则无权限;!!
> /var/log/messages
echo -e "\033[32m clean /var/log/messages successful!!\033[0m"
}||{
echo -e "\033[31mThis script must run with root!!!\033[0m"
}
echo的颜色划分的时候