Linux中符号命令详解

Linux中符号命令详解

Linux中的符号是系统操作和命令行交互的核心语言,不同符号在文件系统、命令行、正则表达式、权限管理、环境变量等场景中具有不同含义

一、文件系统路径符号

用于表示文件或目录的位置,是Linux中最基础的符号集。

符号 含义 示例
/ 根目录(文件系统的顶级目录) cd / → 进入根目录;/etc/passwd → 根目录下的etc目录中的passwd文件
~ 当前用户的家目录 cd ~ → 回到家目录(如/home/user);~/.bashrc → 家目录下的.bashrc文件
. 当前目录 ./script.sh → 运行当前目录下的script.sh脚本;ls . → 列出当前目录内容
.. 父目录(当前目录的上一级目录) cd .. → 进入父目录;ls ../docs → 列出父目录下的docs目录内容
- 前一个工作目录 cd - → 切换到前一个工作目录(如从/home/user/etc,再cd -回到/home/user

二、命令行操作符号

用于控制命令的输入、输出、流程和后台执行,是命令行高效操作的关键。

1. 管道与重定向

符号 含义 示例
` ` 管道:将前一个命令的输出 作为后一个命令的输入
> 覆盖重定向:将命令输出覆盖写入文件(文件不存在则创建) echo "Hello Linux" > test.txt → 将"Hello Linux"写入test.txt(覆盖原有内容)
>> 追加重定向:将命令输出追加写入文件(文件不存在则创建) echo "More content" >> test.txt → 向test.txt追加一行内容
< 输入重定向:将文件内容作为命令的输入 sort < numbers.txt → 对numbers.txt中的内容排序(等价于sort numbers.txt);mysql -u root -p < db.sql → 执行db.sql中的SQL命令

2. 后台执行与流程控制

符号 含义 示例
& 后台运行:命令在后台执行,不阻塞终端 nohup ./server.sh &后台运行server.sh(nohup防止终端关闭后进程终止);sleep 10 & → 后台睡眠10秒
&& 逻辑与:前一个命令成功(退出状态0)才执行后一个命令 make && make install → 编译成功后才执行安装;ping -c 1 127.0.0.1 && echo "OK" → ping通本地后输出OK
` `

三、正则表达式与通配符

1. 通配符(Shell层面,用于匹配文件/目录名)

符号 含义 示例
* 匹配任意数量的字符(包括0个) ls *.txt → 列出所有.txt结尾的文件;rm log* → 删除所有以log开头的文件
? 匹配单个字符 ls ?.txt → 列出所有文件名长度为1且以.txt结尾的文件(如a.txt、1.txt);ls file?.log → 匹配file1.log、fileA.log等
[] 匹配字符集中的任意一个字符 ls [0-9].txt → 列出以数字开头的.txt文件(如1.txt、2.txt);ls [a-zA-Z].log → 匹配以字母开头的.log文件
[^] 匹配不在字符集中的任意一个字符 ls [^0-9].txt → 列出不以数字开头的.txt文件;ls [^a-zA-Z].log → 匹配不以字母开头的.log文件

2. 正则表达式(命令层面,如grep、sed、awk)

符号 含义 示例
* 匹配前一个字符0次或多次 grep "a*" file.txt → 匹配包含0个或多个a的行(如空行、a、aa、aaa等);sed 's/ab*//' file.txt → 删除ab、abb、abbb等
? 匹配前一个字符0次或1次(需开启扩展正则,如grep -E) grep -E "a?" file.txt → 匹配包含0个或1个a的行;sed -E 's/ab?//' file.txt → 删除a或ab
+ 匹配前一个字符1次或多次(需扩展正则) grep -E "a+" file.txt → 匹配包含至少1个a的行;sed -E 's/ab+//' file.txt → 删除ab、abb、abbb等
[] 匹配字符集中的任意一个字符 grep "[0-9]" file.txt → 匹配包含数字的行;sed 's/[a-z]//g' file.txt → 删除所有小写字母
[^] 匹配不在字符集中的任意一个字符 grep "[^0-9]" file.txt → 匹配包含非数字的行;sed 's/[^a-zA-Z]//g' file.txt → 删除所有非字母字符
^ 匹配行首 grep "^#" file.txt → 匹配以#开头的行(注释行);sed 's/^/-- /' file.txt → 每行开头添加--
$ 匹配行尾 grep "$" file.txt → 匹配空行;sed 's/$/--/' file.txt → 每行结尾添加--
\ 转义字符:将特殊字符视为普通字符 grep "\." file.txt → 匹配包含.的行(.在正则中是匹配任意字符,需转义);echo "\*" → 输出*

四、权限与文件属性符号

Linux文件/目录的权限通过ls -l查看,如-rw-r--r--,其中符号含义如下:

符号 含义 示例
- 普通文件 -rw-r--r-- → 普通文件
d 目录 drwxr-xr-x → 目录
l 符号链接(软链接) lrwxrwxrwx → 符号链接
b 块设备文件(如硬盘) brw-rw---- → 块设备
c 字符设备文件(如键盘、终端) crw-rw-r-- → 字符设备
r 读权限 -r--r--r-- → 所有用户都有读权限
w 写权限 -rw-rw-rw- → 所有用户都有写权限
x 执行权限(文件)/进入权限(目录) -rwxr-xr-x → 所有者有读写执行权限,组和其他用户有读执行权限
s SetUID/SetGID权限(文件执行时继承所有者/组的权限) -rwsr-xr-x → SetUID权限(如passwd命令);drwxr-sr-x → SetGID权限(目录)
t 粘滞位(目录中只有所有者能删除自己的文件) drwxrwxrwt → /tmp目录(粘滞位,防止其他用户删除文件)

五、环境变量与特殊变量符号

符号 含义 示例
$ 取环境变量的值 echo $HOME → 输出当前用户的家目录(如/home/user);echo $PATH → 输出环境变量PATH(命令搜索路径)
${} 明确变量边界(避免歧义) echo ${HOME}_dir → 输出/home/user_dir(若不用,则'echo,则'echo HOME_dir会寻找HOME_dir变量,可能为空);echo ${PATH##*/}` → 取PATH中最后一个目录(参数扩展)
$? 上一个命令的退出状态(0=成功,非0=失败) ls non_existent_file; echo $? → 输出2(ls失败);echo "test"; echo $? → 输出0(成功)
$$ 当前进程的进程ID(PID) echo $$ → 输出当前shell的PID(如1234);kill $$ → 终止当前shell
$! 最后一个后台进程的PID sleep 10 &; echo $! → 输出sleep进程的PID(如5678);kill $! → 终止最后一个后台进程
$0 当前脚本的文件名 echo $0 → 若在script.sh中执行,输出script.sh
$1-$9 脚本或函数的位置参数 ./script.sh arg1 arg2; echo $1 → 输出arg1echo $2 → 输出arg2

六、其他常用符号

符号 含义 示例
# 注释(Shell脚本中);root用户提示符 # 这是一个注释 → 脚本中的注释;root@localhost ~# → root用户的命令提示符
! 历史命令扩展 !ls → 执行最后一次ls命令;!100 → 执行历史中第100条命令;!mkdir → 执行最后一次mkdir命令
@ 远程用户/主机分隔符 scp user@192.168.1.100:file.txt ./ → 从远程主机192.168.1.100的user用户家目录复制file.txt到本地
% 作业控制(后台进程) jobs → 列出后台作业(如+ Running sleep 10 &);fg %1 → 将作业1切换到前台
相关推荐
jamon_tan30 分钟前
linux下lvgl8.3动态库编译
linux
程序员老邢1 小时前
【技术底稿 19】Redis7 集群密码配置 + 权限锁死 + 磁盘占满连锁故障真实排查全记录
java·服务器·经验分享·redis·程序人生·微服务
Elastic 中国社区官方博客1 小时前
Elastic Security、Observability 和 Search 现在在你的 AI 工具中提供交互式 UI
大数据·运维·人工智能·elasticsearch·搜索引擎·安全威胁分析·可用性测试
arronKler2 小时前
大数据量高并发的数据库优化
服务器·数据库·oracle
星辰_mya2 小时前
OSI 七层模型之“跨国诈骗集团”深度讲解
运维·服务器·后端·面试·架构师
贝锐2 小时前
如何破解商用安卓无人值守运维痛点,向日葵赋能数字化高效转型
运维
子牙老师2 小时前
软件虚拟化 vs 硬件虚拟化
linux·性能优化·云计算
rayyy93 小时前
Linux 下标准的 libX.so 软链接生成
linux
实心儿儿3 小时前
Linux —— 基础IO - 文件描述符
linux·运维·服务器
clear sky .3 小时前
[linux]视频实时推流项目
linux·服务器·音视频