命令编修能力 (history):
bash 的功能里头,相当棒的一个就是『他能记忆使用过的命令!
』 这功能真的相当的棒!由于我仅仅要在命令列按『上下键』就能够找到前/后一个输入的命令!
而在非常多 distribution 里头。默认的命令记忆功能能够到达 1000 个!也就是说, 你以前下达过的命令差点儿都被记录下来了。
这么多的命令记录在哪里呢?在你的家文件夹内的 .bash_history 啦!
只是,须要留意的是。~/.bash_history 记录的是前一次登陆曾经所执行过的命令, 而至于这一次登陆所执行的命令都被缓存在内存中,当你成功的注销系统后。该命令记忆才会记录到 .bash_history 其中!
这有什么功能呢?最大的优点就是能够『查询以前做过的举动。』 如此能够知道你的执行步骤。那么就能够追踪你曾下达过的命令。以作为除错的工具! 但如此一来也有个烦恼。就是假设被黑客入侵了。那么他仅仅要翻你以前执行过的命令, 刚好你的命令又跟系统有关 (比如直接输入 MySQL 的password在命令列上面),那你的主机可就伤脑筋了!
究竟记录命令的数目越多还是越少越好?这部份是见仁见智啦,没有一定的答案的。
命令与文件补全功能: ([tab] 按键的优点)
[Tab] 接在一串命令的第一个字的后面,则为命令补全。
[Tab] 接在一串命令的第二个字以后时。则为『文件补齐』!
命令别名配置功能: (alias)
能够在命令列输入 alias 就能够知道眼下的命令别名有哪些了。也能够直接下达命令来配置别名:
工作控制、前景背景控制: (job control, foreground, background)
使用前、背景的控制能够让工作进行的更为顺利!
至于工作控制(jobs)的用途则更广, 能够让我们随时将工作丢到背景中执行!而不怕不小心使用了 [Ctrl] + c 来停掉该程序。真是好样的!
此外,也能够在单一登录的环境中。达到多任务的目的呢!
程序化脚本: (shell scripts)
在 DOS 年代还记得将一堆命令写在一起的所谓的『批处理文件』吧?在 Linux 底下的 shell scripts 则发挥更为强大的功能,能够将你平时管理系统常须要下达的连续命令写成一个文件, 该文件而且能够透过对谈交互式的方式来进行主机的侦測工作!也能够藉由 shell 提供的环境变量及相关命令来进行设计。曾经在 DOS 底下须要程序语言才干写的东西,在 Linux 底下使用简单的 shell scripts 就能够帮你达成了!
通配符: (Wildcard)
除了完整的字符串之外。 bash 还支持很多的通配符来帮助用户查询与命令下达。 举例来说,想要知道 /usr/bin 底下有多少以 X 为开头的文件吗?使用:『 ls -l /usr/bin/X* 』就行知道啰~此外。还有其它可供利用的通配符。 这些都可以加快使用者的操作呢!
Bash shell 的内建命令: type
怎么知道这个命令是来自于外部命令(指的是其它非 bash 所提供的命令) 或是内建在 bash 其中的呢? 嘿嘿!
利用 type 这个命令来观察就可以!
举例来说:
[root@www ~]# type [-tpa] name 选项与參数: :不加不论什么选项与參数时,type 会显示出 name 是外部命令还是 bash 内建命令 -t :当增加 -t 參数时,type 会将 name 以底下这些字眼显示出他的意义: file :表示为外部命令。 alias :表示该命令为命令别名所配置的名称; builtin :表示该命令为 bash 内建的命令功能; -p :假设后面接的 name 为外部命令时。才会显示完整文件名称。 -a :会由 PATH 变量定义的路径中。将全部含 name 的命令都列出来,包括 alias 范例一:查询一下 ls 这个命令是否为 bash 内建? [root@www ~]# type ls ls is aliased to `ls --color=tty' <==未加不论什么參数,列出 ls 的最主要使用情况 [root@www ~]# type -t ls alias <==仅列出 ls 执行时的根据 [root@www ~]# type -a ls ls is aliased to `ls --color=tty' <==最先使用 aliase ls is /bin/ls <==还有找到外部命令在 /bin/ls 范例二:那么 cd 呢? [root@www ~]# type cd cd is a shell builtin <==看到了吗? cd 是 shell 内建命令 |