Linux(超级详细)

image.png


个人相关ip信息

image.png

Linux简介

不同应用领域的主流操作系统
  • 桌面操作系统
    • windows
    • Mac OS
    • Linux
  • 服务器OS
    • UNIX
    • Linux
    • Windows Server
  • 移动设备
    • Android
    • ios
  • 嵌入式操作系统
    • Linux(交换机等)
Linux发展历史和系统版本

image.png


image.png


image.png

  • 企业级应用:RHEL/CentOS
  • 桌面平台:Ubuntu
  • 开源服务器:CentOS

现如今我们一般称 Linux 为 GNU/Linux。
Linux 实际上只是⼀个内核,这正是 GNU 系统的⼀个重要空⽩,⽽ GNU 系统也为 Linux 内核提供了⾮常多且必要的系统组件,⼈们把 Linux 和GNU 系统结合起来组成⼀个完整的⾃由系统——⼀个带有 Linux 的 GNU 系统。换句话说,就是 GNU/Linux 系统。
GNU 的含义就很宽泛了:
可以指代操作系统——GNU 操作系统
可以指代软件——GNU 软件
可以指代为了完成这个操作系统⽽发起的庞⼤的⼯程——GNU ⼯程
或者是想要完成 GNU 系统/⼯程⽽聚集在⼀起的⼀帮⼈——GNU 组织
甚⾄ GNU 是⼀种精神或者信仰
Linux 发行线路图 GitHub 地址:https://github.com/FabioLolix/LinuxTimeLine/releases

Linux安装

安装方式

  • 物理机安装
  • 虚拟机安装

image.png


安装

  1. 安装VMWare
  2. 安装CentOS镜像

网卡设置

image.png


image.png


安装SSH连接工具

image.png


image.png

Linux 的文件系统

万事万物皆文件

文件系统:操作系统如何管理文件,内部定义了一些规则或者定义。在 Linux 中所有的东西都是以文件的方式进行操作,在 Linux 中,文件的访问和 Window 的不一样。Window 依靠的是通过盘符进行访问,而 Linux 维护着一个树状结构的文件模型,只有一个根节点,他的名字叫做 / ,一个节点上可以有多个子节点。

image.png

Linux常用命令

Linux 命令在线查询:https://www.linuxcool.com/

image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png

  • 命令模式:每一个按键都有其具体的功能。
  • 编辑模式:输入什么就是什么。
  • 底行(命令行)模式:保存文件或对文件中的指定内容执行查找或替换等操作。

image.png


image.png

文件操作命令小结
cd 改变当前工作目录
ls / ll 显示指定目录下所有文件
mkdir 创建文件目录
rmdir 删除空文件夹
cp 拷贝文件或文件目录
mv 移动文件或文件夹
rm 删除
touch 没有就新建一个
stat 查看文件状态
读取文件信息小结
cat 一次性显示整个文档(load到内存),除非接管道,传递数据
tac 和上一样,逆序显示
more less 分页查看
head 从头开始读
tail 从末尾读
find 查找指定文件
Linux的系统进程
// 进程信息
ps -ef 
    UID 所属用户
    PID 当前进程编号
    PPID 当前进程编号的父进程编号

ps -ef | grep redis

ps -aux 所有信息

top 当前服务器内存使用率


// 后台进程 只需要在命令的后面添加一个 & 符号即可将进程切换为后台执行

    //杀死进程 kill -9 17599
Linux软件安装

image.png

rpm 命令来自于英文语句 “RedHat Package Manager” 的缩写,中文译为红帽软件包管理器,其功能是用于在Linux/RedHat 系列系统下对软件包进行安装、卸载、查询、验证、升级等工作
[root@node01 ~]# rpm [选项] 软件包

 yum 命令是基于 RPM 的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理 RPM 软件包,能够从指定
的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下
载、安装。
  yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。该命令基本格式如下:
[root@node01 ~]# yum [选项]     

image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png

// 安装 MySQL 数据库

// MySQL 的下载地址:https://downloads.mysql.com/archives/community/

# 安装 MySQL 依赖
yum -y install perl net-tools openssl-devel
# 卸载 mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
# 安装 MySQL
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.18-1.el7.x86_64.rpm
# 启动 MySQL
systemctl start mysqld
# 查找密码并登陆 MySQL
cat /var/log/mysqld.log | grep password
mysql -u root -p
# 修改 MySQL 密码
SET GLOBAL validate_password.policy = low;
SET GLOBAL validate_password.length = 6;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
# 允许远程用户登录访问 MySQL
USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
COMMIT;
FLUSH PRIVILEGES;
EXIT;
# 接下来即可使用 Navicat 等客户端工具连接 MySQL

image.png

项目部署
  1. 手工部署

image.png


image.png


③启动SpringBoot程序 java -jar helloworld-1.0-snapshop.jar

image.png


image.png


image.png

  1. shell脚本自动部署

image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png

[CentOS7.6] 的下载安装 (保姆级讲解)

CentOS 7 生命周期到 2024 年 6 月 30 日:
Linux 官网:https://linux.org/
Linux 下载页面:https://linux.org/pages/download/
CentOS 下载地址:https://wiki.centos.org/Download
阿里云 CentOS 镜像站:https://mirrors.aliyun.com/centos-vault/
CentOS7.6 下载地址:http://vault.centos.org/7.6.1810/

image.png


安装镜像文件版本解析:

  • DVD.iso:标准安装版
  • Everything.iso:完整版,集成所有软件
  • Minimal.iso:最小安装版,自带的软件最少,用什么装什么(学习阶段我们使用这个镜像)
  • NetInstall.iso:网络安装镜像,联网进行安装,可自行选择需要安装的软件
  • LiveGNOME.iso:GNOME 桌面版
  • LiveKDE.iso:KDE 桌面版
  • LiveCD.iso:光盘上运行的系统,类拟于 Windows PE

虚拟机安装与配置

image.png


本文使用 Windows 10 操作系统安装 VMware Workstation 16 来进行讲解。鼠标双击下载好的 VMware-workstation-full-16.1.0-17198959.exe 文件,然后按以下步骤完成安装:

image.png


勾选我接收许可协议中的条款,点击下一步。

image.png


根据个人习惯自定义安装位置,点击下一步。

image.png


使用破解版,把下面两个选项都取消勾选,点击下一步。

image.png


自行选择是否创建快捷方式,点击下一步。

image.png


点击安装,耐心等待。

image.png


image.png


点击许可证,这里需要输入密钥。

image.png


输入密钥后点击输入即可。

image.png


最后点击完成退出安装向导,整个安装流程结束。

image.png


安装完成后第一时间检查网络连接是否有 VMnet1 和 VMnet8 ,如果没有卸载虚拟机清理注册表并重新安装。

image.png


接下来,打开虚拟机软件,点击 编辑 → 首选项 修改虚拟机默认创建位置:

image.png


image.png

创建虚拟机

创建虚拟机前请先检查电脑是否开启虚拟化。打开任务管理器,在性能选项中查看虚拟化信息。如果没开启需要进入BIOS 系统进行开启(不同类型的电脑进入方式不同),这方面内容请自行搜索。

image.png


接下来,请按以下流程完成虚拟机创建。

image.png


点击自定义,定制化安装虚拟机。

image.png


选择硬件兼容性,可以调整是否向下兼容,本文就使用默认值了。

image.png


选择刚才下载好的 CentOS7 镜像文件。

image.png


根据个人习惯修改虚拟机创建位置并填写虚拟机名称。

image.png


根据需求设置虚拟机处理器数量。

image.png


根据需求设置虚拟机内存大小。

image.png


选择 NAT 网络模式。

image.png


选择 IO 控制器类型,默认即可。

image.png


选择磁盘类型,默认即可。

image.png


选择创建新虚拟磁盘。

image.png


设置最大磁盘大小,暂时使用 100G。这里并不是马上分配 100G 出去,而是用多少分多少,最大上限
100G,所以切记不要勾选立即分配所有磁盘空间,否则会立刻将物理磁盘 100G 分配给该虚拟机。

image.png


设置虚拟磁盘名称,默认即可。

image.png


点击完成,虚拟机创建结束。

image.png

安装虚拟机

选择刚才创建好的虚拟机,点击开启此虚拟机。

image.png


底部提示信息直接关闭即可,然后点击屏幕用键盘上下键切换至 Install CentOS 7 ,回车。

image.png


接下来耐心等待虚拟机初始化,直到出现选择语言界面,选择英文并点击 Continue 。

image.png


点击 DATE & TIME 设置时区和时间,后面通过命令也可以实现修改

image.png


设置完成后点击 Done 返回。

image.png


点击 INSTALLATION DESTINATION 设置硬盘分区。

image.png


选择自定义分区并点击 Done 开始设置。

image.png


点击 + 号开始设置分区。

image.png


引导分区 /boot 设置 256M 并点击 Add mount point 进行添加。

image.png


交换分区 swap 设置 2G 并点击 Add mount point 进行添加。

image.png


然后选择 / 并点击 Add mount point 将剩余所有空间分配给 / 分区。

image.png


分区设置完成后点击 Done 。

image.png


点击 Accept Changes 接受修改内容。

image.png


接下来点击 Begin Installation 开启安装。

image.png


安装时可通过 ROOT PASSWORD 给虚拟机设置密码。

image.png


设置密码后点击 Done 返回安装界面,耐心等待安装。

image.png


USER CREATION 用于创建用户,我们暂时不创建,使用默认用户 root 即可。后期可通过命令创建用户-组-权限等

image.png


直到出现以下界面,表示虚拟机安装完成,点击 Reboot 重启虚拟机。

image.png


输入默认用户 root 与密码回车登入虚拟机。注意:考虑到安全问题,输入密码时是不会显示在屏幕上的。

image.png

配置虚拟机

网络

首先打开虚拟机的虚拟网络编辑器,查看 NAT 设置中的 IP 段和网关信息。

image.png


NAT 设置中的 IP 段和网关信息如下。

image.png


然后输入以下命令打开网络配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33

注意:切记不要手动输入,使用 Tab 键自动补齐,因为有的人是 ifcfg-ens33 有的是 ifcfg-ens32 防止出错。

原文件内容如下:

image.png

TYPE=Ethernet     # 网卡类型(通常是 Ethernet 以太网)
PROXY_METHOD=none   # 代理方式:为关闭状态
BROWSER_ONLY=no    # 只是浏览器:否
BOOTPROTO=static   # 网卡的引导协议(static:静态IP dhcp:动态IP none:不指定,不指定容易出现各种各样的网络受限)
DEFROUTE=yes     # 默认路由
IPV4_FAILURE_FATAL=no # 是否开启 IPV4 致命错误检测
IPV6INIT=yes     # IPV6 是否自动初始化:是(现在还未用到 IPV6,不会有任何影响)
IPV6_AUTOCONF=yes   # IPV6 是否自动配置:是
IPV6_DEFROUTE=yes   # IPV6 是否可以为默认路由:是
IPV6_FAILURE_FATAL=no # 是否开启 IPV6 致命错误检测
IPV6_ADDR_GEN_MODE=stable-privacy # IPV6 地址生成模型
    NAME=ens33      # 网卡物理设备名称
UUID=070892f0-514c-46c5-8593-c379854dcce1 # 通用唯一识别码,每一个网卡都会有,不能重复,否则两台 Linux 机器只有一台可上网
DEVICE=ens33     # 网卡设备名称,必须和‘NAME’的值一样
ONBOOT=yes      # 是否开机启动网络,要想网卡开机就启动或通过`systemctl restart network`控制网卡,必须设置为 yes
IPADDR=192.168.88.100 # 本机 IP
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.88.2 # 默认网关
DNS1=192.168.88.2   # DNS 服务器
DNS2=114.114.114.114  # DNS 服务器
DNS3=8.8.8.8      # DNS 服务器

我们只需要修改 2 行,删除 1 行,新增 6 行即可。首先 i 键进入编辑模式,然后开始编辑文件
修改

  • ``ONBOOT=yes (是否开机启动网络)
  • BOOTPROTO=static (使用静态网络 IP,就是自己手动设置)

删除
UUID=xxxxx 每一个网卡都会有,不能重复,否则两台 Linux 机器只有一台可上网

新增:

IPADDR=192.168.88.100
NETMASK=255.255.255.0
GATEWAY=192.168.88.2
DNS1=192.168.88.2
DNS2=114.114.114.114
DNS3=8.8.8.8

文件操作完毕后 Esc 退出编辑模式,然后 : 进入底行模式 :wq 保存并退出文件。
然后输入以下命令重启网络:
systemctl restart network
然后 ping 一下百度(其它也行,比如京东),如果出现以下效果则表示网络配置成功(Ctrl + C 终止 ping 命令的执行)

image.png

防火墙

防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。

查看防火墙状态

systemctl status firewalld

本次服务内关闭防火墙(重启虚拟机后会自动开启)

systemctl stop firewalld

启动防火墙

systemctl start firewalld

重启防火墙

systemctl restart firewalld

禁用防火墙服务

systemctl disable firewalld

SELINUX

SELinux 是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux 的一个扩张强制访问控制安全模块。

使用以下命令打开 SELinux 的配置文件:
vi /etc/selinux/config
修改 SELinux=disabled ,然后 :wq 保存并退出。

关闭虚拟机

可以通过以下命令关闭虚拟机:

  • halt :相当于直接拔掉电源,不推荐。
  • poweroff :直接关闭机器,但是有可能当前虚拟机有其他用户正在使用,不推荐。
  • shutdown -h now :马上关闭计算机 ,但是会给其他用户发送消息,推荐。
  • reboot :重启虚拟机

快照与克隆

可以通过拍摄快照记录当前虚拟机的状态,以防出问题时可以及时还原。虚拟机运行时也可以拍摄快照,只不过速度
会非常慢,且运行时虚拟机也会不停的产生数据,为了防止数据丢失或出错,建议关闭虚拟机后再拍摄快照。

image.png

后期可通过快照管理器选择回到某一个历史快照的节点。

image.png


除此之外,还可以通过克隆复制虚拟机的当前状态或某一个历史快照节点。

image.png


image.png


克隆又分为链接克隆和完整克隆:

image.png


完整克隆

  • 就是基于原始节点完全拷贝到新节点的文件夹中
  • 优点:耦合性抵
  • 缺点:硬盘空间使用大
  • 推荐使用完整克隆

链接克隆 (当前节点文件夹只存储差异性数据,相同数据存放在原始节点上,可节省硬盘空间,耦合性大)

移除虚拟机

可以通过右键虚拟机→移除来移除此虚拟机,但是这种方式只是将虚拟机从 VMware 界面中移除而并非从磁盘上删除。

image.png


如果要从磁盘上删除虚拟机,使用以下方式或自行找到虚拟机存储在磁盘上的位置并进行删除。

image.png

连接虚拟机

  • Xshell:负责向虚拟机输入命令
  • Xftp:负责向虚拟机传输文件

写在最后 : 本文仅用作个人复习

原文地址:https://blog.csdn.net/Kaka_csdn14/article/details/131236892

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、信号(signal)、消息队列、共享内存、信号量、套接字(socket)。管道用于具有亲缘关系的进程间通信,有名管道的每个管道具有名字,使没有亲缘关系的进程间也可以通信。信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别对整个系统的性能做统计,而进程级别则具体到进程,为每个进程维护统计信息。

按实现原理分,可分为基于计数器和跟踪以及剖析。含义如下:

计数器:内核维护的统计数据,通常为无符号整型,用于对发生的事件计数,比如,网络包接收计数器,磁
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书验证,详细追踪整个交互过程,可用于调用网络后端接口,诊断http和https网络服务故障。
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满、fd泄漏等问题。命令包括ping、fping、tcpdump、lsof、netstat、/proc/$pid/fd、du、grep、traceroute、dig。
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的进程数目,用uptime查看到负载很高,既有可能是CPU利用率高,也可能是大量在等待io的进程导致,用mpstat查看每个CPU的使用情况,查看CPU的使用率或者CPU花在等待io的时间,接着用pidstat定位具体的进程
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线程切换及中断切换,进程切换的开销较大,除了需要保存寄存器和程序计数器中的值还需保存全局变量、栈等到内存中,以便下次运行恢复,而同一进程中的线程切换开销会小很多,只需更新寄存器和线程独有的栈,共享资源如打开的文件、全局变量等无需切换,当硬件中
1.top命令 作用:该命令可以按CPU使用.内存使用和执行时间对任务进行排序,常用来监控系统中占用CPU或内存较高的程序及CPU和内存的负载。 默认视图: 当想看系统负载时,可观察汇总的%CPU中的us用户进程和sy系统进程是否占用CPU很高,相加接近100%就说明占用很高了,有些程序可能得不到及
文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限!!!粘滞位!!!超详解!!!
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Windows、Linux、MacBook_mack book 安装qt
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Linux——了解操作系统的发展历史以及初次体验Linux编程环境
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,个人学习时很认真的记录的,觉得好的麻烦点个赞。
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)_openssh_9.5p1
文章浏览阅读3.5k次,点赞93次,收藏78次。初识Linux中的线程,理解线程的各种概念,理解进程地址空间中的页表转换,介绍pthread线程库并理解线程库!
文章浏览阅读863次。出现此问题为Linux文件权限问题,解决方案为回到引擎目录执行命令。输入用户密码后运行./UnrealEditor。_increasing per-process limit of core file size to infinity.
文章浏览阅读2.9k次。使用文本编辑器:打开CSV文件,并使用文本编辑器(如Notepad++、Sublime Text、Visual Studio Code等)来查看文件的字符编码格式。通常在编辑器的底部状态栏或设置中可以找到当前编码的显示。请注意,上述方法并非绝对准确,特别是当文件没有明确的编码标识时。因此,如果你发现CSV文件在不同的工具或方法中显示不同的编码格式,可能需要进行进一步的分析和判断,或者尝试使用不同的编码转换方法。该命令将输出文件的MIME类型和编码信息。使用命令行工具:在命令行中,你可以使用。_shell读取csv文件逐行处理
本文介绍了如何在Linux系统中升级gcc版本,以便更好地支持C++11及以上版本的新特性。通过升级gcc,可以提升编译器的功能和性能,获得更好的开发体验。详细的步骤和方法请参考原文链接。
文章浏览阅读4.4k次,点赞6次,收藏19次。Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。_linux mosquitto
文章浏览阅读7.2k次,点赞2次,收藏12次。Linux中,用于根目录下有一个.ssh目录,保存了ssh相关的key和一些记录文件。_~/.ssh/
文章浏览阅读4.5k次,点赞5次,收藏18次。首先需要安装 snmp ,使用下面的命令进行安装安装完毕之后,使用下面的命令查看是否安装成功当命令行显示如图即为安装成功。_snmp工具