当涉及到对你的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 update
和sudo 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内置命令的用法:
结论
作为Linux用户,知道正在运行的命令的类型总是很重要。 我相信,凭借精确的和简单的理解之上,包括一些相关的说明解释,你可能有一个很好的理解 。
您可以通过下面的评论部分坚持任何问题或补充的想法,你想提供给我们。