Bash基础特性 -- 卷一
Linux Bash的基础特性 一、history(命令历史记录) 1、语法与常用参数 history 列出当前shell的所有history history [-c] 将当前shell的所有 history 清除 history [n] n为数字,列出最近的n条记录 history [-raw] histfiles -a [HISTFILES] :手动追加当前会话缓冲区的命令历史至文件中,如果histfiles事先不存在,则创建,如果不指定histfiles文件,则默认写入~/.bash_history中 -r HISTFILES : 将histfiles中的内容读取到当前shell的history中 -w HISTFILES : 将当前shell 的history写入之histfiles文件中 2、环境变量 HISTSIZE:命令历史记录的条数,默认为1000条 HISTFILE:~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 [root@Nginx~]#echo$HISTFILE /root/.bash_history [root@Nginx~]#echo$HISTSIZE 1000 [root@Nginx~]#echo$HISTFILESIZE 1000 3、history的调用 !#:重复执行第#条命令 !!:执行上一条命令 !string:执行最近一条包含指定字符串的命令 !$:调用上一条命令的最后一个参数 [root@Nginx~]#history10 1019history-a11.txt 1020cat11.txt 1021echo$HISTSIZE 1022ls 1023echo$HISTFILESIZE 1024history 1025pingbaidu.com 1026alias 1027ls 1028history10 #####!# [root@Nginx~]#!1026 alias aliascdnet='cd/etc/sysconfig/network-scripts' aliascp='cp-i' aliasl.='ls-d.*--color=auto' aliasll='ls-l--color=auto' aliasls='ls--color=auto' aliasmv='mv-i' aliasrm='rm-i' aliaswhich='alias|/usr/bin/which--tty-only--read-alias--show-dot--show-tilde' #####!! [root@Nginx~]#!! alias aliascdnet='cd/etc/sysconfig/network-scripts' aliascp='cp-i' aliasl.='ls-d.*--color=auto' aliasll='ls-l--color=auto' aliasls='ls--color=auto' aliasmv='mv-i' aliasrm='rm-i' aliaswhich='alias|/usr/bin/which--tty-only--read-alias--show-dot--show-tilde' #####!string [root@Nginx~]#!ping pingbaidu.com PINGbaidu.com(111.13.101.208)56(84)bytesofdata. 64bytesfrom111.13.101.208:icmp_seq=1ttl=128time=66.8ms 64bytesfrom111.13.101.208:icmp_seq=2ttl=128time=66.9ms 64bytesfrom111.13.101.208:icmp_seq=3ttl=128time=66.9ms 64bytesfrom111.13.101.208:icmp_seq=4ttl=128time=67.4ms ^C ---baidu.compingstatistics--- 4packetstransmitted,4received,0%packetloss,time7408ms rttmin/avg/max/mdev=66.844/67.046/67.480/0.253ms #####!$ [root@Nginx~]#ping-c1!$ ping-c1baidu.com PINGbaidu.com(111.13.101.208)56(84)bytesofdata. 64bytesfrom111.13.101.208:icmp_seq=1ttl=128time=67.4ms ---baidu.compingstatistics--- 1packetstransmitted,1received,time4071ms rttmin/avg/max/mdev=67.433/67.433/67.433/0.000ms 4、控制命令历史的记录方式 环境变量:HISTCONTROL ignoredups:忽略重复的命令,连续且相同的命令 ignorespace:忽略所有以空白开头的命令 ignoreboth:以上两条均生效 修改环境变量: [root@Nginx~]#exportHISTCONTROL=ignoreboth [root@Nginx~]#echo$HISTCONTROL ignoreboth 二、命令与路径补全 1、命令补全 bash执行命令,在用户给定的字符串只有唯一对应的命令时,直接Tab补全;如果不唯一,则再次Tab会给出匹配到的命令列表。bash根据PATH变量中定义的路径自左向右寻找唯一匹配字符串的命令,第一次找到的即为要执行的命令 2、路径补全 把用户给出的字符串当作路径开头,并在其指定的上级目录下搜索以指定的字符串开头的文件名,如果唯一,直接补全;否则再次Tab,给出列表 三、命令行展开 ~:展开为用户的主目录 ~USERNAME:展开为指定用户的主目录 {}:可承载一个以逗号分隔的列表,并将其展开为多个路径 [root@Nginx~]#mkdir-pv/tmp/{1{1.1,1.2},2}/{a,b} mkdir:已创建目录"/tmp/11.1" mkdir:已创建目录"/tmp/11.1/a" mkdir:已创建目录"/tmp/11.1/b" mkdir:已创建目录"/tmp/11.2" mkdir:已创建目录"/tmp/11.2/a" mkdir:已创建目录"/tmp/11.2/b" mkdir:已创建目录"/tmp/2" mkdir:已创建目录"/tmp/2/a" mkdir:已创建目录"/tmp/2/b" 四、命令的执行状态结果 程序执行有两类结果;一类是返回值,一类是执行状态结果 bash的特色标量$?,保存最近一条命令的执行状态结果 0:成功 1-255:失败 [root@Nginx~]#date 2017年07月09日星期日17:39:35CST [root@Nginx~]#echo$? 0 [root@Nginx~]#data -bash:data:commandnotfound [root@Nginx~]#echo$? 127 五、alias(命令别名) 1、语法与常用参数 alias[-p][name[=value]...] -p:打印已设置的命令别名 alias:显示当前shell进程所有可用的命令别名 alias NAME='VALUE':定义别名NAME,相当于执行VALUE。 注意:VALUE中有空格等要带引号 2、alias配置 (1)在命令行中定义的别名,仅对当前shell有用 (2)定义在~/.bashrc中对当前用户有效 (3)定义在/etc/bashrc中对所有用户有效 (4)配置完成后,重读配置文件可立即生效 source /etc/bashrc 3、unalias(撤销别名) unalias[-a]name[name...] -a:撤销所有别名 注意:如果别名同原命令的名称,则如果要执行原命令,可使用"COMMAND": (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |