当谈到获得对 Linux 系统的绝对控制时,没有什么比命令行界面 (CLI) 更接近的了。 为了成为一名 Linux 高级用户,必须了解不同类型的 shell 命令以及从终端使用它们的适当方法。
Linux 中有多种命令,对于 Linux 新用户来说,了解不同命令的含义可以高效、准确地使用。 因此,在本文中,我们将介绍 Linux 中 shell 命令的各种分类。
需要注意的一件重要事情是,命令行界面与 shell 不同,它仅提供一种访问 shell 的方法。 shell 也是可编程的,因此可以使用命令与内核进行通信。
Linux命令的不同分类分为以下几类:
1. 程序可执行文件(文件系统命令)
当您运行命令时,Linux 从左到右搜索 $P新高 环境变量中存储的目录,以查找该特定命令的可执行文件。
您可以查看目录中的 $P新高
如下:
echo $P新高
/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 内置命令创建的,并包含其他带有一些选项和参数的 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 编程中,诸如 if、then、fi、for、while、case、esac、else、until 等单词是 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 命令,因此您在文件系统中找不到它们。 它们包括 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 用户,了解您正在运行的命令类型始终很重要。 相信通过上面精确、通俗易懂的解释,再加上一些相关的图解,你对Linux命令的各类分类应该已经有了一个很好的了解。
您还可以通过下面的评测部分联系我们,了解您想向我们提供的任何问题或补充想法。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载