Linux学习记录5--常用的Linux命令

本文详细介绍了Linux系统中的常用命令,如echo、date、timedatectl、reboot、poweroff、wget、ps、pstree、top、nice、pidof和kill等,以及它们的基本用法和参数。同时讨论了top命令的PR和NI值含义,进程和程序的区别,以及nice命令的优先级调整逻辑。
摘要由CSDN通过智能技术生成

一.学习的内容

        本次主要学了Linux一些常用的系统工作命令,如echo、date、timedatectl、reboot、poweroff、wget、ps、pstree、top、nice、pidof、kill、killall等命令。

1.echo命令

        echo命令用于在终端设备上输出字符串或变量提取后的值。

        命令格式为:echo [字符串][$变量]

        如图1-1所示,在命令行输入:“echo i love linux” 后,按“回车键”执行该条命令,运行结果如下所示。

图1-1  用echo输出字符串

         如图1-2所示,在命令行输入 “echo $SHELL”后,执行该条语句,运行结果如下所示。

图1-2  用echo命令输出变量值

         在命令行输入“echo i love $SHELL”并执行后,会产生如图1-3所示的输出。

图1-3  两个功能同时使用

         echo命令后的参数部分也可以用双引号括起来(建议都用双引号括起来),如图1-4所示。可以看到,由于我在双引号的开头敲了个空格,所以在输出时也有空格。除此之外,它和图1-3的输出是一样的,

图1-4 用引号将参数部分括起来

2.date命令 

        date命令主要是用来查看系统的日期和时间。命令格式:date [+指定格式]

表2-1     date命令中的参数及其作用
参数作用
%S秒0-59

 %M

分0-59
%H时0-23
%I时0-12
%m月1-12
%pam/pm
%a工作日的英文缩写(Sun)
%A工作日的完整英文(Sunday)
%b月份的英文缩写(Jan)
%B月份的英文全写(January)
%y年的简写(如2024简写24)
%Y年的全写
%d本月月中的第几天
%j本年中的第几天
%n换行
%t一个tab位
%q输出第几季度

        按照默认格式查看当前系统时间的date命令如下所示:

图2-1 默认格式查询系统时间

        按照“年-月-日    时:分:秒  周几  今年的第几天”的格式查看系统时间的date命令如下:

其中,%Y表示完整年份,%H表示24小时制,%A表示完整工作日。

图2-2  按照指定格式查看时间

        同样的,也按照上述格式(不过把Y换成y,H换成I,A换成a,再加上%p、%n、%t ),查看系统时间的命令和输入如下所示:

图2-3  按照指定格式查看时间

        查看当前的月份和季度的命令如下所示: 

图2-4   查看当前月份和季度

        和echo命令一样,最好用双引号把参数括起来,这样做可以增加时间输出格式的多样性。同样,上图还能说明,加号可以放在引号外面。

3.timedatectl

        timedatectl命令主要用于显示(设置)时间、日期和时区。

        其命令格式为:timedatectl  [参数]

表3-1         timedatectl命令中的参数和作用
参数作用
status显示状态信息
set-time设置时间、日期
set-timezone设置时区
list-timezones列出已知时区

        查看系统时间和时区的命令如下图所示:

图3-1  查看系统时间和时区

         通过timedatectl命令修改系统的日期、时间、时区,如下所示:

图3-2   修改系统日期、时间、时区

        查看修改后的时间、日期、时区: 

图3-3  修改成功

        在修改时间时,可能会遇到图3-4所示的情况:

图3-4  无法修改系统时间

         这是由于系统打开了联网后自动更新时间和日期选项,我们在设置中找到Date&Time选项,将 ON 都改成OFF即可,如下图所示

图3-5 关闭自动更新时间选项

         关闭后,再次用timedatectl命令即可更改时间。

图3-6   关闭后可再次修改时间

 4.reboot命令

        

        reboot命令用于系统的重启。直接在命令行中键入“reboot”命令,然后运行即可。

图4-1   reboot命令

 5.poweroff命令

        

        poweroff命令用于关闭系统。直接键入并运行即可。

图5-1   poweroff命令

6. wget命令

        wget命令用于在终端命令行中下载网络文件,全称为“web get”。

        命令格式为:wget [参数]  网络地址

表6-1 参数及其作用
参数作用
-b后台下载模式
-P下载到指定的目录
-t最大尝试次数
-c断点续传
-p下载页面内所有资源,包括图片、视频等
-r递归下载

        由于网络模式设置的是,仅使用主机网络,所以这条指令暂时先了解即可。后面会学。

7.ps命令

        

        ps命令用于查看系统中的进程状态。命令格式为:ps  [参数]

表7-1 参数及其作用
参数作用
-a显示所有进程(包括其他用户的进程)
-u用户以及其他详细信息
-x显示没有控制终端的进程

         输入“ps”命令时,响应如下图所示:

图7-1  直接输入ps命令

        输入“ps  a” 命令,查看所有用户的进程,如图7-2所示。

图7-2  查看所有用户进程

         使用“ps u”命令,查看本用户进程及其他信息,如下图所示:

图7-3   查看root用户的进程及详细信息

         输入“ps x”显示没有控制终端的进程,如图7-4所示:

图7-4  输出物控制终端的进程

        输入 “ps aux”命令,它的输出结果就是以上三个命令取并集。如下图所示: 

图7-5   ps aux命令输出结果图

        上面几幅图中,%CPU——运算器占用率;%MEM——内存占用率;TTY——所在终端; STAT——进程状态

         Linux系统中有五种常见的进程状态,分别为运行、中断、不可中断、僵死、停止,其各自含义,若下所示:

        运行(R):进程正在执行或在运行队列中等待

        中断(S):进程处于休眠状态,当某个条件形成后或者接受到信号时,则脱离该状态。

        不可中断(D):进程不响应系统异步信号,即便用kill命令也无法将其中断。

        僵死(Z):进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放。

        停止(T):进程收到停止信号后停止运行。

        除上述五种进程状态外,还有高优先级(<)、低优先级(N)、被锁进内存(L)、包含子进程(s)、多线程(1)这五种补充形式。

        再写命令参数时,只有短格式与短格式才能进行合并,即 ps -a 、ps -u 、ps -x    可以合并成 ps -aux。而 执行ps命令时,“-”可以省略,故可以写成 ps aux。

8.pstree命令

        pstree命令可以用树状图的形式展示各进程之间的关系。输入该命令后按回车键即可执行。

图8-1  执行pstree命令

9.top命令

        top命令可以动态的监视进程活动及系统负载情况。输入该命令直接按回车键即可执行。

图9-1  执行top命令

        如上图所示,前五行为系统整体的统计信息,其代表含义如下:

        第一行:系统时间、运行时间、登陆终端数、系统平均负载(1分钟、5分钟、15分钟)

        第二行:进程总数、正在运行进程数、休眠进程数、停止进程数、僵死进程数

        第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲资源百分比

        第四行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量

        第五行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量

10.nice命令

        nice命令用于调整进程的优先级。命令格式为:nice  优先级数字  服务名称

        在top命令的输出结果中,PR和NI的值表示进程的优先级,它们数字越低,进程的优先级就越高(NI的取值范围是:-20~19)。我们可以把bash的优先级调成最高,如下图所示:

图10-1  调整bash的优先级

11.pidof命令

        此命令可以用于查询指定服务进程的PID号码值。命令格式为:pidof  [参数]  服务名称

        每个进程的号码值(PID)是唯一的,可以用于区分不同的进程。下图是查询sshd服务程序的PID:

图11-1  查询sshd的PID

12.kill命令

        kill命令是用来终止某一指定进程号的服务进程。命令格式:kill [参数]  PID值

        接下来,使用kill命令把上面查到的PID所代表的进程终止掉。

图12-1  终止掉PID为1136的进程

        有时系统会提示进程无法被终止,此时可以加参数“-9”,表示最高级别的强制杀死进程。

13.killall命令

        killall命令用于终止某一指定名称的服务所对应的全部进程。命令格式:killall [参数] 服务名称

        通常,复杂软件的服务程序会有多个进程协同为用户提供服务,若用kill逐个终止,太过麻烦,此时可用killall批量终止某个服务程序的全部进程。

        最后,若有命令在执行时不断地在屏幕上输出信息,影响后续命令的输入,则可在执行命令时在末尾添加一个 & 符号,这样命令将进入系统后台来执行。

二.本次学习遇到的问题

        1、top输出界面中PR和NI,分别表示什么意思?

        2、在修改bash优先级是,它的修改逻辑是什么?

        3、进程和程序之间的关系

        4、进程状态中:中断、僵死、停止之间的区别?

三、问题的答案及解决办法

        1、不管如何设置优先级,实时进程对于 CPU 的抢占能力一定大于非实时进程

        NICE值:表示静态优先级,反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别,这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。PR值:叠加过 NI 的动态优先级,其值越小,优先级越高。参考至https://blog.csdn.net/lovely_nn/article/details/130676255icon-default.png?t=N7T8https://blog.csdn.net/lovely_nn/article/details/130676255

        2、如下图所示,使用命令“ ps -o pid,ppid,ni,args -C bash”来查看未修改过优先级的bash的NI值,输出显示为0;使用nice命令修改bash的优先级后,再次查看bash的NI值,发现变成了5(0+5);最后再次修改bash的优先级并查看,发现bash优先级变成了3(5-2)。由此可见nice命令修改优先级的逻辑就是,在上次服务进程的NI值上,再加上此次修改的参数。

图1   优先级修改逻辑

        补:在你输入 nice -n 10 bash 更改 bash 优先级之后,后续的命令会在新创建的 bash 子进程中执行,并且该子进程的优先级已经被设置为较低的优先级。因此,当你输入 top 命令时,它将在你更改过优先级的 bash 子进程中执行,而不是原始的 bash 进程中执行。换句话说,每次你使用 nice 命令来创建一个新的 bash 子进程并更改其优先级后,后续的命令解释都会在这个新创建的 bash 子进程中执行,直到你退出当前的 bash 子进程会话。这时再使用   ↑↓  无法调用上一个bash中执行过的命令。

        3、程序是一个静态的概念,它只是存储在磁盘上的一段代码。而进程是程序的一个动态实例,是程序在内存中的执行状态。一个程序可以被多个进程同时执行,每个进程都有自己的执行环境和资源。总的来说,程序是静态的代码集合,而进程是程序的执行实例,是动态的实体,存在于计算机内存中,并由操作系统进行管理。
        在一些特殊的环境中,比如一些虚拟化技术或容器技术中,一个进程可能会扮演多个程序的角色。例如,在容器中,多个程序可能会运行在同一个进程中,但它们在容器的环境中被视为独立的应用程序。因此,严格来说,一个进程通常对应一个程序的执行实例,但在一些特殊情况下,一个进程可能会对应多个程序,这取决于具体的实现和环境。

4、 

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值