1、bash配置文件:
全局:
/etc/profile, /etc/profile.d/*, /etc/bashrc
个人:
~/.bash_profile, ~/.bashrc, ~/.bash_history
bash的运行方式:
交互式(terminal中):/etc/profile --> /etc/profile.d/* --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非交互式:如某时刻未登录也要自动执行的脚本
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*,至此结束
2、bash输入输出、管道
程序的默认输入叫标准输入-->stdin,键盘, 0(文件描述符)
程序的默认输出设备叫标准输出-->stdout,monitor, 1
程序的默认错误信息输出设备叫标准错误输出-->stderr,monitor, 2
2.1重定向
2.1.1输出
格式:COMMAND > FILE, 覆盖输出,选错目标文件就惨了,因此不安全
为了安全先使用:set -C(set +C则相反)
使用 >| 则强行覆盖
使用** COMMAND >> FILE,追加输出**
/dev/null是什么?--->数据黑洞(软件模拟的设备,吞数据)
/dev/zero-->泡泡机(吐0的,吐数据)/dev/urandom-->随机数生成器
2.1.2输入
格式:COMMAND < FILE, eg: tr 'a-z' 'A-Z' < /etc/passwd
COMMAND << "EOF": Here document,脚本中常用,生产文档的。,比如以下脚本,用于给予用户选项
#!/bin/bash cat << EOF what do you want to eat? 1, shaoji 2, longxia 3, dazhaxia 4, gun EOF
执行代码 bash second.sh,得到如下结果:
web@web-design:~/Shell_Programming$ bash second.sh what do you want to eat? 1, shaoji 2, longxia 3, dazhaxia 4, gun