Linux学习笔记:三
摘要:本笔记主要写了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,其中a、b、c、d是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查看进程信息,结果如下
从左到右分别是:
- UID:进程所属的用户ID
- PID:进程的进程号ID
- PPID:进程的父ID(启动此进程的其它进程)
- C:此进程的CPU占用率(百分比)
- STIME:进程的启动时间
- TTY:启动此进程的终端序号,如显示
?,表示非终端启动 - TIME:进程占用CPU的时间
- CMD:进程对应的名称或启动路径或启动命令
(2)关闭进程
语法:kill [-9] 进程号-9:表示强制关闭,不加的话就是发送信号告诉程序要关闭,具体是否关闭,取决于程序本身
九、主机状态监控
(1)系统资源监控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,以更加人性化的单位显示
效果如下:
2.iostat查看CPU、磁盘的相关信息
语法:iostat [-x] [num1] [num2]
- 选项:-x,显示更多信息
- num1:数字,刷新间隔
- num2:数字,刷新次数
tps: 该设备每秒的传输次数 (Indicate the number of transfers per second that were issued to the device.)。
- “一次传输”意思是”一次I/O请求”。
- 多个逻辑请求可能会被合并为”一次I/O请求”。
- “一次传输”请求的大小是未知的。
-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:查看次数(不填则无限次数)
| 参数 | 说明 |
|---|---|
| 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,使用ifconfig或ip 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.txttar -zcvf test.tar 1.txt 2.txt 3.txt
常用解压组合:tar -xvf test.tartar -xvf test.tar -C /home/pumpkin-dbtar -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.txtzip -r test.zip test01 1.txt 2.txt
unzip命令,解压zip压缩包
语法:unzip 压缩包 [-d]-d指定要解压去的位置
例:unzip test.zipunzip test.zip -d /home/pumpkin-db