认识BASH这个Shell

20.11.22

合法shell

  • /bin/sh (已经被 /bin/bash 所取代)
  • /bin/bash (就是 Linux 默认的 shell)
  • /bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)
  • /bin/tcsh (整合 C Shell ,提供更多的功能)
  • /bin/csh (已经被 /bin/tcsh 所取代)
  • /bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)

Bash shell

  • 命令编修能力 (history)

    • 记录命令
    • ~/.bash_history 记录的是前一次登陆以前所运行过的命令
    • 当前这次登陆所运行的命令都被缓存在内存中,注销后才会记录到 ~/.bash_history
  • 与文件补全功能 ([tab] 按键的好处)

    • [Tab] 接在一串命令的第一个字的后面,则为命令补全;
    • [Tab] 接在一串命令的第二个字以后时,则为『文件补齐』!
  • 命令别名配置功能 (alias)

    • alias 就可以知道目前的命令别名有哪些
    • 例:alias lm='ls -al'
  • 任务管理、前台、后台控制 (job control, foreground, background)

  • 程序化脚本 (shell scripts)

  • 通配符 (Wildcard)

    • 想要知道 /usr/bin 底下有多少以 X 为开头的文件吗?使用:『 ls -l /usr/bin/X* 』

Bash shell 的内建命令: type

type [-tpa] name:查看是否为内置命令

选项与参数:
:不加任何选项与参数时,type 会显示出 name 是外部命令还是 bash 内建命令
-t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:
file :表示为外部命令;
alias :表示该命令为命令别名所配置的名称;
builtin :表示该命令为 bash 内建的命令功能;
-p :如果后面接的 name 为外部命令时,才会显示完整文件名;
-a :会由 PATH 变量定义的路径中,将所有含 name 的命令都列出来,包含 alias


命令的下达

范例:如果命令串太长的话,如何使用两行来输出?
[vbird@www ~]# cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root

需要特别留意, [Enter] 按键是紧接着反斜杠 () 的,两者中间没有其他字符。 因为 \ 仅跳脱『紧接着的下一个字符』而已!

posted @ 2020-11-22 19:17  榕霖  阅读(124)  评论(0编辑  收藏  举报