Linux学习笔记 05 - 字符界面与shell(2)

三、深入Shell

1、通配符

Shell命令中可以使用通配符来同时匹配多个文件方便操作。Linux的通配符除了 MSDOS中常用的“*”和“”外,还包括“[]”和“!”组成的字符组模式,能够扩充需要匹配的文件的范围

1. 通配符“*

通配符“*”代表任意长度的任何字符,如“a*”可表示诸如“abc”“about”等以“a”开头的字符串。需要注意的是通配符不能与开头的文件名匹配。例如,“*”不能匹配到名为“.file”的文件,而必须使用“.*”才能匹配到类似“.file”的文件。

2. 通配符“

通配符“?”代表任何一个字符,如“a?”就可表示诸如“ab”“at”等以“a”开头并仅有两个字符的字符串。

3. 字符组通配符“[ ]”“-”和“

[ ]”表示指定的字符范围,“[ ]”内的任意一个字符都用于匹配。“[ ]”内的字符范围可以由直接给出的字符组成,也可以由起始字符、和终止字符组成。例如,“[abc]*”或“[a-c]*”都表示所有以“a”“b”或者“C”开头的字符串。而如果使用“!”,则表示不在此范围之内的其他字符。

通配符在指定一系列文件名时非常有用,例如:

命令作用
ls *.png列出所有PNG图片文件
ls a?列出首字母是a, 文件名只有两个字符的所有文件
ls [abc]*列出首字母是a、b或者c的所有文件
ls [!abc]*列出首字母不是a、b、c的所有文件
ls [a-z]*列出首字母是小写字母的所有文件

2、重定向

Linux中通常利用键盘输人数据,而命令的执行结果和错误信息都输出到屏幕。也就是说,Linux的标准输人是键盘,标准输出和标准错误输出是屏幕。
Shell中不使用系统的标准输人、标准输出或标准错误输出端口,重新指定至文件的情况称为重定向。根据输出效果的不同,与输出相关的重定向可分为输出重定向附加输出重定向错误输出重定向 3种。与输人相关的重定向只有一种,称为输人重定向

1. 输出重定向

输出重定向就是命令执行的结果不在标准输出(屏幕)上显示,而是保存到某一文件的操作,利用符号">"来实现。
例:将当前目录中所有文件和子目录的详细信息保存到list文件。

[jerry@centos ~]$ls -al >list
[jerry@centos ~]$

ls -al命令显示当前目录中所有文件和子目录的详细信息,一般情况下应在屏幕上显示送些信息。而命令中使用输出重定向符号">"和文件名后,屏幕上就不会出现任何信息,而将本应出现在屏幕上的内容全部保存到指定的文件中。指定的文件并不需要预先创建,输出重定向能新建命令中指定的文件。而如果指定的文件已存在,则其原有内容将被覆盖。
cat命令可用于查看文本文件的内容,而如果与输出重定向相配合,则有更加强大的功能。

  1. 创建文本文件
格式:cat >文件

说明:输入此类命令后,屏幕光标闪烁,用户输入文件内容。所有的内容输入完成后,按【Enter】键将光标移动到下一行,然后按【Ctrl+D】组合键结束输入,再次出现Shell命令提示符.

  1. 合并文本文件
格式:cat  文件列表  >  文件

说明:将文件列表中所有文件的内容合并到指定文件。

2. 附加输出重定向

附加输出重定向的功能与输出重定向基本相同。两者的不同之处在于:附加输出重定向将输出内容追加到原有内容的后面,而不会覆盖其内容,利用符号">>"来实现附加输出重定向功能。

3. 错误输出重定向

Shell中标准输出与错误输出是两个独立的输出操作。标准输出是输出命令执行的结果,而错误输出是输出命令执行中的错误信息。错误输出也进行重定向,并可分为下两种情况:

  • 程序的执行结果显示在屏幕上,而错误信息重定向到指定文件,使用"2>"符号。
  • 程序的执行结果和错误信息都重定向到同一文件,使用"&>"符号。

4. 输入重定向

输人重定向跟输出重定向完全相反,是指不从标准输入(键盘)读人数据,而是从文件读入数据,用"<"符号来实现。由于大多数命令都以参数的形式在命令行上指定输人文件,所以输人重定向并不常使用。但是,少数命令(如patch命令)不接受文件名作为参数,必须使用输人重定向。

3、管道

管道是Shell的另一大特征,其将多个命令前后连接起来形成一个管道流。管道流中的每一个命令都作为一个单独的进程运行,前一命令的输出结果传送到后一命令作为输入,从左到右依次执行每个命令。利用"|"符号实现管道功能。综合利用重定向和管道能够完成一些比授复杂的操作。

4、历史记录

利用Shell命令进行操作时,用户需要多次反复输人相关的命令行,这比较费时且不太方便。为避免用户的重复劳动,Shell提供历史记录别名自动补全等功能,简化Shell命令输人工作。

1. 历史记录简介

Shell记录一定数量的已执行的命令,当需要再次执行时,不用再次输人,直接调用即可。用户主目录中名为.bash_history的隐藏文件,用于保存曾执行过的Shell命令。每当用户退出登录或关机后,本次操作中使用过的所有Shell命令就会追加保存在该文件中。Bash默认最多保存1000条Shell命令的历史记录。

2. 利用历史记录的方法

  • 使用上下方向键、【PgUp】或【PgDn】键,在Shell命令提示符后出现已执行过的命令。直接按【Enter】键就可再次执行这一命令,也可以对历史记录进行编辑,修改为用户所需的命令后再执行。

  • 先利用history命令查看Shell命令的历史记录,然后调用已执行过的Shell命令。

格式:history [数字]

功能:查看Shell命令的历史记录。如果不使用数字参数,则查看Shell命令的所有历史记录。如果使用数字参数,则查看最近执行过的指定个数的Shell命令。

3. 再次执行已执行过的Shell命令

格式:!序号

功能:执行指定序号的Shell命令,而"!!"命令再次执行刚刚执行过的那个Shell命令。

5、别名

別名是按照Shell命令标准格式所写命令行的缩写,用以减少输人,方便使用。用户只要输人别名命令,就执行对应的Shell命令。alias命令可查看设置别名。

格式:alias [别名=1标准Shell命令行,]

功能:查看和设置别名。

1. 查看别名

无参数的alias命令查看用户可使用的所有别名命令及其对应的标准Shell命令
Shell规定:当别名命令与标准Shell命令同名时,別名命令优先于标准Shell命令执行。也就是说,在Shell命令的提示符后输入ls命令时,其真正执行的并不是标准的ls命令,而是ls别名命令,即执行ls --color= auto命令。如果要使用标准的Shell命令,需要在命令名前添加"\“字符,即输人”\ls"命令将执行标准的ls命令。

2. 设置别名

使用带参数的alias命令可设置用户的别名命令。在设置別名时,"="的两边不能有空格,并在标准Shell命令行的两端使用单引号。将用户经常使用的命令设置为别名命令将大大提高工作效率。

6、自动补全

自动补全,是指用户在输人命令时不需要输人完整的命令,只需要输人前几个字母,系统会自动找出匹配的文件或命令,避免输入时出现差错。利用【Tab】键实现自动补全功能。

  1. 自动补全文件或目录名
  2. 自动补全命令名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值