Linux 终端特殊符号含义大全


风晓
风晓 2024-01-05 11:17:33 65033 赞同 0 反对 0
分类: 资源
Linux特殊符号使用及含义


总结
Linux 终端中有许多特殊符号,本文对常用的进行了总结:

$ 表示变量/普通终端用户:用于引用变量的值/表示终端中的普通用户。
# 表示注释/超级用户:用于在脚本中注释代码/表示终端中的超级用户。
/ :根目录/目录分隔符。
~ :当前用户的主目录。
. :当前目录。
.. :上级目录。
< 输入重定向符号:将指定文件内容输入到命令中。
> 输出重定向符号:将命令输出重定向到指定文件。
>> 输出追加符号:用于将命令的输出追加到文件末尾。
<< 输入追加符号:一般用于输入多行文本。
; 命令分隔符:可以在一行中执行多个命令。
: 值/路径分隔符:分割标签和值,或者分割路径,在bash脚本中表示无操作。
& 后台运行符号:将命令放到后台运行。
| 管道符号:将一个命令的输出作为另一个命令的输入。
&& 多命令符号:用于在同一行上执行多个命令。它表示只有当前一个命令成功执行后,才会执行下一个命令。
|| 多命令符号:用于在同一行上执行多个命令,它表示只有当前一个命令执行失败时,才会执行下一个命令。
\ 转义符号:用于转义特殊字符。
! 表示历史命令:用于执行历史命令。
^ 脱字符:表示控制字符,用于快速替换前面指令或者进行正则匹配。
() 子命令符号:用于在当前 shell 中执行子命令。
* 通配符:表示任意个任意字符。
? 通配符:表示一个任意字符。
[] 字符集合:用于匹配指定字符集合中的任意一个字符。
{} 大括号符号:用于扩展字符串或命令序列。
终端特殊符号
$ 普通用户
$ 符号是Linux终端中的一个提示符,它通常出现在命令行的开头。它的作用是提示用户可以输入命令了。当你看到 $ 符号出现在命令行上时,就表示系统准备好了接受你的输入,你可以输入任何有效的命令。

另外, $ 还可以用于表示当前用户是普通用户而非超级用户(即 root 用户)。如果当前用户是 root 用户,命令提示符会变成 # 。

除此之外,在Linux中,$ 符号还通常用于表示环境变量的值。环境变量是一些系统级别的变量,它们可以在整个系统中被访问和使用,其中存储了一些重要的信息,例如系统路径,当前用户,当前工作目录等。使用 $ 符号,我们可以方便地访问这些变量。

以下是一些示例:

$HOME 变量:它指向当前用户的主目录。例如,如果当前用户是“bob”,那么 $HOME 将是“/home/bob”。
$PATH 变量:它包含了一系列目录,用于查找可执行程序。当你在终端中输入一个命令时,系统会在这些目录中查找该命令的可执行文件。例如,如果你想在终端中运行“ls”命令,那么系统会在 $PATH 变量中列出的目录中查找“ls”可执行文件。
$USER 变量:它指向当前登录的用户。例如,如果当前用户是“bob”,那么 $USER 将是“bob”。
$PWD 变量:它指向当前工作目录。例如,如果你在“/home/bob”目录下运行终端,那么 $PWD 将是“/home/bob”。
你可以在终端中使用“echo”命令来显示这些变量的值,例如:

echo $HOME
echo $PATH
echo $USER
echo $PWD

这些命令将会分别输出当前用户的主目录、系统的可执行路径、当前登录的用户名和当前工作目录。

 

可以通过 printenv 查看所有环境变量,printenv 是一个 Linux 命令,用于打印出当前 shell 环境中的所有环境变量及其值。它的使用方法很简单,只需在终端输入 printenv 即可:

 

# 超级用户
在Linux系统中, $ 符号通常表示普通用户的命令行界面,而 # 符号则表示超级用户的命令行界面。普通用户通常只有执行命令的权限,而超级用户则具有更高的权限,可以执行更高级别的操作,比如修改系统配置文件等,一般需要使用 sudo 或 su 命令切换到 root 权限后才能使用。

~ 当前用户家目录
在Linux终端中, ~ (波浪号)符号代表当前用户的家目录。家目录是每个用户在Linux系统中的默认工作目录,当用户登录到系统后,终端会自动切换到该用户的家目录。

例如,如果当前登录的用户是“user”,那么 ~ 符号就代表“/home/user”目录。在终端中输入 cd ~ 命令就可以切换到当前用户的家目录。

此外, ~ 符号还可以与其他路径组合使用,表示相对于当前用户家目录的路径。例如, ~/Documents 表示当前用户家目录下的Documents子目录。

/ 目录分隔符
在Linux中,符号“/”代表文件路径的分隔符。在文件系统中,每个文件和目录都有一个唯一的文件路径,文件路径是由“/”符号分隔的一系列目录和文件名组成的字符串。

例如, “/home/user/Documents/file.txt” 是一个文件路径,其中“/”表示根目录,“home”是根目录下的一个子目录,“user”是“home”目录下的子目录,“Documents”是“user”目录下的子目录,“file.txt”是“Documents”目录下的文件。

在命令行中,用户可以使用“/”来指定文件路径,例如:

cd /home/user/Documents
1
将进入“Documents”目录。

. 当前目录
. :表示当前目录,例如 ./file.txt 表示当前目录下的 file.txt 文件。,也可以使用 $PWD 表示

.. 上级目录
..:表示上一级目录,例如 ../ 表示返回上一级目录。

< 输入重定向
< :将一个文件的内容作为命令的输入。例如,sort < file.txt 将file.txt文件的内容作为sort命令的输入。

> 输出重定向
> :表示重定向符,用于将命令的输出重定向到文件中,会覆盖原有的内容。例如,ls > file.txt 将ls命令的输出写入file.txt文件中,如果文件不存在则会创建它,如果存在则会覆盖原有内容。

输出重定向还有很多种其它用法:

2> :将命令的错误输出重定向到一个文件中。例如,ls /invalid_dir 2> error.txt 将ls命令的错误信息写入error.txt文件中。
&> :将命令的输出和错误输出都重定向到一个文件中。例如,ls /invalid_dir &> output.txt 将ls命令的输出和错误信息都写入output.txt文件中。
<< 输入追加重定向
<< 是 Linux 中的一个输入重定向符号,也称为“Here Document”,一般用于输入多行文本。它的作用是将 shell 中的一段输入作为命令或脚本的输入,并用一个特定的标识符(可以是任意字符串)来表示输入的结束。具体来说,它可以将一段文本作为标准输入传递给命令或脚本,而不需要手动逐行输入。

例如,假设我们要向一个名为 output.txt 的文件中写入三行文本。如果我们使用 echo 命令逐行输出,则需要输入三次命令,如下所示:

echo "This is line 1" > output.txt
echo "This is line 2" >> output.txt
echo "This is line 3" >> output.txt

但是,如果我们使用 << 符号,我们可以在一次命令中输入所有三行文本,如下所示:

cat << EOF > output.txt
This is line 1
This is line 2
This is line 3
EOF

这种方式可以让我们更快速、更方便地输入多行文本,并且对于需要输入大量文本的场景非常有用。

 

>> 输出追加重定向
>> :表示追加重定向符,用于将命令的输出追加到文件末尾,不会覆盖原有的内容。例如,echo “hello” >> file.txt 将"hello"追加到file.txt文件的末尾。

; 命令分隔符
; :表示命令分隔符,可以在同一行输入多个命令,用分号隔开。当您在同一行上输入多个命令并用分号分隔它们时,Linux会按顺序执行这些命令。

例如,以下命令将创建一个名为 test 文件夹,并在其中创建一个名为 file.txt 的文本文件:

mkdir test; cd test; touch file.txt
1
这个命令将被解释为三个独立的命令:先创建一个名为 test 的文件夹,再进入该文件夹,最后在其中创建一个名为 file.txt 的空文件。

需要注意的是,分号不支持命令的逻辑控制,如if语句、循环结构等。如果需要这样的控制,请使用其他命令分隔符,如双竖线(||)或双与号(&&)。

: 值/路径分隔符
在Linux中,冒号 (:) 可以具有以下几种作用:

标签和值分隔符:在一些配置文件或脚本中,冒号用作标签和值之间的分隔符。
例如, /etc/passwd 用于存储用户账户的信息,每一行由多个字段组成,字段之间使用冒号分隔: username:password:uid:gid:home_directory:shell。
环境变量的分隔符:在环境变量中,特别是 PATH 这样的变量中,冒号用作路径分隔符。它将多个路径分开,指定在执行命令时搜索可执行程序的顺序。
例如,PATH 变量可以包含多个路径,如 /usr/local/bin:/usr/bin:/bin。当执行命令时,系统会按照从左到右的顺序在这些路径中查找可执行程序。
空操作(占位符):在某些脚本和编程语言中,冒号可以用作无操作(no operation),表示不执行任何实际操作,只是作为一个占位符或空操作。
例如,在Bash脚本中,: 可以用作 true 命令的替代,表示条件始终为真,如:
if [ condition ]; then
  :
else
  command
fi

这样可以在某些情况下用于占位或暂时禁用一些代码逻辑。

 

& 后台运行符
& :表示后台运行符,可以 将命令放到后台运行 。具体地说,当你在终端中输入一个命令并在结尾处添加 & 时,这个命令将会在后台运行,也就是说,你可以继续在终端中输入其他的命令,而不必等待这个命令执行完成。

举个例子,如果你想要启动一个长时间运行的进程,但不想让它占用你的终端,你可以将它放入后台运行,如下所示:

my-long-running-process &
1
这样,该进程将在后台运行,而你可以在同一个终端中继续输入其他的命令。需要注意的是,如果你在后台运行的命令输出了任何信息,它们将会直接输出到终端上,可能会干扰你正在输入的其他命令。

| 管道符
| :表示管道符,用于将一个命令的输出作为另一个命令的输入,从而 实现两个或多个命令的组合 。例如,如果你想在Linux系统中列出某个目录中的所有文件并按文件大小排序,可以使用以下命令:

ls -l | sort -k 5 -n
1
其中, ls -l 命令列出目录中的所有文件,而 sort -k 5 -n 命令按照第五列(即文件大小)进行排序。通过使用管道符号“|”,这两个命令可以组合起来,以便将“ls”命令的输出传递给“sort”命令的输入。这样,你就可以在一行命令中完成两个操作。

&& (成功)则执行多命令
&& 是Linux终端中的一个符号,用于在同一行上执行多个命令。它表示只有当前一个命令成功执行后,才会执行下一个命令。例如,如果你想要在终端中同时执行两个命令,比如更新软件包并清除无用的软件包,你可以使用以下命令:

sudo apt-get update && sudo apt-get autoremove
1
这条命令将首先更新软件包,然后 只有在更新成功后才会运行自动删除命令 。这样可以确保所有命令都成功执行,而不会出现意外的错误。

|| (失败)则执行多命令
在Linux终端中,|| 是一个逻辑运算符,表示“或者”的含义。它用于将两个条件连接起来,如果其中一个条件成立,整个表达式就成立。在终端中,|| 通常用于构建命令行语句,以确保只有前一个命令执行失败时,才会执行下一个命令。例如,如果要在终端中运行两个命令,但只有在第一个命令失败时才运行第二个命令,可以使用以下命令:

command1 || command2
1
如果 command1 执行成功,则 command2 不会被执行;如果 command1 执行失败,则 command2 会被执行。

! 执行历史命令
在 Linux 终端中, ! 符号用于执行之前执行过的命令历史记录中的命令。以下是一些例子:

重复执行上一条命令:使用 !! 命令可以快速重复上一条命令,例如:

$ ls -l
total 0
$ !!
total 0

重复执行命令历史记录中的某个命令:使用 ! 命令加上命令的编号可以重复执行命令历史记录中的任意一条命令,例如:

$ history
  1  ls -l
  2  cd ..
  3  pwd
$ !2
cd ..

上面的例子中,!2 表示执行历史记录中的第二条命令。

 

重复执行以某个字符串开头的命令:使用 ! 命令加上命令的部分字符串可以重复执行以该字符串开头的命令,例如:

$ ls -l
total 0
$ !ls
total 0

上面的例子中, !ls 表示执行最近一次以 ls 开头的命令,即 ls -l 。

通过使用 “!” 符号,我们可以更加高效地使用命令行界面,省去了重复输入相同命令的时间和精力。

^ 脱字符
在Linux终端中, ^ 符号是一个特殊的字符,表示“脱字符”,,它有多种用途:

用于表示一个控制字符:例如, ^C 表示Ctrl+C键的组合,^D 表示Ctrl+D键的组合。
如果要在Linux终端中表示一个控制字符,可以使用 ^ 符号加上对应控制字符的字母表示。例如, ^C 表示Ctrl+C控制字符,^D 表示Ctrl+D控制字符。

例如,如果想在终端中输入Ctrl+C控制字符,可以按下Ctrl+V,然后再按下Ctrl+C,此时终端会显示一个"^C"表示成功输入了控制字符。

用于快速修改命令行: 在终端中输入一个命令,但是发现其中有一个错误,可以使用 ^ 符号来快速修改。例如,输入命令 “cd /user/local/bin”,但是正确的目录名是 “usr”,那么可以在终端中输入 “^/user/usr”,就会自动修改为 “cd /usr/local/bin”。
另外, ^ 符号还可以用于在命令中引用之前执行的命令的参数。具体来说, ^ 后面跟着一个数字 n,表示引用之前执行的命令中的第 n 个参数。

例如,假设我们之前执行了以下命令:

ls -l /usr/bin
1
现在,如果我们想要再次执行这个命令,但是将 “/usr/bin” 替换为 “/usr/sbin”,我们可以使用 “^” 符号来引用之前执行的命令中的参数。具体来说,我们可以键入以下命令:

^bin^sbin
1
这个命令中的 “binsbin” 表示将之前命令中的 “bin” 替换为 “sbin”。执行该命令后,终端会自动将之前执行的命令替换为新的命令,并执行新的命令,输出结果如下:

ls -l /usr/sbin
1
这就是 ^ 符号的作用。它可以帮助我们快速引用之前执行的命令中的参数,从而避免重复输入相似的命令。

 

用于匹配行首: 在正则表达式中, ^ 符号表示匹配行首。它可以用于快速定位和操作行首的文本。
举个例子,假设我想要在一个文件中查找以字母"t"开头的行,那么我可以使用下面的命令:

grep "^t" filename
1
这个命令使用了 ^ 符号来匹配行首,然后再跟上要匹配的字符 t 。这样,grep 就会在文件中查找以字母 t 开头的行,并将它们输出到终端上。

\ 转义符
\ :表示转义符,它可以 对特殊字符进行转义 ,使其具有特殊的含义。下面是一些例子:

转义字符本身:如果你需要在命令行中使用“\”字符,你需要使用“\”来表示。例如,要创建一个名为“test\file”的文件夹,你可以使用以下命令:

mkdir test\\file
1
换行符:如果你想在命令行中换行,你可以使用“\n”来表示。例如,要在命令行中打印两行文本,你可以使用以下命令:

echo "This is the first line.\nThis is the second line."
1
空格:有时候你需要在文件或文件夹名中使用空格,但是空格在命令行中会被解释成参数的分隔符。在这种情况下,你可以使用“\”来转义空格。例如,要打开名为“my folder”的文件夹,你可以使用以下命令:

cd my\ folder/
1
注意:在使用转义符时,务必小心。如果你不小心把它们放错了位置,可能会导致命令无法正确执行。

" 扩展引用字符串
" :表示引用字符串,可以将其中的内容作为一个整体传递给命令。在双引号中,可以使用转义字符(\)来转义一些特殊字符,比如$和\等,使它们失去原有的特殊含义,而变成普通字符。

例如,以下命令将在终端中打印出Hello, World!:

echo "Hello, World!"
1
在双引号中也可以使用变量,例如:

name="John"
echo "My name is $name"
1
2
这将在终端中打印出 My name is John 。需要注意的是,在双引号内使用变量时,变量名前面必须加上$符号。

 

' 不扩展引用字符串
' :也表示表示引用字符串,但它和双引号的区别是将字符串中的 所有字符视为普通字符,不进行任何转义或变量替换 。例如,如果我们要定义一个包含特殊字符的字符串,如$、*、?等,可以使用单引号将其包围,以避免特殊字符被解释为变量或通配符:

echo 'Hello $USER, the current directory is: $PWD'
1
在上述示例中,单引号将整个字符串包围,因此 $USER 和 $PWD 不会被解释为变量,而是作为普通字符输出。输出结果如下:

Hello $USER, the current directory is: $PWD
1
() 创建子shell
在Linux终端中,括号符号 () 通常用来 创建子 shell 。这意味着命令在一个子 shell 中运行,而不是在当前 shell 中运行。例如,如果您要在当前目录中创建一个名为“test”的文件夹,并切换到该文件夹中,您可以使用以下命令:

pwd && (cd /etc && pwd)
1
在这个命令中, () 符号将 cd /etc && pwd 命令放入一个子 shell 中。这意味着 cd /etc 命令只会在子 shell 中运行,而不会影响当前 shell 的工作目录。因此,pwd 命令将显示etc 的完整路径。

 

另一个例子是,如果您要在当前 shell 中设置一个环境变量,但只想让它在一次命令中生效,您可以使用括号符号将该命令放入一个子 shell 中。例如:

(export MYVAR="Hello world"; echo $MYVAR)
1
这个命令将设置一个名为 MYVAR 的环境变量,将其值设置为 "Hello world" ,并将其打印到终端上。由于命令在子 shell 中运行,所以 MYVAR 变量只在该命令执行期间存在。

* 多字符通配符
在 Linux 终端中,星号 * 是通配符符号,也称为通配符。它可以代表 任何字符或任何长度的字符序列 。星号通常用于文件名扩展和搜索中,例如:

列出所有以 “.txt” 结尾的文件:

ls *.txt
1
删除所有以 “.bak” 结尾的文件:

rm *.bak
1
查找包含 “hello” 文字的所有文件:

grep "hello" *
1
在这些例子中,星号通配符将匹配所有符合条件的文件名,并且在执行命令前被扩展成实际的文件名。

? 单字符通配符
在Linux终端中, ? 符号代表通配符,可以匹配任意一个字符。当你在终端中输入一个命令时,如果需要匹配一定数量的字符,但是你并不确定这些字符是什么,那么你可以使用 ? 符号来代替这些字符。例如,如果你想查找以“file”开头、 后面跟着一个任意字符 、然后是“.txt”结尾的文件,你可以使用以下命令:

ls file?.txt
1
这个命令将会列出所有符合该模式的文件。

[] 条件匹配
在 Linux 终端中,输入 [] 通常用于匹配一组字符中的任意一个字符。这种匹配方式称为字符类,它允许我们在一个字符集合中指定多个字符,然后匹配其中的任意一个字符。

举个例子,假设我们在当前目录下有以下文件:

file1.txt file2.txt file3.jpg file4.png

如果我们想要列出所有以 .txt 结尾的文件,可以使用以下命令:

ls *[.]txt
1
这个命令中,[ 和 ] 括起来的 ., 表示匹配点号本身,而不是任意一个字符。在字符类中,我们可以指定多个字符,使用 - 来表示范围。例如,如果我们想要匹配所有小写字母和数字,可以使用 [a-z0-9]。如果我们想要匹配所有大写字母和小写字母,可以使用 [A-Za-z]。

总之,[] 在 Linux 终端中是非常常见的用法之一,可以用于匹配文件名、搜索文本等等。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
国产操作系统环境搭建(内含镜像资源链接和提取码)  89
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD  88
分享几个在日常办公中可以用到的shell脚本  81
以openkylin为例编译安装内核  79
bat脚本生成查看电脑配置\硬件信息  78
常见系统问题及其解决方法  77
分享解决宏碁电脑关机时自动重启的方法  75
统信uosboot区分未挂载导致更新备份失败  69
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作  69
统信uos安装mysql的实例参考  63
最近下载排行榜
国产操作系统环境搭建(内含镜像资源链接和提取码) 0
银河麒麟桌面操作系统V10SP1-2403-update1版本中,通过“麒麟管家-设备管理-硬件信息-硬盘”查看硬盘类型时,显示的是HDD(机械硬盘),而实际上该笔记本的硬盘类型为SSD 0
分享几个在日常办公中可以用到的shell脚本 0
以openkylin为例编译安装内核 0
bat脚本生成查看电脑配置\硬件信息 0
常见系统问题及其解决方法 0
分享解决宏碁电脑关机时自动重启的方法 0
统信uosboot区分未挂载导致更新备份失败 0
分享如何解决报错:归档 xxx.deb 对成员 control.tar.zst 使用了未知的压缩,放弃操作 0
统信uos安装mysql的实例参考 0
作者收入月榜
1

prtyaa 收益401.13元

2

zlj141319 收益237.91元

3

哆啦漫漫喵 收益231.75元

4

IT-feng 收益219.92元

5

1843880570 收益214.2元

6

风晓 收益208.24元

7

777 收益173.17元

8

Fhawking 收益106.6元

9

信创来了 收益106.03元

10

克里斯蒂亚诺诺 收益91.08元

请使用微信扫码

添加我为好友,拉您入交流群!

请使用微信扫一扫!