[关闭]
@llplmlyd 2018-10-04T13:44:31.000000Z 字数 1652 阅读 1157

Shell核心基础知识

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 打包的目录

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注