4-3 Linux中的会话和作业(1、后台运行 & 和 查看后台 jobs)

4-3 Linux中的会话和作业(1、后台运行 & 和 查看后台 jobs),第1张

一、会话和作业的概念:

1、进程:Linux自身运行的独立程序。

2、进程组:进程组是一个或多个进程的集合。

_____________________________________________________

Linux包括三种不同类型的进程,每种进程都有自己的特点和属性:

3、交互进程 —— 由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。 

4、批处理进程 —— 这种进程和终端没有联系,是一个进程序列。 

5、监控进程(也称守护进程)—— linux系统启动时启动的进程,并在后台运行。

_______________________________________________________________

6、会话:一个用户登录终端后会新建一个会话,它是和控制终端产生IO交互的过程。这个过程可以称之为会话期。会话期可以产生一个 或 多个进程组的集合。(比喻打电话,首先要电话的接通,接通了才可以产生人与人之间的信息交互。在此会话期间可以产生一个或多个不同范畴的话题)

7、作业:作业类似于用户提交给系统的一个任务。一个作业可以包含一个或多个进程共同完成一个任务。(比喻会议上BOSS需要完成一个任务,根据需求可以分配到一个或多个人配合完成。)

8、作业控制:指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。这样用户就能在多个独立作业间进行切换。(比喻正在进行常规工作的员工,经理突发一个事情需要协助处理。这位员工放下手上的工作(挂起)。首先处理经理安排的事情,完事后再处理常规工作的事情。)

二、通过 date 和 sleep 命令理解前台、后台作业。date 命令是显示系统时间,sleep 命令是设置延时。

1、前台执行命令:

1)、前台执行命令。输入输出都是按部就班,执行完一个命令再执行下一个命令,把结果打印出来。

红色下划线:date 查看当前日期时间。

黄色下划线:sleep 10 延时10秒。

蓝色下划线:date 查看当前日期时间。

通过结果可以看出第一个 date 打印出日期时间后,延时10再执行一个 date 打印日期时间。两个时间相隔 10 秒。

2)、系统正在执行前台的命令时,再输入命令是不会马上执行。要执行完毕前面的命令才可以执行后面输入的命令。同样用 date 和 sleep做实验:

红色下划线:date 输出当前日期时间。

黄色下划线:sleep 60 系统执行延时 60 秒的 *** 作。 [root@localhost ~]# 用户标识符没有出现。虽然光标可以进行输入,但输入的    ls /tmp/ 命令并没有马上执行,没有输出。因为此时,前台正在执行 sleep 60 延时60秒的指令。

红色下划线:等待 sleep 60 执行完毕后,再执行一个 date 输出当前日期时间。两个 date 之间时间相隔 60 秒。

黄色下划线:待整条 date sleep 60 date 命令都执行完毕后,再执行刚才延时 60 秒时输入的 ls /tmp/ 命令,输出结果。

蓝色下划线:[root@localhost ~]# 用户标识符出现才算前台命令执行完毕,可以继续正常 *** 作。

2、后台执行命令:

&:命令后面使用 &符号,可以让命令在后台执行。

jobs:可以查看正在后台运行的作业。

jobs选项:-l —— 除了列出作业号外,同时列出 PID。

                 -r —— 列出仅仅在后台运行的作业。

                 -s —— 列出仅仅再后台暂停的作业。

1)、后台运行的命令进程不会影响到前台命令进程。

红色下划线:sleep 30 &—— 把 sleep  30 丢到后台运行。

黄色下划线:通过 jobs 命令跟踪进程情况。(Runing —— 正在运行,Done —— 完成)

绿色下划线:sleep 后台运行期间进行了 ls 和 tail 命令的查询输出,正常运作。

蓝色下划线:jobs 没有输出,代表 sleep 已经完结,没有后台进程。

2)、挂起 和 中断后台运行的命令。

Ctrl+c:中断后台进程。Ctrl+z:挂起后台进程。

jobs 命令可以查看到挂起的命令,不可以查看中断的命令。

3)、jobs选项:-l —— 除了列出作业号外,同时列出 PID。

红色下划线:sleep 100 &,后台运行延时100秒的程序。

黄色下划线:jobs -l 列出所有后台进程(-l —— 含作业号、PID、运行状态 和 执行的命令。)  

运行状态有 Running 、Stopped 和 Done,后台正在运行会显示 Running,当运行完毕后用 jobs 查看会显示 Done,并且命令后面的 &符号也会消失。Done只出现一次,下次再用 jobs 查看后台程序就没有了系统曾提示过 Done 的命令。挂起正在运行的命令,后台会显示 Stopped 暂停状态。

 -r —— 列出仅仅在后台运行的作业。

-s —— 列出仅仅再后台暂停的作业。

linux 常用命令有:

pwd 命令

使用 pwd 命令找出您所在的当前工作目录(文件夹)的路径。该命令将返回一个绝对(完整)路径,该路径基本上是所有以 / 开头的目录的路径。绝对路径的一个示例是 /home/username。

cd 命令

要浏览 Linux 文件和目录,请使用 cd 命令。根据您所在的当前工作目录,它需要目录的完整路径或名称。假设您位于 /home/username / Documents 中,并且想要转到 Documents 的子目录 Photos。为此,只需键入以下命令:cd Photos。另一种情况是,如果您想切换到一个全新的目录,例如 /home/username / Movies。在这种情况下,您必须输入 cd,然后输入目录的绝对路径:cd /home/username / Movies。有一些快捷方式可帮助您快速导航:cd ..(带有两个点)将一个目录向上移动 cd 直接转到主文件夹 cd-(带连字符)移动到上一个目录附带说明一下,Linux 的 shell 是区分大小写的。因此,您必须准确输入名称的目录。

ls 命令

LS 命令用于查看目录的内容。默认情况下,此命令将显示当前工作目录的内容。如果要查看其他目录的内容,请键入 ls,然后键入目录的路径。例如,输入 LS / 家 / 用户名 / 文档查看的内容的文件。您可以使用 ls 命令使用以下变体:ls -R 还将列出子目录中的所有文件 ls -a 将显示隐藏的文件 ls -al 将列出文件和目录以及详细信息,例如权限,大小,所有者等。

cat 命令

cat(连接的缩写)是 Linux 中最常用的命令之一。它用于在标准输出(sdout)上列出文件的内容。要运行此命令,请键入 cat,然后输入文件名及其扩展名。例如:cat file.txt。以下是使用 cat 命令的其他方法:cat>filename 创建一个新文件 cat filename1 filename2>filename3 连接两个文件(1 和 2),并将它们的输出存储在新文件中(3)将文件转换为大写或小写使用,cat filename | tr a-z A-Z >output.txt

cp 命令

使用 cp 命令将文件从当前目录复制到另一个目录。例如,命令 cp scenery.jpg/home /username/ Pictures 将在您的 Pictures 目录中创建一个 Scene.jpg 副本(来自当前目录)。

mv 命令

mv 命令的主要用途是移动文件,尽管它也可以用于重命名文件。mv 中的参数类似于 cp 命令。您需要输入 mv,文件名和目标目录。例如:mv file.txt/home /username/ Documents。

mkdir 命令

使用 mkdir 命令创建一个新目录 - 如果键入 mkdir Music,它将创建一个名为 Music 的目录。还有一些额外的 mkdir 命令:要在另一个目录中生成新目录,请使用此 Linux 基本命令 mkdir Music / Newfile 使用 p(父级)选项在两个现有目录之间创建一个目录。例如,mkdir -p Music / 2022 / Newfile 将创建新的 “2022” 文件。

rmdir 命令

如果需要删除目录,请使用 rmdir 命令。但是,rmdir 仅允许您删除空目录。

rm 命令

该 RM 命令用于删除目录以及其中的内容。如果只想删除目录(作为 rmdir 的替代方法),请使用 rm -r。注意:使用此命令时要格外小心,并仔细检查您所在的目录。这将删除所有内容,并且没有撤消 *** 作。

touch 命令

该触摸命令允许您创建通过 Linux 命令行新的空白文件。例如,输入 touch /home/username/Documents/Web.html 在 Documents 目录下创建一个名为 Web 的 HTML 文件。

locate 命令

您可以使用此命令来定位文件,就像 Windows 中的搜索命令一样。此外,将 - i 参数与该命令一起使用将使其不区分大小写,因此即使您不记得其确切名称,也可以搜索文件。要搜索包含两个或多个单词的文件,请使用星号(*)。例如,locate -i school * note 命令将搜索包含单词 “school” 和 “ note” 的任何文件,无论它是大写还是小写。

find 命令

在类似定位命令,使用 查找也搜索文件和目录。区别在于,您可以使用 find 命令在给定目录中查找文件。例如,find /home/-name notes.txt 命令将在主目录及其子目录中搜索名为 notes.txt 的文件。使用查找时的其他变化 是:要查找当前目录中使用的文件,请使用 find . -name notes.txt 要查找目录,请使用 /-type d -name notes. txt13. grep 命令无疑对日常使用很有帮助的另一个基本 Linux 命令是 grep。它使您可以搜索给定文件中的所有文本。为了说明这一点,grep blue notepad.txt 将在记事本文件中搜索单词 blue。包含搜索到的单词的行将被完整显示。

sudo 命令

该命令是 “SuperUser Do” 的缩写,使您能够执行需要管理或超级用户权限的任务。但是,建议不要将此命令用于日常使用,因为如果您做错了一些事情,很容易发生错误。

df 命令

使用 df 命令可获取有关系统磁盘空间使用情况的报告,以百分比和 KB 表示。如果要以兆字节为单位查看报告,请输入 df -m。

du 命令

如果要检查文件或目录占用了多少空间,答案是 du(磁盘使用情况)命令。但是,磁盘使用情况摘要将显示磁盘块号,而不是通常的大小格式。如果要以字节,千字节和兆字节为单位查看它,请在命令行中添加 - h 参数。

head 命令

所述头命令用于查看任何文本文件的第一行。默认情况下,它将显示前十行,但是您可以根据自己的喜好更改此数字。例如,如果只想显示前五行,则键入 head -n 5 filename.ext。

tail 命令

该命令与 head 命令具有相似的功能,但是 tail 命令将显示文本文件的最后十行,而不是显示第一行。例如,tail -n filename.ext。

diff 命令

diff 命令是差异的缩写,diff 命令逐行比较两个文件的内容。分析文件后,它将输出不匹配的行。程序员在需要进行程序更改时经常使用此命令,而不是重写整个源代码。此命令最简单的形式是 diff file1.ext file2.ext

tar 命令

该 tar 命令是最常用的命令归档多个文件到一个压缩包。类似于 zip 格式常见的 Linux 文件格式,压缩是可选的。该命令具有很长的功能列表,非常复杂,例如将新文件添加到现有档案中,列出档案内容,从档案中提取内容等等。查看一些实际示例,以了解有关其他功能的更多信息。

chmod 命令

chmod 是另一个 Linux 命令,用于更改文件和目录的读取,写入和执行权限。由于此命令相当复杂,因此您可以阅读完整的教程以正确执行它。

chown 命令

在 Linux 中,所有文件均归特定用户所有。该 CHOWN 命令使您可以更改或文件的所有权转让给指定的用户名。例如,chown linuxuser2 file.ext 将使 linuxuser2 成为 file.ext 的所有者。

Jobs 命令

jobs 命令将显示所有当前作业及其状态。作业基本上是由 Shell 启动的进程。

kill 命令

如果您的程序无响应,则可以使用 kill 命令手动终止它。它将向运行异常的应用发送特定信号,并指示该应用自行终止。您总共可以使用 64 个信号,但是人们通常只使用两个信号:SIGTERM(15) — 请求程序停止运行,并给它一些时间来保存其所有进度。如果在输入 kill 命令时未指定信号,则将使用此信号。SIGKILL(9) - 强制程序立即停止。未保存的进度将丢失。除了知道信号之外,您还需要知道要杀死的程序的进程标识号(PID)。如果您不知道 PID,只需运行命令 ps ux。在知道您要使用什么信号以及程序的 PID 之后,输入以下语法:kill [signal option] PID.

ping 命令

使用 ping 命令检查与服务器的连接状态。例如,只需输入 ping google.com,该命令将检查您是否能够连接到 Google 并测量响应时间。

wget 命令

Linux 命令行非常有用 - 您甚至可以在 wget 命令的帮助下从 Internet 下载文件。为此,只需键入 wget,然后输入下载链接即可。

uname 命令

该 UNAME 命令,短期对于 Unix 名,将打印您的 Linux 系统,如计算机名称的详细信息, *** 作系统,内核,等等。

top 命令

作为与 Windows 中的任务管理器等效的终端,top 命令将显示正在运行的进程的列表以及每个进程使用的 CPU 数量。监视系统资源使用情况非常有用,尤其是知道哪个进程由于消耗太多资源而需要终止时。

history 命令

当您使用 Linux 一段时间后,您会很快注意到每天可以运行数百个命令。因此,如果您想查看之前输入的命令,运行历史记录命令特别有用。

man 命令

对某些 Linux 命令的功能感到困惑吗?不用担心,您可以使用 man 命令从 Linux 的外壳程序中轻松地学习如何使用它们。例如,输入 man tail 将显示 tail 命令的手动指令。

echo 命令

此命令用于将一些数据移到文件中。例如,如果要将文本 “Hello,我的名字叫 John” 添加到名为 name.txt 的文件中,则可以键入 echo Hello, my name is John >>name.txt

zip,unzip 命令

使用 zip 命令将文件压缩到 zip 归档文件中,然后使用 unzip 命令从 zip 归档文件中提取压缩文件。

hostname 命令

如果您想知道主机 / 网络的名称,只需键入 hostname。在末尾添加 - I 将显示您的网络的 IP 地址。

useradd,userdel 命令

可以使用top命令。

top命令提供了运行中系统的动态实时视图。在终端中输入top:

第一行:

10:01:23

当前系统时间

126

days,

14:29

系统已经运行了126天14小时29分钟(在这期间没有重启过)

2

users

当前有2个用户登录系统

load

average:

1.15,

1.42,

1.44

load

average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load

average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。 

第二行:

Tasks

任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。 

第三行:cpu状态

6.7%

us

用户空间占用CPU的百分比。

0.4%

sy

内核空间占用CPU的百分比。

0.0%

ni

改变过优先级的进程占用CPU的百分比

92.9%

id

空闲CPU百分比

0.0%

wa

IO等待占用CPU的百分比

0.0%

hi

硬中断(Hardware

IRQ)占用CPU的百分比

0.0%

si

软中断(Software

Interrupts)占用CPU的百分比

在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。

第四行:内存状态

8306544k

total

物理内存总量(8GB)

7775876k

used

使用中的内存总量(7.7GB)

530668k

free

空闲内存总量(530M)

79236k

buffers

缓存的内存量

(79M)

第五行:swap交换分区

2031608k

total

交换区总量(2GB)

2556k

used

使用的交换区总量(2.5M)

2029052k

free

空闲交换区总量(2GB)

4231276k

cached

缓冲的交换区总量(4GB)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8350957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存