shell基础
1.什么是shell
shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。2.shell的特性
1>heitory-------查看历史命令
!5--------执行历史命令的第5条
!!--------执行上一条命令
!$--------执行最后一条命令
!字符串---执行历史命令中最近一次以该字符串开头的命令
2>tab键---------自动补全
3>alias---------设置别名---例:alias aming=‘netstat -an’
只在当前shell生效
永久生效:vi .bashrc
将别名写到这个文件中来
如果要让所有用户使用可以写到:
vi /etc/profile或vi /etc/bashrc
针对用户:vi .bashrc
profile:设定环境变量 运行命令和脚本
bashrc:设定本地变量 定义命名别名
4>通配符
可以使用*来匹配零个或多个字符,用?匹配单个字符
ls *.txt------查看以.txt结尾的文件
5>输入/输出重定向
输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。
<:输入重定向 >:输出重定向 >>:输出追加重定向 2>:输出错误重定向
6>管道符
将前一个指令的输出,做为后一个指令的输入(先进行前面的指令,在以前面的命令结果为前提进行后面的命令)
7>作业控制
Ctrl+z---使当前进程暂停 fg----使当前进程恢复
jobs-----查看被暂停或在后台运行的任务进程
bg-------把暂停的任务让其在后台运行
在命令后面加&符号,把运行任务手动调到后台
3.shell的变量
PATH---环境变量,shell预设的一个变量
# echo $PATH
也可以认为设置变量
# echo $a
# a=数字------------改变变量的值
自定义变量的规则:
设定变量格式为a=b,其中a为变量名,b为变量的内容,等号两边不能有空格
变量名只能由字母、数字以及下划线组成,而且不能以数字开头
当变量内容带有特殊符号(如空格)时,需要加上单引号
env----查看其它系统变量,系统变量一般是大写的
# env
set----查看变量,系统变量和自己定义的变量的可以查看
全局变量:export
声明全局变量,在当前终端下,只针对bash生效
# export a=1
取消变量:unset
# unset a
4.变量的配置文件
/etc/profile:这个文件预设了几个重要的变量:例:PATH、USER等
/etc/bashrc:这个文件只要预设umask以及PS1,PS1就是输入命令前的大括号加#号([root@nl3 ~]# )
.bash_profile:该文件定义了用户的个人化路径与环境变量的文件名
.bashrc:该文件包含专属自己的shell的bash信息,当登录或打开新的shell时,该文件会被读取
.bash_history:该文件用来记录命令历史
/bash_logout:当退出shell时,会执行该文件
5.特殊符号
#-------注释说明,及后面的内容都会被忽略
\:退意符-------将后面的特殊符号(如*)还原为普通字符
|:管道符-------一般针对文档操作的命令比较常用
cat命令:用来截取某一个字段,格式:cut -d'分隔字符'[-cf] n n代表数字
-d:后面跟分隔字符
-c:后面接第几个字符
-f:后面接第几个区块
sort命令:用来排序,格式:sort [-t 分隔符] [-kn1,n2] [-nru] n1和n2表示数字
-t:后面跟分隔符
-n:表示使用纯数字排序
-r:表示反向排序
-u:表示去重复
-kn1,n2:表示由n1区间排序到n2区间,可以只写-kn1,及对n1字段排序
wc命令:用于统计文档的行数、字符或词数,格式:wc [-选项] 文档名
-l:统计行数
-m:统计字符数
-w:统计词数
uniq命令:用来删除重复的行,格式:uniq -c
-c:统计重复的行,并把行数写在前面
tee命令:作用类似于重定向>,但比重定向多一个功能,为把文件写入后面所跟的文件时,还显示在屏幕上