Linux学习五(BASH用法)----鸟哥私房菜
- 查看命令类型
type -t 显示命令类型
ctrl+u 删除从行首到光标位置字符
ctrl+k 删除从光标到行尾字符
ctrl+a 光标移至最前面
ctrl+e 光标移至最后面
换行输入\+enter
- 变量
echo $PATH 或 echo${PATH}
- 变量规则
1.等号连接变量与变量内容,等号两边不能存在空格,若变量内容存在空格,可以用双引号括起来
mynaame=Shenxian
2.双引号内的特殊字符$可以使变量保为原有属性,单引号内特殊字符为一般字符
3.转义符\可以输入空格等特殊字符,变量扩增可以用"$变量名称"或${变量}
4.若变量中需要借用其他命令提供信息时,返单引号`命令`或$(命令)
5.若想子进程要用此变量,需要用export 导出变量作为环境变量,取消变量用unset 变量名称
在~/.bashrc中配置用户定义变量
查看变量 env、export、环境变量;set:环境变量+自定义变量
PS1变量命令提示符 \t时间 \u用户 \W 绝对目录 \h主机名 \#执行的第几个命令
$返回shell进程id
?返回上一个命令的执行结果
export 自定义变量,自定义变量可以在子进程中使用
locale查看本地语系
- read读取来自键盘的输入
-p 后面接提示语
-t 后面接等待时间
- declare或typeset用法一样
-a 指定变量为数组
-i 指定变量为整数
-x 指定变量为环境变量(与export一样)
-r 指定变量为只读(unset也不能使用)
-p 列出指定属性
(+ x)可以取消指定
ulimit -a查看当前用户的限制
- 变量内容替换、取代和替换
${variable#delete} 从头匹配删除最短匹配 ----echo {path#/*:} 删除第一个/****:
${variable##delete} 从头匹配删除最长 匹配
${variable%delete} 从尾部匹配删除最短匹配
${variable%%delete} 从尾部匹配删除最长匹配
${variable/oldVal/newval} 第一个旧字符被替换
${variable//oldVal//newval} 所有旧字符被替换
var=${var1-exp} var1未设置则var=exp,否则var=var1
var=${var1:-exp} var1未设置或为空则var=exp,否则var=var1
var=${var1+exp} var1设置则var=exp,否则var=var1
var=${var1:+exp} var1设置或为空则var=exp,否则var=var1
- 别名与历史命令
alias lm='ls -al|more'
history -n 列出n条最近的命令
history -c 清空最近的命令
history [-raw] hisFile 读取、添加、写入 hisFIle文件
~/.bash_history 记录当前的历史命令
执行命令 !command 执行最近执行的以command开头的命令
- 命令查找顺序
1.绝对路径和相对路径执行
2.别名执行
3.内置命令
4.通过$PATH查找
远程登录显示界面 /etc/issue.net
/etc/motd
-
bash环境遍历配置文件
login 与nologin shell 区别
login是登录bash 需要输入用户名密码
no login则不需要,例如在bash中调用bash,在界面启动终端
login读取etc/profile ==>/etc/profilr.d/*.sh
~/.bash-profile==》~/.bash_rc ~/.bash-login ~/.profile 三个文件读取到一个则不在读取下一个
nologin 只会读取 ~/.bash_rc
source或. 读取环境配置文件的命令
CTRL+S 停止 CTRL+Q恢复
- 数据流重定向
- 标准输入 <或<<
- 标准输出 >或1> >>或1>>
- 错误输出 2>或2>>
不加数字默认标准输出,>是清空重建模式,>>是累加模式
4.黑洞:/dev/null
特殊语法
错误和输出同时输出到一个文件中
ll /etc >list 2>&1或 ll /etc &>list
(2>&1 将2的输出转入到1)
标准输入(<),以文本内容作为标准输入
结束输入字符,<<EOF 表示输入结束字符
;一次输入多个命令
&&与||
cmd1&&cmd2 cmd1正确才会执行cmd2
cmd1||cmd2 cmd1正确不会执行cmd2
cmd1&&cmd2||cmd3 执行顺序从左到右
管道命令(|)
cmd1 | cmd2
1.只能处理cmd1的标准输出命令
2.cmd2 能够接受标准输入命令
选取命令(cut grep)处理每行数据
cut -d '分隔符' -f 区域
cut -c 12- 显示12个字符以后的数字
grep [-acinv] '查找字符' file
-i忽略大小写
-a 二进制方式查找
-c 查找次数
-n 输出行号
-v 反向查找 不存在查找字符
sort命令排序
-f 忽略大小写 -r反向排序 -n以数字排序
uniq 只显示一次
wc 列出行数/字数和字符数
tee 双向重定向
tee -a file 既输出到屏幕也输出到文件
tr删除和替换命令
tr -d '正则表达式'
tr -s '正则表达式' '正则表达式'
col显示特殊字符,join、paste合并两个文件
expand -t 8 一个tab键变为8个空格
split划分命令
-b:按照大小划分 后跟b、k、m等
-l:按照行数划分
- 代表 标准输出
xargs [-0epn] cmd将标准输入转换为指定信息
cmd |args -n 1 ls
cmd命令输出作为标准输入进入ls,这些标准输入会以空格符分开,一个一个调用ls命令