shell是一个命令解释器,是操作系统的最外层。
把用户的输入解释给操作系统,将操作系统的输入结果返回给用户。
硬件-->kernel-->shell-->外围应用程序
清除日志文件脚本,需root
#!/bin/bash
LOG_DIR=/var/log
then
echo "Must be root to run this script."
exit 1
fi
cd $LOG_DIR || {
echo "Cannot change to necessary directory.">&2
exit 1
}
cat /dev/null>messages
echo "Logs cleaned up."
exit 0
A && B //A成功执行B
A || B //A没成功执行B
echo >filename //多一个空行
cat /dev/null >filename
Linux bash (Bourne Again shell)
echo $SHELL
输出 /bin/bash
grep root /etc/passwd
shell脚本的建立
在vim中编写,包括Linux命令、bash shell命令、程序控制结构、注释。
脚本第一行指定由哪个程序来执行脚本中的内容。
#!/bin/bash 或
#!/bin/sh #!称为幻数 sh为bash的软链接
对于输入的命令:Ctrl+e 到结尾,Ctrl+u 清除
shell脚本的执行方式
bash script-name sh script-name //当文件无执行权限或文件未指定解释器时 推荐
path/scritp-name ./script-name //必须有执行权限
source script-name . script-name //可以将其中的变量加入到当前shell环境
规范:
1、开头指定脚本解释器;
2、开头加版本和版权信息;
3、不用中文
4、扩展名.sh
5、成对符号一次书写;中括号的两端有空格;流程控制一次书写;代码缩进;
变量
环境变量/全局变量:可在创建它们的shell及其派生出的子shell中使用;
局部变量:只能在shell函数或脚本中使用
环境变量可写在~/bash_profile文件中,或全局配置文件/etc/bashrc、/etc/profile文件中,或/etc/profile.d/中
大写
export导出
如:
export JAVA_HOME=path
JAVA_HOME=path
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
几个环境变量:
PS1:控制登录用户的显示方式
TMOUT:超时退出
HISTSIZE:历史命令记录条数
HISTFILESIZE:历史文件记录条数
UID
USER
把用户的输入解释给操作系统,将操作系统的输入结果返回给用户。
硬件-->kernel-->shell-->外围应用程序
shell脚本:将命令或语句写入文件,进行操作系统管理。
shell脚本中有命令、变量和流程控制语句。
清除日志文件脚本,需root
#!/bin/bash
LOG_DIR=/var/log
ROOT_UID=0
if ["$UID" -ne "$ROOT_UID"]then
echo "Must be root to run this script."
exit 1
fi
cd $LOG_DIR || {
echo "Cannot change to necessary directory.">&2
exit 1
}
cat /dev/null>messages
echo "Logs cleaned up."
exit 0
A && B //A成功执行B
A || B //A没成功执行B
清空文件的三种方法:
保留文件,清空内容
>filenameecho >filename //多一个空行
cat /dev/null >filename
Linux bash (Bourne Again shell)
echo $SHELL
输出 /bin/bash
grep root /etc/passwd
shell脚本的建立
在vim中编写,包括Linux命令、bash shell命令、程序控制结构、注释。
脚本第一行指定由哪个程序来执行脚本中的内容。
#!/bin/bash 或
#!/bin/sh #!称为幻数 sh为bash的软链接
对于输入的命令:Ctrl+e 到结尾,Ctrl+u 清除
shell脚本的执行方式
bash script-name sh script-name //当文件无执行权限或文件未指定解释器时 推荐
path/scritp-name ./script-name //必须有执行权限
source script-name . script-name //可以将其中的变量加入到当前shell环境
规范:
1、开头指定脚本解释器;
2、开头加版本和版权信息;
3、不用中文
4、扩展名.sh
5、成对符号一次书写;中括号的两端有空格;流程控制一次书写;代码缩进;
变量
环境变量/全局变量:可在创建它们的shell及其派生出的子shell中使用;
局部变量:只能在shell函数或脚本中使用
环境变量可写在~/bash_profile文件中,或全局配置文件/etc/bashrc、/etc/profile文件中,或/etc/profile.d/中
大写
export导出
如:
export JAVA_HOME=path
JAVA_HOME=path
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
几个环境变量:
PS1:控制登录用户的显示方式
TMOUT:超时退出
HISTSIZE:历史命令记录条数
HISTFILESIZE:历史文件记录条数
UID
USER