linux中Bash使用技巧有哪些

69次阅读
没有评论

共计 3151 个字符,预计需要花费 8 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 linux 中 Bash 使用技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

BASH 功能介绍

1. 命令历史

Bash 拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己家目录下的.bash_history   这样一个隐藏文件中。查看这些命令历史记录的方法有很多,可以通过直接打开文件来查看,也可以通过键盘的上下键来上翻或下翻历史记录,还可以通过 history 命令查看历史记录,所有的命令历史都有记录编号。命令历史能够记录的信息数量由 HISTSIZE 变量所决定,CentOS  6.3 默认通过 /etc/profile 文件定义了 HISTSIZE=1000,也就是最多可以记录最近所使用的 1000 条命令,当有第 1001 条命令执行时 *** 条命令会被覆盖,执行 history  - c 命令可以清空所有的历史记录。

记录命令历史的除了可以查看历史记录外,还可以在需要时直接调用历史记录再次执行该命令:

1). 上下键翻阅历史命令,找到合适的命令后直接回车即可执行。

2). 输入!string 调用命令历史(string 为关键字),如!vim 将调用 *** 一次执行的以 vim 开头的命令。或者通过!n 来准确定位历史记录,如!242 将直接调用命令历史的第 242 条记录并执行。

3). 通过 Ctrl+ r 快捷键打开搜索功能,接着输入关键字即可在命令历史中搜索相关命令,回车完成执行操作。如果没有搜索到适合的命令按 ESC 键退出搜索。

2. 命令别名

在 CentOS  6.3 系统中我们可以直接使用 ll 命令来显示文件的详细信息,其实系统中并没有 ll 这样一个命令,它仅是被提前定义好的一个别名而已,别名的好处是可以把本来很长的指令简化缩写,为常用且复杂的命令及选项创建别名可以大大提高日常工作效率。

3. 管道与重定向

Bash 的标准输入设备是键盘、鼠标、手写板等设备,标准输出为显示器,一般我们通过键盘输入命令并执行,系统将返回信息显示在屏幕上,默认不管是正确的还是错误的信息都将输出至显示器。标准输入的文件描述符为 0,标准输出的文件描述符为 1,错误输出的文件描述符为 2。但有时我们需要改变这样的标准输入与输出方式,Linux 中我们可以使用重定向符 (、、、、|) 重新定义输入与输出。

管道使得我们可以将多条命令连接在一起使用,它的作用是将一个命令的标准输出重定向给下一个命令并作为该命令的标准输入。例如,使用 ifconfig eth0 |  grep lsquo;inet  addr rsquo; 命令过滤包含 IP 地址的行,ifconfig 本身会输出大量网络接口的信息,由于这里使用了管道符号 (|) 所以 ifconfig 命令的所有输出都将作为 grep 命令的输入内容,最终实现过滤包含 IP 地址的行。

对于标准的输出信息是输出至显示器,而有时你可能并不需要这些输出信息,又或者是暂时不需要在屏幕上看到这些信息; 另外对于输入一般是通过键盘输入,而有时你或许希望可以从文件中读取输入信息。输出重定向可以使用 或 符号,使用 可以将输出导入至文件,如果文件不存在则创建该文件,如果文件已经存在则会覆盖该文件的内容; 而使用 可以将输出追加至文件; 另外,对应错误信息的重定向需要使用 2 或 2 符号实现。输入重定向可以使用 符号,它可以可以帮助我们从文件中提取输入信息。

以下通过几个简单的实例演示重定向的使用方法:

4. 快捷键

Bash 准备了大量的快捷键为用户使用,熟练掌握这些快捷键的全部或部分会使你在工作中受益颇多,开始的时候你可能需要花费大量的时间来记忆这些快捷键,但一旦你记住了他们,你的工作效率会直线上升。下面列出了常用的快捷键及其功能描述。

BASH 使用技巧

1. 重定向技巧

1). 如果你编写了一个脚本实现自动修改系统帐号的密码,那么默认当密码修改成功后系统会提示 successfully 这样的提示信息,如果需要修改 20 个账户密码则显示 20 条这样的信息。像这样的案例,大量的成功提示信息并不是我们关注的重点,管理员更多的是关心错误提示。所以这时可以考虑将标准正确输出屏蔽,Linux 中提供了一个特殊设备 /dev/null,它很像太阳黑洞,任何东西往里写入都将永远消失。对大量无意义的输出信息可以通过管道导入至 /dev/null 设备。

2). 标准输出与错误输出分离重定向

很多时候自动运行的脚本编写完成后,是要在深夜服务器负载 *** 时以无人职守方式运行的,那么当管理员去检查脚本运行情况时会希望看到哪些命令执行成功了,哪些命令出现了问题,并且为了方便管理需要将正确输出与错误输出分写保存在两个不同的记录文件中,那么分离重定向就显得尤为重要了。下面我们检查系统中是否存在 tom 用户,如果存在则将 tom 相关信息记录至 user 文件中,否则记录至 error 文件中:

2. 命令序列

在 Linux 中我们可以使用控制字符 (;、、||、) 来控制命令的执行方式。其中 [] 控制符使得命令开启一个子 Shelll 并在后台执行; 使用 [;] 控制字符可以把多个命令组合,但多个命令之间没有任何逻辑上的关系,仅按循序执行; 使用 [] 控制字符也可以将多个命令组合,但仅当前一个命令执行成功后才会执行 [] 控制符后面的命令;[||]控制字符的作用与 [] 刚好相反,仅当前一个命令执行失败才会执行 [||] 控制符后面的命令。下面通过实例演示。

1). 火狐浏览器通过前端启动,使得当前 Shell 将暂时无法使用:

[root@centos6 ~]# firefox

2). 后台运行浏览器,不影响当前 Shell 的使用:

[root@centos6 ~]# firefox  

3). 所有命令按顺序执行(不管前面的命令是否成功,后面的命令一定正常执行):

[root@centos6 ~]# ls /tmp ; ls /root ; ls /home

4). 如果某个文件存在则显示该文件内容,否则报错(仅当 ls 执行成功才会执行 cat):

[root@centos6 ~]# ls test.txt   cat test.txt

5). 如果有 gedit 编辑器则打开该程序,否则打开 vim 编辑器:

[root@centos6 ~]# gedit || vim

6). 如果 id tom 执行成功则说明用户存在屏幕将显示 Hi,tom,否则显示 No such user:

[root@centos6 ~]# id tom  /dev/null   echo “Hi,tom” || echo “No such user”

实例 5 首先通过 重定向符将 id 命令的所有输出屏蔽,让后使用 与 || 来判断 id 命令是否执行成功,成功就显示问候语否则显示没有该用户。

3. 作业控制

Bash 环境中通过命令开启进程的时候使用 符可以使得该进程进入后台执行,或者一个命令执行后使用 Ctrl+ z 快捷键可以将该进程放入后台并暂停执行,以后随时使用 jobs 命令可以查看这些后台进程,并且会为每个这样的进程分配一个编号,通过 fg   编号 的形式可以将这些后台进程再次调回前台执行。

[root@centos6 ~]# firefox   [root@centos6 ~]# jobs [1]+ Running firefox   [root@centos6 ~]# fg 1

4. 花括号 {} 的使用

通过括号扩展可以生产命令行或脚本需要的字串,括号中可以包含连续的序列或使用逗号分割的多个项目,连续的序列包括一个起点与一个终点并使用.. 分割。接下来看看具体的语法格式案例:

以上是“linux 中 Bash 使用技巧有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计3151字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)