bash的特性1.命令历史:history-c:清空当前历史命令;-d OFFSET [n]:删除指定位置的命令;-w:将当前历史命令缓冲区命令写入历史命令文件中(HISTSIZE(命令历史缓冲区大小)默认为1000)
!n:执行命令历史中的第n条命令;!-n:执行命令历史中倒数第n条命令;!!:执行上一条命令;!string:执行命令历史中最近一个以指定字符串开头的命令!$:引用上一个命令的最后一个参数Esc松开后按 . :引用上一个命令的最后一个参数Alt+ . :引用上一个命令的最后一个参数 2.命令补全,路径补全
3.命令别名:aliasalias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号
比如在 4.命令替换:把命令中某个子命令替换为其执行结果的过程 $(COMMAND)或者 `COMMAND`echo “The current directory is $(pwd).” #这样就会输出当前目录 【总结】bash支持的引号:` `:命令替换“”:弱引用,可以实现变量替换‘ ’:强引用,不完成变量替换 5.命令行编辑:
6.命令行展开在Linux bash中可以使用命令行展开特性一步完成需要分开成多步完成的操作,达到事半功倍的效果。在Linux指令参数位置使用
7.文件名通配:globbing# man 7 glob 可获得以下列表:*:任意长度的任意字符?:任意单个字符[ ]:匹配指定范围内的任意单个字符 [a-z], [A-Z], [0-9], [a-zA-Z] [[:space:]]:空白字符 [[:punct:]]:标点符号 [[:lower:]]:小写字母 [[:upper:]]:大写字母 [[:alpha:]]:大小写字母 [[:digit:]]:数字 [[:alnum:]]:数字和大小写字母 [^]:匹配指定范围之外的任意单个字符 [^0-9]:非数字 [^[:alpha:]]:非字母 8.管道及重定向I/O重定向:改变数据输入/输出来源>:覆盖输出,原有内容被覆盖;>>:追加输出,保留原有内容,在尾部新增新内容;set -C:禁止对已经存在文件使用覆盖重定向,若要强制覆盖输出,则使用 >|;set +C:关闭上述功能;2>:只能重定向错误输出,不能输出标准输出;2>>:追加,重定向错误输出;&>:重定向标准输出或错误输出至同一个文件;<> <:here document,在此处生成文档,后一般加="" eof(end="" of="" file)="" 或end,表示文档结束标记。#="" cat="" mp/myfile.txt="">:here> 管道前一个命令的 输出,作为后一个命令的 输入(组合小命令完成复杂任务)命令1 | 命令2 | 命令3 | … 比如:在我的答案·生信编程直播(第一题)-人类基因组的外显子区域到底有多长中,我就使用了管道来解决问题~ tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。 -a:向文件中重定向时使用追加模式; |
|