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