作者:bb | 来源:互联网 | 2017-11-04 18:08
变量,别名,重定向,管道,grep,cut变量,在内存中的一段存储空间变量类型1、本地变量用户当前shell中自己定义的变量,重新登录后消失2、环境变量(export查看系统中的变量)长期存在,每个用户都有自己的环境变量,如$PATH3、特殊变量$?用于输
变量,别名,重定向,管道,grep,cut
变量,在内存中的一段存储空间
变量类型
1、本地变量
用户当前shell中自己定义的变量,重新登录后消失
2、环境变量(export 查看系统中的变量)
长期存在,每个用户都有自己的环境变量,如$PATH
3、特殊变量
$? 用于输出上个命令执行的结果
0 代表执行成功
其他数字则是不成功
4、位置变量
代表特定位置的值,如在一个脚本后的值,可以用$1..9
表示它的值
别名 :为了使用方便,把一些命令或执行路径设成别名
alias 查看所有的别名
alias cde='cd /etc' 设置cde 别名,用于切换到/etc 目录中,
不用每次都要完整的命令,这样设置的别名只对当前登录有效,
重新登陆后变量消失,修改 ~/.bashrc 可以设置对本用户永久
有效的变量,如果root 想让cde 对每个用户都有效,修改 /etc/bashrc
添加alias cde='cd /etc' ,重启系统后,用户登录都可使用这个
变量。
unalias cde 用于撤销别名,如果是修改的配置文件,要把那条命令
从中删除
重定向 (> 和>> , > 覆盖原有内容,>> 追加内容进去,不会覆盖)
标准输出重定向 > 把一个命令的执行结果传递给下一个位置,不在
屏幕上输出,例 cat /etc/passwd > /tmp/1.txt
错误输出重定向2>把错误的结果,不在屏幕上输出,输出到其他位置
如 lss /etc/ 2> /tmp/err.txt
输入重定向 <把后边的结果,输入到前边,而不需要从键盘
中读取输入
自定义输出位置,(如果要重复向一个文件内写数据,不用每次都用
完整的路径名
exec 3 >(>>) /tmp/3.txt 用3代表/tmp/3.txt 这个文件
ls /etc >&3 此处的>没有覆盖和追加的意义,只在定义的
时候用的是哪个
exec 3>&- 撤销3这个自定义内容
管道 | 把前一个命令执行的结果当做后一个命令的输入,从而使多个命令
连续执行
echo "----" | passwd --stdin username 这一条命令就可以修改
用户的密码
cut 该命令可以从一个文件中提取出想要的内容,
cut -d: -f1..n /etc/passwd 可以从passwd 文件中提取出所有
用户的用户名(n的值不同,取出的对应内容也不同),这样可以
查看只想看到的内容,还可作为结果输出给其他命令。
-d 分割内容的方式,常用的有:和“” ,
-fn 取出分割后对应的第几段内容
-c n-m 以字符分割,n-m是取出第n段内容到第m段内容
grep 通过匹配正则表达式查找文本
grep [options] 模式 argument
-i 不区分模式里要求的大小写
-v 与模式里的内容相反
-n 结果输出带行号
-e 扩展的grep
-f fast grep
--color 高亮显示查找出来的文本,便于查看
grep 最难的是如何写好自己的模式,及合理的使用正则表达式,达到输出的结果
正则表达式总结
^ 匹配的内容必须在行首
$ 匹配的内容必须在行尾
^$ 匹配空字符
. 匹配任意单个字符
* (ab*c)匹配b出现的次数,可以出现0-n次
\ 转意字符(特殊字符的本身,没有其他意义)
\{..\} ac\{1,3\} ac出现1-3次
\(..\) \(ab\).*\1 就是为了后边用到ab 有\num 显示 (ab+任意字符+ab)