计算机基础
Linux历史
文件管理(查看、处理)
目录管理
LHS
时间戳、时间、关机
哲学思想
文件命名
Bash的基础特性
命令行展开
命令补全
路径补全
glob
快捷键
管道
I/O重定向
别名
hash
变量
grep,egrep,fgrep
变量
配置文件
算术运算表达式
测试表达式
退出状态码
变量:
定义
变量名
变量
数据类型
变量类型
变量类型作用(存储数据的格式,范围,参与的运算)
强类型
弱类型 1不用定义 2 直接赋值,默认存储 为字符型 3 调用时隐式转换
bash作用域的变量
本地, 环境 , 局部, 位置 , 特殊变量 的生效范围
变量命令的法则
1 不能数字开头,不能用关键字
2 见名知义
3 避免全大写, _ 开头
文件命名的法则
1 不能数字开头,不能用特殊字符 (glob通配符)
2 区分大小写
3 不能为/ [^/]
4 长度<255
5 .开头为隐藏文件
哲学思想
文件/ 组合 小程序/ 文本实现配置 / 尽量不交互
grep . [] [^] * \+ \? \{m\} \{m,n\} \(\)
egerp . [] [^] * + ? {m} {m,n} () |
^,$
egrep 或 “grep并不支持”
[abcd] 字符级别的或
c|cat 左侧整体或右侧整体
(c|c)at 分组或
变量赋值
name='value'
name将单个内存空间命名
= 赋值符号
赋值: 将值存储在变量所表示的内存空间中
' '
“ ”
value 值
纯文本引用赋值
name=obama
空格?
变量引用实现赋值 加载一个变量内存空间中存储的值至CPU寄存器中,经过处理后,存加内存空间中.
name="obama jerry"
name=$name ##存回原处
var=$name ##存到另一处
命令引用实现赋值
name=`command`
name=$(command)
引用 强、弱
${name} $name 使用的场景
撤消: Unset
本地变量查看: set
环境变量查看: export env printenv
不要随便给大写字母赋值,可能会导致bash工作特性改变
PS1 命令提示符前面的字符
PATH 命令的搜索路径
UID
SHELL
位置变量: 类似,正则表达式引擎将括号中模式所匹配到的内容记录于内置变量中, \1,\2,\3
bash将传递给脚本的参数保存在内置变量中, $1,$2,$3,可供脚本中调用,如果,不存在,则为空。
特殊变量:
$0
$#
$@
$* 看做一个整体
$? 命令的执行状态结果
换港操作符
shift #
算术运算
let 算术运算表达式
let var=$num1+$num2
变量引用赋值
var=$[算术运算表达式]
var=$((算术运算表达式))
命令引用赋值
var=$(expr 算术运算表达式)
var=$(expr $num1 + $num2)
生成随机数
let $RANDOM%$VAR
$[$RANDOM%10]
$(($RANDOM%10))
$( expr $RANDOM % 10)
配置文件
全局: /etc/{profile,profile.d} /etc/bashrc
个人:~/.bashrc, ~/.bash_profile
功能
profile 环境 变量 , 脚本
bashrc 本地变量 别名
登陆方式,读取配置顺序
交互式登陆
需要输入密码的登陆 或 su -[l] user
/etc/profile /etc/profile.d ~/.bash_profile
~/.bashrc /etc/bashrc
非交互式登陆
不需要输入密码的登陆 或 su user 图形终端
脚本运行在当前shell子shell进程中
~/.bashrc /etc/bashrc /etc/profile.d
测试表达式
数值测试
符号: -eq,-ne,-gt,-ge,-lt,-le
字符测试 (左右都需要 加 引号, 除了 pattern不能加引号,且只能用于 ` ` 中)
符号: == , != , >, < , -z "string" -n "string" A =~ pattern(正则表达式字符组合的模式)
文件测试
符号
退出状态码
exit [#]