diff --git "a/49 \345\276\220\351\233\250\346\231\264/240620 \350\277\233\347\250\213\347\256\241\347\220\206.md" "b/49 \345\276\220\351\233\250\346\231\264/240620 \350\277\233\347\250\213\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..f61f3afcc08bb8b15179e8f9c0d55ab0f67f352b --- /dev/null +++ "b/49 \345\276\220\351\233\250\346\231\264/240620 \350\277\233\347\250\213\347\256\241\347\220\206.md" @@ -0,0 +1,93 @@ +## 进程管理 + +一、进程概述 + +进程是计算机系统中正在运行的程序的实例。每个进程都有唯一的标识符(PID)和相关的资源,例如内存、文件描述符和CPU时间。 + +二、进程命令 + +1. ps命令:用于列出当前正在运行的进程。 + + ```bash + ps [options] + ``` + + - `aux`: 显示所有用户的所有进程。 + - `-e`:显示系统中所有的进程,包括其他用户的进程。 + - `-f`:显示完整的进程信息,包括父进程ID、进程组ID等。 + - `-u`:显示当前用户的进程详细信息。 + - `ef`:以完整格式显示所有进程。 + - `--forest`:以树形结构显示进程关系。(pstree) + +2. top命令:实时显示系统中的进程和系统性能信息。 + + - PID(Process ID): 进程的唯一标识符。 + - USER: 运行进程的用户。 + - PR(Priority): 进程的优先级。 + - NI(Nice value): 进程的静态优先级。 + - VIRT (Virtual Memory): 进程占用的虚拟内存大小。 + - RES (Resident Memory): 进程占用的物理内存大小。 + - SHR (Shared Memory): 进程使用的共享内存大小。 + - S (Status): 进程的状态,如运行、睡眠、僵尸等。 + - %CPU (CPU占用率): 进程占用CPU的百分比。 + - %MEM (内存占用率): 进程占用内存的百分比。 + - TIME+ (Execution Time): 进程占用CPU的累计时间。 + +3. kill命令:用于终止指定进程。 + + ```bash + kill [signal] PID + ``` + + - `PID``:终止使用此PID的进程。SIGTERM,终止信号。 + - `-1或–hangup`:用于重启或重新加载进程。SIGHUP,挂起信号。 + - `-2或–interrupt`:由Ctrl+C发送给前台进程。SIGINT,中断信号。 + - `-3或–quit`:由Ctrl+\发送给前台进程。SIGQUIT,退出信号。 + - `-9`:使用强制终止信号(SIGKILL)终止进程。 + - `-15或–terminate`:默认的终止信号。SIGTERM,终止信号。 + - `-17或–stop`:暂停进程的执行,可以使用kill -CONT恢复执行。SIGSTOP,停止信号。 + - `-18或–continue`:恢复被停止的进程的执行。SIGCONT,继续信号。 + +4. killall命令:终止指定名称的所有进程。 + + 先安装psmisc,才会有killall,fuser,pstree。 + + - `-l`:列出可用的信号名称。 + - `-s`:指定发送的信号名称或编号。 + +5. pgrep命令:根据进程名查找匹配的进程ID。 + + ```ba + pgrep 服务器名 + pgrep -u 用户名 + pgrep -u 用户名 服务器名 + ``` + +6. pkill命令:根据进程名终止匹配的进程。 + +7. nice命令:设置进程的优先级。 + + 进程优先级值的范围从-20到19。值越低,优先级越高 + + ```bash + nice <优先值> <进程名> --根据优先级启动 + ``` + +8. renice命令:修改正在运行进程的优先级。 + + ```bash + renice -n 优先值 -p 进程号 + renice -u -g --指定用户和组 + ``` + +9. w命令:提供当前登录的用户及其正在执行的进程的信息。 + + who命令,提供当前登录用户列表、系统启动时间、运行级别等。 + +10. bg和fg命令:将进程放到后台或前台运行。 + + - `&`:一开始就放到后台运行 + - bg %编号:切换至后台 + - Ctrl+Z:挂起(暂时) + - fg %编号:切换至前台 + - jobs:查看所有后台进程 \ No newline at end of file diff --git "a/49 \345\276\220\351\233\250\346\231\264/240624 \346\234\215\345\212\241\347\256\241\347\220\206.md" "b/49 \345\276\220\351\233\250\346\231\264/240624 \346\234\215\345\212\241\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..4bf2fc7d9e2679dd90f8948f09c944df5e833897 --- /dev/null +++ "b/49 \345\276\220\351\233\250\346\231\264/240624 \346\234\215\345\212\241\347\256\241\347\220\206.md" @@ -0,0 +1,41 @@ +## 服务管理 + +1. init + + Linux 的启动一直采用init 进程。在类Unix 的计算机操作系统中,Init(初始化的简称)是在启动计算机系统期间启动的第一个进程。Init 是一个守护进程,它将持续运行,直到系统关闭。它是所有其他进程的直接或间接的父进程。init 的参数全在/etc/init.d目录下,因为Init进程是由内核启动的第一个用户级进程,它的位置通常在/sbin/init。 + +2. service + + service 命令是使用 System V 作为 init 系统的 Linux 发行版中用来控制系统服务的实用工具,service 命令的作用是去 /etc/init.d 目录下寻找相应的服务脚本文件,可以启动、停止、重启系统服务,还可以显示所有系统服务的当前状态。 + + 重点:service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。 + +3. systemctl + + systemd是Linux系统最新的初始化init系统,作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。根据 Linux 惯例,字母d是守护进程(daemon)的缩写。Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。systemd对应的进程管理命令是systemctl。 + +- start 启用 +- stop 停止 +- restart 重启 +- reload 重载(仅配置文件) +- status 状态 +- enabled 开机自启动 +- disabled 禁用 +- `+ ` 已启动 +- `-` 未启动 + +!!!查看所有运行的服务状态 + +- service --status-all(简易版)符号 +- systemctl list-unit-files(详细版)英文 + +作业: + +- 使Nginx和Apache服务共存 + 1. 安装Apache之前,先关闭Nginx服务 + 2. 使用sudo apt update更新资源 + 3. 安装Apache,使用sudo apt install apache2 + 4. 在/etc/apache2/下,更改ports.conf文件的80端口为8080端口 + 5. 并且/etc/apache2/sites-enabled/下,更改000-default.conf也为8080端口 + 6. 使用systemctl restart Apache,重载配置文件 + 7. 此时,使用systemctl start Nginx即可开启Nginx服务 \ No newline at end of file diff --git "a/49 \345\276\220\351\233\250\346\231\264/240625 \347\275\221\347\273\234\347\256\241\347\220\206.md" "b/49 \345\276\220\351\233\250\346\231\264/240625 \347\275\221\347\273\234\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..2fb4efdbdd75c78809db930cc667cdde6b049237 --- /dev/null +++ "b/49 \345\276\220\351\233\250\346\231\264/240625 \347\275\221\347\273\234\347\256\241\347\220\206.md" @@ -0,0 +1,243 @@ +## 网络管理 + +一、概述 + +Linux系统的网络管理主要包括网络参数配置、网卡启停操作、路由配置和网络连接查看等内容。这些操作对于保证系统的正常运行和与外部网络的通信至关重要。在进行网络管理时,需要了解一些基本的网络概念,如IP地址、子网掩码、网关等。 + +二、网络参数配置 + +在Linux系统中,网络参数的配置通常涉及到修改网络配置文件。常见的网络配置文件有`/etc/network/interfaces`和`/etc/sysconfig/network-scripts/ifcfg-`等。这些文件用于定义网络接口的参数,如IP地址、子网掩码、网关等。 + +配置网卡接口的IP地址:`sudo vim /etc/network/interfaces`。 + +1. 重启网络服务,使用命令`sudo service networking restart`或`sudo /etc/init.d/networking restart`。 +2. 验证IP地址是否生效,可以使用命令`ip addr show eth0`或`ifconfig eth0`。 + +三、网卡启停操作 + +在Linux系统中,网卡的启停操作可以通过命令行工具完成。常用的命令有`ifdown`和`ifup`等。ififip + +- 禁用网卡接口,使用命令`sudo ifdown `。 + +!!!不要随便用,否则就会使ip相关的服务都被禁用掉 + +- 启用网卡接口,使用命令`sudo ifup `。 + +注意:在禁用网卡接口后,该接口将无法发送和接收数据。在启用网卡接口之前,确保相关的网络服务已经正确配置并启动。 + +四、路由配置 + +在Linux系统中,可以使用`route`命令或`ip route`命令来配置路由表。 + +- `ip address ` 查看本机 IP 地址命令 +- `ip route` 查看路由表信息 + +五、网络配置 + +ipconfig命令是用来查看和配置网络设备 ,例如:IP地址 ,子网掩码,网关,及DNS等。ipconfig命令用于windows系统环境下显示当前物理机的配置信息。 + +| ipconfig | 显示信息 | +| --------------- | -------------- | +| ipconfig /renew | 更新所有适配器 | +| ipconfig /all | 显示详细信息 | + +ifconfig英文全称是 : network interfaces configuring + +ifconfig命令用于配置GNU/Linux系统的网络接口。它显示网络接口卡的详细信息,包括IP地址,MAC地址,以及网络接口卡状态之类,通常需要以root身份。ifconfig命令用于linux系统环境下显示当前虚拟机的配置信息。 + +| ifconfig | 查看网络接口状态(当前激活的网络接口情况) | +| ------------- | ------------------------------------------ | +| ifconfig -a | 查看主机所有网络接口的情况 | +| ifconfig eth0 | 查看某个(eth0)端口状态 | + +!!!Linux用ifconfig而Windows用ipconfig! + +六、网络状态 + +netstat 命令用于显示网络状态。(netstat 旧 ss 新) + +```bash +netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip] +``` + +参数: + +- -a或--all 显示所有连线中的Socket。 +- -l或--listening 显示监控中的服务器的Socket。 +- -i或--interfaces 显示网络界面信息表单。(网卡列表信息) +- -g或--groups 显示多重广播功能群组组员名单。(组播组关系) +- -p或--programs 显示正在使用Socket的进程。 +- -n或--numeric 直接使用IP地址,而不通过域名服务器。 +- -t或--tcp 显示TCP传输协议的连线状况。 +- -u或--udp 显示UDP传输协议的连线状况。 + +七、路由追踪 + +traceroute [参数] [主机] + +- -d 使用Socket层级的排错功能。 +- -f 设置第一个检测数据包的存活数值TTL的大小。 +- -g 设置来源路由网关,最多可设置8个。 +- -i 使用指定的网络界面送出数据包。 +- -I 使用ICMP回应取代UDP资料信息。 +- -m 设置检测数据包的最大存活数值TTL的大小。 +- -n 直接使用IP地址而非主机名称。 +- -p 设置UDP传输协议的通信端口。 +- -r 忽略普通的Routing Table,直接将数据包送到远端主机上。 +- -s 设置本地主机送出数据包的IP地址。 +- -v 详细显示指令的执行过程。 +- -w 设置等待远端主机回报的时间。 + +八、文件下载 + +wget是一个下载文件的工具,它用在命令行下。它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。 + +- 下载单个文件(当前目录) `wegt 链接` + +- 使用下载并另存为 `wget -O 文件名 链接` + +- 限速下载 `wget –limit -rate 链接` + +- 断点续传 `wget -c 链接` + +- 后台下载 `wget -b 链接` + +- 下载多个文件 `wget -i 链接` + +九、数据获取 + +curl 是常用的命令行工具,用来请求 Web 服务器。 + +不带有任何参数时,curl 就是发出 GET 请求。 + +`curl https://www.example.com` + +上面命令向`www.example.com`发出 GET 请求,服务器返回的内容会在命令行输出。 + +十、P开头的命令 + +- ps/pstree 显示当前进程 +- killall 结束对应所有进程 +- pkill pgrep+kill +- pgrep 模糊查询对应的pidof + +十一、主流Linux家族 + +- RedHat:redhat、centos + - rpm包 + - yum安装 + - 防火墙(iptables=>firewalls) +- Debian:debain、Ubuntu + - .deb包 dpkg包 + - apt安装 + - 防火墙ufw + +十二、防火墙 + +防火墙ufw,默认是禁用(Ubuntu默认,Debian需自行安装) + +- 可检查防火墙的状态: + + ufw status + +- 防火墙版本: + + ufw version + +- 开启/关闭防火墙: + + ufw enable|disable + +**1.安装** +sudo apt-get install ufw + +**2.启用** +sudo ufw enable +sudo ufw default deny +运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。 + +**3.开启/禁用** +sudo ufw allow|deny [service] + +打开或关闭某个端口,例如: +sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口 +sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口 +sudo ufw allow 53 允许外部访问53端口(tcp/udp) +sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口 +sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53 +sudo ufw deny smtp 禁止外部访问smtp服务 +sudo ufw delete allow smtp 删除上面建立的某条规则 + +**4.查看防火墙状态** +ufw status + +**开启/关闭防火墙 (默认设置是’disable’)** +ufw enable|disable + +**5.设置默认策略** +ufw default allow|deny + +许 可或者屏蔽端口 可以用"协议:端口"方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下: + +ufw allow|deny [service] + +显示防火墙和端口的侦听状态,括号中的数字将不会被显示出来。 +ufw status + +**UFW 使用范例:** + +- 允许/禁用 53 端口 + + ufw allow/delete 53 + +- 允许/禁用 80 端口 + + ufw allow/delete 80/tcp + +- 允许 smtp 端口 + + ufw allow smtp + +- 删除 smtp 端口的许可 + + ufw delete allow smtp + +- 允许某特定 IP + + ufw allow from 192.168.254.254 + +- 删除上面的规则 + + ufw delete allow from 192.168.254.254 + +- 列出服务器上可用的所有应用程序配置文件 + + ufw app list + +- 查找有关配置文件和包含规则的更多信息,可以使用以下命令: + + ufw app info 'OpenSSH' + +十三、ssh登录 + +- ssh 用户名@主机IP地址 端口号 +- ssh -l 用户名 主机IP地址 端口号 +- -p 映射的端口号 + +十四、其他 + +- fdisk 管理磁盘分区 + +- du -sh 目录 汇总查看目录内存大小 + +- wc(word count)统计数量 + +- chkconfig 主要用来更新(启动或停止)和查询系统服务的运行级信息 + + `chkconfig [–add][–del][–list`][系统服务] + + - –add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。 + + - –del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。 + - –list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。 +