摘要:本笔记主要写了Linux的实用小技巧

一、实用快捷键

Ctrl+c:强制停止
Ctrl+d:退出/登出(不可以用于退出vi/vim)

历史命令搜索:

  • history:查看历史输入的命令
  • !命令前缀:从下往上搜索history,执行匹配的最近的命令,例如:!p,可能会根据历史找到python这个命令,并直接执行
  • Ctrl+r:输入类似的内容,它会自动根据history里面的命令去匹配,回车直接执行,键盘的左右键得到此命令(不直接执行)

光标移动快捷键:

  • Ctrl+a:跳到命令开头
  • Ctrl+e:跳到命令结尾
  • Ctrl+键盘左键:向左跳一个单词
  • Ctrl+键盘右键:向右跳一个单词

清屏:

  • Ctrl+l:在Ubuntu下是新建一页空白,但是之前的内容不会清空
  • clear:清空终端所有内容,这个命令就是直接清空了

二、软件安装

Ubuntu:.deb格式,使用apt命令
Centos:.rpm格式,使用yum命令

在CentOS系统中,使用yum命令联网管理软件安装
yum语法yum [-y] [install | remove | search] 软件名称

在Ubuntu系统中,使用apt命令联网管理软件安装
apt语法apt [-y] [install | remove | search] 软件名称
例如:apt -y install wget apr search wget
-y:如果加上,就无需确认,直接安装;不加的话会询问你是否安装

三、 Linux系统服务管理:systemctl命令

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启。能够被systemctl管理的软件,一般也称之为:服务

语法
systemctl [start | stop | status | enable | disable | restart] 服务名

主要操作

  • start 启动服务
  • stop 关闭服务
  • status 查看服务状态
  • enable 开启开机自启
  • disable 关闭开机自启
  • restart 重启服务

CentOS 与 Ubuntu 网络服务对照表

CentOS 服务名 主要功能 Ubuntu 常见对应(服务/工具名)
NetworkManager 主网络服务(动态管理) NetworkManager
network 传统/静态网络配置 systemd-networkd​ (底层)
firewalld 防火墙服务 ufw (默认前端工具)
sshd SSH 远程登录服务 ssh​ (对应 sshd守护进程)
除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制
  • apt install -y ntp,安装ntp软件

    可以通过ntpd服务名,配合systemctl进行控制

  • apt install -y httpd,安装apache服务器软件

    可以通过httpd服务名,配合systemctl进行控制

部分软件安装后没有自动集成到systemctl中,我们可以手动添加。(后续学习)

四、软链接

软链接可以将文件、文件夹链接到其它位置

  • 链接只是一个指向,并不是物理移动
  • 类似Windows系统的快捷方式

使用语法:ln -s 参数1 参数2 例:ln -s ~/test/test01/666.txt 666.txt

  • -s 选项:创建软链接
  • 参数1:被链接的文件或文件夹
  • 参数2:要链接去的目的地

五、日期和时区

date命令可以查看日期时间,并可以格式化显示形式以及做日期计算
语法:date [-d] [+格式化字符串]
-d可以用于计算时间
例:date "+%Y-%m-%d %H:%M:%S"
date -d "+1 day" +%Y-%m-%d #计算后一天的时间

符号 含义与范围说明
%Y 年(四位数年份,如 2026)
%y 年份的后两位数字(00‑99)
%m 月份(01‑12)
%d 日(01‑31)
%H 小时,24 小时制(00‑23)
%M 分钟(00‑59)
%S 秒(00‑60,60 用于表示闰秒)
%s 自 1970‑01‑01 00:00:00 UTC 到现在的秒数(时间戳)
修改Linux时区
在root用户下
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntp的作用
可以联网自动调整时间
也可以在root用户下,使用ntpdate -u ntp.aliyun.com手动校准时间

六、IP,主机名

(1)IP与主机名概念
输入hostname查看当前主机名
修改主机名,语法:hostnamectl set-hostname 主机名

IP地址是联网计算机的网络地址,用于在网络中进行定位
格式是:a.b.c.d,其中abcd是0~255的数字
特殊IP有:

  • 127.0.0.1:本地回环IP,表示本机
  • 0.0.0.0:也可表示本机,也可以在一些白名单中表示任意IP

主机名就是主机的名称,用于标识一个计算机

可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)
查找顺序:先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器去查找

(2)虚拟机配置固定IP
Ubuntu直接在图形化界面修改,建议直接设置为当时自动分配的IP,只需要把它固定下来即可,网关也使用默认值

固定IP后可以到这个文件中修改C:\Windows\System32\drivers\etc\hosts
在最后一行加上:IP [主机名]
以后使用windows就可以输入主机名在本地直接找到这个机子了

七、网络请求和下载,端口

(1)ping wget curl
1.ping
用途:测试到某服务器是否可联通。
语法ping [-c num] ip或主机名
选项

  • -c num:测试的次数,不加就是无限制测试下去,直到强制停止(如Ctrl+c

2.wget
用途:进行网络文件下载。
语法wget [-b] url
选项

  • -b:后台下载。

3.curl
用途:发起网络请求。
语法curl [-O] url
选项

  • -O:用于下载使用。

(2)端口
端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口。

  • 物理端口:USB、HDMI、DP、VGA、RJ45等。
  • 虚拟端口:操作系统和外部交互的出入口。

IP只能确定计算机,通过端口才能锁定要交互的程序。

端口的划分

  • 公认端口:1 ~ 1023,用于系统内置或常用知名软件绑定使用。
  • 注册端口:1024 ~ 49151,用于松散绑定使用(用户自定义)。
  • 动态端口:49152 ~ 65535,用于临时使用(多用于出口)。

查看端口占用

  • 命令nmap IP地址
    功能:查看指定IP的对外暴露端口。
  • netstat -anp | grep 端口号,查看端口号的占用情况

八、进程管理

进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID(进程号)

(1)查看进程信息
使用ps -ef查看进程信息,结果如下
ps -ef进程信息
从左到右分别是:

  • UID:进程所属的用户ID
  • PID:进程的进程号ID
  • PPID:进程的父ID(启动此进程的其它进程)
  • C:此进程的CPU占用率(百分比)
  • STIME:进程的启动时间
  • TTY:启动此进程的终端序号,如显示?,表示非终端启动
  • TIME:进程占用CPU的时间
  • CMD:进程对应的名称或启动路径或启动命令

(2)关闭进程
语法:kill [-9] 进程号
-9:表示强制关闭,不加的话就是发送信号告诉程序要关闭,具体是否关闭,取决于程序本身

九、主机状态监控

(1)系统资源监控top命令

功能非常多,非常复杂的一个命令
top命令上方:
top命令上方
第一行:第一行
top:命令名称,21:57:58:当前系统时间,up 1:50:启动了1小时50分钟,1 users:1个用户登录,load average:1、5、15分钟负载
第二行:
第二行
Tasks:340个进程,1 running:1个进程子在运行,174 sleeping:174个进程睡眠,0个停止进程,0个僵尸进程
第三行:
第三行
%Cpu(s):CPU使用率
us:用户CPU使用率,sy:系统CPU使用率,ni: 高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率
第四、五行:
第四、五行
MiB Mem:物理内存
total:总量,free:空闲,used:使用,buff/cache:buff和cache占用;

MiB Swap:虚拟内存(交换空间)
total:总量,free:空闲,used:使用,buff/cache:buff和cache占用

top命令字段如下:

含义说明:

字段 含义说明
PID 进程的唯一标识ID
USER 启动该进程的用户
PR 进程优先级,数值越小优先级越高
NI 进程的NICE值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位为KB
RES 进程使用的、未被换出的物理内存大小,单位为KB
SHR 进程使用的共享内存大小,单位为KB
S 进程状态:
• S - 休眠
• R - 运行
• Z - 僵死状态
• N - 负数优先级
• I - 空闲状态
%CPU 进程占用CPU的使用率
%MEM 进程占用物理内存的使用率
TIME+ 进程使用的CPU时间总计,精确到10毫秒
COMMAND 进程的命令名称或完整路径

说明:

  • PR(优先级)与NI(NICE值)共同影响进程调度
  • VIRT ≥ RES,虚拟内存包括实际使用的物理内存和交换空间
  • 进程状态栏可能显示额外标志,如 < 表示高优先级进程

top命令选项
top命令也支持选项:

选项 功能
-p 只显示某个进程的信息
-d 设置刷新时间,默认是5s
-c 显示产生进程的完整命令,默认是进程名
-n 指定刷新次数,比如 top -n 3,刷新输出3次后退出
-b 以非交互非全屏模式运行,以批次的方式执行top,一般配合 -n指定输出几次统计信息,将输出重定向到指定文件,比如 top -b -n 3 > /tmp/top.tmp
-i 不显示任何闲置 (idle) 或无用 (zombie) 的进程
-u 查找特定用户启动的进程

top交互式选项
当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制

按键 功能
h键 按下h键,会显示帮助画面
c键 按下c键,会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认显示
f键 按下f键,可以选择需要展示的项目
M键 按下M键,根据驻留内存大小(RES)排序
P键 按下P键,根据CPU使用百分比大小进行排序
T键 按下T键,根据时间/累计时间进行排序
E键 按下E键,切换顶部内存显示单位
e键 按下e键,切换进程内存显示单位
l键 按下l键,切换显示平均负载和启动时间信息
i键 按下i键,不显示闲置或无用的进程,等同于-i参数,再次按下,变为默认显示
t键 按下t键,切换显示CPU状态信息
m键 按下m键,切换显示内存信息

(2)磁盘信息监控df iostat命令

1.df命令,可以查看硬盘的使用情况
语法:df [-h]
选项:-h,以更加人性化的单位显示
效果如下:
df信息

2.iostat查看CPU、磁盘的相关信息
语法:iostat [-x] [num1] [num2]
- 选项:-x,显示更多信息
- num1:数字,刷新间隔
- num2:数字,刷新次数
iostat信息
tps: 该设备每秒的传输次数 (Indicate the number of transfers per second that were issued to the device.)。

  • “一次传输”意思是”一次I/O请求”。
  • 多个逻辑请求可能会被合并为”一次I/O请求”。
  • “一次传输”请求的大小是未知的。

-x显示更多信息
iostat -x 信息

参数 描述
rrqm/s 每秒此设备相关读取请求被 Merge 的数量(合并相同扇区的读取请求以提高 I/O 利用率,避免重复调用)
wrqm/s 每秒此设备相关写入请求被 Merge 的数量
rsec/s 每秒读取的扇区数
wsec/s 每秒写入的扇区数
rKB/s 每秒发送到设备的读取请求数
wKB/s 每秒发送到设备的写入请求数
avgrq-sz 平均请求扇区的大小
avgqu-sz 平均请求队列的长度(越短越好)
await 每一个 I/O 请求处理的平均时间(单位:毫秒)
svctm 平均每次设备 I/O 操作的服务时间(单位:毫秒)
%util 磁盘利用率

(3)网络信息监控sar命令

可以使用sar命令查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)
语法sar -n DEV [num1] [num2]
- 选项-n,查看网络,DEV表示查看网络接口
- num1:刷新间隔(不填则查看一次结束)
- num2:查看次数(不填则无限次数)
sar命令信息

参数 说明
IFACE 本地网卡接口的名称
rxpck/s 每秒钟接收的数据包数量
txpck/s 每秒钟发送的数据包数量
rxKB/S 每秒钟接收的数据包大小,单位为 KB
txKB/S 每秒钟发送的数据包大小,单位为 KB
rxcmp/s 每秒钟接收的压缩数据包数量
txcmp/s 每秒钟发送的压缩数据包数量
rxmcst/s 每秒钟接收的多播数据包数量

十、环境变量

(1)查看环境变量

env查看Linux中所有环境变量
环境变量就是一堆键值对:键=值

Linux中,$符号用于取变量的值,取环境变量的值就可以使用,$ 环境变量名
echo $PATH就可以输出PATH的值
echo ${PATH}ABC可以输出PATH的值再加上ABC

(2)设置环境变量

临时设置方法:直接在终端输入export 变量名=值

永久生效:

  • 针对当前用户生效,export 变量名=值配置在当前用户的:~/.bashrc文件中
  • 针对所有用户生效,export 变量名=值配置在系统的:/etc/profile文件中
  • 并通过语法:source 配置文件名,进行立刻生效

十一、Linux的文件下载与上传

这里我直接使用开源软件WinSCP,在图形化界面中拖拽文件进行文件在Linux和windows之间的传输
在windows上直接下载安装WinSCP即可

在Linux上需要安装SSH服务:sudo apt install openssh-server
下载后启动服务:sudo systemctl start ssh
设置为开机自启动后更方便:sudo systemctl enable ssh

之前已经设置过固定IP和主机名了,在WinSCP软件中主机名部分直接输入即可,hostname查看主机名,如果之前没有配置好,就在主机名部分输入IP,使用ifconfigip addr show查看IP地址

十二、压缩和解压

Linux两种常用压缩格式:
1.tar,归档文件,无压缩效果
2.gzip,gzip压缩文件,有压缩效果

(1)tar命令

tar [-z -x -v -c -f] 参数1 参数2 ... 参数N -C 路径
-c:创建压缩文件
-v:显示压缩/解压过程,用于查看进度
-x:解压模式
-f:要创建或要解压的文件,建议放在所有选项位置的最后一个
-z:gzip模式,不使用就是普通的taball,建议放到开头第一个
-C:选择解压目的地,用于解压模式

常用压缩组合:
tar -cvf test.tar 1.txt 2.txt 3.txt
tar -zcvf test.tar 1.txt 2.txt 3.txt
常用解压组合:
tar -xvf test.tar
tar -xvf test.tar -C /home/pumpkin-db
tar -zxvf test.tar.gz -C /home/pumpkin-db

(2)zip,unzip命令

zip命令,压缩文件为zip压缩包
语法:zip [-r] 参数1 参数2 ... 参数N
当压缩的包含文件夹时候,使用-r文件
例:
zip test.zip 1.txt 2.txt 3.txt
zip -r test.zip test01 1.txt 2.txt

unzip命令,解压zip压缩包
语法:unzip 压缩包 [-d]
-d指定要解压去的位置
例:
unzip test.zip
unzip test.zip -d /home/pumpkin-db