命令进阶

  • A+
所属分类:运维教程

一、历史命令命令补全

1、历史命令

history [选项] [历史命令保存文件]

选项:

-c:清空历史命令

-w:把缓存中的历史命令写入历史命令保存文件

~/.bash_history

  • 历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改

历史命令的调用

  • 使用上、下箭头调用以前的历史命令
  • 使用“!n”重复执行第n条历史命令
  • 使用“!!”重复执行上一条命令
  • 使用“!字串”重复执行最后一条以该字串开头的命令

2、命令与文件补全

  • Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全

二、命令别名与常用快捷键

1、命令别名

alias 别名='原命令'

#设定命令别名

alias

#查询命令别名

命令执行时顺序

  1. 第一顺位执行用绝对路径或相对路径执行的命令。
  2. 第二顺位执行别名。
  3. 第三顺位执行Bash的内部命令。
  4. 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。

让别名永久生效

vi /root/.bashrc

删除别名

unalias 别名

2Bash常用快捷键

快捷键

作用

ctrl+A

把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。

ctrl+E

把光标移动到命令行结尾。

ctrl+C

强制终止当前的命令。

ctrl+L

清屏,相当于clear命令。

ctrl+U

删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便

ctrl+K

删除或剪切光标之后的内容。

ctrl+Y

粘贴ctrl+Uctul+K剪切的内容。

ctrl+R

在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。

ctrl+D

退出当前终端。

ctrl+Z

暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。

ctrl+S

暂停屏幕输出。

ctrl+Q

恢复屏幕输出。

三、输入输出重定向

1、标准输入输出

设备

设备文件名

文件描述符

类型

键盘

/dev/stdin

0

标准输入

显示器

/dev/sdtout

1

标准输出

显示器

/dev/sdterr

2

标准错误输出

2、输出重定向

类型

符合

作用

标准输出重定向

命令 > 文件

以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。

命令 >> 文件

以追加的方式,把命令的正确输出输出到指定的文件或设备当中。

标准错误输出重定向

错误命令 2> 文件

以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。

错误命令 2>> 文件

以追加的方式,把命令的错误输出输出到指定的文件或设备当中。

正确输出和错误输出同时保存

命令 > 文件 2>&1

以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。

命令 >> 文件 2>&1

以追加的方式,把正确输出和错误输出都保存到同一个文件当中。

命令 &> 文件

以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。

命令 &>> 文件

以追加的方式,把正确输出和错误输出都保存到同一个文件当中。

命令 >> 文件1 2>> 文件2

把正确的输出追加到文件1中,把错误的输出追加到文件2中。

3、输入重定向

wc [选项] [文件名]

选项:

-c

统计字节数

-w

统计单词数

-l

统计行数

  • 命令<文件

    把文件作为命令的输入

四、多命令顺序执行与管道符

1、多命令顺序执行

多命令执行符

格式

作用

;

命令1 ; 命令2

多个命令顺序执行,命令之间没有任何逻辑联系

&&

命令1 && 命令2

逻辑与

当命令1正确执行,则命令2才会执行

当命令1执行不正确,则命令2不会执行

||

命令1 || 命令2

逻辑或

当命令1执行不正确,则命令2才会执行

当命令1正确执行,则命令2不会执行

例子:

ls ; date ; cd /user ; pwd

dd if=输入文件 of=输出文件 bs=字节数 count=个数

选项:

if=输入文件

指定源文件或源设备

of=输出文件

指定目标文件或目标设备

bs=字节数

指定一次输入/输出多少字节,即把这些字节看做一个数据块

count=个数

指定输入/输出多少个数据块

例子:

date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date

ls anaconda-ks.cfg && echo yes

ls /root/test || echo "no"

命令 && echo yes || echo no

2、管道符

命令格式:

命令1 | 命令2

#命令1的正确输出作为命令2的操作对象

颜色显示

例子:

ll -a /etc/ | more

netstat -an | grep "ESTABLISHED"

grep [选项] "搜索内容" 文件名

选项:

-i

忽略大小写

-n

输出行号

-v

反向查找

--color=auto

搜索出的关键字用颜色显示

五、通配符与其他特殊符号

1、通配符

通配符

作用

?

匹配一个任意字符

*

匹配0个或任意多个任意字符,也就是可以匹配任何内容

[]

匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c

[-]

匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母。

[^]

逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。

cd /tmp/

rm -rf *

touch abc

touch abcd

touch 012

touch 0abc

ls ?abc

ls [0-9]*

ls [^0-9]*

2Bash中其他特殊符号

符号

作用

' '

单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。

" "

双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。

` `

反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。

$()

和反引号作用一样,用来引用系统命令。

#

Shell脚本中,#开头的行代表注释。

$

用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。

\

转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输入“$”符号,而不当做是变量引用。

单引号与双引号

name=sc

echo '$name'

echo "$name"

echo '$(date)'

echo "$(date)"

以上内容未经授权,严禁转载!请尊重作者的知识产权。

  • 我的微博
  • 这是微博的扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:51   其中:访客  50   博主  1

    • avatar 蓝泳庞傅岸汕仿魏壁疟飞咐渤庇于蠢有傥 9

      签到成功!签到时间:今日的上午9:05:15,每日打卡,生活更精彩哦!

      • avatar 菩汲懒沂囱端谜闲攘谕屠料膛约统投炊攀 9

        签到成功!签到时间:今日的上午6:12:25,每日打卡,生活更精彩哦!

        • avatar 状狗寻杭辞概灼菜潭勤汤宦街孔墩乩抛毙 9

          签到成功!签到时间:今日的上午6:08:19,每日打卡,生活更精彩哦!

          • avatar 斯曳椎钡底斯布航们克逊酉重惨匣贩挚苛 9

            签到成功!签到时间:今日的上午5:00:57,每日打卡,生活更精彩哦!

            • avatar 睬脸就坏谓妓痴先抠翰蜗侠栈疵授迫泼孕 9

              签到成功!签到时间:今日的上午4:55:12,每日打卡,生活更精彩哦!

              • avatar 偻派辣卓登乌文群廊颓贸炔灾钨呐肆刚吧 9

                签到成功!签到时间:今日的上午2:57:30,每日打卡,生活更精彩哦!

                • avatar 剂灯涝绿舶埔俗旱妓识闹膛油友烤考奈沼 9

                  签到成功!签到时间:今日的下午11:31:34,每日打卡,生活更精彩哦!

                  • avatar 烦抛着揭窍喜付诟岛谭聊站鞘炙菩控谛直 9

                    签到成功!签到时间:今日的下午8:00:12,每日打卡,生活更精彩哦!

                    • avatar 寥接匈哦纷沸智秩偈讨堪备赌窗上蔡磁颖 9

                      签到成功!签到时间:今日的上午11:19:10,每日打卡,生活更精彩哦!

                      • avatar 掌夏职性寺皆写凰怂磕饺蚀掣荡陈驳兄沙 9

                        签到成功!签到时间:今日的上午10:09:58,每日打卡,生活更精彩哦!