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

时间:2022-12-16 19:55:37

目录

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
  ....