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 → 输出arg1;echo $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切换到前台
相关推荐
飞飞传输3 分钟前
业务系统文件安全检测怎么做?生物医药企业选型与建设指南
大数据·运维·安全
姜鱼问生13 分钟前
docker exec 排查容器问题:从日志到进程
运维·网络·数据库·docker·容器
qq_5434478224 分钟前
DNS解析怎么排查?故障处理与运维实用手册
运维·服务器·网络·php
DeviceHub25 分钟前
AI服务器电源设计进阶:TLVR电感的应用解析与选型验证指南
运维·服务器·人工智能
Apipi*26 分钟前
30天速通Linux 第七章进程间通信
linux·运维·服务器
emo_2b35 分钟前
Pycharm配置conda解释器时遇到的问题及解决方法
linux·pycharm·conda
迪康软件zz42 分钟前
终端审批体系怎么搭?从模板配置到业务连续性
运维·安全·自动化运维
科技研学社1 小时前
中小服装工装厂自动化改造:产线节拍平衡与工位减负实施方案
运维·自动化
极光通讯1 小时前
服务器内存替代料选型方法论:主料号缺货时如何找到Pin-to-Pin兼容型号
运维·服务器
草根大哥1 小时前
08-横向扩容与突发高并发:加机器到底买到了什么
运维·webrtc·srt·横向扩容·whip·自建cdn