博客
关于我
Linux5
阅读量:789 次
发布时间:2023-02-02

本文共 2202 字,大约阅读时间需要 7 分钟。

命令替换:取命令的执行结果

在 shell 中,命令替换是一种非常强大的功能,它可以让你嵌套使用命令,并将结果代入另一个命令中。() 是命令替换的基础-syntax,但它有一些限制,比如无法处理命令嵌套。$() 则弥补了这个缺陷。

~:家目录

~ 是 Unix/Linux 系统中表示当前用户主目录的符号。它可以直接作为命令的参数使用,比如 cd ~/Documents 会跳转到用户的文档目录。

!:历史命令调用

! 用于调用bash历史上的命令。! 后面直接跟命令会匹配最近一次执行过的相同命令。比如 ! ls 会重新执行最后一次 ls 命令。! 的灵活性在数据处理和脚本编写中非常有用。

#:注释

# 是bash脚本中注释的符号。它后面跟的内容不会被解释为命令,适合用来는注释代码。# 本身不会被拆分为多个命令,但有时候会影响脚本的执行,所以要谨慎使用。

@:特殊符号

在bash 中,@ 并没有特殊含义,仅仅是一个普通符号。它可以用来在文本中随意使用,但有时候会被误解为某些版本控制工具的命令(如git中 @ 用于特定分支)。

%:取模与后台进程

%%jobs 结合使用可以查看当前后台进程。% 也可以用来取模运算,比如 % 3 % 2 会计算5除以3的余数(类似于 C 的 5 % 3)。这一功能在编写脚本时特别有用。

^:取反与替换

^ 类似于 !^,它可以用来取反或替换字符串。比如 ^/foo/ 可以从路径中去掉前缀 /foo/。在字符串处理中,^ 非常实用。

&:后台执行

& 用于指定命令后台执行。运行完当前命令后,继续执行shell会话。& 还可以用于并行执行命令,但需要注意进程组管理。使用 & 可以提高效率,但要小心潜在的资源竞争。

*:通配符与数学运算

* 是一个通用字符匹配符,可以匹配任意长度的字符串,包括零个字符。它还可以用于数学运算,比如 2 * 3 会计算6。在脚本中,可以通过 * 来自动化处理文件和目录的名称。

():子进程执行

(命令) 可以在当前进程中启动子进程,执行指定的命令。() 是非常有用的工具,比如在批量处理或多任务处理中使用,就能避免命令被中断。

-:减号

- 在shell中有多个含义:作为选项减号,表示排除某些选项;作为区间表示从末尾开始数到前一个符号;cd - 可以返回上一级目录。

_:无特殊含义

在bash 中,_ 既不是变量符号,也不是特殊符号。它可以 作为占位符使用,或者自定义为变量名。你可以使用 echo ${_VAR} 来查看它的值。

+:加号

+ 在shell中表示加法运算符。同样,也可以用来表示命令的组合,例如 echo a + b 会输出 "a + b"。在编写数学脚本时非常实用。

=:赋值

= 用于赋值,常用于变量赋值、shedctl 参数赋值等。比如 x=10 会把变量 x 设为 10。

|:管道与逻辑或

| 用于数据管道,可以将一个命令的输出作为另一个命令的输入。同样,|| 用于逻辑或,前一个命令失败则执行后一个命令。在 if 结构中常常用到 |||

\:转义

\ 用于转义特殊字符,使其不被 shell 解释为命令或符号。例如,\n 会转义为换行符,\> 转义为 >

{}:命令列表

{ ...; } 可以用来组合多个命令进行执行。前提是必须以空格分隔每个命令,并且括号内的命令必须以 { 开头并以 } 结尾。这样的结构可以让脚本中更加清晰地组织命令。

[...]:字符通配

[...] 是一种强大的字符匹配工具,类似于 glob。它可以用于匹配符合具体模式的文件或字符串。在脚本中常用于自动处理文件扩展名或路径。

:backslash:空命令

: 前缀可以作为值返回或用于控制流。比如,: 本身作为真值返回,常用于编写一条不做任何事情的命令。

;:多命令执行

; 用于在命令行上执行多个命令。命令会顺序执行,无论前一个命令是否成功都会执行下一个。如果希望命令按顺序执行且不管结果,这非常有用。

多个字符组合符号

除了上述符号,还有许多其他符号可以用来表示不同的含义。理解这些符号的用途对于 shell 脚本编写非常重要。比如,*, ?, [ab][a-z]),甚至 [[:alnum:]] 都可以用于文本处理,充分发挥shell的强大功能。

控制变量名的范围

在shell中,可以使用 ${变量名} 来引用变量。变量名的字符可以包含数字、字母,并可以从前到后形成访问方式(方法:以 $() 来展开)。

转义与变量引用

在shell中,引用变量通常使用 ${},而转义符号 \ 帮助你以纯字符的形式处理特殊字符。复杂的转义和变量引用在文本处理脚本中尤为重要。

强引用与软引用

在Unix/Linux 系统中,文件和目录可以是硬引用(强引用)或软引用(符号链接)。硬引用的文件不会随原文件变化,而软引用的文件会随原文件变化。这一点在数据备份和包含/排除策略中非常重要。

转义符号与规范化

转义符号是shell 中的基础,了解并正确使用它们可以避免很多常见错误。同时,shell 提供了许多选项来规范化和强制转义字符,这对于代码的可读性和安全性至关重要。

加上命令替换 /jar啥的,都能用这种方式嵌套啊!

最后,我觉得自己对 shell 命令的理解还不够深入,得多多看资料和练习啦!

转载地址:http://mzzfk.baihongyu.com/

你可能感兴趣的文章
Linux——入门命令
查看>>
Linux——共享内存
查看>>
Linux——利用命名管道创建进程池
查看>>
Linux——动态库
查看>>
Linux——匿名管道
查看>>
Linux——命令行参数及环境变量
查看>>
Linux——命名管道
查看>>
Linux——基本指令
查看>>
Linux——基础入门(1)
查看>>
Linux——基础入门(2)
查看>>
Linux——文件的系统调用
查看>>
Linux——磁盘和文件系统(一)
查看>>
Linux——缓冲区与FLIE*的原理简单实现
查看>>
Linux——进程地址空间
查看>>
Linux——进程控制
查看>>
Linux——进程池
查看>>
Linux——静态库
查看>>
Linux—文件系统
查看>>
Linux、Linux操作系统、GUN、GPL
查看>>
Linux、Windows渗透测试靶场手动搭建实战(附靶场安装包与安装脚本)
查看>>