Bash shell 基础特性 理论+案例详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash shell 基础特性 理论+案例详解相关的知识,希望对你有一定的参考价值。
1.命令历史:history
环境变量:
HISTFILE:命令历史记录的条数
HISTSIZE:~/.bash.history
HISTFILESIZE:命令历史文件记录历史的条数
history:默认显示10条历史纪录
history -n:显示后n条历史记录
history -d n:删除第n条历史纪录
history -c:删除所有历史记录
history -a:手动追加当前会话缓冲区中的历史命令至历史文件中
!n:重复执行第n条命令
!!:重复执行上一条命令
!加命令的开头几个字母:重复执行最近一次以这几个字母开头的命令
控制命令历史的记录方式:
环境变量:HISTCONTROL:
ignoredups:忽略连续重复的命令
ignorespace:忽略以空格开头的命令
ignoreboth:ignoredups,ignorespace
[[email protected] ~]# history //查看命令历史,默认显示10条历史纪录 28 history 29 ls 30 history | more 31 history 32 history | more 33 ls 34 cd 35 ls 36 cd /.bash.hisory 37 history [[email protected] ~]# history 5 //查看最近5条命令历史 34 cd 35 ls 36 cd /.bash.hisory 37 history 38 history 5 [[email protected] ~]# history -d 36 //删除第36条命令历史, [[email protected] ~]# history 5 //再次查看,发现已经被删除了 35 ls 36 history 37 history 5 38 history -d 36 39 history 5 [[email protected] ~]# history -c //删除所有历史 [[email protected] ~]# history 31 history [[email protected] ~]# history -a [[email protected] ~]# [[email protected] ~]# cd / [[email protected] /]# ls 123 boot dev lib media proc selinux tmp var abc data etc lib64 mnt root srv usr xxl bin data1 home lost+found opt sbin sys uzz [[email protected] /]# cd [[email protected] ~]# ls 12 anaconda-ks.cfg -n uzz 123 ett.txt oldboy xxl 123456 install.log oldboy.txt xxl.txt abc install.log.syslog session192.168.80.1280320.log [[email protected] ~]# history 31 history 32 history -a 33 cd / 34 ls 35 cd 36 ls 37 history [[email protected] ~]# !33 //重复执行第33条历史命令 cd / [[email protected] /]# cd [[email protected] ~]# ls 12 anaconda-ks.cfg -n uzz 123 ett.txt oldboy xxl 123456 install.log oldboy.txt xxl.txt abc install.log.syslog session192.168.80.1280320.log [[email protected] ~]# !! //重复执行上一条命令 ls 12 anaconda-ks.cfg -n uzz 123 ett.txt oldboy xxl 123456 install.log oldboy.txt xxl.txt abc install.log.syslog session192.168.80.1280320.log [[email protected] ~]# !c //重复执行最近一次以c打头的命令 cd [[email protected] ~]# [[email protected] ~]# history 2 cd / 3 ls 4 cd 5 ls 6 history 7 cd / 8 cd 9 ls 10 cd 11 history [[email protected] ~]# ls 12 anaconda-ks.cfg -n uzz 123 ett.txt oldboy xxl 123456 install.log oldboy.txt xxl.txt abc install.log.syslog session192.168.80.1280320.log [[email protected] ~]# ls 12 anaconda-ks.cfg -n uzz 123 ett.txt oldboy xxl 123456 install.log oldboy.txt xxl.txt abc install.log.syslog session192.168.80.1280320.log [[email protected] ~]# history //默认重复执行的命令不被记录 4 cd 5 ls 6 history 7 cd / 8 cd 9 ls 10 cd 11 history 12 ls 13 history [[email protected] ~]# cd / [[email protected] /]# [[email protected] /]# history 6 history 7 cd / 8 cd 9 ls 10 cd 11 history 12 ls 13 history 14 cd / 15 history [[email protected] /]# export HISTCONTROL="ignorespace" //设置以空格打头的命令不被记录 [[email protected] /]# cd [[email protected] ~]# [[email protected] ~]# history 8 cd 9 ls 10 cd 11 history 12 ls 13 history 14 cd / 15 history 16 export HISTCONTROL="ignorespace" 17 history [[email protected] ~]#
2.命令补全和路径补全
linux中命令和路径众多,在使用过程中难免会忘记,bash shell提供的命令补全功能弥补了这一缺陷。只需要给出命令的前几个字母,bash会根据PATH环境变量定义的路径,从左到右查找以给定命令名命名的文件,第一次查找到的即为要运行的文件。
按tab键即可自动补全,如果还未不全,可再敲一次tab键,从给出的选项中选择要执行的命令,或者再对给出一些提示。
[[email protected] ~]# e //输入e按tab,发现以e打头的命令有很多,再按一次tab,列出所有 e2freefrag envsubst eu-objdump e2fsck eqn eu-ranlib e2image eqn2graph eu-readelf e2label era_check eu-size e2undo era_dump eu-stack echo era_invalidate eu-strings ed esac eu-strip editdiff espdiff eu-unstrip edquota ether-wake eval efibootmgr ethtool ex egrep eu-addr2line exec eject eu-ar execstack elif eu-elfcmp exit elinks eu-elflint expand else eu-findtextrel export enable eu-make-debug-archive expr env eu-nm [[email protected] ~]# echo //输入ec,按回车,显示echo [[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 /敲tab补全
本文出自 “技术成就梦想” 博客,请务必保留此出处http://xuxiaoliang.blog.51cto.com/10882951/1921930
以上是关于Bash shell 基础特性 理论+案例详解的主要内容,如果未能解决你的问题,请参考以下文章