命令编修能力 (history):

bash 的功能里头,相当棒的一个就是『他能记忆使用过的命令!』 这功能真的相当的棒!因为我只要在命令列按『上下键』就可以找到前/后一个输入的命令!而在很多 distribution 里头,默认的命令记忆功能可以到达 1000 个!也就是说, 你曾经下达过的命令几乎都被记录下来了。



        这么多的命令记录在哪里呢?在你的家目录内的 .bash_history 啦! 不过,需要留意的是,~/.bash_history 记录的是前一次登陆以前所运行过的命令, 而至于这一次登陆所运行的命令都被缓存在内存中,当你成功的注销系统后,该命令记忆才会记录到 .bash_history 当中!



        这有什么功能呢?最大的好处就是可以『查询曾经做过的举动!』 如此可以知道你的运行步骤,那么就可以追踪你曾下达过的命令,以作为除错的工具! 但如此一来也有个烦恼,就是如果被黑客入侵了,那么他只要翻你曾经运行过的命令, 刚好你的命令又跟系统有关 (例如直接输入 MySQL 的密码在命令列上面),那你的主机可就伤脑筋了! 到底记录命令的数目越多还是越少越好?这部份是见仁见智啦,没有一定的答案的。

命令与文件补全功能: ([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 内建命令

最新文章

  1. php.h: No such file or directory
  2. MySql错误代码1045的解决方案
  3. [java] 可视化日历的实现(基于Calendar类 )
  4. String 与StringBuilder有什么区别
  5. win7下VS2015+opencv3.1.0配置
  6. Spring AOP 深入剖析
  7. Oracle忽略hint的几种情形
  8. Python Tricks 若干
  9. 在Android应用中实现Google搜索的例子
  10. mybatis_helloworld(2)_源码
  11. 功能整合(一):滚动条的变相隐藏、js控制div的渐变显示、滚动条监听
  12. Java并发框架——AQS阻塞队列管理(二)——自旋锁优化
  13. Refit在ASP.NET Core中的实践
  14. Luogu_1944 最长括号匹配
  15. 安卓adb工具的安装方法
  16. Ubuntu 16.04下Samba服务器搭建和配置(配截图)
  17. CentOS 7 安装GitLab
  18. __NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xb000000000000003
  19. 在Python中进行自动化单元测试的教程
  20. isinstance, type, issubclass

热门文章

  1. [端口扫描]S扫描器跨网段扫描
  2. ToolBar与AppcompatAcitivity实现浸入式Statusbar效果
  3. Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值
  4. Android开发学习之路--网络编程之xml、json
  5. 深入分析Spring混合事务
  6. 手动开发动态资源之servlet初步
  7. CentOS下Mariadb表名大小写的问题
  8. .NET 连接SQL Server2012遇到的连接出错问题解析
  9. SQL Server性能优化与管理的艺术 附件下载地址
  10. MariaDB存储引擎