Comandos internos de Bash y como diferenciarlos

Cuando usamos bash como shell hemos de saber que contiene una serie de ordenes internas, es decir, no son programas que encontraremos en por ejemplo /bin/ o /sbin/ . Son ordenes que incorpora bash internamente.

Estas ordenes internas de bash pueden conocerse mirando el manual builtin.

$ man builtin

Bash así como muchas otras Shells proveen de un pequeño set de comandos internos (built-in commands o builtins). Estas ordenes o comandos pueden ser implementadas de forma externa usando otras herramientas.

Por ejemplo podemos usar echo de bash o echo si lo tenemos en el sistema. Es posible usar pwd, kill, history como ordenes no internas de bash pero por ejemplo cd, break, continue y exec no pueden ser implementadas fuera de la shell ya que directamente manipulan la misma shell.
De todos modos es preferible usar los comandos internos de bash siempre que nos sea posible y no tengamos problemas ya que ofreceremos de algún modo mayor compatibilidad en scripts por ejemplo siendo estos menos dependientes de otras herramientas.

Veamos unas de las más utilizadas y luego como distinguir si un comando es una orden interna de bash o estamos utilizando un programa que está en el PATH:

alias
bg
bind
break
builtin
case
cd
command
continue
declare
dirs
disown
echo
enable
eval
exec
exit
export
fc
fg
for
getopts
hash
help
history
if
jobs
kill
let
local
logout
popd
pushd
pwd
read
readonly
return
set
shift
shopt
source
suspend
test
times
trap
type
typeset
ulimit
umask
unalias
unset
until
wait
while

Muchas de ellas lo mismo pensabas que eran programas aparte pero si usas type nombrecomando podrás comprobar que no.

Ejemplo:

$ type cd

En esa captura vemos que por ejemplo wget no es un comando interno de bash.

Un comentario sobre “Comandos internos de Bash y como diferenciarlos

  1. No funciona:
    $ man builtin
    No manual entry for builtin

    Pero si:

    $man bash

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *