shell 操作(终端命令,2026)→ 1)说明 + 2)符号说明)
上一篇下一篇切换中英文Fcitx5目 录shell 操作命令在终端中输入20261说明2符号说明2.1通配符① 通配符加不加引号的问题shell 操作命令在终端中输入20261说明首次打开终端对应的位置是根目录主目录这个主目录其实是位于 “计算机 → home → 用户名” 中的home 里可以有多个用户你是哪个用户你就双击你的用户文件夹然后就进到主目录里说白了这个主目录就是当前用户的根目录。有关终端和 shell 的区别与联系可参考文章Linux 学习笔记一终端 和 Shell 的区别和联系_shell终端-CSDN博客。文件夹就属于目录单级目录后面不用加//放在最前面就代表根目录放在俩目录中间就代表目录分级ctrl c可以打断操作命令要注意大小写归档将多个文件/目录合并为一个文件不压缩便于传输或备份2符号说明.表示当前目录..表示上级目录父目录PID进程 ID 进程号PPID父进程 ID 父进程号2.1通配符通配符是 Shell如 Bash提供的一种模式匹配机制用于批量操作文件或目录不是命令本身的功能而是由 Shell 在执行命令前进行“展开”。常见通配符通配符含义示例匹配结果*匹配任意数量的任意字符包括零个*.txta.txt,report2024.txt,.txt?匹配 长度为1的 任意字符file?.logfile1.log,fileA.log不匹配file10.log[abc]匹配括号内任意一个字符data[123].csvdata1.csv,data2.csv,data3.csv[a-z]匹配指定范围内的字符log-[a-c].txtlog-a.txt,log-b.txt,log-c.txt[!abc]或[^abc]匹配不在括号内的字符test[!0-9].shtestA.sh,test_.sh不匹配test1.sh示例# 删除所有 .tmp 文件rm*.tmp# 列出以数字结尾的 JPEG 图片ls*[0-9].jpg# 复制所有隐藏文件以 . 开头cp.* /backup/# 注意也会匹配 . 和 ..① 通配符加不加引号的问题在 Linux Shell如 Bash中通配符如*、?默认会被 Shell 自动展开为匹配的文件名这个过程发生在命令执行之前。这意味着当你输入rm *.txt时Shell 会先把它变成rm file1.txt file2.txt再交给rm执行。但有些命令如find、tar自己需要接收原始的通配符作为“匹配模式”而不是一堆已展开的文件名。如果 Shell 提前展开了这些命令就无法正常工作甚至报错。因此需要用引号包裹通配符阻止 Shell 展开将其原样传递给程序。这就引出了 “加不加引号” 的问题。核心原则不加引号让Shell 展开通配符→ 用于直接操作文件的命令加引号让程序自己解释通配符→ 用于传入“匹配模式”的命令典型例子不加引号Shell 展开适用于ls、cp、mv、rm、grep 文件列表等rm*.log# Shell 展开为 rm a.log b.log ...greperror*.txt# Shell 展开为 grep error file1.txt file2.txt加引号程序自己匹配适用于find -name、tar --exclude、rsync --include等find.-name*.py# find 自己按 *.py 匹配tar-czfb.tar.gz--exclude*.tmp.一句话口诀Shell 操作文件不加引号程序匹配模式必须加引号。