day17-20200622

p63.shell概述
功能1.命令解释器
应用-》shell命令解释器-》内核-》硬件
命令翻译成为内核可以识别的语言

shell就是写命令的界面

功能2.shell还是一个功能强大的编程语言。所见即所得。

shell可以直接调用linux命令。

sh :Bourne shell-bash shell
bash shell 是Linux的标准shell

【/etc/shells】可以查看支持的所有shell

跟着兄弟连系统学习Linux-【day17】_第1张图片
p64.shell脚本执行方式
【echo 内容】输出内容
-e 支持反斜线字符转换
跟着兄弟连系统学习Linux-【day17】_第2张图片
【echo abc】
【echo -e ab\bc】

跟着兄弟连系统学习Linux-【day17】
echo也支持输出颜色
【echo -e "\e[1;31m fengyarong \e[0m"】
30m=黑色 31m=红色 32m=绿色等 用到了去查

跟着兄弟连系统学习Linux-【day17】
shell脚本文件的开头
【#!/bin/bash 】shell的标注,并不是注释。
执行方式有多种,最常用的是【./文件名】
执行前需要给文件赋予可执行的权限
【chmod 755 文件名】

跟着兄弟连系统学习Linux-【day17】_第3张图片
【dos2unix 文件名】讲Windows的格式转化成Linux
【yum -y install dos2unix】
linux文件中换行符是【$】
windows文件中换行符是【^M$】
跟着兄弟连系统学习Linux-【day17】_第4张图片

p65.shell bash基本功能 历史命令 与 补全
【history】查看历史命令
-c 清楚历史命令
-w 把缓存中的历史命令写入历史命令保存文件
【~/.bash_history】
【/etc/profile】 修改历史命令保存的条数
跟着兄弟连系统学习Linux-【day17】
跟着兄弟连系统学习Linux-【day17】_第5张图片

最常用的还是上下键

【tab键】命令、目录和文件补全
加速命令打出来和保证命令正确。

p66.别名 与快捷键
【alias 别名 = '原命令'】
ll 就是 ls -l 的别名
跟着兄弟连系统学习Linux-【day17】_第6张图片

命令执行顺序
绝对路径》别名》内部命令》环境变量
vi = vim 最好不要用已有命令覆盖原来的命令。

一般也不要命名别名吧 我觉得服务器是大家公用的,所有服务器都适用,最好使用原有的命令。

【vi /root/.bashrc】永久生效别名的话,需要修改配置文件。

【unalias 别名】删除别名

bash常用快捷键
【ctrl + c 】终止命令
【ctrl + l】清屏
【ctrl + u 】截切或者复制,光标前的命令
【ctrl + y 】粘贴
【ctrl + r 】命令搜索
【ctrl + d】退出当前终端

【ctrl + z】暂停当前命令,最好用【ctrl + c 】z用多了会导致系统越来越卡 后台进程运行过多

p67.输入输出重定向
输入重定向
【/dev/stdin】0
输出重定向
【/dev/sdtout】1
【/dev/sdterr】2
标准输入(键盘)和标准输出(显示器)

将输出的内容保存在文件中,就是输出重定向。
【命令 > 文件】覆盖输出
【命令 >> 文件】追加输出

【命令 2>文件】将报错的信息写入文件中,2与>不可以有空格
【命令 2>>文件】将报错的信息写入文件中

正确的输出和错误的输出分开存放是在现实工作中用处没有很大的,我们需要把正确错误的都输出道同一个文件。

需要先判断下是不是正确的命令。

将命令的正确和错误的结果放在同一个文件中,以下命令都可以。
【命令 > 文件 2>&1】覆盖
【命令 >> 文件 2>&1】追加

【命令 &> 文件】
【命令 &>> 文件】

这个用的比较多!!【命令 >>文件1 2>>文件2】命令正确存放在2 命令错误写入文件2

输入重定向,不通过键盘输入,通过文件输入。
用的不多,了解下就好啦。
【wc 选项 文件名】统计字节数

p68.多命令顺序执行与管道符
【命令1 ;命令2】没有关联
【 命令1 && 命令2】1成功,2才执行
【命令1||命令2】1成功了,2就不执行

【dd】数据复制、分区复制等特殊文件的复制
【dd if=输入文件 of =输出文件 bs=字节数 count=个数】
【date;dd if=/dev/zero of=/root/testfile bs=1k count=100000;date】

管道符 【命令1 | 命令2】
命令1的正确输出作为命令2 的操作对象

【netstat -an | grep 关键字】

非常有意思有用的命令!!!