5 种不同类型的 Shell 命令及其在 Linux 中的用法

当谈到获得对 Linux 系统的绝对控制时,没有什么比命令行界面 (CLI) 更接近的了。为了,必须了解命令以及从终端使用它们的适当方法。

在Linux中,有对于 Linux 新用户来说,了解不同命令的含义可以高效、准确地使用。因此,在本文中,我们将介绍 Linux 中 shell 命令的各种分类。

需要注意的一件重要事情是,命令行界面与 shell 不同,它仅提供一种访问 shell 的方法。 shell 也是可编程的,因此可以使用命令与内核进行通信。

Linux命令的不同分类分为以下几类:

1. 程序可执行文件(文件系统命令)

当您运行命令时,Linux 会搜索存储在从左到右表示该特定命令的可执行文件。

您可以查看目录中的$PATH如下:

echo $PATH

/home/aaronkilik/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

按照上面的顺序,目录/home/aaronkilik/bin将首先搜索,然后/usr/local/sbin等等,顺序在搜索过程中很重要。

文件系统命令示例/usr/bin目录:

ll /bin/

样本输出:

total 16284
drwxr-xr-x  2 root root    4096 Jul 31 16:30 ./
drwxr-xr-x 23 root root    4096 Jul 31 16:29 ../
-rwxr-xr-x  1 root root    6456 Apr 14 18:53 archdetect*
-rwxr-xr-x  1 root root 1037440 May 17 16:15 bash*
-rwxr-xr-x  1 root root  520992 Jan 20  2016 btrfs*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfs-calc-size*
lrwxrwxrwx  1 root root       5 Jul 31 16:19 btrfsck -> btrfs*
-rwxr-xr-x  1 root root  278376 Jan 20  2016 btrfs-convert*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfs-debug-tree*
-rwxr-xr-x  1 root root  245368 Jan 20  2016 btrfs-find-root*
-rwxr-xr-x  1 root root  270136 Jan 20  2016 btrfs-image*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfs-map-logical*
-rwxr-xr-x  1 root root  245368 Jan 20  2016 btrfs-select-super*
-rwxr-xr-x  1 root root  253816 Jan 20  2016 btrfs-show-super*
-rwxr-xr-x  1 root root  249464 Jan 20  2016 btrfstune*
-rwxr-xr-x  1 root root  245368 Jan 20  2016 btrfs-zero-log*
-rwxr-xr-x  1 root root   31288 May 20  2015 bunzip2*
-rwxr-xr-x  1 root root 1964536 Aug 19  2015 busybox*
-rwxr-xr-x  1 root root   31288 May 20  2015 bzcat*
lrwxrwxrwx  1 root root       6 Jul 31 16:19 bzcmp -> bzdiff*
-rwxr-xr-x  1 root root    2140 May 20  2015 bzdiff*
lrwxrwxrwx  1 root root       6 Jul 31 16:19 bzegrep -> bzgrep*
-rwxr-xr-x  1 root root    4877 May 20  2015 bzexe*
lrwxrwxrwx  1 root root       6 Jul 31 16:19 bzfgrep -> bzgrep*
-rwxr-xr-x  1 root root    3642 May 20  2015 bzgrep*

这些是用户定义的命令,它们是使用shell内置命令并包含有一些选项和参数。这个想法基本上是对冗长的命令使用新的短名称。

创建一个的语法别名如下:

alias newcommand='command -options'

列出所有别名在您的系统上,发出以下命令:

alias -p

alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

要在 Linux 中创建新别名,请查看以下示例。

alias update='sudo apt update'
alias upgrade='sudo apt dist-upgrade'
alias -p | grep 'up'
在 Linux 中创建别名

但是,我们上面创建的别名仅在系统重新启动时暂时起作用,下次启动后将不再起作用。您可以在您的中设置永久别名.bashrc文件如下图所示。

在 Linux 中设置永久别名

添加后,运行以下命令进行激活。

source ~/.bashrc

3.Linux Shell 保留字

在 shell 编程中,诸如此类的词如果,然后,,为了,尽管,案件,埃萨克,别的,直到,还有许多其他词是 shell 保留字。正如描述所暗示的,它们对于 shell 具有特殊的含义。

您可以使用以下命令列出所有 Linux shell 关键字type命令如图:

type if then fi for while case esac else until

样本输出:

if is a shell keyword
then is a shell keyword
fi is a shell keyword
for is a shell keyword
while is a shell keyword
case is a shell keyword
esac is a shell keyword
else is a shell keyword
until is a shell keyword

4.Linux Shell 函数

shell 函数是在当前 shell 中集体执行的一组命令。函数有助于在 shell 脚本中执行特定任务。在脚本中编写 shell 函数的常规形式是:

function_name() {
command1
command2
…….
}

或者,

function function_name {
command1
command2
…….
}

我们来看看如何在名为的脚本中编写 shell 函数shell_functions.sh

#!/bin/bash 

#write a shell function to update and upgrade installed packages 
upgrade_system(){
        sudo apt update;
        sudo apt dist-upgrade;
}

#execute function
upgrade_system

而不是从命令行执行以下两个命令。

sudo apt update
sudo apt dist-upgrade

我们编写了一个简单的 shell 函数来将这两个命令作为单个命令执行,upgrade_system在脚本内。

保存文件,然后使脚本可执行。最后,运行如下:

chmod +x shell_functions.sh
./shell_functions.sh
Linux Shell 函数脚本

5.Linux Shell 内置命令

shell 中内置有 Linux 命令,因此您在文件系统中找不到它们。他们包括,,,,,,来源,,出口,以及许多其他人。

您可以使用以下命令列出或检查 Linux 内置命令type命令如图:

type pwd
pwd is a shell builtin
type cd
cd is a shell builtin
type bg
bg is a shell builtin
type alias
alias is a shell builtin
type history
history is a shell builtin

了解一些 Linux 内置命令的用法:

结论

作为 Linux 用户,了解您正在运行的命令类型始终很重要。相信通过上面精确、通俗易懂的解释,再加上一些相关的图解,你应该对Linux命令的各类分类有了一个很好的了解。

您还可以通过下面的评论部分联系我们,了解您想向我们提供的任何问题或补充想法。