计算机linux系统编程-第三天
一.ps
Ps来进行显示当前后台运行,跟任务管理器差不多
Ps aux是用来显示当前运行的结果
ps 命令在 Unix 和类 Unix 系统中(包括 Linux 和 macOS)用于显示当前运行的进程的状态。它是 “process status” 的缩写。ps 命令可以提供关于系统上运行的进程的详细信息,这对于监控系统性能、调试程序以及管理进程非常有用。
基本用法
ps 命令的基本格式如下:
ps [options]
options:可选参数,用于指定要显示的信息和过滤进程。
常见的 ps 选项
aux:显示所有运行中的进程,包括其他用户的进程。ef:显示所有运行中的进程的完整格式信息。-A:显示所有进程。-C:指定一个命令名称,仅显示该命令的进程。-f:全格式列表,显示用户ID、组ID、终端、启动时间等信息。-l:长格式列表,包括进程的详细状态。-u:以用户易读的格式显示进程信息。-p:后面跟进程ID,显示指定进程ID的进程信息。--sort:后面跟排序依据,如--sort=-pid按进程ID降序排序。
示例
- 显示所有进程:
ps aux
显示系统上所有用户的进程信息。 - 显示特定用户的进程:
ps auxu username
显示指定用户的所有进程。 - 显示特定进程:
ps -C process_name
显示名为process_name的进程信息。 - 显示当前用户的进程:
ps -u $USER
显示当前用户的进程信息。 - 显示进程树:
ps -ef
以树状图的形式显示所有进程,显示父子关系。 - 显示特定列信息:
ps -eo pid,comm,cmd
显示进程ID、命令名称和完整命令行。
注意事项
ps命令的输出可以被管道到其他命令,如grep,以过滤特定的进程。ps命令的输出列可以自定义,通过-eo选项后面跟列名。
ps命令是系统管理员和用户常用的工具之一,它提供了一个快速查看当前运行进程的窗口,并且可以用来监控系统资源的使用情况。
引用单词比较多的情况下,就要用双引号或者单引号来进行引用在 Ubuntu 和其他类 Unix 操作系统中,管道(Pipeline)是一种强大的命令行功能,它允许你将多个命令连接起来,使得一个命令的输出直接作为另一个命令的输入。这种机制通过在命令之间使用竖线符号|来实现。

二.管道
管道的基本用法
command1 | command2 | command3
在这个例子中,command1 的输出会被传递给 command2,command2 的输出再传递给 command3,以此类推。这样,你可以将多个命令串联起来,形成一个处理数据的流程。
示例
- 搜索文件并显示行号:
grep “search_term” filename.txt | less
这个命令使用grep在filename.txt中搜索search_term,然后将匹配的行通过管道传递给less命令,以便分页显示结果。 - 列出当前目录下的文件并排序:
ls | sort
这个命令列出当前目录下的文件,然后将输出传递给sort命令,对文件名进行排序。 - 查找进程并过滤结果:
ps aux | grep “process_name”
这个命令列出所有运行中的进程,然后将输出传递给grep命令,以过滤出包含process_name的行。
管道的优势
- 效率:管道可以减少磁盘 I/O,因为数据可以直接在内存中传递,而不需要写入和读取磁盘。
- 组合命令:你可以将简单的命令组合成复杂的数据处理流程,每个命令只负责处理一部分任务。
- 重用输出:一个命令的输出可以被另一个命令作为输入,这使得数据处理更加灵活。
注意事项
- 管道中的数据流是单向的,只能从左到右传递。
- 管道的每个部分都可以独立地处理错误和异常,但整个管道的成功与否取决于所有部分的成功执行。
管道是 Unix 哲学中的一个核心概念,它体现了“一切皆文件”的思想,即输入和输出都可以被视为文件流。这种思想使得命令行工具在处理文本数据时非常灵活和强大。
管道就相当于一个and符号,在运行左面的命令同时运行右面
xargs是一个 Unix 和类 Unix 系统(包括 Linux)中的命令行实用程序,它读取来自标准输入(stdin)的数据,并将其转换为命令行参数,然后将这些参数传递给指定的命令。xargs通常与管道(|)一起使用,以将一个命令的输出作为另一个命令的输入。
基本用法
command | xargs another_command
在这个例子中,command 的输出被传递给 xargs,然后 xargs 将这些输出作为参数传递给 another_command。
选项
-0:输入项以 null 字符分隔,用于处理包含空格和特殊字符的参数。-n number:每次执行another_command时使用的参数数量。-I{}:对于每个输入项,将该项替换为{}并执行another_command。-P maxprocs:使用maxprocs个进程的并行执行。
示例
- 将
find命令的输出传递给rm命令以删除文件:
find . -type f -name “*.log” | xargs rm
这个命令会查找所有扩展名为.log的文件,并使用xargs将它们传递给rm命令以删除这些文件。 - 使用
-I{}选项处理每个文件:
find . -type f -name “*.log” | xargs -I{} echo “Deleting file: {}”
这个命令会查找所有扩展名为.log的文件,并对于每个文件,使用-I{}选项将文件名替换为{}并输出删除文件的消息。 - 并行执行命令:
find . -type f -name “*.log” | xargs -P4 -n1 rm
这个命令会并行地删除所有扩展名为.log的文件,同时运行 4 个rm进程。
xargs是一个非常灵活的工具,它可以简化多个命令的参数传递,并且可以处理复杂的参数,包括那些包含空格和特殊字符的参数。通过结合使用xargs和管道,你可以构建强大的命令行工作流。
Xargs的效率会更高
xargs和exec都是 Unix 和类 Unix 系统中用于处理命令行参数和执行命令的工具,但它们在使用方式和行为上有一些关键的区别:
exec(find 命令中的 -exec 选项)
-exec是find命令的一个选项,它允许你对find命令找到的每个文件执行一个指定的命令。-exec选项直接在find命令的上下文中执行指定的命令,find会为每个匹配的文件调用一次-exec指定的命令。-exec的参数是一个命令,后面跟着{}占位符,代表当前找到的文件名,然后是\;结尾。-exec不会收集所有的输入再一起处理,而是逐个文件处理。-exec更适合于find命令的直接集成,用于对找到的文件执行简单的命令。
示例:
find /path/to/search -type f -name “*.txt” -exec rm {} ;
xargs
xargs是一个独立的命令行实用程序,它从标准输入读取数据,并将这些数据转换为命令行参数,传递给指定的命令。xargs可以处理来自任何命令的输出,不仅仅是find。xargs默认将输入行作为单个字符串处理,但可以通过-n选项指定每次传递给命令的参数数量。xargs可以累积多个输入项,然后一次性传递给一个或多个命令,这使得它更适合批量处理。xargs提供了更多的灵活性,比如通过-0选项处理以 null 字符分隔的输入项,这在处理包含空格和特殊字符的文件名时非常有用。
示例:
find /path/to/search -type f -name “*.txt” | xargs rm
区别总结
- 集成性:
-exec是find命令的一部分,而xargs是一个独立的命令。 - 处理方式:
-exec逐个文件执行命令,xargs可以累积多个输入项后批量执行。 - 灵活性:
xargs提供了更多的选项来控制参数的传递方式,如-n、-0、-I{}等。 - 适用场景:
-exec更适合与find结合使用,而xargs可以与任何产生输出的命令结合使用。
根据你的具体需求,你可以选择-exec或xargs来处理文件和执行命令。
Xargs写的少
搜索到的结果是一种集合来进行操作的
在find的默认情况下就会自动输出print
脚本就是相当于将之前的find和grep之类的命令打包到一个文件夹中,之后统一运行,统一运行


三.软件包安装
软件安装
Linux是通过网络起来的,所以就需要网络来进行下载,linux需要来进行联网,sudo apt-get来进行安装,ubuntu是国外的,国内的弄来服务器来进行转载,163就是网易来提供的
卸载就是remove

deb包安装


四.总结
以上就是我今天所学的内容,希望广大群众积极点评,不要吝啬手中的点赞和关注哦!!!!

被折叠的 条评论
为什么被折叠?



