@llplmlyd
        
        2018-10-04T05:44:31.000000Z
        字数 1652
        阅读 1355
    Shell
Bat Batch 批处理文件脚本语言 DOS Windows 
需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样
echo 输出到stdout或者文件 在shell中打印shell变量的值 
echo(选项)(参数) 选项 -e:激活转义字符 
参数 可以是变量 $variable
@ 
@echo运行时 隐藏命令(不在terminal上显示) 
echo运行时显示命令(在terminal上显示) 
同理@cp 与 cp  复制命令   不显示/显示
on & off 运行位置是否显示 
@echo off  关闭屏幕回显 
@echo on   打开屏幕回显 
那么 @echo off和echo off的区别是 @echo off会关闭本身和后续命令的回显 
echo off只是关闭后续命名的回显,而没有隐藏本身自己的命令,运行的时候会出现echo off
pause "按任意键继续..."
范例2-2 清除/var/log 下的messages日志文件 
cd /var/log 
cat /dev/null>messages  
echo "Logs cleaned up."
cat /dev/null>messages   清空messages文件 
shell编程之——cat /dev/null作用
id命令可以显示真实有效的用户ID(UID)和组ID(GID) 
[  ]左右两侧都需要注意添加空格 
shell 中 [-eq] [-ne] [-gt] [-lt] [ge] [le] 
ne = no equal to 
后台执行 & 
逻辑与: && 
第一个条件为假时,第二条件不用再判断,最终结果已经有; 
第一个条件为真时,第二条件必须得判断; 
逻辑或: || 
逻辑非: !
shell 中 exit0 exit1 的区别 
0 正常运行程序并退出程序; 
1 非正常运行导致退出程序;
2-3 包含命令 变量和流程控制语句清除/var/log messages 
见shell2-3.sh
shell脚本第一行 
 #!bin/bash 幻数 第一行
bash sh软链接  csh ksh 
bash -version
检测系统是否存在漏洞 
env x='() {:;}; echo be careful' bash -c echo this is a test
shell脚本的执行 
  - bash script-name 
  - path/script-name 
  - source script-name 或者 . script-name 读入脚本并执行脚本  
 子→父,相当于include
sh执行与source或. 执行区别 
执行的脚本中的变量值是否传递回到当前的shell中
开发脚本基本规范与习惯
显示变量 
set 全局+局部 
set -o 显示 bash shell所有参数配置信息 
env 全局 
declare 输出所有变量 函数 整数 和已经导出的变量
自定义环境变量 
1 export 变量名=value 
2 变量名=value; export 变量名 
3 declare -x 变量名=value
用户环境变量设置 常用设置文件 用户目录下的  
.bashrc 
.bash_profile 
全局环境变量常用设置文件  
etc/profile 
etc/bashrc  
etc/profile.d/
设置登录提示 
cat etc/motd
显示环境变量 
echo  
printf 
set
关闭环境变量 
unset
cat etc/profile.d 
touch script-name.sh 
echo '....'
登录Linux过程中的shell启动过程 
/etc/profile  > ./bashrc  >  bash
echo 单引号 里面有什么就输出什么
命令的结果作为命令的内容 
 推荐使用 $(ls) 
 反引号 不推荐
shell date 命令 date +%F Full format 完整的日期格式%Y-%M-%D
范例3-7 按天打包压缩网站的站点目录程序 
today=$(date +%F) 
tar zcfv $(today).tar.gz 打包的目录
