Shell脚本和编程
1. 学习shell的价值
1) Linux服务器的基本操作和管理
2) 前端Node,js服务的进程管理,问题排查,资源监控等运维操作
3) 使用shell编写TCE,SCM,Docker脚本,完成服务编译和部署
2.
3. 目录
1)Shell基础概念
2)命令和语句
3)执行过程和原理
4)调试和前端集成
4.shell 的基础概念 1)概念
终端的tyy一样
2)发展
3)构成
Bash 中Man builtin可以查看bash的所有命令
GNU中Type mv可以查看安装路径 6. 命令和语法
1)变量
2)自定义变量.
重点:等号两边不能有空格,如果有的话shell会当做额外的命令。
Eg:两个命令不一样颜色
3)系统环境变量变量
例子
$USER查询用户名
修该命令行提示符
修改PS1的值
配置完文件想要它在shell
中生效利用source ~./bashrc来使此文件生效
在shell启动时候会在环境变量配置文件里面读取,上述问件则为环境变量配置文件。
4)配置文件加载
Login-shell登录式的shell
Non-login-shell非登录式的shell
非登录试的shell又分为交互式和非交互式
如果取得 bash 需要完整的登录流程,我们称之为 login shell,比如ssh 远程登录一台主机
不需要登录的bash 我们称为 non-login bash, 比如在原来的 bash 中执行 bash开启子进程、执行一些外部命令
如果修改了配置文件,不会立即生效,需要我们重启終端或者执行 source 命令
4)运算符和引用
![图形用户界面, 文本
描述已自动生成]()
5)管道
如果需要互通,比如第一个命今的返回传递给第二个命令,就需要用到管道了,管道的本质就是将多个程序进行了一个连接,和信号一样,也是进程通信的方式之一
查找所有shell文件
6)重定向
每个shell 命令在执行时都会打开三个文件描述符,文件插述符0、1、2,分别对应 stdin、stdout、 stderr,这三个文件描述符默认默认指向终端输入、终端输出,那么当命令需要获取输入的时候,它会去读取fd0, 当要输出的时候它会像fd1、fd2写入,改变这些描述符指向的行为叫做重定向
2>&1必须写在>之后
<<比较特殊,表示继续沿用当前的标准输入,只是当识别到指定的标识符后停止,将接收到的内容作为 stdin
实例:用户在命令行输入内容,当输入 EOF 的时候停止,所输入的内容写入 foo.txt
执行结果保存到lis.txt文件,并将错误信息也保存到此文件
此图为错误情况,因为该目录下没有nodejs文件
个人感受
昨天学习了Linux收获了很多,听懂了大部分,对今天学习shell基础有很大帮助,今天学了一半的知识,了解和学习了shell的Shell基础概念和命令语句,对今后深入学习Linux打下基础,特别感谢字节青训营让我有了这次学习的机会