Internal Command and External Command
Internal Command is a part of the Shell program, it consists of some simple Linux system command, which will be recognized by the Shell program and executed within the Shell program. Usually, Shell gets loaded into memory when a Linux system startup.
Internal Command is written within bash’s source code, so it run faster than external command as interpreting an internal command does not need to create a new child thread. Some of most common internal command includes
On the other hand, external commands usually are the functional programs in Linux operating system. While having powerful functionality, external commands usually also mean big and complex programs. Therefore, they are not loaded on Linux startup but are loaded on use.
Usually instances of external command are not included in Shell, but they let Shell control the progress of the program execution. They are usually stored under
type command can be used to distinguish internal and external commands.
cd is a shell builtin
type -a ls
ls is aliased to `ls --color=tty'
ls is /bin/ls
It is clear to see,
cd is an internal command while
ls is an external command.
Frequently Used Commands
cd: change directory
~: change to home directory, same as using
cd without an argument.
~[USERNAME]: change to the home directory of given user
-:change to the last directory
type: print the type of commands
info: online documentation
SPACE: next screen
ENTER: next line
k: previous screen
b: previous line
?keyword: search previous
n: next match
N: preious match