Linux学习笔记
此笔记内容来自B站Linux教程:
https://www.bilibili.com/video/BV1n84y1i7td?p=1&vd_source=388e32696448d3213345eb43f8785ad1
IP地址和主机名
IP地址
ifconfig
可以用来查询本机的IP地址,如果不能使用,可以通过install net-tools
安装。- Centos系统下
ens33
表示主网卡;inet后表示IP地址;lo表示本地回环网卡; - 127.0.0.1表示代指本机;0.0.0.0可以用于代指本机,同时在放行设置中0.0.0.0表示允许任意IP访问。
主机名
hostname
可以查看主机名。hostnamectl set-hostname
可以修改主机名;但是win下WSL Ubuntu系统无法修改;
域名解析
- 电脑在访问网址时,会首先查询本地的hosts文件,如果本地hosts文件存有该网站和IP地址的对应关系,则直接访问;否则会联网,通过DNS服务器来查询相应网站的IP地址。
- Win系统的本地hosts文件在C:\windows\System32\drivers\etc\hosts
- Linux系统的本地hosts文件在/etc/hosts
网络请求和下载
ping命令
ping [-c num] ip
或主机名;- 选项:-c,检查的次数;不指定的情况下会无限次持续检查
wget命令
- wget是非交互式的文件下载器,可以在命令行内下载文件
wget [-b] url
选项b可以指定后台下载,会将日志写入当前工作目录wget-log文件- 即使下载未完成强制推出后,已下载部分也会存在于工作目录内。
- 测试:
wget https://docs.python.org/3/archives/python-3.11.3-docs-text.tar.bz2
下载python的说明文档
curl命令
- curl可以发送http请求,用于下载文件,获取信息
curl [-O] url
- 选项O表示用于下载文件,当url是下载链接是,可以用此选项保存文件
端口
- 端口是设备与外界交流的出入口,可以分为物理端口和虚拟端口两类
- 物理端口如USB接口、RJ45网口、HDMI端口等
- 虚拟端口是指计算机内部的端口,是用来操作系统和外部进行交互使用的
- Linux系统可以支持65535个端口,这6万个端口分为三类进行使用:
- 公认端口:1-1023,通常用于一些系统内置或知名程序的预留使用;如SSH服务的22端口,HTTPS的443端口;非特殊需要,不要占用这些端口;
- 注册端口:1024-49151;通常可以随意使用,用于松散的绑定一些程序和服务;
- 动态端口:49152-65535;通常不会固定保定程序,而是当程序对外进行网络连接时(出口),用于临时使用;
nmap命令
nmap ip
- 可以查看IP地址上哪些端口被占用
netstat命令
netstat -anp|grep 端口号
- 可以查看指定端口的占用情况
- 端口号也可以改成进程号,从而查询特定进程使用了哪些端口
- 如果什么都没有返回,则代表该端口没有被使用。
进程
- 为管理运行程序,每一个程序在运行的时候,都会被操作系统注册为系统中的一个进程,配上一个独有的ID,进程号
ps [-e -f]
可以查看系统中的进程- -e表示显示出全部的进程;-f表示以格式化的形式展示全部信息
- 返回结果中PID表示进程号,PPID为父ID(启动该进程的其他进程;C表示此进程的CPU占用率;STIME表示进程启动的时间;TIME表示进程占用CPU的时间;CMD表示启动命令或路径
- 通常配合管道符筛选需要的信息
kill [-9] 进程ID
可以关闭进程,选项-9
表示强制结束,不加则会看进程自身是否会关闭
主机运行状态
top
命令可以查看系统资源占用情况;每5秒刷新一次
top - 00:41:44 up 73 days, 12:56, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 95 total, 2 running, 58 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1004504 total, 161132 free, 283200 used, 560172 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 513212 avail Mem
- 第一行:
top - 00:41:44 up 73 days, 12:56, 1 user, load average: 0.00, 0.00, 0.00
其中,top表示命令的名称,00:41:44为系统时间;up 73 days表示系统启动时间;load average: 0.00, 0.00, 0.00表示1、5、10分钟的平均负载,如果是1的话表示有1颗CPU百分百繁忙; - 第二行:
Tasks: 95 total, 2 running, 58 sleeping, 0 stopped, 0 zombie
其中,Tasks: 95 total表示一共有95个进程,2 running表示2个正在运行,58 sleeping表示58个正在睡眠等等 - 第三行:
%Cpu(s): 1.0 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
其中, 1.0 us表示用户启动的进程的使用率,0.3 sy表示系统启动的进程的使用率;ni表示高优先级进程占用CPU时间;id空闲CPU率,wa表示IO等待CPU使用率,hi表示CPU硬件中断率,si表示CPU软件中断率,st表示强制等待占用CPU率 - 第四五行:KiB Mem表示物理内存;buff/cache表示系统缓存;KiB Swap表示虚拟内存;avail Mem表示可用空间。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22739 root 20 0 161984 4448 3812 R 0.3 0.4 0:00.62 top
-
PID表示进程号,PR表示优先级,越小越高;NI负值表示高优先级,正值表示低优先级;VIRT表示进程使用的虚拟内存;RES进程使用物理内存;SHR进程使用的共享内存;S表示进程状态,S为休眠,R为运行,Z为僵尸,N负数优先级;I空闲;TIME+表示进程使用的CPU时间总计,单位是毫秒
-
-p可以只显示某个进程的信息,-d设置刷新时间;-u指定特定用户启动的进程。
-
top -b可以通过非交互式全屏模式显示,一页一页的返回结果,然后配合top -b > name.txt将结果写入文件中
-
top更多的选项(包括交互模式中的快捷键)可以参见 https://manpages.ubuntu.com/manpages/xenial/man1/top.1.html
-
df
命令可以查看磁盘的占用情况 -
iostat
可以查看CPU、磁盘的相关信息 -
nethogs 网卡名称
可以实时查看网络占用情况
环境变量
env
命令可以查看系统的环境变量;环境变量以Key和Value的形式存储信息$
符号被用于取变量的值;比如echo $PATH
可以输出PATH的具体信息;echo ${PATH}something
{}可以区分环境变量,避免和其他东西混淆- 临时设置环境变量:
export 变量名=变量内容
- 永久编辑环境变量:
当前用户的环境变量: ~/.bashrc文件
所有用户的环境变量: /etc/profile文件
source 配置文件
立刻生效 - 自定义PATH变量:在配置文件中添加
export PATH=$PATH:something
文件的上传和下载
rz
可以上传文件;sz
可以下载文件;这两个命令需要通过yum install lrzsr
进行安装
压缩和解压
tar
命令
tar [-c -v -x -f -z- C] 参数1 参数2 参数3...
- -c创建压缩文件,用于压缩模式;-v用于显示压缩、解压缩的进度;-x解压模式;-f要创建的文件或要解压的文件,-f必须在所有选项的最后一个;-z gzip模式(一种解压算法),不适用-z就是普通的tarball格式,-z如果要用的话一般写在选项第一个;-C选择解压的目的地
zip
命令可以压缩zip格式的文件
zip -r 参数1 参数2 参数3 ...
-r选项用于文件夹unzip
可以用于解压zip格式的文件
unzip -d 参数
-d表示要解压去的目录