Linux 操作系统管理命令(全)

2023-11-05

目录

1、Linux常用命令

(1)date

(2)pwd命令

(3)cd命令

(4)cal命令

(5)who命令

(6)wc命令

(7)uname命令

(8)clear命令

(9)logout命令

(10)shutdown命令

2、命令高级操作

(1)命令补全tab键 :w+tab键

(2)使用历史命令 上下左右键

(3)输入/输出重定向

(4)管道功能

3、文件操作命令

(1)ls显示文件列表

(2)cd命令

(3)cat命令

(4)more命令

(5)head命令

(6)tail命令

(7)cp命令

(8)mv命令

(9)rm命令

(10)touch命令

(11)file命令

(12)find命令

(13)grep命令

(14)sort命令

(15)mkdir命令

(16)rmdir 命令

(17)tar 命令

(18)gzip命令

4、用户与组管理命令

配置文件

用户与组管理命令

(1)useradd命令

  (2)   passwd命令

(3)userdel 命令 删除用户账号

(4)usermod命令

(5)groupadd 命令

(6)groupdel

(7)groupmod 命令

(8)su命令

(9)sudo 命令

5、网络管理命令

ipconfig 命令

homename命令

netstat命令

ping命令

write命令

wall命令

talk命令

6、进程管理命令

ps命令

进程树pstree命令

实时显示进程命令top

指定进程优先级命令nice和renice

kill

jobs查看后台进程

进程前台于后台控制命令

计划任务命令

(2)crontab命令

7、帮助命令

man命令

man --help


1、Linux常用命令

(1)date

用于显示系统当前的时间

ubuntu@VM-8-7-ubuntu:~$ date
Sun Dec 11 21:57:18 CST 2022

(2)pwd命令

用于显示当前工作路径

ubuntu@VM-8-7-ubuntu:~$ pwd
/home/ubuntu

(3)cd命令

切换当前路径

ubuntu@VM-8-7-ubuntu:~$ cd /home
ubuntu@VM-8-7-ubuntu:/home$ pwd
/home

(4)cal命令

用于显示日历,可显示公园1~9999年中某年某月的日历,不带参数显示当前月份日历,带参数显示指定年份、月份的日历

ubuntu@VM-8-7-ubuntu:/home$ cal 
   December 2022      
Su Mo Tu We Th Fr Sa  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30 31  
                      
ubuntu@VM-8-7-ubuntu:/home$ cal 09 2019
   September 2019     
Su Mo Tu We Th Fr Sa  
 1  2  3  4  5  6  7  
 8  9 10 11 12 13 14  
15 16 17 18 19 20 21  
22 23 24 25 26 27 28  
29 30 

(5)who命令

显示当前已经登录到系统的所有用户名、登录中断以及登陆时间

ubuntu@VM-8-7-ubuntu:/home$ who
ubuntu   pts/0        2022-12-11 21:56 (123.138.101.244)

(6)wc命令

统计文件的行数(-l)、字数(w)、字符数(-c)

ubuntu@VM-8-7-ubuntu:~$ wc -l tete.c
13 tete.c
ubuntu@VM-8-7-ubuntu:~$ wc -w tete.c
10 tete.c
ubuntu@VM-8-7-ubuntu:~$ wc -c tete.c
30 tete.c

(7)uname命令

显示当前操作系统的信息,可带多个选项

ubuntu@VM-8-7-ubuntu:~$ uname -a
Linux VM-8-7-ubuntu 4.15.0-193-generic #204-Ubuntu SMP Fri Aug 26 19:20:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@VM-8-7-ubuntu:~$ uname
Linux

(8)clear命令

用于刷新屏幕,清空屏幕上的所有信息

(9)logout命令

注销登录信息,用户输入logout命令直接退出系统,回到登录前的界面

(10)shutdown命令

执行关闭操作系统

2、命令高级操作

(1)命令补全tab键 :w+tab键

ubuntu@VM-8-7-ubuntu:~$ w
w            watchgnupg   whatis       whiptail     wipefs       wqdump       
wait         wc           whereis      who          wish         wqdump_ext   
wall         wdctl        which        whoami       wish8.6      write        
watch        wget         while        wifi-status  w.procps  

(2)使用历史命令 上下左右键

(3)输入/输出重定向

输入重定向符号“<”或者“<<”

输出重定向符号“>”或者“>>”

(4)管道功能

“|”把一个命令的输出信息当做另一个命令的输入信息

3、文件操作命令

(1)ls显示文件列表

命令选项 含义
-a 显示所有文件及目录,目录中以“.”开头的文件为隐藏文件,普通ls文件不回列出,只有带“-a”参数才能显示
-l 以长格式显示目录下的内容列表,从左至右包括文件名、文件类型、权限模式、硬链接数、所有者、组、文件大小和文件最后修改时间等
-i 显示文件索引节点号(indone),一个索引节点代表一个文件
-r 以文件名反序排列输出目录内容列表
-t 用文件和目录的更改时间排序
-m 用“,”号区隔每个文件和目录的名称
-R/r 递归显示指定目录下的所有文件及子目录
ubuntu@VM-8-7-ubuntu:~$ ls
main.cc  project  test.cc  text
ubuntu@VM-8-7-ubuntu:~$ ls -a
.              .bashrc  .local    project                    test.cc   .vscode-server
..             .cache   main.cc   .pydistutils.cfg           text      .wget-hsts
.bash_history  .git     .pip      .ssh                       .vim      .Xauthority
.bash_logout   .gnupg   .profile  .sudo_as_admin_successful  .viminfo
ubuntu@VM-8-7-ubuntu:~$ ls -l
total 44
-rw-rw-r-- 1 ubuntu ubuntu 39137 Dec 11 22:27 main.cc
drwxr-xr-x 2 root   root    4096 Nov 27 20:23 project
-rw-rw-r-- 1 ubuntu ubuntu     0 Dec 11 22:29 test.cc
-rw-rw-r-- 1 ubuntu ubuntu     0 Dec 11 22:18 text
ubuntu@VM-8-7-ubuntu:~$ ls -i
131335 main.cc  786865 project  131171 test.cc  131251 text
ubuntu@VM-8-7-ubuntu:~$ ls -r
text  test.cc  project  main.cc
ubuntu@VM-8-7-ubuntu:~$ ls -t
test.cc  main.cc  text  project
ubuntu@VM-8-7-ubuntu:~$ ls -m
main.cc, project, test.cc, text
ubuntu@VM-8-7-ubuntu:~$ ls -R
.:
main.cc  project  test.cc  text

./project:
ubuntu@VM-8-7-ubuntu:~$ 

(2)cd命令

切换工作目录至指定目录 两种 绝对路径和相对路径

(3)cat命令

显示文件内容,可以利用输入/输出重定向功能建立小型文件或者将两个文件连接起来,文件过大,文件内容在屏幕迅速闪过(滚屏),可以用以下方式,Ctrl+S组合键停止滚屏,Ctrl+Q回复滚屏Ctrl+C中断

ubuntu@VM-8-7-ubuntu:~$ cat main.cc
#include <iostream>
#include<string.h>
#include <windows.h>
#include <vector>
#include<algorithm>
#include <string>
ubuntu@VM-8-7-ubuntu:~$ cat -n main.cc //-n带行号
     1
     2  #include <iostream>
     3  #include<string.h>
     4  #include <windows.h>
     5  #include <vector>
     6  #include<algorithm>
     7  #include <string>

(4)more命令

分屏相爱十年还大文件,当显示满后一屏后停下来

//*****************************************************//�����
class info//��Ϣ��
{
protected:
        long number;//���
--More--(1%)
//按空格键显示下一个屏幕,B上一个屏幕,Q退出,Enter下一行
                teachername = tea;
        }
        course(const course& c1)//��������
        {
                number = c1.number;
--More--(2%)

(5)head命令

显示文件的开头内容 默认十行( head -数字 显示几行)

ubuntu@VM-8-7-ubuntu:~$ head main.cc
#      head -数字 显示几行
#include <iostream>
#include<string.h>
#include <windows.h>
#include <vector>
#include<algorithm>
#include <string>
using namespace std;
using std::vector;
int Menu();

(6)tail命令

显示文件末尾多好行的内容 默认十行

ubuntu@VM-8-7-ubuntu:~$ tail main.cc
        s1.havec.push_back(c2);//������ѧ����ѡ�γ�
        s.push_back(s1);//������ѧ��
        student s2(2, "�", "Ů", "���", 22);
        s2.havec.push_back(c2);//������ѧ����ѡ�γ�
        s.push_back(s2);//������ѧ��
        login();
        Menu();
        system("pause");
        return 0;

(7)cp命令

将一个或者多个源文件(目录)复制到指定目标目录中

cp [选项] 源文件或目录 目标文件目录
命令选项 含义
-d 当复制符号连接时,把目标文件或目录也建立为符号连接的原始文件或目录
-f 强制复制文件或目录,不论目标文件或目录是否已经存在
-i 覆盖既有文件之前询问用户
-l 对源文件建立硬链接,而不是复制文件
-s 对源文件建立符号连接,而非复制文件
-u 在源文件的更改时间较目标文件更新时名称相互对应的目标文件并不从在时,财复制文件
-R/r 递归处理,将指定目录的所有文件与子目录一并处理

(8)mv命令

将文件从一个目录移动到另一个目录中,或将文件或目录重新命名

mv [选项]源文件或目录 目标文件或目录
命令选项 含义
-b 当目标文件存在时,覆盖前,为其创建一个备份
-f 若目标文件或目录和现在的文件目录重合,直接覆盖
-i 交互式操作,覆盖前先询问用户

(9)rm命令

删除一个目录中的一个或者多个文件或目录,也可以将某个目录及其下属的所有文件和子目录删除。如果删除是链接文件,链接文件对应的源文件保持不变。

rm [选项] 文件或目录列表 
命令选项 选项
-f 强制删除文件或者目录
-i 交互式操作 ,询问用户
-R/r 递归删除,将指定目录下的多有稳健与子目录一并处理
ubuntu@VM-8-7-ubuntu:~$ ls
main.cc  project  sample.html  test.cc  text
ubuntu@VM-8-7-ubuntu:~$ rm text
ubuntu@VM-8-7-ubuntu:~$ ls
main.cc  project  sample.html  test.cc

(10)touch命令

创建一个性的文件或者改变一个已有文件的时间标签

touch [选项] 文件名
ubuntu@VM-8-7-ubuntu:~$ ls
a  main.cc  project  sample.html  test.cc
ubuntu@VM-8-7-ubuntu:~$ touch main.cc 
ubuntu@VM-8-7-ubuntu:~$ ls
a  main.cc  project  sample.html  test.cc
ubuntu@VM-8-7-ubuntu:~$ ls -l main.cc
-rw-rw-r-- 1 ubuntu ubuntu 39137 Dec 12 00:43 main.cc

(11)file命令

识别文件类型,辨别文件的编码格式

ubuntu@VM-8-7-ubuntu:~$ file main.cc
main.cc: C++ source, ISO-8859 text, with CRLF line terminators
ubuntu@VM-8-7-ubuntu:~$ file project
project: directory

(12)find命令

在文件系统中查找指定文件,可以根据文件的名称、大小、建立时间、等为条件。

find [目录列表] [文件的匹配标准]
匹配类型 含义
-name 指定文件名字符串,可使用通配符*和?
-type 文件类型 例如发f(普通文件)
-perm 权限数值的文件目录
-links 硬链接数目的文件
-size 指定文件的文件大小,c-字节 w-字 b-快 k-千字节 m
-atime 指定时间曾被存取的文件或目录 单位天
-mtime 指定时间被更改过的文件或目录 单位天
-user 指定拥有者名称的文件或目录
-group 指定群组名称或目录
ubuntu@VM-8-7-ubuntu:~$ find / -name "*.c" | head 
/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/config.c
/usr/lib/python3/dist-packages/twisted/test/raiser.c
/usr/lib/python3/dist-packages/twisted/python/_sendmsg.c

(13)grep命令

在指定文件中检索匹配关键字信息,并把匹配的行打印出来

命令选项 含义
-i 忽略字符大小写的差别
-n 在输出匹配行之前,标为该行的行号
-v 反转查找,即查找不包含所查找字符串的行
ubuntu@VM-8-7-ubuntu:~$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

(14)sort命令

对文件进行排序,并将排序结果标准输出。既可以从特定文件,也可以从输入设备中获取输入,将文件的每一行作为一个单位进行比较,比较原则是从首字符向后,按照ASCII码进行比较,按照升序输出。不改变文件本身

命令选项 含义
-b 忽略每一行前面的所有字符,从第一个可见字符开始
-n 要以数值来排序
-f 排序时,将小写字母视为大写字母,忽略大小写
-t 设定间隔符
-k 指定排序关键字
-r 以相反的顺序排序
ubuntu@VM-8-7-ubuntu:~$ sort /etc/passwd
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
games:x:5:60:games:/usr/games:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash

(15)mkdir命令

 创建目录

mkdir [选项] 目录列表
命令选项 含义
-m 建立目录的同时设置目录权限
-p 若要建立目录的上层目录尚未建立,则一并建立

(16)rmdir 命令

删除空目录 -r递归删除含有文件的目录

mkdir [选项] 目录列表
命令选项 含义
-r 强制删除目录及目录中的文件和子目录
-p 删除指定目录后,若该目录的上层已变成空目录,则将其一并删除

(17)tar 命令

打包、压缩 生成的文件以.tar。tar命令本身没有压缩功能,需要调用gzip程序对生成的tar包进行压缩

tar [选项] 文件或目录
命令选项 含义 命令选项 含义
-c 建立新的备份文件 -x 从备份文件中还原文件
-f 指定备份文件 -v 打包时显示指令的执行过程
-z 通过gzip指令处理备份文件
ubuntu@VM-8-7-ubuntu:~$ tar -cvfcf.tar *.cc
main.cc
test.cc
ubuntu@VM-8-7-ubuntu:~$ ls
a  cf.tar  main.cc  project  sample.html  test.cc

(18)gzip命令

gzip [选项] 文件
命令选项 含义
-d 解开压缩文件
-l 列出压缩文件的相关信息
-r 将指定目录下的文件及子目录一并处理
-t 测试压缩文件是否正确无误
-v 显示指令执行过程
buntu@VM-8-7-ubuntu:~$ gzip test.cc
ubuntu@VM-8-7-ubuntu:~$ ls
a  cf.tar  main.cc  project  sample.html  test.cc.gz
ubuntu@VM-8-7-ubuntu:~$ gzip -l test.cc.gz
         compressed        uncompressed  ratio uncompressed_name
                 28                   0   0.0% test.cc

4、用户与组管理命令

配置文件

Linux用户分为3类

  • root:超级用户UID为0,对系统有绝对的控制权,能够对系统进行所有的操作。

  • 系统用户 :UID为1~499,任何一个人进程都会有 一个用户身份,某些系统进程或服务启动时,对应的身份就是系统用户

  • 普通用户:UID大于等于500都是普通用户,用户权限会受到限制。

LInux操作系统的用户和组信息保存在系统的配置文件中 ,其中的用户信息保存在/passwd和etc/shadow文件中,组信息保存在/etc/group和/etc/gshadow文件中,这些文件都是文本文件,文件格式类似。

ubuntu@VM-8-7-ubuntu:~$ cat /etc/passwd | head
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

上图文件格式:

用户名:口令:用户ID:组ID:注释性描述:主目录:登录shell
ubuntu@VM-8-7-ubuntu:~$ cat /etc/group |head 
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,ubuntu
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
  • 组名称:用户组的名称

  • 组密码:用户组的密码 ,现在用“X”填充

  • 组ID:组ID与用户ID类似,也是一个整数,被系统内部用来标识组

  • 组用户列表:属于这个组的所有用户的列表,不同用户之间用“,”隔开

用户与组管理命令

(1)useradd命令

useradd [选项] 用户名
命令选项 含义
-d 指定用户登录时的其实目录
-c 给用户加上备注文字
-e 指定账号的有效期限
-f 指定在密码过期后多少天即关闭该账号
-g 指定用户所属的组
-s 指定用户登入后的所使用的的shell
-u 指定用户ID
root@VM-8-7-ubuntu:/home/ubuntu# useradd user1
root@VM-8-7-ubuntu:/home/ubuntu# tail /etc/passwd
uuidd:x:106:110::/run/uuidd:/usr/sbin/nologin
dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
ubuntu:x:500:500:ubuntu,,,:/home/ubuntu:/bin/bash
ntp:x:111:115::/nonexistent:/usr/sbin/nologin
statd:x:112:65534::/var/lib/nfs:/usr/sbin/nologin
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash
user1:x:1001:1001::/home/user1:/bin/sh
root@VM-8-7-ubuntu:/home/ubuntu# 

(2)passwd命令

修改自己的用户密码,超级用户使用该命令修改自己和普通用户的密码,设置普通用户的密码有效期、锁定用户密码等

passwd [选项] 用户名
命令选项 含义 命令选项 含义
-l 锁定密码,使用户无法登陆系统 -u 启动已停止的账户
-d 删除密码 -f 强制执行
-S 显示密码信息
root@VM-8-7-ubuntu:/home/ubuntu# passwd user1
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

(3)userdel 命令 删除用户账号

userdel [选项] 用户名
命令选项 含义
-r 删除用户的同时也删除用户家目录里面的文件
-f 强制删除用户账号,即使该用户在登录

(4)usermod命令

修改用户账号的信息,例如用户ID,用户组

usermod [选项] 用户名
命令选项 含义
-c 修改用户账号的备注文字
-d 修改用户登录时的目录
-f 修改在密码过期后多少天关闭账号
-g 修改用户所属的群组
-l 修改用户的账号名称
-L 锁定用户密码,是密码无效
-s 修改用户登录的适应shell
-u 修改用户ID
-U 解除密码锁定
-e 修改账号的有效时间

(5)groupadd 命令

天剑用户的用户账号

groupadd [选项] 用户组名
命令选项 含义
-g 指定新建用户组的ID
-r 创建系统用户组,系统用户组的ID为1~499
-0 允许添加用户组ID号不唯一的工作组

(6)groupdel

删除用户组

groupdel [选项] 工作组名

(7)groupmod 命令

修改用户组属性

groupmod [选项] 工作组
命令选项 含义
-g 修改新的用户组ID
-n 修改用户组名称
-o 允许用户组ID不唯一

(8)su命令

切换当前用户身份到其他用户身份

su [选项] 用户名
命令选项 含义
-c 执行完指定指令后,恢复原来身份
-l 改变身份时,也同时变更工作目录,环境变量
-m/-p 改变身份时,不要改变环境变量
-s 指定要执行的shell

(9)sudo 命令

切换用户 配置文件/etc/sudoers

sudo [选项] 用户名
命令选项 含义
-b 在后台执行
-H 将HOME环境变量设为新身份的HOME环境变量
-k 结束密码的有效期限,也就是下次再执行sudo命令时需要输入密码
-l 列出目前用户可执行与无法执行的指令
-p 改变询问密码的提示符
-s 执行指定的shell
-u 指定的用户做为新的身份默认为root
-v 延长密码时间5min

5、网络管理命令

ipconfig 命令

用于配置和显示Linux内核网络接口的网络参数

ipconfig [参数]

(1)显示网卡配置。执行ipconfig命令不带参数,显示当前的网卡配置

(2)重新设置网卡的IP地址。其用法格式为

ipconfig 网卡设备 IP地址
ifconfig eth0 192.168.10.10

(3)激活或停止指定的网卡

ipconfg 网卡设备 up|down
#ipconfig eth0 down

homename命令

(1)hostname命令用于显示或设置主机名

hostname [参数]
ubuntu@VM-8-7-ubuntu:~$ hostname
VM-8-7-ubuntu

(2)修改当前主机名称为linux-1

ubuntu@VM-8-7-ubuntu:~$ sudo hostname linux-1
ubuntu@VM-8-7-ubuntu:~$ hostname
linux-1

netstat命令

显示linux中网络系统的状态信息

netstat [选项]
命令选项 含义 命令选项 含义
-a 显示所有连线中的socket -c 持续列出网络状态
-t 显示TCP传输协议的连接情况 -r 显示Routing Table
-u 显示UDP传输协议的连接情况 -s 显示网络工作信息统计表
ubuntu@VM-8-7-ubuntu:~$ netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0     52 linux-1:ssh             123.138.101.244:31218   ESTABLISHED
tcp        0      0 linux-1:58476           169.254.0.138:8186      ESTABLISHED
ubuntu@VM-8-7-ubuntu:~$ netstat -u
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
ubuntu@VM-8-7-ubuntu:~$ netstat -s

ping命令

测试主机之间的网络连通性,通过向测试的目标主机地址发送ICMP报文并且接收返回报文,测试主机之间的网络连通状态

ping [选项] [参数]
命令选项 含义 命令选项 含义
-c 设置完成要求回应的次数 -r 记录路由过程
-s 设置数据包的大小 -v 详细显示指令的执行过程
-i 指定收发数据的间隔时间,单位是s
ubuntu@VM-8-7-ubuntu:~$ ping -c 4 www.baidu.com 
PING www.a.shifen.com (110.242.68.3): 56 data bytes
64 bytes from 110.242.68.3: icmp_seq=0 ttl=251 time=9.167 ms
64 bytes from 110.242.68.3: icmp_seq=1 ttl=251 time=9.190 ms
64 bytes from 110.242.68.3: icmp_seq=2 ttl=251 time=9.234 ms
64 bytes from 110.242.68.3: icmp_seq=3 ttl=251 time=9.205 ms
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 9.167/9.199/9.234/0.024 ms

write命令

给其他用户发送实时消息,要求该用户登录系统

write 用户名

wall命令

以广播的形式给所有用户发送实时消息

wall 消息内容

如果消息内容太多,可以将消息保存在文件里,然后以文件形式发送

ubuntu@VM-8-7-ubuntu:~$ wall hello every one

talk命令

和其他用户聊天,聊天双方同时登陆主机

talk 用户名
ubuntu@VM-8-7-ubuntu:~$ talk user1

6、进程管理命令

ps命令

查看当前系统的进程状态,查看系统中有哪些正在运行的进程状态、进程是否结束、进程所占用的系统资源等

ps [选项]
命令选项 含义
-s 显示所有用户进程
-u 以用户为主的格式显示进程状况
-x 显示所有进程,不以终端机来区分
-e 列出进程时,显示每个进程所使用的的环境变量
-r 只列出当前终端机正在执行的进程
-f 显示进程的详细信息
-l 以长格式显示进程列表
ubuntu@VM-8-7-ubuntu:~$ ps -a
  PID TTY          TIME CMD
11278 pts/0    00:00:00 ps
ubuntu@VM-8-7-ubuntu:~$ ps -u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ubuntu    3164  0.0  0.2  22268  5408 pts/0    Ss   16:38   0:00 -bash
ubuntu   11285  0.0  0.1  36720  3340 pts/0    R+   17:27   0:00 ps -u
ubuntu@VM-8-7-ubuntu:~$ ps -x
  PID TTY      STAT   TIME COMMAND
 3073 ?        Ss     0:00 /lib/systemd/systemd --user
 3074 ?        S      0:00 (sd-pam)
 3163 ?        R      0:00 sshd: ubuntu@pts/0
 3164 pts/0    Ss     0:00 -bash
11297 pts/0    R+     0:00 ps -x

输出信息对照表

选项 说明
UID 进程所有者用户名
PID 进程号
PPID 父进程的进程号
C 占用CPU时间与总时间的百分比
USER 用户名
VSZ 进程所占虚拟机内存(KB)
RSS 进程所占用内存空间
TIME 进程从启动依赖占用CPU总时间
TTY 进程从那个终端启动
STIME 进程开始执行的时间
STAT 进程当前的状态
CMD 进程的命令名
%CPU 占用的CPU的时间与总时间的百分比
NI 进程的优先级

ps命令进程状态含义

符号 含义 符号 含义
S 睡眠状态 Z 僵尸状态
W 进程没有驻留页 D 不间断睡眠
R 运行或准备运行状态 T 停止或追踪
I 空闲 N 低优先级任务

进程树pstree命令

ubuntu@VM-8-7-ubuntu:~$ pstree
systemd─┬─accounts-daemon───2*[{accounts-daemon}]
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───2*[{barad_agent}]
        ├─cron
        ├─dbus-daemon
        ├─inetd
        ├─2*[iscsid]
        ├─lvmetad
        ├─lxcfs───8*[{lxcfs}]
        ├─networkd-dispat───{networkd-dispat}
        ├─ntpd───{ntpd}
        ├─polkitd───2*[{polkitd}]
        ├─rpcbind
        ├─rshim───{rshim}
        ├─rsyslogd───3*[{rsyslogd}]
        ├─sgagent───{sgagent}
        ├─sshd───sshd───sshd───bash───pstree
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-network
        ├─systemd-resolve
        ├─systemd-udevd
        ├─tat_agent───6*[{tat_agent}]
        └─unattended-upgr───{unattended-upgr}

实时显示进程命令top

交互式页面,实时更新这个页面,显示了 PID,用户,CPU占有率等

top - 17:37:55 up 14 days, 21:39,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 106 total,   1 running,  60 sleeping,   0 stopped,   1 zombie
top - 17:38:18 up 14 days, 21:39,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 105 total,   1 running,  60 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.8 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2040628 total,   282140 free,   161004 used,  1597484 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1681364 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                        
 2111 root      20   0  512336  17032   4344 S   1.3  0.8  91:10.57 barad_agent                                    
  423 root      19  -1  436880 292032 280344 S   0.3 14.3   1:03.55 systemd-journal                                
12932 root      20   0  108000   7104   6104 S   0.3  0.3   0:00.01 sshd                                           
    1 root      20   0  159896   9116   6648 S   0.0  0.4   0:16.60 systemd                                        
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.11 kthreadd                                       
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H                                   
    6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 mm_percpu_wq                                   
    7 root      20   0       0      0      0 S   0.0  0.0   0:03.75 ksoftirqd/0                                    
    8 root      20   0       0      0      0 I   0.0  0.0   1:05.37 rcu_sched                                      
    9 root      20   0       0      0      0 I   0.0  0.0   0:00.00 rcu_bh                                         
   10 root      rt   0       0      0      0 S   0.0  0.0   0:01.71 migration/0 

指定进程优先级命令nice和renice

(1)nice改变程序执行的优先级等级,范围为-20~19,数字越小,优先越高。

一般情况下,普通程序的优先级权值为0,普通用户只能在0~19调整程序的优先级

nice [选项] [程序或命令]
ubuntu@VM-8-7-ubuntu:~$ nice #默认
0
ubuntu@VM-8-7-ubuntu:~$ nice -n 19 ./test
#以最低优先级执行这个程序

2)renice允许修改一个运行进程的优先权

renice [选项] [参数]
-n 改变优先级
-g 指定进程组
-p 改变制定PID程序的优先级等级
-u 指定开启进程用户名

kill

结束进程 -9强制杀死进程

kill -signal PID
SIGNAL 说明
HUP :1 终端断线
INT:2 中断
QUIT:3 退出
TEAM:15 终止
KILL:9 强制终止
CONT:18 继续
STOP:19 暂停..

jobs查看后台进程

jobs命令用于查看后台运行的进程。jobs 命令执行的结果中,加号(+)表示是一个当前的任务,减号(一)表示是一个当前任务之后的任务。如果后台的任务号有2个,当第[1]个后台任务顺利执行完毕,第[2]个后台任务还在执行中时,当前任务便会自动变成后台任务号码[2]的后台任务,即当前任务是动态变化的。当用户输人fg、bg和stop等命令时,如果不加任何参数,则所变动的均是当前任务。

ubuntu@VM-8-7-ubuntu:~$ sleep 300&
[1] 15483
ubuntu@VM-8-7-ubuntu:~$ jobs
[1]+  Running                 sleep 300 &
ubuntu@VM-8-7-ubuntu:~$ vi &
[2] 15513
ubuntu@VM-8-7-ubuntu:~$ jobs
[1]-  Running                 sleep 300 &
[2]+  Stopped                 vi
ubuntu@VM-8-7-ubuntu:~$ 

进程前台于后台控制命令

系统执行的进程,按照执行方式分为前台与后台两种,引人后台工作方式,可以在命令行方式下同时执行多个程序,这样能极大地提高系统的工作效率。fg命令用于将后台任务调至前台,而bg命令用于将前台命令调至后台。

使用fg命令将创建的sleep进程从后台调至前台。

ubuntu@VM-8-7-ubuntu:~$ sleep 300 &
[1] 15997
ubuntu@VM-8-7-ubuntu:~$ fg 1
sleep 300
ubuntu@VM-8-7-ubuntu:~$ sleep 300
^Z   #Ctrl+Z挂起
[1]+  Stopped                 sleep 300
ubuntu@VM-8-7-ubuntu:~$ jobs
[1]+  Stopped                 sleep 300
ubuntu@VM-8-7-ubuntu:~$ bg 1
[1]+ sleep 300 &
ubuntu@VM-8-7-ubuntu:~$ 

计划任务命令

(1)at命令 LInux操作系统计划任务是指通过系统设定,使操作系统在未来某时某刻执行项任务,主要由at命令和crontab命令来实现。

at命令用于指定在未来某一时间执行一个任务 ,该任务只能被执行一次。at 命令允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh: mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜)、noon(中午)、teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。用户还能够采用12h计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。也能够指定命令执行的具体日期:指定格式为month day(月日/d/yy(月/日/年)或dd. m.yy(日.月.年)。指定的日期必须跟在指定时间的后面。at命令语法格式如下:

at [选项] [时间]
f :指定包含具体指令的任务文件
q :指定新任务的队列名称
l :显示待执行任务队列
d :删除指定的待执行任务
m :任务执行完成后向用户发送E-mail
warning: commands will be executed using /bin/sh
at> who>userlist
at> <EOT> 
at> <EOT>
job 1 at Tue Dec 13 12:00:00 2022
ubuntu@linux-1:~$ atq #查看
1       Tue Dec 13 12:00:00 2022 a ubuntu
ubuntu@linux-1:~$ atrm 1#删除
ubuntu@linux-1:~$ atq

(2)crontab命令

cron是一个Linux下的定时执行工具,可以使系统周期性地执行某项任务。在Linux操作系统中,使用crontab命令来设定这些定期任务。cron 的配置文件是/etc/ crontab,首 先查看一下/etc/crontab文件的内容:

ubuntu@linux-1:~$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

前2行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串,电子邮件不会被发送。后4行分别给出了每小时、每天、每周、每月运行任务的例子。

7、帮助命令

man命令

man [选项] 命令
命令选项 含义 命令选项 含义
-a 查看所有man帮助手册搜索 -p 指定内容是使用分页程序
-f 显示给定命令的简短描述信息 -m 指定man手册搜索路径

man --help

显示工具的信息

ubuntu@linux-1:~$ cp --help
Usage: cp [OPTION]... [-T] SOURCE DEST
  or:  cp [OPTION]... SOURCE... DIRECTORY
  or:  cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
  -a, --archive                same as -dR --preserve=all
      --attributes-only        don't copy the file data, just the attributes
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
      --copy-contents          copy contents of special files when recursive
  -d                           same as --no-dereference --preserve=links
  -f, --force                  if an existing destination file cannot be
                                 opened, remove it and try again (this option
                                 is ignored when the -n option is also used)
  -i, --interactive            prompt before overwrite (overrides a previous -n
  ....

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 操作系统管理命令(全) 的相关文章

  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • 如何在基于 Linux 的系统上的 C 程序中使用 mqueue?

    如何在基于 Linux 的系统上的 C 程序中使用 mqueue 消息队列 我正在寻找一些好的代码示例 可以展示如何以正确且正确的方式完成此操作 也许是一个操作指南 下面是一个服务器的简单示例 该服务器接收来自客户端的消息 直到收到告诉其停
  • PHPStorm - 无效的后代文件名

    我正在尝试将 Windows 7 PC 上的本地 PHPStorm 项目与 Ubuntu 服务器同步 当我尝试任何类型的连接 例如 测试 SFTP 连接 时 它会失败并显示 Invalid descendent file name C np
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • 快速像素绘图库

    我的应用程序以每像素的方式生成 动画 因此我需要有效地绘制它们 我尝试过不同的策略 库 但结果并不令人满意 尤其是在更高分辨率的情况下 这是我尝试过的 SDL 好的 但是慢 OpenGL 像素操作效率低下 xlib 更好 但仍然太慢 svg
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • 如何查看 Ubuntu 上的 Binutils 版本?

    我已经搜索过 但没有找到一个选项来告诉我我的 Ubuntu 上有哪个版本的 binutils 或者至少我不知道如何解释它 gcc v 没有透露任何有关 binutils 的信息 ld v 告诉我GNU ld GNU Binutils for
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • opencv_contrib编译错误:类没有成员

    我必须实现 SURF 算法来进行图像拼接 我在使用列出的库时遇到了问题here https stackoverflow com questions 33560251 opencv 3 0 0 ubuntu 14 04 nonfree non
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen

随机推荐

  • matlab根据成绩划分等级_Excel数据分析必备技能:对数据按范围多条件划分等级的判定套路

    点击右上角 关注 每天免费获取干货教程 职场办公中经常要对数据进行整理和分析 其中等级归类划分是很常用的一种方法 在这个过程中用好Excel公式可以事半功倍 但是还是有很多人不了解在Excel中对数据按范围多条件划分等级的系统思路和方法 所
  • Cover Letter常用范式和模版

    摘自 https zhuanlan zhihu com p 26708261 http muchong com html 201401 6920446 html 1 什么是Cover letter Cover Letter 即投稿信 是论文
  • 深聊测开领域之:测试策略模型有哪些?

    测试模型的分类 1 引言 2 金字塔 2 1 金字塔模型 引入 2 2 金字塔弊端 2 3 金字塔图形 3 冰淇淋 3 1 冰淇淋模型 引入 3 2 冰淇淋模型 优缺点 3 2 1 缺点 3 2 2 优点 3 2 冰淇淋图形 4 冠军杯 4
  • 微信小程序面试题汇总

    HTML篇 CSS篇 JS篇 Vue篇 TypeScript篇 React篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总大全二 含答案超详细 Vue TypeScript React Webpa
  • 环境变量知识点

    环境变量 环境变量 环境变量是用来定义系统运行环境的一些参数 比如说 每一个用户的家目录 echo HOME 还有我们在编写C C 代码的时候 在链接的时候 从来不知道我们的所链接的动态静态库在哪里 但是照样可以链接成功 生成可执行程序 原
  • 不使用采集卡,实现相机手机多机位直播

    背景 因为直播需求 现在想实现使用一台相机和一台手机完成直播的两个机位设定 搜了很多视频都是要购买采集卡 违背了性价比这一原则 搜索半天之后 根据当前的设备完成了任务 硬件材料 苹果手机一部 佳能单反 所需软件 1 OBS 主要是用来集成各
  • 刷脸让商家引入智慧经营实现数字化转型

    移动支付在生活中已经实现了全覆盖 从单一的支付到驱动智慧经营 在数据为王的时代 通过对移动支付数据的深度挖掘 整合成消费大数据 移动支付还在经营上改变商户的效率 从以前柜台结账到如今的自助结账 从人工推荐到大数据的精准推荐 彻底的改变了商户
  • Linux make --强大的编译工具

    用途说明 make命令是一个常用的编译命令 尤其是在开发C C 程序时 它通过Makefile文件中描述的源程序之间的依赖关系来自动进行编译 Makefile文件是按照规定的格式编写的 文件中需要说明如何编译各个源文件并连接生成可执行文件
  • CVE-2020-11444:Nexus Repository Manager 3 远程命令执行漏洞

    读者需知 本文仅供学习使用 由于传播和利用此文所造成的损失均由使用者本人负责 文章作者不为此承担责任 简介 Nexus Repository是一个开源的仓库管理系统 可搭建npm maven等私服 Nexus 3 任意修改admin密码越权
  • Socket错误详解及处理方法

    例如错误代码10061 说明服务器已经找到 但连接被服务器拒绝 连接失败原因可能是 端口号设置错误 2 服务器没有处于监听状态 即ServerSocket gt Active true 3 数据包被服务器端的防火墙过滤掉 附 Socket常
  • Qt 连接、操作数据库(增删改查)

    文章目录 Qt 5 9连接MySQL5 7 32 64位 操作数据库 QSqlQuery类 执行SQL语句 查 浏览结果集方法 增 删 改 事务 Qt 5 9连接MySQL5 7 32 64位 MySQL5 7安装好后将其安装路径lib下
  • Django--ORM 多表查询

    目录 数据准备 正向查询与反向查询 基于对象的跨表查询 正向查询 一对多 多对多 一对一 反向查询 一对多 多对多 一对一 正向查询 反向查询 基于双下线的跨表查询 正向查询 一对一 一对多 多对多 反向查询 一对一 一对多 多对多 双下高
  • Pytorch—模型微调(fine-tune)

    随着深度学习的发展 在大模型的训练上都是在一些较大数据集上进行训练的 比如Imagenet 1k Imagenet 11k 甚至是ImageNet 21k等 但我们在实际应用中 我们自己的数据集可能比较小 只有几千张照片 这时从头训练具有几
  • fatal error: ceres/ceres.h: 没有那个文件或目录

    用ubuntu18跑的loam livox算法 系统报错 In file included from home lisheng catkin ws src loam livox master source laser mapping cpp
  • java面试---IO与NIO

    一 概念 NIO即New IO 这个库是在JDK1 4中才引入的 NIO和IO有相同的作用和目的 但实现方式不同 NIO主要用到的是块 所以NIO的效率要比IO高很多 在Java API中提供了两套NIO 一套是针对标准输入输出NIO 另一
  • springboot+mybatis配置多数据源实战

    1 背景说明 2 配置多数据源步骤 2 1 项目结构变更 2 2 添加配置类 2 3 修改配置文件数据连接配置信息 2 4 多数据源配置导致 Transactional失效问题 1 背景说明 一般一个项目中只会连接一个数据库 但是随着需求变
  • 后端配置(宝塔):处理php禁用函数

    一 找到php的文件路径 在软件商店中 找到已安装文件 选择需要更改的php文件 选择 设置 二 选择需要取消禁用的文件进行删除 扩展 可解决 The Process class relies on proc open which is n
  • vue常用指令和用法

    文章目录 1 v text 2 v html 3 v on 4 v show 5 v if 6 v bind 7 v for 8 v model 1 v text 设置标签的文本值内容 默然写法会替换全部内容 使用插值表达式 可以替换指定内
  • 题解:按钮加减计数器设计(单片机C51)(外部中断)

    需求 使用4位共阴极段码表及共阳极数码管 通过外部中断方式 实现两个按钮分配加1 减1功能 今天我就来讲解一下这道题 目录 1 代码 1 1定义头文件 1 2定义延时函数 毫秒 1 3定义主函数 1 4定义0 15共阴极数码管字符码 1 5
  • Linux 操作系统管理命令(全)

    目录 1 Linux常用命令 1 date 2 pwd命令 3 cd命令 4 cal命令 5 who命令 6 wc命令 7 uname命令 8 clear命令 9 logout命令 10 shutdown命令 2 命令高级操作 1 命令补全