【Linux】B站黑马程序视频学习笔记(一)
一、Linux内核与发行版
注意:下图程序指向内核的箭头用的是“调用”,内核指向硬件用的是“调度”。
Linux内核代码下载网站:https://www.kernel.org/
二、虚拟机-VMware
学习Linux可以借助虚拟机(其使用到的CPU、内存、硬盘都是软件模拟出来的)。
1、在VMware软件中新建虚拟机。
2、在虚拟机中安装发行版Linux系统,比如ubuntu或者CentOs。
三、远程连接虚拟机
1、工具:
如果只使用命令行,可以直接使用ssh。
对于Windows用户,可以使用FinalSSH、MobaXterm、SecureCRT、Wetest等工具。
2、步骤:
(1)通过ifconfig查看远程Linux的ip地址。
(2)在FinalSSH等工具上根据SSH端口号22和IP地址进行链接。
(3)如果要链接FTP还可以使用ipop等工具,如果要VPN使用VPN工具等。
3、思考:为什么要远程连接Linux?
1. 硬件资源限制
- 物理访问不便:很多时候,Linux 服务器或开发环境运行在数据中心、云端或远程位置,开发者无法直接接触到物理机器。通过 SSH 等工具,开发者可以远程访问这些系统,而不需要物理接触。
- 多用户共享资源:在团队开发中,多个开发者可能需要共享同一台服务器或开发环境。通过远程连接工具,每个人都可以独立地访问系统,而不会互相干扰。
2. 开发环境的隔离性
- 测试和部署环境分离:开发者通常需要在不同的环境中测试代码,比如开发环境、测试环境和生产环境。这些环境可能分布在不同的服务器上,通过 SSH 可以方便地切换和管理这些环境。
- 避免本地环境污染:直接在本地机器上开发可能会导致环境依赖问题(如库版本冲突)。通过远程连接到一个干净的开发环境,可以避免这些问题。
3. 远程服务器的管理需求
- 服务器维护:许多 Linux 系统运行在远程服务器或云平台上(如 AWS、阿里云)。这些服务器通常没有图形界面,只能通过命令行工具(如 SSH)进行管理。
- 自动化部署:开发者需要通过远程连接工具来执行自动化部署脚本,或者在远程服务器上运行 CI/CD 流程。
4. 安全性
- 集中式管理:通过 SSH 等工具,可以集中管理多个服务器的访问权限,确保只有授权用户可以访问系统。
- 加密通信:SSH 提供了加密的通信通道,可以保护数据传输的安全性,避免敏感信息被窃取。
5. 灵活性和扩展性
- 随时随地访问:开发者可以在任何有网络的地方通过 SSH 连接到远程系统,方便进行开发和调试。
- 支持多种协议:除了 SSH,还可以通过 VNC、RDP 等工具访问图形界面,或者通过端口转发实现复杂的网络操作。
6. 成本和效率
- 节省硬件成本:通过远程连接,开发者不需要为每个人配备独立的物理机器,可以共享服务器资源。
- 提高开发效率:远程连接工具支持多任务处理(如 tmux 或 screen),开发者可以在一个会话中同时运行多个任务,提高工作效率。
总结
- 在 Linux 开发中,使用 SSH 等远程连接工具是行业标准。这种方式不仅解决了硬件资源限制和物理访问不便的问题,还提供了安全性、灵活性和效率。通过这些工具,开发者可以轻松管理远程服务器、测试代码、部署应用,并确保开发环境的隔离性和一致性。