当前位置: 首页 > news >正文

linux常用符号

一、管道与重定向

  1. |(管道)

    • 将前一个命令的输出作为后一个命令的输入

    • 例:ls | grep a.txt(查找 a.txt)。

  2. > 与 >>(输出重定向)

    • >:覆盖写入文件;>>:追加到文件末尾。

    • 例:echo "Hello" > file.txt(覆盖),echo "World" >> file.txt(追加)。

  3. <(输入重定向)

    • 从文件读取输入。

    • 例:wc -l < log.txt(统计文件行数)。

  4. 2> 和 &>(错误重定向)

    • 2>:重定向标准错误;&>:重定向标准输出和错误。

    • 例:grep foo * 2> errors.log(将错误写入文件)。

 

二、通配符与扩展

  1. *

    • 匹配任意多个字符。

    • 例:ls *.txt(列出所有 .txt 文件)。

  2. ?

    • 匹配单个字符。

    • 例:ls file?.txt(匹配 file1.txtfileA.txt 等)。

  3. []

    • 匹配括号内任意一个字符。

    • 例:ls [abc].txt(匹配 a.txtb.txtc.txt)。

  4. {}(花括号扩展)

    • 生成组合内容。

    • 例:mkdir {dir1,dir2}(同时创建两个目录)。

三、逻辑操作符

  1. &&

    • 前一个命令成功(退出码为 0)时执行后续命令。

  2. ||

    • 前一个命令失败时执行后续命令。

    • 例:ping host || echo "Host down"(主机不可用时提示)。

 

 

四、引号与转义

  1. ' '(单引号)

    • 保留所有字符的字面值,不展开变量。

    • 例:echo '$USER'(输出 $USER,而非用户名)。

  2. " "(双引号)

    • 允许变量和命令替换。

    • 例:echo "User: $USER"(输出 User: root)。

  3.  $()(命令替换)

    • 执行命令并将结果替换到当前位置。

    • 例:echo "Time: $(date)"(输出当前时间)。

  4. \(转义符)

    • 转义特殊字符(如空格、$)。

    • 例:echo "Price: \$100"(输出 Price: $100)。


五、变量与参数

  1. $

    • 引用变量或参数。

    • 例:echo $PATH(输出环境变量)。

  2. ${}

    • 明确变量边界,避免歧义。

    • 例:echo "${var}_log"(输出变量 var 后跟 _log)。

  3. $0, $1, $2...

    • 脚本参数:$0 为脚本名,$1 为第一个参数。

    • 例:./script.sh arg1 → $1 为 arg1

  4. $?

    • 上一个命令的退出状态码(0 表示成功)。


六、后台与进程控制

  1. &

    • 在后台运行命令。

    • 例:python script.py &(后台执行脚本)。

  2. ;(命令分隔符)

    • 按顺序执行命令,无论前一个是否成功。

    • 例:cd /tmp; ls(进入目录后列出内容)。


七、其他常用符号

  1. #

    • 注释符,其后内容被忽略。

    • 例:# This is a comment

  2. ~

    • 表示当前用户的主目录。

    • 例:cd ~/Documents(进入用户的文档目录)。

  3. -

    • 代表上一个工作目录。

    • 例:cd -(返回上次所在的目录)。

  4. <<(Here Document)

    • 输入多行文本直到结束标记。

    • cat << EOF
      Line 1
      Line 2
      EOF

 

 八 、 与$ 组合使用的符号

1. $#(参数个数)

  • 作用:表示传递给脚本或函数的参数个数(不包括脚本名本身)。


2. $* 与 $@(所有参数)

  • $*

    • 将所有参数视为单个字符串(用空格分隔)。

    • 示例:echo "$*" → 输出 a b c(作为一个整体)。

  • $@

    • 将所有参数视为独立的字符串(保留每个参数的原始边界)。


3. $?(退出状态码)

  • 作用:表示上一个命令或脚本的退出状态码(0 表示成功,非 0 表示失败)。


4. $$(当前进程 PID)

  • 作用:表示当前 Shell 或脚本的进程 ID(PID)

  • echo "当前进程 PID: $$"

5. $!(后台进程 PID)

  • 作用:表示最后一个在后台运行的进程的 PID

  • sleep 10 &
    echo "后台进程 PID: $!"

6. $0(脚本名称)

  • 作用:表示当前运行的脚本或命令的名称


7. $1, $2, $3...(位置参数)

  • 作用:表示传递给脚本或函数的第 1、2、3... 个参数


8. $-(当前 Shell 选项)

  • 作用:表示当前 Shell 的选项设置(如 himBH)。

  • echo "当前 Shell 选项: $-"

9. $_(上一个命令的最后一个参数)

  • 作用:表示上一个命令的最后一个参数

  • ls /usr/local
    echo $_    # 输出:/usr/local

 vim test.sh

echo  "参数个数: $#"
echo  "第一个数: $1"
echo  "第二个数: $2"
echo  "第三个数: $3"
echo  "当前进程 PID: $$"
echo  "所有参数: $*"
echo  "脚本名称: $0"

 sh test.sh "a" "b" "c"

 总结表格

符号用途示例
$#参数个数echo $# → 输出参数数量
$*所有参数(合并为一个字符串)echo "$*" → a b c
$@所有参数(保持独立)for arg in "$@"; do ...
$?上一个命令的退出状态码echo $? → 0(成功)
$$当前进程的 PIDecho $$ → 1234
$!最后一个后台进程的 PIDecho $! → 5678
$0脚本名称echo $0 → ./test.sh
$1, $2...第 1、2... 个参数echo $1 → hello
$-当前 Shell 的选项设置echo $- → himBH
$_上一个命令的最后一个参数echo $_ → /usr/local

注意事项

  • $* vs $@

    • 不加引号时,两者行为相同。

    • 加双引号时,"$*" 将所有参数合并为一个字符串,"$@" 保留参数独立性(常用于循环遍历)。

  • 参数边界
    使用 ${1}_log 替代 $1_log,避免 Shell 将 $1_log 误认为变量 1_log

 

相关文章:

  • dcat-admin已完成项目部署注意事项
  • 软件工程面试题(三)
  • redis集群的原理是什么?
  • 【C语言】深入理解指针(一):从基础到高级应用
  • 新手村:逻辑回归-理解02:逻辑回归中的伯努利分布
  • 项目生命周期 和 项目管理生命周期的差异
  • 【002安卓开发方案调研】之Kotlin+Jetpack开发方案
  • 动态规划入门详解
  • 知识图谱中NLP新技术
  • HTML CSS 使div中的子元素横向排列,并均匀分布
  • Android集成Facebook登录与分享的常见问题及解决方案
  • VSCode 抽风之 两个conda环境同时在被激活
  • 用AI在云平台上用自然语言生成定制化SQL查询复杂数据库
  • Spring框架入门指南:从Hello World到IOC容器
  • TPCTF 2025 web 复现
  • 【项目设计】网页版五子棋
  • 2025知识图谱峰会(脱敏)PPT合集(18份).zip
  • css基础-选择器
  • SRS-GB28181 实现浅析之二--基本逻辑与结构
  • AI + 医疗 Qwq大模型离线本地应用
  • 游戏论|迟来的忍者与武士:从《刺客信条:影》论多元话语的争议
  • 陈平评《艺术科学的目的与界限》|现代艺术史学的奠基时代
  • 航行警告!黄海南部进行实弹射击,禁止驶入
  • 解码人格拼图:探索心理健康的多维视角
  • 咖啡与乳腺健康之间,究竟有着怎样的复杂关系?
  • 我国首次实现地月距离尺度的卫星激光测距