shell与bash
什么是shell
——以上图片摘自《鸟哥的Linux私房菜》
系统核心不能随意地被操作,所以就设计出了壳程序shell,一方面保护了系统核心,另一方面提供了人机交互的渠道。
bash与shell的关系
bash是众多shell的一种,/bin/bash是Linux的预设shell。
shell的变量
变量的设定
var_name=value
var_name=char
var_name=”$LANG” # attribute is preserved
var_name=’$LANG’ # 单括号内的内容被转为了字符型
取消设定的变量 unset var_name
变量的有效范围:环境变量和自定义变量
环境变量通过env查看,set命令可以查看所有类型的变量,系统变量名称用全大写字母表示,自己定义的变量用小写表示。
echo $?回传上次命令执行的结果,0表示命令正确执行,127表示存在错误。
想要自定义变量能够给子程序用,export var_name。我的理解是,通过export将自定义变量临时提升为了环境变量。
通配符和特殊符号
-
代表任意多个任意字符
? # 代表一个任意字符
[] # 代表有一个字符满足括号内给定范围的条件,可以不连续
find / -iname [1,z,b]* # 找到根目录下以1或z或b开头命名的文件
[-] # 代表有一个字符满足括号编码顺序范围内的条件,如[1-9], [a-z]
find / -iname [1-3]* # 找到根目录下所有以在数字1-3范围内开头命名的文件
[^] # 代表有一个字符满足不包含在^号后内的条件
find / -iname [^1-9] # 找到根目录下所有不以数字1-9范围内开头命名的文件
find / -iname [^1,2] # 找到根目录下不以数字1和数字2开头命名的文件!注意2之前没加^!
数据流重导向
标准输入stdin、标准输出stdout与标准错误输出stderr
- 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
- 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
- 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>
- 1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上;
- 1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;
- 2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上;
- 2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;
——以上摘自《鸟哥的Linux私房菜》
&&与||
——以上摘自《鸟哥的Linux私房菜》
管道符相关
cut与grep
cut -d ‘分隔字符’ -f fields(number, number)
[root@study_rhel ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@study_rhel ~]# echo $PATH | cut -d ':' -f 1 # /usr/local/sbin 按:分割后是第一段
/usr/local/sbin
[dmtsai@study ~]$ echo ${PATH} | cut -d ':' -f 3,5
grep,输出符合给定条件的所在行
grep后面所跟需要被查找的字符需要加引号吗?
如果只是一串普通字符可以不加。如果是两个字符中间包含空格,就需要加引号。一般常量、字符串用单引号,变量用双引号。(参考”变量的设定”一节)
grep “$a” file # 查找变量a的值,输出所在行
grep ‘$a’ file # 查找”$a”字符串,输出所在行
grep ‘\’ file # 查找’\’字符,输出所在行
双重定向命令tee
——以上摘自《鸟哥的Linux私房菜》
文件分割命令split
——以上摘自《鸟哥的Linux私房菜》
参数传递过滤命令xargs
x -arguments
使用xargs 的原因是, 很多指令其实并不支持管道符,因此我们可以通过xargs来为后面的指令使用standard input中的数据(参数)。
-的用途
减号”-“就是代表标准输出/标准输入, 视命令而定. “-“代替stdin和stdout的用法:
tar -cvf – /home | tar -xvf –
tar -cvf – /home 把/home压缩后,打印在stdout上,tar -xvf – 从stdin读取内容,并在当前目录解压
tar cf – access.log | tar xf – -C /opt # 把access.log文件打包,通过管道符,把前一个命令的输出变为后一个命令的输入,在/opt目录解压。等效于复制文件到/opt目录
Original: https://www.cnblogs.com/randyszone/p/16285541.html
Author: randy198
Title: bash shell相关知识
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583084/
转载文章受原作者版权保护。转载请注明原作者出处!