一、shell概述
1.shell是什么
shell是一个命令行解释器,它是为用户提供了一个像linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。
shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在linux中可以直接调用linux命令
2.shell的分类
Bourne Shell:从1979起Unix就开始使用Bourne Shell,主文件名sh
C shell:主要用于BSD版的Unix系统中使用,其语法和c语言相似而得名
两种语法彼此不兼容 linux中常用的就是 Bash作为用户基本的shell
3.linux支持的shell
/etc/shells
sh进入脚本 pwd查看路径 exit退出sh
二、shell脚本执行的方式
1.echo [选项] [输出内容] 输出命令
-e 支持反斜杠控制的字符装换
1.1 常规打印,\b删除,\t制表符,\n换行
1.2 \x+16进制数字 显示字符串
1.3输出颜色
echo -e "\e[1;31mabcd\e[0m" 起始位:\e[1; 颜色:xxm 显示字符:abcd 结束位:\e[0m
30m=黑色,31m=红色,32m=绿色,33m=黄色
34m=蓝色,35m=洋红,36m=紫色,37m=白色
1.4 echo脚本练习
#!/bin/Bash
echo 'hello world'
第一种赋予权限 直接运行
chmod 755 xxx.h
./xxx.sh
有时候会失败 因为回车也算字符
重新修改
第二种通过Bash调用脚本
Bash xxx.sh
有时候从windows转到linux会乱码 使用下面命令改变格式 在运行
先安装 在执行
sudo apt install dos2unix
dos2unix xxx.sh
三、Bash的基本功能
3.1历史命令
history 【选项】【李世明令保护文件】
-c:清空历史命令
-w:把缓存中的历史命令写入保存文件 在 ~/.bash_history 里面最下面查看
历史命令默认保存1000条,可以在环境变量/etc/profile中修改
3.2命令别名(慎用) 只会临时生效 重启失效
alias 别名=‘原名’
永久生效 执行sudo vim /root/.bashrc 写入里面
常用命令
3.3输入输出重定向
标准输入输出
3.31 输出重定向
将ls命令的正确输出输出到指定文件里面1.c 重定向
> 是覆盖 >>是追加模式 2根>中间不能有空
3.32 输入重定向(用的少)
wc 【选项】【文件名】
-c 统计字节数
-w 统计单词书
-l 统计行数
统计输入 3行 3个单词 6个字符 回车也算字符
一般按ctrl退出 也可设置某个字符退出(ls)
3.4多命令顺序执行与管道符
主要是复制磁盘内容 1.c复制到2.c 每次创建1k 创建10000次 最大可以98M 但是这里太小显示实际
命令&&命令1||命令2
通过执行命令 来执行1或2 命令正确执行则执行命令1 命令错误则执行命令2
管道符 :|
命令1 |命令2
命令1的正确输出 作为命令2 的操作对象
grep命令
grep【选项】“搜索内容” 文件名
-i 忽略大小写
-n 输出行号
-v 反向查找
--color=auto 搜索出的关键字用颜色显示
3.5通配符与其他特殊符号
*通配符 要是想要包含abc的 可以改为 ls *abc*
?只匹配一个字符
其他特殊符号