1 管道符|
- 管道符号 | 用于将一个命令的输出作为另一个命令的输入。
- 这种机制允许将多个命令组合在一起,形成一个数据处理链,每个命令处理前一个命令的输出,从而实现复杂的数据处理任务。
- 示例
# 查询/var/log目录下所有的log文件,并进行分页显示,每页5条
find /var/log -name "*.log" | more -5
# 查找并统计文件中的关键词
grep "error" /var/log/auth.log | wc -l
grep -c "error" /var/log/auth.log
2 重定向符号>和追加重定向符号>>
2.1 重定向符号>
- 重定向符号 > 用于将命令的输出重定向到一个文件中。
- 如果文件不存在,它将创建该文件
- 如果文件已存在,它将覆盖文件中的原有内容
- 示例
# 搜索auth文件中含有error的行,写入到error.txt中
grep "error" /var/log/auth.log > error.txt
# 查询当前文件夹下所有txt文件的详细信息,入wb文件中
ll *.txt > wb
# 查询lshelp.txt文件的7-10行内容,并覆盖写入wb文件
head -10 lshelp.txt | tail -4 > wb
2.2 追加重定向符号>>
追加重定向符号 >> 用于将命令的输出追加到文件末尾,而不是覆盖原有内容
- 示例
# 将一条文本追加到文件末尾
echo "这是一条新的日志信息" >> logfile.txt
# 将date命令的输出追加到文件中
date >> logfile.txt
2.3 标准输入
- 标准输入在Linux系统中通常用stdin来表示。它指的是程序从用户或其他来源获取数据的通道。
- 通过标准输入,用户可以与程序进行交互,输入数据以驱动程序的运行。
2.4 标准输出与标准错误输出
- stdout代表标准输出,即程序正常输出数据的通道
- stderr则表示标准错误输出,用于传递程序在执行过程中产生的错误信息
- 通过这两种数据流,程序能够清晰地与用户沟通其运行状态和结果
- 将正确的输出重定向到文件,使用1>符号,其中1代表标准输出,可以省略
- 将错误输出重定向到文件,使用2>符号。
- 示例
# 标准输出
ls 1> true.txt
ls > true.txt
# 错误输出
lk 2> error.txt
- 将这两种输出合并到同一个文件中,可以使用2>&1
- 2>&1的含义:将标准错误输出重定向到标准输出
- 符号>&是一个整体,不可分开
- 示例
# 1.txt 2.txt 两个文件一个存在一个不存在# 标准输出与错误输出,合并输出到终端
cat 1.txt 2.txt 2&>1
# 错误输出到终端,标准输出重定向到文件中
cat 1.txt 2.txt 2&>1 >1.txt
# 标准输出到终端,错误输出重定向到文件中
cat 1.txt 2.txt 2&>1 >1.txt
# 标准输出和错误输出,全部重定向到文件中
cat 1.txt 2.txt >1.txt 2&>1
3 后台执行符&
“&”符号用于将任务放到后台运行。
通过使用“&”符号,用户可以在执行命令时不阻塞终端,继续进行其他操作。
对于需要长时间运行的任务特别有用,因为它允许用户在等待任务完成的同时,继续使用终端执行其他命令。
- 示例
# 在后台运行一个长时间运行的命令,如文件压缩
tar -czf archive.tar.gz large_directory &
# 同时启动多个命令,所有命令都会并行在后台执行
command1 & command2 &command3
- 查看后台任务
- 使用jobs命令查看当前在后台运行的任务
- 格式:jobs
- jobs命令会列出后台任务及其对应的作业号
- 将后台任务带到前台
- 使用fg命令将后台任务带到前台
- 格式:fg %1
- 将作业号为1的后台任务带到前台执行
- 终止后台任务
- 使用kill命令终止后台任务
- 格式:kill %1
- 终止作业号为1的后台任务
4 逻辑或符号|| 和逻辑与符号&&
4.1 逻辑或符号||
在Linux命令中,“||”表示逻辑“或”关系。
用于指定在前一个命令执行失败时,才执行其后跟随的命令。
这种用法类似于一种条件判断,根据前一个命令的执行结果来决定是否执行后续命令。
- 示例
# 尝试创建一个目录,如果目录已存在,则显示一条消息
mkdir aa || echo "目录已存在"
# 运行一个命令,如果命令不存在或失败,则提示用户
mycommand || echo "命令未找到"
# 检查某个程序是否安装,如果未安装,则尝试安装它
command -v ifconfig || apt install net-tools
4.2 逻辑与符号&&
在Linux中,&&符号用于实现逻辑与操作。它的作用是,如果前面的命令执行成功(返回零退出状态),则执行后面的命令。
- 示例
# 创建一个新目录,如果创建成功,则进入该目录
mkdir test && cd test
# 在删除文件之前,先备份文件,只有备份成功后才删除原文件
cp lshelp.txt shelp.txt.bak && rm lshelp.txt