了解Shell命令及其在Linux中的用法的不同分类

当涉及到对你的Linux系统的绝对控制,那么没有什么可以接近命令行界面(CLI)。 为了成为一个Linux的电力用户,必须了解不同类型的外壳命令,并使用它们从终端的适当方式。

在Linux中,有几种类型的命令,对于新的Linux用户,知道不同命令的含义可以高效和精确地使用。 因此,在本文中,我们将介绍Linux中各种shell命令的分类。

推荐阅读: 5有趣的命令行提示和技巧在Linux中-第1部分

一个重要的事情要注意的是,命令行界面不同于shell,它只提供了一种方法来访问shell。 shell也是可编程的,这使得可以使用命令与内核通信。

Linux命令的不同分类属于以下类别:

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

当你运行一个命令,Linux的通过存储在目录中搜索$ PATH环境变量从左至右为特定命令的可执行文件。

您可以查看目录$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*

2. Linux别名

这些是用户定义的命令,他们使用的是内置的命令别名外壳创建的,并且包含一些选项和参数等的shell命令。 这些想法基本上对冗长的命令使用新名称和短名称。

建议阅读: (!)符号或Operator 10惊人的,神秘的用途在Linux命令

创建别名的语法如下:

$ 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编程,字如那么如果 网络连接 案例 ,ESAC, 否则直到和其他许多人都壳保留字。 如描述所暗示的,它们对壳具有专门的意义。

您可以通过列出所有的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

推荐阅读: 10有用的Linux链接运营商实际的例子

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 updatesudo apt dist-upgrade在命令行中,我们写了一个简单的外壳函数来执行这两个命令作为单个命令, upgrade_system在脚本中。

推荐阅读: 5 Shell脚本为Linux新手学习Shell编程

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

$ chmod +x shell_functions.sh
$ ./shell_functions.sh

Linux Shell函数脚本

5. Linux Shell内置命令

这些是内置在shell中的Linux命令,因此您无法在文件系统中找到它们。 它们包括PWD,CD,BG, 别名历史类型来源阅读退出等等。

您可以列出或检查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内置命令的用法:

  1. 15'pwd'Linux中的命令示例
  2. 15'cd'Linux中的命令示例
  3. 学习Linux的“历史”命令的力量

结论

作为Linux用户,知道正在运行的命令的类型总是很重要。 我相信,凭借精确的和简单的理解之上,包括一些相关的说明解释,你可能有一个很好的理解 。

您可以通过下面的评论部分坚持任何问题或补充的想法,你想提供给我们。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏