概述
想了解Linux编程,shell脚本是绕不开的关键知识点,原计划写一个整篇来分享shell的来龙去脉,但知识点过于繁杂,先分享一下学习shell的准备工作,数据流重定向、管道符、环境变量配置文件的加载,有助于知识更好的理解、再实际生产中的运用。
shell
shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
bash脚本执行方式
1、赋予执行权限,直接运行
chmod 755 stark.sh
./stark.sh
2、通过Bash调用执行脚本
bash stark.sh
Bash的基本功能
命令别名与快捷键
1、查看别名alias
2、设置别名 alias ls='ls -l'
3、删除别名 unalias 别名
但是需要注意的是,alias设置在重启系统后会失效,想永久生效写入在配置文件中。
vim .bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
Bash命令生效顺序:
- 第一顺位执行用绝对路径或相对路径执行的命令。
- 第二顺位执行别名。
- 第三顺位执行Bash的内部命令。
- 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
常用快捷键
Ctrl + c
:强制终止当前命令
Ctrl + l
:清屏
Ctrl + a
:光标移动到命令行首
Ctrl + e
:光标移动到命令行尾
Ctrl + u
:从光标位置删除到行首
Ctrl + z
:把命名放入后台
Ctrl + r
:在历史命令中搜索
数据流重定向
输出的信息不在输出在显示器上,把正确/错误的信息输出在文件中,本来输出到显示器的内容输出在指定的文件中,所以叫做 数据量重定向。
- 1> 以覆盖的方法将【正确的数据】输出到指定的文件或者设备上
- 1>> 以追加的方法将【正确的数据】输出到指定的文件或者设备上
- 2> 以覆盖的方法将【错误的数据】输出到指定的文件或者设备上
- 2>> 以追加的方法将【错误的数据】输出到指定的文件或者设备上
/dev/null
垃圾桶黑洞设备与特殊写法,作用是不输出任何信息
管道符
;
分号代表多个命令连接,前后命令没有关系,只是单纯的连接&&
用地址符连接,前后都成功才会成功。||
命令1不正确执行,才会执行命令2,反之也一样|
管道符的作用是把命令1的数据结果,做进行进一步的筛选
环境变量配置文件简介
shell变量类型:
- 用户自定义变量(本地变量)
- 环境变量:定义每个用户的操作环境,环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量。如PATH等。
- 预定义环境
1、用户登录时加载的配置文件
/etc/profile
/etc/profile.d/
~/.bash_profile
~/.bashrc
/etc/bashrc
2、用户注销时加载的配置文件
~/.bash_logout
3.本地终端欢迎信息
/etc/issue
/etc/motd #登录后的欢迎信息