首页 > 系统相关 >Linux:进程管理和I/O重定向与管道

Linux:进程管理和I/O重定向与管道

时间:2023-11-27 20:35:42浏览次数:44  
标签:输出 重定向 字符集 标准 管道 Linux 进程 CPU

1.进程管理

一、进程管理

1.进程简介
首先我们要了解,什么是进程?

进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。

 

进程的含义为正在运行的程序,包括这个运行的程序所占用的系统资源。进程是具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的一个独立单位。同一个程序,同一时刻被两次运行了,它们就是两个独立的进程。

进程的生命周期是指父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。任何进程都可以创建子进程。所有进程都是第一个系统进程的后代。

进程的状态:1.就绪态:进程已经具备运行的条件,但是CPU还没分配过来。

                      2.运行态:进程占用CPU,并在CPU上运行。

                      3.阻塞态:进程因等某件事发生而暂时不能运行。

不同的进程对系统资源的需求是不一样的,有些进程属于IO密集型,有些进程属于CPU密集型,等等。

进程状态产生的原因:

在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。

 

二、查看进程

2.1 静态查看进程

  • PS,相当于windows系统里的进程管理
  • ps aux 输出的字段含义 如下图所示:

动态查看进程top  、使用信号控制进程kill 、进程优先级nice

 

  • 进程排序

语法:

ps aux – sort %cpu 以CPU占比升序排列

​ps aux – sort -%cpu 以CPU占比降序排列

 

  • 进程的父子关系

通过 ps -ef 查看进程的父子关系。 观察PID和PPID

动态查看精彩Top

常用内部指令

h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序

< 向前 >向后 z 彩色,Z设置彩色,使用数字调整

在top中显示的优先级有两个,PR值和nice值

NI: 实际nice值
PR(+20): 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

nice 值越大: 表示优先级越低,例如+19
nice 值越小: 表示优先级越高,例如-20

3.作业控制jobs

3.1简介

作业控制是一个命令行功能,也叫后台运行。

关键词介绍:

  • foreground fg 前台进程:是在终端中运行的命令,占领终端。

  • background bg 后台进程:没有控制终端,它不需要终端的交互。看不到,但是在运行

4.管理远程主机

Screen是一款用于会话终端切换的多重视视窗管理软件。用户可以通过该软件同时连接多个本地或远程主机。当远程连接一台主机时,如果出现连接非正常中断,只要Screen没有终止运行,再次登录到主机上执行“screen-r”命令,就可以恢复此前在其内部运行的会话。使用yum 安装 Screen,显示完毕即成功安安装,具体如下所示。 

 

 

2.I/O重定向与管道

一、标准输入和标准输出

    1.程序:指令+数据;

        数据:

            读入数据:Input

            输出数据:Output

    2.打开的文件都有一个fd:file descriptor(文件描述符)

    3.Linux给程序提供的三种I/O设备:

        标准输入:0,默认接受来自键盘的输入;

        标准输出:1,显示器(默认输出到终端窗口)

        标准错误输出:2,显示器(默认输出到终端窗口)

 

二、把标准输出和标准错误输出重定向到文件

    1.标准输出和标准错误输出可以被重定向到文件:

        格式:命令 操作符号 文件名;

        支持的操作符号:

            >:把标准输出重定向到文件;

            2>:把标准错误输出重定向到文件;

            &>:把标准输出和标准错误输出重定向到文件;

    2.输出重定向:COMMAND > NEW_POS,COMMAND >> NEW_POS;

        >:覆盖重定向:文件不存在,则会自动创建;文件如果有内容,则会覆盖;

        >>:追加重定向,在原有内容基础上,追加内容;新内容会追加至目标文件尾部;

        set -C:禁止将内容覆盖已有文件,但可追加;强制覆盖:>|;

        set +C:允许覆盖;

        2>:覆盖重定向标错误输出数据流;

        2>>:追加重定向错误输出数据流;

        标准输出和错误输出各自定向至不同位置:

            COMMAND > /path/to/somfile 2> /path/to/err.out

            eg:ls /boot /ddddd /testdir/f1 2> /testdir/f2

                

        合并标准输出和错误输出为同一个数据流进行重定向:

            &>:覆盖重定向;

            &>>:追加重定向;

    3.():合并多个程序的标准输出

          eg:(pwd;ls) > /testdir/all.log

三、输入重定向:<

    1.tr命令

        tr:转换或删除字符;

        语法:tr [OPTION]...SET1 [SET2]

        字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;

         字符集2:指定要转换成的目标字符集。

    OPTION:

        -c:取字符集的补集(也就是取反);

        -d:删除所有属于第一字符集的字集;

        -s:把连续重复的字符以单独一个字符表示;也可以用-s来转换字符(等同于tr [a-z] [A-Z] < /etc/issue);

        -t:将第一个字符集对应字符转化为第二字符集对应的字符;

    字符集表示方法:

        [:lower:]:任意小写字母;

        [:upper:]:任意大写字母;

        [:alpha:]:任意大小写字母(不区分大小写);

        [:alnum:]:任意数字和字母;

        [:blank:]:水平空白字符;

        [:space:]:水平或垂直空白字符;

        [:punct:]:标点符号;

        [:print:]:可打印字符;

        [:cntrl:]:控制(非打印)字符;

        [:graph:]:图形字符;

        [:xdigit:]:十六进制字符;   

    速记符含义八进制方式

        \b Ctrl-H 退格符\010

        \f Ctrl-L 走行换页\014

        \n Ctrl-J 新行\012

        \r Ctrl-M 回车\015

        \t Ctrl-I tab键\011

四、多行标准输入重定向

    1.使用“<<终止词”命令从键盘把重导向给标准输入;

五、管道

    1.管道(使用符号“|”表示)用来连接命令;

        命令1 | 命令2 | 命令3 | ...

六、重定向到多个目标(tee)

    tee命令:从标准输入读取并写入标准输出和文件

    1.命令1 | tee 文件名 | 命令2

        把命令1的标准输出保存在文件名中,然后管道输入给命令2;

    2.使用:

        2.1.保存不同阶段的输出;

        2.2.同时查看和记录输出;

 

标签:输出,重定向,字符集,标准,管道,Linux,进程,CPU
From: https://www.cnblogs.com/Huan07/p/17860365.html

相关文章

  • Linux文件权限
    在Linux中,文件权限用UGO三组字符表示,U表示文件所有者(user)、G表示文件所属组(group),O表示其他用户(others)的权限。这三组字符的排列顺序通常是rwx,分别表示读(read)数字设定为4、写(write)数字设定为2和执行(execute)数字设定为1的权限。1.文件权限基础首先,我们创建一个名为test_file.txt......
  • linux用户管理
    在Linux系统中,用户管理是一个关键的任务,特别是在多用户环境中。以下是一些基本的Linux用户管理命令和概念:1.添加用户使用 useradd 命令可以添加新用户。例如:useradd username 2.设置用户密码:使用 passwd 命令可以设置用户密码,只有root用户可以修改其他用户的密码。例......
  • linux基础总结
    Linux操作系统作为一种开源、强大且灵活的操作系统,广泛用于服务器、嵌入式设备以及个人计算机。对于初学者来说,了解Linux的基础知识是踏上学习Linux之旅的第一步。1.Linux的文件系统在Linux中,一切皆文件。文件系统是Linux的核心组成部分之一,它以层次结构的方式组织文件和目录。......
  • Linux文件管理
    1.初识Linux1.1Linux系统简介:Linux系统中的一切都归结为文件。对于操作系统内核来而言,命令,硬件和软件设备以及进程都被视为拥有各自特性的文件。Linux系统完全兼容POSIX1.0标准,还支持多用户,多任务。多线程。多CPU,保证了各用户之间互不影响。多个进程可以同时独立地运行,从而提......
  • 了解Linux中的LVM磁盘管理
    Linux系统作为开源操作系统的代表之一,以其灵活性和可定制性而备受欢迎。在Linux中,LVM(LogicalVolumeManager)磁盘管理系统是一种强大的工具,它使得磁盘管理更加灵活和高效。什么是LVM?LVM是一种逻辑卷管理系统,它允许对硬盘驱动器进行灵活的分区和管理。与传统的硬盘分区相比,LVM提......
  • 第三章 Linux用户管理
    在Linux操作系统中,用户管理是系统管理员不可或缺的一项任务。有效的用户管理不仅仅涉及到创建和删除用户账户,还包括权限控制、群组管理以及其他与用户相关的各种任务。在这篇博文中,我们将深入探讨Linux用户管理的各个方面,为管理员提供全面的指导。1.用户账户的创建与删除1.1创......
  • 你认为哪个Linux发行版更有前途?
    作者:彭亚伦链接:https://www.zhihu.com/question/399967127/answer/1805622525来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。我第一次接触Linux是2003年,系统是Redhat7.3,在长沙定王台花75大毛买的正版CD;那个时候我还是个青涩的学生,业余......
  • 进程管理;I/O重定向与管道
    一.进程定义进程的定义程序是静态的代码文件;进程是指程序运行时的形态进程是程序的一个副本(copy程序到内存,相当于副本)进程是有生命周期的(准备期、运行期、终止期)进程和线程进程:进程是资源调用的最小单位。所有事件由cpu处理,当一个事件cpu,其他事件就无法占用处于,等待用完才......
  • Linux发行版比较:选择适合你的操作系统
    Linux发行版比较:选择适合你的操作系统编程技术汇2023-07-1007:02北京Linux作为一种开源的操作系统,存在着许多不同的发行版(Distribution)。每个发行版在提供基本的Linux内核之外,还包括不同的软件包、桌面环境和配置工具。选择适合自己的Linux发行版是一个重要的决策,需......
  • Linux 02
    第二章文件管理本章学习目标:1.了解目录结构2.掌握处理文件的基本命令3.掌握vim编辑器的使用一、文件目录与路径1.1文件目录Windows系统以多根的方式处理组织文件(例如:C:\,D:\,E:\),而linux系统以单根的方式组织文件,所有的文件都在根目录(\)下,其中箭头指向真实存在的文件。用户......