开发常用的 Linux 命令4(系统、进程和其它)

2023年 8月 18日 70.3k 0

开发常用的 Linux 命令4(系统、进程和其它)
在这里插入图片描述
作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,工作上会事半功倍,大大提高工作效率。
在这里插入图片描述

七、系统和关机(关机、重启和登出)

常用命令:

命令 执行
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes & 在后台按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销
time 测算一个命令(即程序)的执行时间

其中:

shutdown -h now, init 0telinit 0 命令都可以用于关闭系统,但它们的实现方式略有不同:

  • shutdown -h now 命令会立即关闭系统,并向所有登录用户发送关机通知。它会正常地卸载文件系统并停止所有进程。
  • init 0 命令会将系统切换到运行级别0(也称为"单用户模式"),这个级别只运行必要的服务和进程,然后停止系统。这个命令比较快速,但是不会正常卸载文件系统或向用户发送关机通知。
  • telinit 0 命令与 init 0 相似,也会将系统切换到运行级别0,但是它会先执行 /etc/init.d/rc 脚本,关闭所有服务并卸载文件系统,然后再停止系统。这个命令比较缓慢,但是会正常地关闭系统并向用户发送关机通知。
  • 总之,如果您想要快速关闭系统,可以使用 init 0 命令。如果您想要正常地关闭系统并向用户发送关机通知,应该使用 shutdown -h nowtelinit 0 命令。

    八、进程相关的命令

    jps命令

    显示当前系统的java进程情况,及其id号,jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

    示例:

    1.列出当前系统中所有正在运行的Java进程的PID和主类的名称。

    jps 
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LG7hCZE2-1682037672352)(image-20230419205119828.png)]

    2.显示完整的Java进程名和参数列表。

    jps -l:
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FQOXr5jd-1682037676169)(image-20230419205110881.png)]

    3.显示启动时传递给main方法的参数。

    jps -m
    

    4.显示JVM启动时传递给JVM的参数。

    jps -v 
    

    5.仅显示进程ID,不显示主类名。

    jps -q 
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ti4LHB7-1682037676170)(image-20230419205136372.png)]

    6.将选项传递给JVM。

    jps -Joption 
    

    ps命令

    用于将某个时间点的进程运行情况选取下来并输出,process的缩写

    常用选项:

    选项 执行
    -A 所有的进程均显示出来
    -a 不与terminal有关的所有进程
    -u 有效用户的相关进程
    -x 一般与a参数一起使用,可列出较完整的信息
    -l 较长,较详细地将PID的信息列出

    常用示例:

    1.查看系统所有的进程数据

    ps aux 
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2PqFh1Ij-1682037676172)(image-20230419204931996.png)]

    2.查看不与terminal有关的所有进程

    ps ax 
    

    3查看系统所有的进程数据

    ps -lA 
    

    4.查看连同一部分进程树状态

    ps axjf 
    

    kill命令

    kill命令用于向进程发送信号。通常情况下,我们使用kill命令来终止(即杀死)一个进程,但实际上它可以用于向进程发送任何一种信号。

    kill命令的基本语法如下:

    kill [signal] PID
    

    其中,signal表示要发送的信号类型,默认为SIGTERM(15),PID则是要接收该信号的进程ID。

    以下是一些常用的信号类型及其含义:

    • HUP 1 终端断线
    • INT 2 中断(同 Ctrl + C)
    • QUIT 3 退出(同 Ctrl + )
    • TERM 15 终止
    • KILL 9 强制终止
    • CONT 18 继续(与STOP相反, fg/bg命令)
    • STOP 19 暂停(同 Ctrl + Z)

    以下是一些常用的选项及其含义:

    • -l:信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

    • -a:当处理当前进程时,不限制命令名和进程号的对应关系

    • -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号

    • -s:指定发送信号

    • -u:指定用户

    常用示例

    1:列出所有信号名称 命令:kill -l 输出:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v0LAMLIM-1682037676173)(image-20230419205608239.png)]

    2:得到指定信号的数值

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AnbsOUuK-1682037676174)(image-20230419205648706.png)]

    3.强制终止进程

    kill -9 PID
    

    4.向多个进程发送信号

    kill -signal PID1 PID2 ...
    

    这条命令将会向指定的多个进程发送信号,可以同时杀死多个进程或者打断它们的运行。

    killall命令

    向一个命令启动的进程发送一个信号,用于杀死指定名字的进程

     killall [选项] [进程名]
    

    其中,进程名 指定要杀死的进程的名称。如果没有指定信号,则默认发送 SIGTERM 信号。

    一些常用选项包括:

    • -Z 只杀死拥有scontext 的进程
    • -e 要求匹配进程名称
    • -I 忽略小写
    • -g 杀死进程组而不是进程
    • -i 交互模式,杀死进程前先询问用户
    • -l 列出所有的已知信号名称
    • -q 不输出警告信息
    • -s 发送指定的信号
    • -v 报告信号是否成功发送
    • -w 等待进程死亡
    • --help 显示帮助信息
    • --version 显示版本显示

    示例

    1:杀死所有同名进程

      killall firefox
    

    2.强制杀死所有同名进程

      killall -9 bash
    

    3.向进程发送指定信号

      killall -TERM ngixn 或者 killall -KILL nginx
    

    top命令

    top 是一个用于监视系统进程的命令行工具。它可以实时地显示各个进程的 CPU 利用率、内存占用情况、进程 ID 等信息,非常适合于查找和终止耗费系统资源的进程。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vnmWzRvu-1682037676175)(image-20230420090436562.png)]

    在这个列表中,每行代表一个进程,列出了该进程的进程 ID(PID)、所属用户、CPU 利用率、内存占用等信息。按照 CPU 利用率从高到低排列,可以使用 Shift + P 快捷键;按照内存占用情况从高到低排列,可以使用 Shift + M 快捷键。

    一些常用的命令选项包括:

    • -d :指定更新数据的时间间隔,默认为 3 秒。
    • -p :只显示指定进程 ID 的进程信息。
    • -u :只显示指定用户名的进程信息。
    • -H:显示进程树,即以缩进形式展示进程之间的父子关系。
    • -i:不显示空闲进程(IDLE)。
    • -c:显示完整的命令行而不是仅仅显示进程名。

    如何杀死进程:

    (1)终端输入top进图图形化界面
    (2)kill -9 pid (-9表示强制关闭)
    (3)killall -9 程序的名字
    (4)pkill 程序的名字

    查看进程端口号:

    netstat -tunlp|grep 端口号

    九、其它

    history命令

    显示最近执行的命令历史记录。

    history [options]
    

    常用选项:

    • -c:清除历史记录。

    常用示例:

    1.显示最近执行的命令

    使用 history 命令不带任何参数,可以显示最近执行的命令历史记录。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rK9J7Ukw-1682037676177)(image-20230420091312468.png)]

    2.按照编号查找命令

    每个命令在历史记录中都有一个编号,可以使用这个编号来查找特定的命令。例如,使用 !1249 命令可以运行历史记录中编号为 1249 的命令,如下所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NLiJtFQx-1682037676178)(image-20230420091425895.png)]

    以上命令运行了历史记录中编号为 3 的命令 ls

    3.搜索命令历史记录

    使用 history 命令加上 grep 命令可以搜索历史记录中包含特定字符串的命令。例如,使用以下命令可以搜索包含字符串 ls 的命令:

    history | grep ls
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cb28fmfN-1682037676179)(image-20230420091535256.png)]

    以上命令将显示历史记录中包含字符串 ls 的命令,即 ls 命令。

    4.清除命令历史记录

    使用 history 命令加上 -c 参数可以清空命令历史记录。例如:

    history -c
    

    以上命令将清空历史记录中所有的命令。

    man命令

    man 是一种用来查看命令手册页的工具。手册页包含了关于命令的详细说明、参数、示例以及其他有用的信息。

    常用示例:

    1.查看命令手册页

    使用 man 命令后跟命令名,即可查看该命令的手册页。例如,以下命令可以查看 ls 命令的手册页:

    man man
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SaRN3fCw-1682037676179)(image-20230420094040710.png)]

    手册页将会在终端上显示。

    2.搜索手册页

    使用 man 命令后跟 -k 参数和关键字,可以搜索包含该关键字的所有手册页。例如,以下命令可以搜索包含字符串 network 的所有手册页:

    man -k network
    

    命令将输出所有包含字符串 network 的手册页的摘要信息。

    sudo命令

    sudo 是一种用来以超级用户(root)身份执行命令的工具。使用 sudo 命令可以避免在使用 root 用户身份登录时操作系统安全性的风险。

    常用示例:

    1.执行单个命令

    使用 sudo 命令后跟需要执行的命令即可以 root 身份执行该命令。例如,以下命令可以以 root 身份创建一个名为 testfile 的文件:

    sudo touch testfile
    

    2.切换到 root 用户

    使用 sudo -i命令或者su 命令可以切换到 root 用户。该命令将打开一个新的 shell 窗口,并将当前用户切换为 root 用户。例如:

    sudo -i
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LSYRFZag-1682037676180)(image-20230420094314398.png)]

    这里输入密码,密码不可见,即可切换到root用户

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kN9Skudc-1682037676181)(image-20230420094341121.png)]

    3.以其他用户身份执行命令

    使用 sudo -u 命令可以以指定用户的身份执行命令。例如,以下命令可以以 user1 用户的身份查看 /var/log/messages 文件:

    sudo -u user1 less /var/log/messages
    

    4.查看 sudo 命令的配置

    使用 sudo -V 命令可以查看当前系统中已经配置的 sudo 命令的版本和配置信息。

    sudo -V
    

    该命令将输出当前系统中 sudo 命令的版本和已配置的参数信息。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VvczxJKf-1682037676182)(image-20230420094607654.png)]

    5.退出root用户

    在终端中输入exit即可退出root用户

    exit
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evR7940K-1682037676182)(image-20230420094820201.png)]

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论