shell介绍和通配符及输入输出重定向

前端之家收集整理的这篇文章主要介绍了shell介绍和通配符及输入输出重定向前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

shell介绍

什么是shell?

在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。


  • shell是一个命令解释器,提供用户和机器之间的交互

  • 支持特定语法,比如逻辑判断、循环

  • 每个用户都可以有自己特定的shell

  • CentOS7默认shell为bash(Bourne Agin Shell)

  • 还有zsh、ksh等,只是细微的差别不同


命令历史

在执行命令时候,可以ongoing键盘上额方向键进行查找之前执行过的历史命令。为什么会有记录呢?由于历史命令都存在当前用户的家目录下,/oot/.bash_history 文件中。

history命令 选项-c

[root@centos7~]#history查看当前存了多少条历史命令
[root@centos7~]#history-c清空当前内存中的历史命令,但无法清空配置文件中的
[root@centos7~]#cat/root/.bash_history查看文件内容
[root@centos7~]#echo$HISTSIZE查看系统配置的环境变量
1000#默认最大只能存一千条

可以在etc/profile配置文件中找到HISTSIZE变量重新赋值,当修改值后可以用source /etc/profile命令或重新退出终端再登录生效。

[root@centos7~]#HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"指定变量的格式
[root@centos7~]#echo$HISTTIMEFORMAT只能当前终端生效
%Y/%m/%d%H:%M:%S
#如果需要永久生效可以把变量增到profile文件中,跟HISTSIZE放在一起
[root@centos7~]#history可看到增加了时间参数
22017/11/1522:34:36history
32017/11/1522:35:22cat/root/.bash_history
42017/11/1522:37:02echo$HISTSIZE
52017/11/1522:38:31vi/etc/profile
62017/11/1522:43:38sudovi/etc/profile
72017/11/1522:47:41HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"
82017/11/1522:47:51echoHISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"
92017/11/1522:48:15echoHISTTIMEFORMAT
102017/11/1522:48:22HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"
112017/11/1522:48:25echoHISTTIMEFORMAT
122017/11/1522:48:41echo$HISTTIMEFORMAT
132017/11/1522:51:10history

在有些特定情况下需要对执行过的命令进行记录,可以用chattr + a ~/.bash_history 增加a权限,让文件内容只能追加无法删除。但是非正常退出,命令将保存不全。

[root@centos7~]#!!执行最后一条命令
[root@centos7~]#!10执行第10行历史命令
[root@centos7~]#!echo执行最近一次echo开头的命令

命令补全和别名

tab键,当输入的匹配的命令只有一个符合的时候,敲一下补全;当输入的匹配命令多个的时候,敲两下显示匹配的结果。

centos7默认是不支持参数补全的,需要安装yum install -y bash-completion包,安装之后不能使用,需要重启系统才生效。

[root@centos7~]#aliasrestartnet='systemctlrestartnetwork.service'设置别名
[root@centos7~]#alias
aliascp='cp-i'
aliasegrep='egrep--color=auto'
aliasfgrep='fgrep--color=auto'
aliasgrep='grep--color=auto'
aliasl.='ls-d.*--color=auto'
aliasll='ls-l--color=auto'
aliasls='ls--color=auto'
aliasmv='mv-i'
aliasrestartnet='systemctlrestartnetwork.service'#成功设置
aliasrm='rm-i'
aliaswhich='alias|/usr/bin/which--tty-only--read-alias--show-dot--show-tilde'
[root@centos7~]#unaliasrestartnet取消别名

用户都有自己配置别名的文件 ~/.bashrc

ls /etc/profile.d/


通配

#*表示所有

#?表示一个任意的字符

#[0-9]表示0-9范围取一个值或[123]表示取123文件

#{1,2}表示取12文件同等于[12]


输入输出重定向

#>>>分别表示正确输出重定向追加输出重定向

#2>2>>分别表示错误输出重定向追加输出重定向

#<表示输入重定向基本用不到

猜你在找的Bash相关文章