shell基础总结一

shell是一个命令行解释器

echo命令:打印内容,-e:支持反斜线控制的字符转换,-n:取消输出后行末的换行符

shell脚本的基本结构:第一行“#!/bin/bash”第二行:注释 第三行:程序的主体

history命令:查看历史命令 -c:清空历史命令 -w:把缓存中的历史命令写入历史命令保存文件中。默认历史命令保存文件~/.bash_history中

历史命令默认保存是100条,可以通过修改配置文件/etc/profile中的HISTSIZE参数增加减少保存条数。

历史命令的调用:1、使用上下箭头调用以前的历史命令  2、使用“!n”重复执行第n条历史命令 使用“!!”重复执行上一条命令 使用“!字符串”重复执行最后一条以该字符串开头的命令 使用“!$”重复上一条命令的最后一个参数

在输入命令或者文件时按Tab就会自动进行补全

alias命令:设置别名 alias查询命令别名 alias 别名='原命令'

别名永久生效需要把别名写入环境变量配置文件~/.bashrc中

 

常用快捷键:

Ctrl+A:把光标移动到命令行开头

Ctrl+E:把光标移动到命令行结尾

Ctrl+C:强制终止当前的命令

Ctrl+L:清屏,相当于命令clear命令

Ctrl+U:删除或剪切光标之前的内容

Ctrl+K:删除或剪切光标之后的内容

Ctrl+Y:粘贴Ctrl+U或Ctrl+K的内容

Ctrl+R:在历史命令中搜索

Ctrl+D:退出当前终端

Ctrl+Z:暂停,并放入后台

Ctrl+S:暂停屏幕输出

Ctrl+Q:恢复屏幕输出

 

多命令执行方法:

;                      格式:命令1;命令2         作用:多条命令顺序执行,命令之间没有任何逻辑关系

&&:逻辑与    格式:命令1&&命令2    作用:命令1正确执行($?=0),则命令2才会执行;命令1执行不正确($?≠0),则命令2不会执行

||:逻辑或        格式 :命令1||命令2       作用:命令1执行不正确($?≠0),则命令2才会执行;命令1正确执行($?=0),则命令2不会执行

 

gerp命令是在文件中提取和匹配符合条件的字符串行。grep [选项] "搜索内容" 文件名

选项:

-A 数字:列出符合条件的行,并列出后续的n行

-B 数字:列出符合条件的行,并列出前面的n行

-c:统计找到的符合条件的字符串的次数

-i:忽略大小写

-n:输出行号

-v:反向查找

--color=auto:搜索出的关键字用颜色显示

 

|管道符用来连接多条命令,如“命令1 | 命令2”。不过和多命令顺序执行不同的是,用管道符连接的命令,命令1的正确输出作为命令2的操作对象。因此命令1必须有正确的输出,而且命令2必须可以处理命令1的输出结果。

 

通配符:

?:匹配一个任意字符

*:匹配0个或多个任意字符,也就是可以匹配任何内容

[]:匹配中括号中任意一个字符,例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c

[-]:匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母

[^]:逻辑非,表示匹配不是中括号内的一个字符,例如,[^0-9]代表匹配一个不是数字的字符

 

单引号、双引号和反引号:

单引号:被单引号括起来的字符都是普通字符,就算是特殊字符也不再有特殊含义。

双引号:被双引号括起来的字符中特殊字符还是拥有特殊含义。

反引号:如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含,反引号的作用和$(命令)是一样的。

 

小括号和大括号的主要区别:

()执行一串命令时,需要重新开启一个子shell来执行

{}执行一串命令时,在当前shell中执行

()和{}都是把一串命令放到括号里面,并且命令之间用“;”隔开

()最后一条命令可以不用分号

{}最后一条命令要用分号

{}的第一条命令和左括号之间必须有一个空格

()里的各命令不必和括号有空格

()和{}中括号里面的某条命令的重定向只影响该命令,但括号外的重定向则会影响到括号里的所有命令

 

变量是计算机内存的单元,其中存放的值可以改变

定义变量的注意事项:

变量可以由字母、数字和下划线组成,但是不能以数字开头

在Bash中,变量的默认类型是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。

变量用等号“=”连接值,“=”左右两侧不能有空格。

变量值中如果有空格,则需要使用单引号或者双引号包含

在变量值中,可以使用转义符“\”

如果需要增加变量值,可以进行变量叠加。变量叠加可以使用两种方式:"$变量名"或${变量名}

如果需要把命令的执行结果作为变量值赋予变量,则需要使用反引号或者$()包含命令

环境变量名建议大写,便于区分

 

自定义变量是最常用的变量类型,其特点是变量名和变量值都是由用户自由定义的

只需执行“变量名=变量值”

变量调用:当需要提取变量中的内容时,需要在变量名之前加入“$”符号

变量查看:查询已知变量名的值,通过echo命令查询已经设定的变量的值

                 set命令可以用来查看系统中的所有变量(用户自定义变量和环境变量)和设定shell的执行环境

变量删除:删除自定义变量可以使用unset命令,unset 变量名

 

环境变量:环境变量和用户自定义变量的主要区别在于,环境变量是全局的,而用户自定义的变量是局部变量

环境变量设置:export 变量名=变量值

环境变量查询:可以使用set也可以使用env命令进行环境变量的查询

删除环境变量:unset 变量名