linux常用命令2

linux常用命令

  • [1. xargs](#1. xargs)
    • [1. | xargs -L 1 -P 1 bash -x](#1. | xargs -L 1 -P 1 bash -x)
  • [2. awk](#2. awk)
    • [1. |awk '{dict[$1] = $2} END {for (key in dict) print dict[key];}'](#1. |awk '{dict[$1] = $2} END {for (key in dict) print dict[key];}')
  • [3. set +x 开启和关闭调试模式](#3. set +x 开启和关闭调试模式)
  • [4. seq 遍历序列](#4. seq 遍历序列)
  • [5. tr 删除替换换行符](#5. tr 删除替换换行符)

1. xargs

1. | xargs -L 1 -P 1 bash -x

这个命令是一个比较复杂的命令行管道,结合了多个工具和选项,用于并行执行一系列命令。让我们逐步解释:
1. `xargs`:这是一个实用程序,用于构建和执行命令行命令。它从标准输入读取数据,并将其作为参数传递给指定的命令。
2. `-L 1`:这是`xargs`的选项之一,指定每次调用命令时传递的参数的数量。在这种情况下,设置为1,表示每次调用命令时只传递一个参数。
3. `-P 1`:这也是`xargs`的选项之一,指定同时运行的进程数。在这种情况下,设置为1,表示只允许同时运行一个进程。
4. `bash -x`:这是要执行的命令。`bash`是一个Shell程序,用于执行命令,`-x`是`bash`的选项之一,用于开启调试模式,类似于上面提到的`set -x`,它会导致`bash`在执行每个命令之前将其打印出来。
因此,整个命令的作用是从标准输入中读取数据,并将每行数据作为参数传递给`bash -x`命令,然后在调试模式下执行每个命令。同时,由于使用了`-P 1`选项,所以这些命令将会串行执行,即每次只执行一个命令,而不是并行执行。

2. awk

1. |awk '{dict[$1] = $2} END {for (key in dict) print dict[key];}'

把管道输出的$1 的值做key,$2的值做value组成一个字典,遍历字典输出key对应的value

3. set +x 开启和关闭调试模式

在Bash脚本中,set -x 是一个调试选项,用于开启脚本的调试模式。当脚本执行时,该选项会导致Bash在执行每个命令之前,将该命令及其参数打印到标准输出,这样可以帮助程序员跟踪脚本的执行过程并调试其中的问题。
例如,考虑以下简单的Bash脚本:
#!/bin/bash
set -x
echo "Start of the script"
echo "Hello, world!"
echo "End of the script"
当执行这个脚本时,set -x 会导致Bash在执行每个命令之前将其打印出来,执行结果可能类似于:
+ echo 'Start of the script'
Start of the script
+ echo 'Hello, world!'
Hello, world!
+ echo 'End of the script'
End of the script
这样,你就可以看到每个命令的执行过程,有助于识别和解决脚本中的错误或问题。在调试完成后,可以使用set +x来关闭调试模式。

4. seq 遍历序列

bash 复制代码
for idx in `seq 1 1`; do
    # 循环体,可以在这里执行需要重复的操作,根据实际需求添加
    echo "当前索引为 $idx"
done

这是一个 Bash 脚本中的 for 循环语句,用于在指定范围内循环执行命令。让我来解释一下:

  • for idx in seq 1 1; do:这是 for 循环的开始部分。seq 1 1 是一个用于生成整数序列的命令,它会生成从 1 到 1 的整数序列,这里指定的是从 1 到 1,所以只有一个值 1。idx 是一个迭代变量,用于存储每次循环时的当前值。
    所以这个循环将会循环一次,迭代变量 idx 的值为 1。
    这个示例中的循环体只是简单地输出当前索引的值,你可以在循环体中添加任何你需要循环执行的操作。

5. tr 删除替换换行符

要将文件的所有行整理成一行内容并输出,你可以使用 tr 命令来删除换行符,将多行内容合并成一行。下面是一个示例:

bash 复制代码
tr -d '\n' < 文件名

这将读取指定文件的内容,并将所有换行符替换为空格,最终将整个文件内容整理成一行输出。

如果你希望在输出的结果中每行都以换行符结尾,可以使用 echo 命令将结果传递给它:

bash 复制代码
echo $(tr -d '\n' < 文件名)

这样就会在输出的结果中保留原来的行结构,但将整个文件内容合并成了一行。

如果你想把换行符替换为空格而不是直接删除它们,你可以使用 tr 命令,将换行符替换为空格。这样做会将多行内容合并成一行,每行之间用空格分隔。

bash 复制代码
tr '\n' ' ' < 文件名

这个命令会读取指定文件的内容,并将每个换行符替换为一个空格,最终将整个文件内容整理成一行输出,每行之间用空格分隔。

相关推荐
热爱嵌入式的小许2 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
韩楚风6 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学6 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO6 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu77 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我7 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、7 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程7 小时前
Linux中环境变量
linux
挥剑决浮云 -7 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
小O_好好学8 小时前
CentOS 7文件系统
linux·运维·centos