? 匹配任意一个字符
* 匹配0到任意个字符
[]匹配到括号中任意一个字符
[a-z] 匹配一个a-z字母
[^0-9]匹配一个不是0-9之间字符
正则表达式:在文件中搜索字符串,如grep命令(包含匹配)
通配符:匹配符合条件的文件名,如ls,find,cp(完全匹配¥)
正则:
*匹配前一个字符任意次, .匹配出换行符外字符, ^匹配行首, $匹配行尾,
\{n\}前面字符出现n次, \{n,m\} 前面字符最少n次,最多m次
grep 提取包含关键字的行
cut 提取包含关键字的列(制表符分隔),-d 指定分隔符, -f指定提取列
sort -t "分隔符" -k s,e 文件 对文件中所有行排序, -t指定列之间的分隔符
wc 统计
test -e 文件 判断是否存在 或者 [ -e 文件]
test -e /root/install.log && echo "yes" || echo "no"
' '中所有特殊符号都无含义
" " 中$和\仍有效
$( )引用系统命令 eg: echo $(ls)
#开头注释
$ 用于调用变量值 eg: name=ni echo $name
用户自定义变量:
在bash中变量默认为字符串
变量用等号连接值,左右不能有空格, 变量值有空格则要用单引号或双引号括起来
环境变量大写,系统命令小写
pstree 查看进程父子关系
export 变量=值(在所有shell中都有效)
自定义变量只在这个shell中有效(可以把一个shell想成一个Python解释器)
env查看环境变量 ,set 查看所有变量 ,unset删除变量
常见系统变量
PATH: 系统查找路径(执行程序用绝对或者相对路径),
PATH="$PATH";/root(变量叠加,临时生效)
位置参数:
#!/bin/bash
echo $1
echo $2
命名为 posf.sh 执行时传入两个参数
$* 命令行所有参数 看成一个整体,
$@全部接受,区别对待,$#参数的个数
delcare -i a 声明 a为整数
dd=$(expr $a + $b)求a+b的和,加号两边空格不能省
或者 $((表达式)) $[表达式]
(注意 $( 系统命令) )
source 配置文件 可以生效(而不用重新登录)
. 配置文件 也可以
环境变量配置文件:(家目录下只对该用户生效,/etc对所有用户生效)
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
服务:
chkconfig --list 查看rpm安装的服务
源码包安装的服务 在/usr/local