Linux - Bash shell的功能;内建命令type

命令编修能力 (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 这个命令来观察即可!举例来说:

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

范例一:查询一下 ls 这个命令是否为 bash 内建?
[[email protected] ~]# type ls
ls is aliased to `ls --color=tty‘ <==未加任何参数,列出 ls 的最主要使用情况
[[email protected] ~]# type -t ls
alias                             <==仅列出 ls 运行时的依据
[[email protected] ~]# type -a ls
ls is aliased to `ls --color=tty‘ <==最先使用 aliase
ls is /bin/ls                     <==还有找到外部命令在 /bin/ls

范例二:那么 cd 呢?
[[email protected] ~]# type cd
cd is a shell builtin             <==看到了吗? cd 是 shell 内建命令

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 17:04:54

Linux - Bash shell的功能;内建命令type的相关文章

Linux内建命令

内建命令 内建命令指的就是包含在 Bash 工具集中的命令.这主要是考虑到执行效率的问题--内建命令将比外部命令的执行得更快,外部命令通常需要 fork 出一个单独的进程来执行.另外一部分原因是特定的内建命令需要直接存取 shell 内核部分. 一个内建命令通常与一个系统命令同名,但是 Bash 在内部重新实现了这些命令.比如,Bash 的 echo 命令与 /bin/echo 就不尽相同,虽然它们的行为绝大多数情况下是一样的. 关键字的意思就是保留字.对于 shell 来说关键字有特殊的含义,

Linux编程 10 (shell外部命令与内建命令,alias ,type命令)

一.  内部命令 Linux命令有内部命令(内建命令)和外部命令之分,内部命令和外部命令功能基本相同,但也有些细微差别.内部命令不需要使用子进程来执行,它们已经和shell编译成一体,作为shell工具的组成部分存在.不需要借助外部程序文件来运行.它们是一些比较简单的linux系统命令,如exit,history,cd,echo等. 要分区是外部命令还是内部命令可以使用type  来查看,如下图查看cd是内部还是外部命令: 1.1命令别名 alias 命令也是一个内建命令,允许你为常用的命令和参

Linux Shell的父子关系及内建命令

Linux Shell的父子关系及内建命令 Shell的类型 系统启动什么样的shell程序取决于你个人的用户ID配置.在/etc/passwd文件中,在用户ID记录的第7个字段中列出了默认的shell程序.只要用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器,默认的shell程序就会开始运行. 在下面的例子中,用户xiaoyu使用了GNU bash shell作为自己的默认shell程序: 1 [email protected]:/$ cat /etc/passwd 2 [...] 3

Bash Shell内建命令和保留字

Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与readline函数或宏捆绑break保留字,跳出for.while.until.select循环builtin调用命令的内建命令格式,而禁用同名的函数.或者同名的扩展命令case保留字,多重选择cd切换当前工作目录command找出内建和外部命令:寻找内建命令而非同名函数continue保留字,到达下次f

shell学习笔记之一(shell内建命令)

注释: # 注意:shell 文件开头的#!/bin/bash 里的#不是注释 运行: 1.bash shell.sh 2.chmod +x shell.sh -> ./shell.sh 3.添加到PATH 变量中 4.. ./shell.sh 排错: 1.语法错误 运行时会有提示 2.逻辑错误 使用echo 打印, sleep number:睡眠number 秒,降低循环速度 使用bash -x 来调试shell 脚本 第三方工具:bashdb 内建命令: 1.判断一个命令是否是内建的:typ

Shell所有内建命令

参考自 Linux命令大全 查看shell命令是否是shell内建命令,可使用type来判断: $ type cdcd is a shell builtin$ type pingping is /bin/ping 所有的内建命令如下: sh shell命令解释器 trap 指定在接收到信号后将要采取的动作 let 简单的计算器 seq 以指定增量从首数开始打印数字到尾数 tput 通过terminfo数据库对终端会话进行初始化和操作 apropos 在 whatis 数据库中查找字符串 set

shell的内建命令和外部命令

shell的内建命令和外部命令 Shell执行的命令可以分为内建命令(built-in)和外部命令(external),前者是构建在shell内部:后者是一个独立的文件(可以是二进制文件,也可以是一个脚本). 内建命令的执行比较简单,由当前shell本身来执行,例如echo, eval, exec, export, readonly, read, shift, wait和点(.)等: 外部命令的执行比较复杂,shell进程会fork一个子进程,父进程随后挂起,然后在子进程中exec加载外部文件,

bourne again shell内建命令

内建命令(build-in commands)是shell build-in的命令,当内建命令使用的时候,shell将会直接执行,无需新建子进程.内建命令被用来创建一些功能性的或者便捷性的组建. bash支持3中类型的内建命令 Bourne Shell build-ins : , . break cd continue eval exec exit export getopts hash pwd readonly return set shift test [ times trap umask

启用或关闭shell内建命令

查看命令的类型:type [[email protected] ~]# type cd cd is a shell builtin [[email protected] ~]# type ls ls is aliased to `ls --color=auto' [[email protected] ~]# type -a ls ls is aliased to `ls --color=auto' ls is /bin/ls [[email protected] ~]# 查看系统上是否有内建命令