3 命令
约 4979 字大约 17 分钟
2025-06-18
- ctrl+c强制停止
- ctrl+d退出账户的登录或退出某些程序的专属页面(如:查询Python环境)
- history命令用于查看历史输入过的命令可以配合管道符和grep过滤掉不需要查看的
- !命令前缀自动执行上一次匹配的历史命令 如:以前执行过Python使用!p或!py至执行都相当于Python命令,但它是从后往前找,只匹配最新的
- ctrl+r历史命令搜索,使用这个快捷键切换模式,然后输入字段从后往前搜索含有该字段的命令
- ctrl+a跳到命令开头
- ctrl+e跳到命令结尾
- ctrl+键盘左键 向左跳一个单词
- ctrl+键盘右键 向右跳一个单词
- ctrl+l或clear清屏
yum命令
rpm包软件管理器,用于自动化安装配置Linux软件,并自动解决依赖问题 需要联网和root权限 rpm是Linux系统软件安装包格式
yum [-y] [install | remove |search] 软件名称
-y:自动确认,无需手动确认安装或卸载过程 install:安装 remove:卸载 search:搜索
systemctl命令
linux系统很多软件(或第三方)均支持systemctl命令控制:启动,停止,开机自启 能被systemctl管理的软件一般称之为服务
systemctl start | stop | status | enable | disable 服务名
启动,停止,查看状态,开启开机自启,关闭开机自启 系统服务: NetworkManager主网络服务 network副网络服务 firewalld防火墙服务 sshd,ssh服务(finalshell远程登录linux就是这个服务) 除了内置的服务以外,部分软件安装后也可以使用systemctl进行控制
ln命令创建软链接
在系统中创建软链接,可以将文件,文件夹链接到其他位置,类似windows的快捷方式
ln -s 参数1 参数2
-s:创建软链接 参数1:被链接的文件或文件夹 参数2:要链接去的目的地
示例: 把home目录下test文件夹中的f0.cpp软连接到home文件夹中
ln -s ~/test/f0.cpp ~/
日期和时区
date命令查看系统时间
date [-d] [+格式化字符串-格式化字符串]
-d:按照给定的字符串显示日期,一般用于日期计算 格式化字符串:通过特定的字符串标记来控制显示的日期格式
格式化字符串 | 作用 |
---|---|
%Y | 年 |
%y | 年份后两位数字(00~99) |
%M | 月份(01~12) |
%d | 日(01~31) |
%H | 小时(00~23) |
%M | 分钟(00~59) |
%S | 秒(00~60) |
%s | 自1970-01-01 00:00:00 UTC 到现在的秒数 |
IP地址和主机名
每一台联网的电脑都会有一个地址,用于和其他计算机进行通讯 IPv4地址格式:a.b.c.d 其中abcd表示0~255的数字 可以通过ifconfig查看本机ip地址 inet就是ip地址
特殊的ip地址
ip地址 | 作用 |
---|---|
127.0.0.1 | 指代本机 |
0.0.0.0 | 可以用于指代本机,也可以在端口绑定中用来确定绑定关系,在一些ip地址限制中表示所有ip的意思,如放行规则设置为0.0.0.0表示允许任意ip访问 |
查看主机名 | |
hostname命令 | |
修改主机名(需要root) | |
hostnamectl set-hostname 主机名,修改主机名 |
配置主机名和ip地址的映射 本机记录 Windows:C:\Windows\System32\drivers\etc\hosts 在文件末尾加上:ip地址 主机名 Linux:/etc/hosts
下载和网络请求
ping
可以通过ping命令,检查指定的网络服务器是否是可联通状态
ping [-c num] ip或主机名
-C:检查的次数,不使用-c选项,将无限次数持续检查
wget
wget是非交互式的文件下载器,可以在命令行内下载网络文件
wget [-b] url
-b:可选,后台下载,会将日志写入到当前工作目录的wget-log文件
无论下载成功不成功都会生成文件,如果不清理下次再下载就会提示已经下载过了
curl
curl可以发送http网络请求,可用于下载文件、获取信息等
curl [-O] url
-O:用于下载文件,当url是下载链接时,可以使用此选项保存文件
url:要发起请求的网络地址
端口
物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
虚拟端口:是指计算机内部的端口,是不可见的,用来操作系统和外部进行交互使用的
计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。 通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通
Linux系统可以支持65535个端口,这6万多个端口分为3类进行使用:
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端,非特殊需要,不要占用这个范围的端口
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
- 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
查看端口的占用情况
使用nmap命令
安装nmap: yum-y install nmap
nmap 被查看的IP地址
查看指定端口的占用情况
可以通过netstat命令
netstat-anp|grep 端口号
安装netstat: yum -y install net-tools
可以和管道符+grep配合使用
进程
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程ID(进程号)
查看Linux系统中的进程信息
可以通过ps命令
ps [-e-f]
-e:显示出全部的进程
-f:以完全格式化的形式展示信息(展示全部信息)
一般来说,固定用法就是:ps-ef列出全部进程的全部信息
符号 | 代表的含义 |
---|---|
UID | 进程所属的用户ID(启动此进程的用户的id) |
PID | 进程的进程号ID |
PPID | 进程的父ID(启动此进程的其它进程) |
C | 此进程的CPU占用率(百分比) |
STIME | 进程的启动时间 |
TTY | 启动此进程的终端序号,如显示?,表示非终端启动 |
TIME | 进程占用CPU的时间 |
CMD | 进程对应的名称或启动路径或启动命令 |
结束进程
kill [-9] 进程ID
-9:表示强制关闭进程。
不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
查看任务管理器
可以通过top命令查看CPU、内存使用情况,类似Windows的任务管理器默认每5秒刷新一次,语法:直接输入top即可,按q或ctrl+c退出
top命令也支持选项:
选项 | 功能 |
---|---|
-p 进程id | 只显示某个进程的信息 |
-d 秒数 | 设置刷新时间,默认是5s |
-c | 显示产生进程的完整命令,默认是进程名 |
-n 次数 | 指定刷新次数,比如top -n 3,刷新输出3次后退出 |
-b | 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如top-b-n 3>/tmp/top.tmp |
-i | 不显示任何闲置(idle)或无用(zombie)的进程 |
-u 用户名 | 查找特定用户启动的进程 |
当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键,切换显示内存信息 |
内容详解
- 第一行
- top:命令名称
- 14:39:58:当前系统时间
- up 6 min:启动时间
- users:几个用户登录
- load:1、5、15分钟负载(后面加average是平均负载)
- 第二行
- Tasks:总进程数
- 1 running:运行进程数
- 174 sleeping:睡眠进程数
- stopped:停止进程数
- zombie:僵尸进程数
- 第三行
- %Cpu(s):CPU使用率
- us:用户CPU使用率
- sy:系统CPU使用率
- ni:高优先级进程占用CPU时间百分比
- id:空闲CPU率
- wa:IO等待CPU占用率
- hi:CPU硬件中断率
- si:CPU软件中断率
- st:强制等待占用CPU率
- 第四行
- KiB Mem:物理内存
- total:总量
- free:空闲
- used:使用
- buff/cache:buff和cache占用
- KiB Swap:虚拟内存(交换空间)
PID:进程id USER:进程所属用户 PR:进程优先级,越小越高 NI:负值表示高优先级,正表示低优先级 VIRT:进程使用虚拟内存,单位KB RES:进程使用物理内存,单位KB SHR:进程使用共享内存,单位KB S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态) %CPU:进程占用CPU率 %MEM:进程占用内存率 TIME+:进程使用CPU时间总计,单位10毫秒 COMMAND:进程的命令或名称或程序文件路径
查看硬盘使用情况
使用df命令
df [-h]
-h:以更加人性化的单位显示
查看CPU、磁盘的相关信息
使用iostat
iostat [-x] [num1] [num2]
-X:显示更多信息
num1:数字,刷新间隔 num2:数字,刷新几次
[!tip] 该设备每秒的传输次数 (Indicate the number of transfers per second that were issued to the device.)。“一次传输“意思是“一次i/o请求"。多个逻辑请求可能会被合并为“一次i/o请求"。“一次传输“请求的大小是未知的。
使用-x选项显示更多信息解读
rrqm/s | 每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge,提高IO利用率,避免重复调用) |
wrqm/s | 每秒这个设备相关的写入请求有多少被Merge了 |
rsec/s | 每秒读取的扇区数sectors |
wsec/ | 每秒写入的扇区数 |
rKB/s | 每秒发送到设备的读取请求数 |
wKB/s | 每秒发送到设备的写入请求数 |
avgrq-sz | 平均请求扇区的大小 |
avgqu-sz | 平均请求队列的长度。毫无凝问,队列长度越短越好。 |
await | 每一个I0请求的处理的平均时间(单位是微秒毫秒)。 |
svctm | 表示平均每次设备I/0操作的服务时间(以毫秒为单位) |
%util | 磁盘利用率 |
网络状态监控
可以使用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 | 每秒钟接收的多播数据包 |
环境变量
env命令查看当前系统记录的环境变量 环境变量是一种keyvalue型结构
$符号用于取变量的值 通过和echo命令组合来查看环境变量
echo $ PATH
设置环境变量
临时设置
export 变量名=变量值
永久生效 针对当前用户,将命令写在~/bashrc文件中 针对所有用户生效,将命令写在/etc/profile中 然后通过命令
source 配置的文件
使更改立即生效
文件上传和下载
可以通过shell工具拖拽操作 也可以通过rz,sx命令进行 通过:yum -y install lrzsz安装 rs上传直接输入rz sz下载
sz 要下载的文件
文件会自动下载到桌面的fsdownload文件夹中
压缩和解压
zip格式:Linux、Windows、MacOS,常用 7zip: Windows系统常用 rar:Windows系统常用 tar:Linux、MacOS常用 gzip:Linux、MacOS常用
.tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单 的封装 .gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积 针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作
tar [-c -v -x -f -z -C] 参数1 参数2... 参数N
参数1:压缩后文件的名称 其他参数都是要压缩的文件名
-c | 创建压缩文件,用于压缩模式 |
-v | 显示压缩、解压过程,用于查看进度 |
-× | 解压模式 |
-f | 要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个 |
-z | gzip模式,不使用-z就是普通的tarball格式 |
-C | 选择解压的目的地,用于解压模式 |
-z选项如果使用的话,一般处于选项位第一个 -f选项,必须在选项位最后一个
zip命令,压缩文件为zip压缩包
zip [-r] 参数1 参数2 ... 参数N
-r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致
使用unzip命令,可以方便的解压zip压缩包
unzip [-d] 参数
-d,指定要解压去的位置,同tar的-C选项 参数,被解压的zip压缩包文件
命令行参数
main函数带参表示要执行命令行参数
int main(int argc,char* argv[]){}
argc:参数个数,包括可执行文件名 argv:参数字符串数组 数组长度为argc
argv[0]~argv[argc-1]指向命令行各输入项的字符串首地址 argv[argc]存放NULL表示字符串结尾
错误代码
c语言文件中头文件< errno.h> 输出错误代码:perror("fopen");
输入输出
标准io有用户缓冲区,文件io没有 使用内核缓冲技术
输出重定向
使用>操作符 将内容指向文件即可将输出从屏幕重定向到文件中
>>操作符将内容重定向追加到文件中
查看进程树
pstree -p
以树状形式查看目录
tree [-L number] 目录名
若不指定目录名默认显示当前目录中的文件 -L:后面加数字几就只显示几层子目录(如果子目录中文件太多全部显示出来会耗费很长事件)
压缩文件
tar格式
linux中提供了一个tar命令,但这个命令只能打包文件不能压缩;其中系统也默认提供了两个压缩工具:gzip和bzip2,但这两个工具只能压缩不能打包,而且压缩后源文件也没有了
tar [c/x/z/j/v/f] 文件名
c
: 压缩文件x
: 解压文件z
: 使用gzip
的方式进行文件压缩j
: 使用bzip2
的方式进行文件压缩v
: 压缩过程中显示压缩信息, 可以省略不写f
: 指定压缩包的名字 压缩好的文件并没有后缀名,建议在文件名后将压缩的信息写上 压缩使用 gzip 方式, 标准后缀格式为: .tar.gz
压缩使用 bzip2 方式, 标准后缀格式为: .tar.bz2
解压时要使用x参数,且用哪个工具压缩的就要用对应的工具解压(gzip、bzip2)
zip格式
linux里面没有默认提供的zip压缩工具需要自己下载
sudo apt install zip # 压缩
sudo apt install unzip # 解压缩
zip [-r] 压缩包名 要压缩的文件
unzip [-d] 要解压的文件
使用zip
压缩目录需要注意一点, 必须要添加参数 -r
, 这样才能将子目录中的文件一并压缩, 如果要压缩的文件中没有目录, 该参数就可以不写了。 另外使用zip
压缩文件, 会自动生成文件后缀.zip
, 因此就不需要额外指定了
解压缩时默认解压到当前目录,可以使用-d参数指定解压的目录
unzip 要解压的文件 -d 目标目录
rar格式
rar
这种压缩格式在Linux中并不常用, 这是Windows常用的压缩格式, 如果想要在Linux压缩和解压这种格式的文件需要额外安装对应的工具
sudo apt install rar
使用rar
压缩过程中的注意事项和zip
是一样的, 如果压缩的是目录, 需要指定参 -r
, 如果只压缩文件就不需要添加了。压缩过程中需要使用参数 a
, (archive)压缩归档的意思。 rar
工具在生成压缩包的时候也会自动添加后缀, 名字为.rar
, 因此我们只需要指定压缩包的名字。
解压缩.rar
格式的文件的时候, 可以使用 rar
也可以使用unrar
, 操作方式是一样的, -需要添加参数 x
, 默认是将压缩包内容释放到当前目录中, 如果要释放到指定目录直接指定解压目录名即可, 不需要使用任何参数。
rar/unrar x 压缩包名字 解压目录
xz格式
.xz
格式的文件压缩和解压缩都相对比较麻烦, 通过一个命令是完不成对应的操作的, 需要通过两步操作才行。并且操作过程中需要使用tar
工具进行打包, 压缩使用的则是 xz
工具。
- 首先 将需要压缩的文件打包
tar cvf xxx.tar files
(建议命名后加上.tar后缀) - 然后再对打包文件进行压缩
xz -z xxx.tar
, 这样我们就可以得到一个打包之后的压缩文件了。
解压缩的步骤和压缩的步骤相反, 需要先解压缩, 然后将文件包中的文件释放出来。
- 压缩包解压缩
xz -d xxx.tar.xz
- 将 xxx.tar 中的文件释放到当前目录
tar xvf xxx.tar
命令别名
打开用户家目录下的.bashrc文件后在里面配置
vi ~/.bashrc
贡献者
版权所有
版权归属:PinkDopeyBug