- shell介绍
- 命令历史
- 命令补全和别名
- 通配符
- 输入输出重定向
- 管道符和作业控制
- shell变量
- 环境变量配置文件
1. shell介绍
- shell是一个命令解释器,提供用户何机器之间的交互
- 支持特定语法,比如逻辑判断、循环
- 每个用户都可以有自己特定的shell
- CentOS默认shell为bash(Bourne Agin Shell)
- 还有zsh、ksh等
2. 命令历史
-
history
-
.bash_history
-
最大1000条
-
变量HISTSIZE #定义保存最大的命令条数
-
/etc/profile中修改 #修改配置文件或者说是变量
-
想要更改配置文件生效需要退出终端或者执行
source /etc/profile
-
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " #历史命令中加上执行命令的时间年月日时分秒
source /etc/profile
-
永久保存 chattr +a ~/.bash_history #加特殊权限a只增加不删除
-
!! #重复执行上一条命令
-
!n #n为第多少条命令
-
!word #倒序查找最近一条已word开头的命令,并执行
-
history -c #当前内存中的命令历史清空(指还没写入到文件中的命令)正常退出后保存到文件中
3. 命令补全和别名
- tab键,敲一下补全,敲两下候选
- 参数补全,安装bash-completion #要重启系统
- alias别名给名重新起个名字
- 取消自定义的别名
- 各用户都有自己的配置别名的文件 ~/.bashrc
- ls /etc/profile.d/
- 自定义的alisa放到~/.bashrc
4. 通配符
* #所有
? #一个任意的字符
[0-3] [123] #括号内或的意思跟范围
{1,2,3} #或的意思但是要加逗号
5. 输入输出重定向
cat 1.txt> 2.txt #文本中的数据写入到2.txt 1.txt中的删除
cat 1.txt>> 2.txt #文本中的数据写入到2.txt 1.txt中的不删除
lsaaa 2> a.txt #将错误的信息写入到a文件中
lsaaa 2>> a.txt #将错误的信息写入到a文件中 追加重定向
>+2> == &> #正确的跟错误的全部写入到文件里
ls [12].txt aaa.txt &> a.txt #正确的错误的全写入a.txt
ls [12].txt aaa.txt >1.txt 2> a.txt #正确的写入1.txt 错误的写入a.txt
wc -l < 1.txt #显示1.txt的行数
6. 管道符和作业控制
| #管道符
Ctrl+z #暂停任务
jobs #查看暂停的任务
fg +编号 #恢复暂停的命令
bg+编号 #后台运行
sleep 100 & #将100秒后关机直接丢到后台执行
新开终端jobs是看不到上一个终端的后台任务,但是能够从进程中查看到
7. shell变量
系统有很多变量
可以用env
来获取系统的变量,变量名多为大写set
获取用户自定义的变量
变量规则
自定义变量 a=1
变量名规则:字母、数字下划线,首位不能为数字
变量值:变量值有特殊符号时需要用单引号括起来
变量的累加
全局变量export b=2
#向下的子bash unset 变量名 #取消变量
8. 环境变量配置文件
/etc/profile #系统环境变量,交互,登录才执行
/etc/bashrc #用户不用登录,执行shell就生效
~/.bashrc
~/.bash_profile
~/.bash_history
~/.bash_logout #定义用户退出的时候需要做的操作
PS1=[\u@\h \W]$ #效果[root@test ntp]#
PS1='[\u@\h \w]$'#效果[root@test /etc/ntp]#
总结
-
时间管理
-
把自己用的变量添加到自己家目录的
.bashrc
文件内 -
echo -e 添加颜色,需要的时候百度,在脚本中添加颜色输出会一目了然
-
source 的作用
a、并不会产生新的pid
b、会把子脚本里面的变量带出来 -
exec 定向日志(记录日志)
-
怎么查询命令使用的是哪个包用
yum provides "/*/vim"