1.1什么是shell
1.2记录历史命令
!!:连续的两个!!表示执行上一条命令
!n :是执行历史记录的第n条
!+ 字符串(字符串大于1):表示执行最近以xx开头的命令
1.3命令补全
输入完开头相关字符后按Tab即可将相关存在的命令补全。
1.4别名
我们可以通过使用alias来使一格复杂难记忆的命令更改为自己觉得容易简单的命令
alias 别名命令 = ‘具体命令’
1.5通配符
在bash下可以使用*来匹配多个字符
可以用?来匹配一个字符
1.6输入输出重定向
输入重定向是<
输出重定向是>
用法较多的是 echo ‘123’ > test.1
一个>或<是覆盖内容
两个>或<是追加内容
1.7管道符
它用于将前面的指令输出给后一个指令
wc -l 是统计行数的多少
1.8控制命令
当你进行操作的时候可以使用Ctrl+z或者Ctrl+c中止进程,然后使用命令fg恢复进程,或者使用bg命令使进程进入后台进行
2.0变量
坏境变量是shell的一个预设变量。通常,shell预设的变量都是大写的。linux系统环境变量,主要分为2种。一个是系统变量(针对任何用户和环境都试用的) ,还有一个是环境变量可以针对不同的用户和不同的shell环境的变量。用echo命令显示变量的值
一般变量有以下(度娘查找的)
变量名称 | 作用 |
---|---|
HOME | 用户家目录 |
SHELL | 用户使用shell解释器名称 |
HISTSIZE | 输出历史命令记录条数 |
HISTFILESIZE | 保存历史命令记录条数 |
邮件保存路径 | |
LANG | 系统语言、语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | bash解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |
系统环境变量的配置文件,可以查看/etc/profile文件里面记录
2.1命令env
可以用命令env或者set查看环境变量,set和env的区别在set命令显示当前shell的变量,包括当前用户自己的设置的变量;env命令显示当前用户的变量
执行bash命令时,会进入一个子shell环境中。
设定变量的格式为a=b,其中a为变量名,b为变量的内容,等号两边不能有空格
变量名只能由字母、数字以及下划线组成,而且不能以数字开头
当变量内容带有特殊字符时(如空格),需要加上单引号。
如果内容本身带有单引号,则需要用到双引号
如果变量里面需要用的变量,则需要使用反引号
变量内容内可以累加其他变量的内容,但需要加双引号
3.0Linux shell 中的特殊符号
比如通配符‘*’,代表零个或多个字符或数字。
3.1 *代表零个或多个字符
3.2 ?代表一个字符
3.3注释符#,注释符#后面的内容都会被忽略
3.4命令cut
cut是用来截取某一个字段,其格式为cut -d ‘分隔字符 [ -cf ] n(n是数字)’
-d:后面跟分隔字符,分隔字符要用单引号括起来
-c:后面接第几个字符
-f:后面接的是第几个块
-c后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1、n2、n3
3.5 命令sort
sort命令用作排序,其格式为sort [-t 分隔符] [ -kn1,n2] [ -nru]这里n1和n2是指数字。
-t:后面跟分隔符,作用跟cut一样
-n:表示用纯数字排序
-r:表示反向排序
-u:表示去重复
-kn1,n2:表示由n1排序到n2区间,可以只写kn1,既对n1字段排序
如果sort不加任何选项,则从首字母开始按ASCII码进行比较,最后将他们按照升序输出。
3.6命令wc
wc用来统计文档的行数(-l)、字符数(-m)和词数(-w)。
如果wc不跟任何选项,直接跟文档,则将会把词数、行数和字符数全部打印出来。
3.7命令uniq
uniq命令用来删除重复行,一般和-c一起用,它表示它统计重复的行数,并把行数写在前面。而且使用uniq前必须排序,否则不管用。
3.8命令tee
tee后面跟文件名,其作用类似重定向>,但是他多一个功能,它会将命令后面的内容显示在屏幕上。
3.9命令tr
tr命令用于替换字符,常用来处理文档中出现的特殊符号,如DOS文档中的^m
-d:表示删除某个字符,后面跟要删除的字符
-s:表示删除重复的字符
te命令也可以把小字母替换成大字母
也可以只替换一个字符
3.10命令split
split用于切割文件,常用-l和-b
-b:表示依据大小来切割,单位是Byte
-l:表示依据行数来切割
3.11特殊字符$
!$执行上一条命令的参数
3.12特殊符号;
可以一次运行多个命令,只要用;隔开就行
3.13特殊符号&&和||
一般有以下三种情况:
command1 ;command2
command1 && command2
command1 | | command2
使用 ; 时,不管command1是否执行成功,都会执行command2
使用&&时,只有command1执行有成果,才会执行command2,否则command2不会执行
使用||时,command1执行成功则command2不执行,command1执行失败时则执行command2。
3.15
vmstat查看缓冲信息 vmstat 1 每一秒显示一次信息
tail -f > /tmp 查看bg信息