一、前置准备
1)、echo (字符输出命令)
1、格式:echo [选项参数] [输入内容]
2、选项参数:
-e :支持对”\”字符后面的解释
例如:\d表示往前删除一个字符
2)、history (查看历史命令)
3)、历史命令的衍生
!n :执行第n条历史命令
!! : 再次执行上一条命令
!字符 :执行历史命令中最后一条以该字符开头的命令
4)、alias (定义别名)
1、语法:alias 别名=原命令
2、其他:
1、要永久生效需要修改对应.bashrc文件 ~/.bashrc,”~”是表示当前用户的个人目录,例如 /home/用户名
2、删除别名:unalias
5)、grep (搜索输出)
1、语法 :grep [参数选项] 搜索含有当前内容的行
2、参数选项 :
-i :忽略大小写
-n :显示行号
-v :调搜索字符取反
--color=auto :对搜索字符用颜色展示
6)、标准输入输出重定向
1、基本介绍 :
实现需要明白标准输入/标准输出,例如输入可以通过鼠标输入选取信息、或键盘输入,而键盘输入就是标准输入
2、输入输出重定向 (也就是将本来应该输出(显示)到标准输出设备(显示器)中的内容输出到文件中)
二、Shell前置内容
1)、shell脚本的两种执行(一般新建文本是没有x权限的)
2)、shell脚本的基本规范 (最前面一般要写”#!/bin/bash”,指明当前是shell脚本)
3)、cat -A 文件名 (表示展示当前文本的所有符号,例如展示换行符这些)
4)、dos2unix 脚本名
(该命令表示能将windows的一些符号,转换为linux的符号、例如换行符,两者是不同的)
可能会没有安装,所以需要使用yum进行安装,还有(unix2dos)
5)、多个命令之间的并列关系
; :表示前一条没有正确执行后一条也能正确执行、&& :且关系、|| 或关系
6)、bash中使用的通配符
(linux中通配符与正则表达式是有区别的,通配符是用于一些命令的文件名的匹配,是完全匹配,正则表达式是对字符匹配)
7)、bash的特殊符号
三、Shell相关定义
1)、环境变量
1、变量分类:用户自定义变量、环境变量、位置参数变量、预定义变量
2、用户自定义变量
介绍:只在当前shell起作用
定义:变量名=变量值
3、环境变量
介绍:当前shell及其子shell中其作用,要使其对所有shell起作用需设置到对应配置文件中(直接使用pstree 命令能查看进程树)
定义:export 变量名=变量值 (直接使用set 命令能看到所设置的变量内容)
查看、删除变量:
env :查看变量、unset 变量名 :删除变量
常见环境变量:
PATH :一般执行自定义shell需要些对应路径,但我们运行”ls”、”grep”这些shell不需要,是因为在这里设置了对应的目录,就能直接写对应shell脚本名称运行,系统默认会从这里获取对应路径(定义的格式:”对应路径:”)
, PS1表示登录提示符,就是这里的最前面那一串”[fev@loc……]$ ”
4、系统预定义变量
系统预定义变量:
1、$? :最后一条命令的执行结果,非0表示没有正确执行
2、$$ :当前进程的进程号 (PID)
3、$! :后台最后一个运行的进程号 (在命令后面+ $&符,表示放到后台去执行)
5、read读取输入内容
语法 :read [参数选项] [变量名]
参数选项:
-p :提示信息
-t (秒) :等待时间,没有输入就退出
-n :只接受 指定个字符
-s :输入是进行显示隐藏
6、数值运算 (一般默认定义的都是字符)
运算类型
1、字符拼接类型:
2、declare定义:
参数选项:
-:设置对应变量类型
+ :取消类型设置
-p :显示变量被声明的类型
-i :声明为整数
-x :声明为环境变量
3、expr运算 (注意格式):
4、“$((运算式))”/”$[运算式]”(里面直接写正常的算式):
2)、环境变量配置
1、source 配置文件 (让配置文件的修改立即生效),或者还可以使用 . 配置文件命令
2、linux默认的一些重要配置文件:
/etc/profile(PATH环境变量在该文件中)、/etc/bashrc、/etc/profile.d/*.sh、~/.bash_profile、~/.bashrc(能定义别名),这些在/etc下面的配置对所有用户生效
3、其他的配置文件:
例如终端欢迎信息 -- /etc/issure(本地终端登录前的固定提示信息,例如可以通过写入 \n显示当前主机名、\t显示系统时间等), /etc/issure.net(远程终端登录前的固定提示,只能写文本,不能写\n、\d来表示特殊信息,想要生效的换想要加入ssh的配置文件/etc/ssh/sshd_config加入行 “Banner /etc/issure.net”行并重启ssh服务才能生效),/etc/motd(登录后的提示、远程或本地都生效)