前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bash特性详解

bash特性详解

作者头像
生信real
发布2020-08-26 10:51:26
9600
发布2020-08-26 10:51:26
举报
文章被收录于专栏:Linux基础入门Linux基础入门

本次我们来介绍一下Linux中的bash所具有的特性

bash的特性:

(1)命令行编辑

(2)命令历史

(3)命令别名

(4)命令替换

(5)文件名通配

(6)管道和 重定向

(7)变量

(8)编程

一、命令行编辑

(1)光标跳转

Ctrl+a:跳到命令行首

Ctrl+e:跳到命令行尾

Ctrl+u:删除光标至命令行首的内容

Ctrl+k:删除光标至命令行尾的内容

Ctrl+←:向左一个单词一个单词移动

Ctrl+→:向右一个单词一个单词移动

Ctrl+l:清屏

(2)命令行展开:略,请自行百度

二、命令历史

(1)查看命令历史:history

清空命令历史:history -c

(2)命令历史的使用技巧

①!n:执行命令历史的第n条命令

②!-n:执行命令历史中的倒数第n条命令

③!!:执行上一条命令

④!$:引用前一个命令的最后一个参数;与其相同的命令还有:按住[Esc]后松开按[.]

三、文件别名

注:在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程

(1)定义别名

alias [别名] =‘[命令]’

eg:alias cls =clear 即用cls代替clear,定义后用cls命令可以达到clear的作用

(2)撤销别名

unalias [别名]

eg:unalias cls 即撤销cls别名

(3)\[命令]

定义别名之后,我还想用一下命令本身,即\[命令]

四、命令替换

当我们使用一些命令时,我们希望命令是随着环境的变化而产生一定的灵活变化的,这个时候我们就需要用到命令替换

(1)命令替换是指将命令的输出结果赋值给某个变量

命令替换的方式:

(1)反引号:`命令`

(2)():(命令)

即:命令替换是把命令中某个子命令(pwd)替换为其(echo)执行结果的过程

五、文件名通配

(1)* :匹配任意长度的任意字符(包括0个字符)

eg:

① [root@c ]# ls

ab abb abc abm xab

# 如有文件

② [root@c ]# ls ab*

ab abb abc abm

# 匹配以ab开头后面跟着任意字符

③ [root@c ]# ls *ab

ab xab

# 匹配以ab结尾

④ [root@c ]# ls *ab*

ab abb abc abm xab

#匹配包含ab的文件

(2)?: 匹配任意单个字符

① [root@c ]# ls a?

ab

② [root@c ]# ls a??

abb abc abm

(3)[]: 匹配指定字符范围内的任意单个字符

[abc] #匹配字母abc

[a-z] #匹配小写字母a-z

[A-Z] #匹配大写字母A-Z

[0-9] #匹配数字0-9

[a-zA-Z] #匹配大小写字母a-z

eg:

① [root@c ]# ls ?[0-9].log

#查询以“.log”结尾且“.log”前只有两个字符的文件且第二个字符是数字

② [root@c ]# ls [a-zA-Z]

#只查询字母文件,且文件名仅为单字母

(4)[^]:匹配指定字符范围外的任意单个字符

[root@c ]# *[^txt]

#查询不是以“.txt”结尾的文件

六、管道和重定向

(1)>:覆盖输出

>>:追加输出

Ps.重定向错误输出及追加方式,请自行百度。

eg:执行下面的 who 命令,它将命令的完整的输出重定向在用户文件中(users):

执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件。

你可以使用 cat 命令查看users文件内容

输出重定向会覆盖文件内容,请看下面的例子:

如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾,例如:

(2)<:输入重定向

和输出重定向一样,命令也可以从文件获取输入

这样,本来需要从键盘获取输入的命令会转移到文件读取内容。

接上例:

注意:上面两个例子的结果不同:第一个例子,会输出文件名;第二个不会,因为它仅仅知道从标准输入读取内容。

(3)管道

命令1 | 命令2 | 命令3 | ……

管道用于将一个命令的输出作为另一个命令的输入。可以将个命令依次连接起来,前一个命令的输出作为后一个命令的输入。

eg:cat /etc/log/message | more

#在执行输出内容较多的命令时可以通过管道使用 more 命令进行分页显示

END

变量和编程内容太多,我们后面再具体介绍。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信real 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档