探索Linux-1-虚拟机远程登陆XShell6远程传输文件Xftp6

Linux是什么?

Linux是一个开源的操作系统内核,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。它基于Unix操作系统,但提供了更多的自由和灵活性。Linux内核是操作系统的核心部分,负责管理系统资源、处理硬件设备请求、以及管理程序运行等任务。

Linux用在哪些地方?

以下是一些主要的应用场景:

  •  个人计算:许多用户选择Linux作为他们的个人操作系统,因为它提供了高度的定制性、稳定性和安全性。
  •  软件开发:Linux提供了一个强大的开发环境,包括丰富的编程工具和库,支持多种编程语言,是许多开发者的首选平台。
  • 图形设计和多媒体制作:Linux上有许多专业的图形设计和多媒体制作软件,如GIMP、Kdenlive、Blender等。
  •  教育:Linux因其开源特性和教育价值,常被用于学校和大学的教学环境中。
  • 游戏:虽然游戏通常与Windows系统关联更紧密,但Linux上也有越来越多的游戏支持,特别是通过Steam和Wine等平台。
  • 家庭媒体中心:Linux可以作为家庭媒体中心的操作系统,用于播放音乐、视频和照片。
  • 个人服务器:Linux是构建个人服务器的理想选择,无论是用于文件共享、网站托管还是其他服务-Linux在服务器领域的应用是最强的,免费,稳定,高效
  • 隐私保护:对于注重隐私的用户,Linux提供了更多的隐私保护选项,如使用Tor网络浏览等。
  • 虚拟化和容器技术:Linux是虚拟化和容器技术(如Docker)的理想平台,允许用户在同一台机器上运行多个操作系统或应用程序。
  • 科学计算和数据分析:Linux提供了强大的科学计算和数据分析工具,如Python、R语言和MATLAB等。
  • 移动设备和嵌入式系统:虽然在智能手机领域Android占主导地位,但Linux也在其他移动设备和嵌入式系统中有所应用。
  • 桌面环境和界面:Linux提供了多种桌面环境和用户界面,如GNOME、KDE Plasma、XFCE等,满足不同用户的使用习惯。

Linux在个人桌面领域的应用非常灵活,可以根据用户的需求和偏好进行定制,这也是它受欢迎的原因之一。

Linux和Unix的关系

Unix的由来

Unix是一个开创性的操作系统,其起源可以追溯到20世纪60年代末。最初,Unix是由AT&T贝尔实验室的Ken Thompson和Dennis Ritchie共同开发的,目的是创建一个多用户、多任务的分时系统 。Unix的早期开发受到了他们参与设计的Multics系统的影响,Multics是一个更为复杂的操作系统项目,但最终由于种种原因被终止 。

Unix系统的开发始于1969年,最初是在PDP-7微型机上进行的 。1971年,Unix被移植到了PDP-11计算机上,但当时它只支持16KB内存,并且大多数代码是用汇编语言编写的,这限制了其可移植性 。为了解决这个问题,Ken Thompson创建了一种名为"B"的高级语言,随后Dennis Ritchie基于"B"语言开发了C语言,使得Unix能够用高级语言重写,从而提高了其可移植性 。

Unix的广泛应用得益于其开源特性和灵活性。1974年,Thompson和Ritchie在Communication of ACM上发表了论文,正式向外界披露了UNIX系统 。随后,UNIX系统被广泛配备于美国各大学的PDP-11系列计算机上,为UNIX的广泛应用创造了条件 。Unix的设计哲学,如“小即是美”和“万物皆为文件”,对其发展产生了深远影响 。

Unix系统以其稳定性、安全性和高度的自定义性而受到青睐,广泛应用于服务器、超级计算机和嵌入式设备等领域 。它采用分时操作系统理念,实现了多用户同时交互式作业,并展现出卓越的多用户和多任务处理能力 。Unix系统的成功也为后来的操作系统,包括Linux,奠定了基础 。

Linux的由来

Linux的起源可以追溯到1991年,由芬兰程序员林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学读书时开始的一个个人项目。以下是Linux发展的主要历程:

初始动机:
   - 林纳斯·托瓦兹最初是想为他的个人电脑编写一个操作系统,因为他对当时可用的操作系统不满意。

Minix的影响:
   - 托瓦兹在大学期间学习了操作系统课程,使用的是Andrew S. Tanenbaum教授开发的Minix系统。Minix是一个类Unix操作系统,主要用于教学目的。托瓦兹对Minix的局限性感到不满,决定开发一个更强大的系统。

Linux内核的诞生:
   - 1991年,托瓦兹开始编写Linux内核。最初,他只是将其作为一个业余项目,但很快这个项目吸引了其他开发者的兴趣。Linux内核的第一个版本(0.01)于1991年9月发布。

开源和社区贡献:
   - 托瓦兹将Linux内核以开源许可证发布,允许任何人自由地使用、修改和分发。这种开放性迅速吸引了全球开发者的注意,他们开始为Linux贡献代码和改进。

GNU项目的影响:
   - Linux内核的开发受益于GNU项目,特别是Richard Stallman领导的自由软件运动。GNU项目提供了许多工具和库,如GCC编译器和Glibc库,这些工具对Linux的开发至关重要。

Linux发行版的出现:
   - 随着Linux内核的成熟,各种基于Linux的操作系统发行版开始出现。这些发行版提供了完整的操作系统,包括内核、应用程序和用户界面。早期的发行版如Slackware和Debian逐渐发展成今天广泛使用的Ubuntu、Fedora和Red Hat Enterprise Linux等。

商业化和广泛应用:
   - 随着Linux的普及,许多企业和组织开始采用Linux作为服务器和桌面操作系统。Linux因其稳定性、安全性和可定制性而受到青睐。此外,Linux在嵌入式系统和移动设备中也有广泛应用。

持续发展:
   - 至今,Linux内核仍在不断更新和改进。全球的开发者社区继续为Linux贡献代码,使其成为一个不断进化的操作系统。

Linux的成功不仅在于其技术优势,还在于其开放和协作的开发模式,这种模式使得Linux能够迅速适应不断变化的技术需求。

Linux与Unix的关系

Linux和Unix之间有着紧密但明确的关系,主要体现在以下几个方面:

  • 技术灵感:
  •    - Linux的设计受到了Unix的强烈启发。Unix的设计理念、工具和哲学对Linux的创建者林纳斯·托瓦兹有着深远的影响。
  • 类Unix系统:
  •    - Linux通常被归类为一个类Unix系统。这意味着它在很多方面与Unix相似,包括其命令行界面、文件系统结构、以及多用户多任务的操作系统特性。
  • 兼容性:
  •    - Linux旨在与Unix兼容,特别是在应用程序编程接口(API)和用户界面方面。这使得许多Unix程序能够在Linux上运行,尽管两者在底层实现上有所不同。
  • 开源和自由软件:
  •    - 与许多Unix变种一样,Linux是开源的,遵循自由软件的原则。这意味着任何人都可以查看、修改和分发Linux的源代码。
  • 社区驱动:
  •    - Linux的开发类似于Unix的早期发展,是由一个全球开发者社区共同推动的。这种开放和协作的开发模式促进了Linux的快速成长和多样化。
  • Unix哲学:
  •    - Linux继承了Unix的一些核心哲学,如“小即是美”、“让每个程序都做好一件事”以及“万物皆文件”等。
  • 法律和许可:
  •    - 尽管Linux和Unix在技术上有很多相似之处,但它们在法律和许可方面是独立的。Linux是独立开发的,不包含Unix的专有代码。
  • Unix的分支:
  •    - 一些Unix的分支,如BSD,对Linux的发展也产生了影响。例如,Linux早期使用了BSD的一些网络代码。
  • 替代和补充:
  •    - 在某些情况下,Linux被用作Unix系统的替代品,特别是在需要成本效益和灵活性的场景中。同时,Linux也被用作Unix系统的补充,例如在Unix系统上运行Linux应用程序。
  • 共同的遗产:
  •     - Linux和Unix共享着许多相同的工具和实用程序,如grep、sed、awk等,这些都是Unix遗产的一部分,也被Linux所继承。
  • 总的来说,Linux是在Unix的基础上独立发展起来的,它继承了Unix的许多优点,同时也发展出了自己的特点和优势。Linux的成功在很大程度上得益于Unix的开源精神和设计理念。

VM和Linux的安装

vmware的安装

进入wmware官方网站进行下载,需要激活码,可以自行寻找VMware Workstation Pro

centos7的下载

进入centos官方网站进行下载,直接下载,记住下载安装的位置,可以把centos理解为Linux的外壳(发行版)

在VMware中创建一个虚拟机,按照提示一步一步来,在黑屏时不要随意点击,进入下面这个界面

操作系统选择centos7安装包,网络连接选择NAT网络连接

虚拟机克隆

克隆目的:
- 快速复制环境,用于测试、开发或备份。

克隆类型:

  • 完整克隆:包含虚拟机所有数据和配置的独立副本。
  • 链接克隆:基于快照的优化克隆,节省空间但依赖原始快照。

克隆步骤:

  1. 打开VMware Workstation。
  2. 选择要克隆的虚拟机。
  3. 选择克隆选项,并决定克隆类型。
  4. 为克隆的虚拟机命名并选择存储位置。
  5. 配置网络和硬件设置(如果需要)。
  6. 启动克隆过程并等待完成。
  7. 启动克隆的虚拟机进行验证。

注意事项:

  • 克隆会占用额外存储空间,特别是完整克隆。
  • 链接克隆在运行时可能需要更多性能资源。
  • 确保原始虚拟机的快照未被删除,以维持链接克隆的完整性。
  • 检查软件许可证是否允许虚拟机克隆。

通过克隆,用户可以在不同的虚拟环境中快速部署相同的操作系统和应用程序配置,同时保持原始环境的稳定性和安全性。

右击Centos 7->点击管理->点击克隆(克隆需要在关闭虚拟机的情况下进行)

虚拟机快照

快照定义:
快照是虚拟机在某一时刻的静态副本,包括操作系统、应用程序、数据和系统配置。它类似于传统操作系统中的“系统还原点”。

快照目的:

  • 版本控制:跟踪虚拟机随时间所做的更改。
  • 测试和开发:在不影响原始环境的情况下进行测试或开发。
  • 灾难恢复:在系统故障时快速恢复到之前的状态。

快照类型:

  • 即时快照:捕获虚拟机当前状态的完整副本。
  • 差异快照(链式快照):仅记录自上一个快照以来的更改,节省存储空间。

快照过程:

  • 选择虚拟机:在虚拟化软件中选择要创建快照的虚拟机。
  • 创建快照:选择创建快照的选项,可能需要指定快照的名称和描述。
  • 等待完成:快照创建过程中,虚拟机的状态将被保存。
  • 管理快照:可以查看、重命名、删除或回退到快照。

快照使用:

  • 回退:如果需要,可以将虚拟机回退到快照状态,撤销之后所做的更改。
  • 比较:比较不同快照之间的差异,了解系统的变化。
  • 删除:不再需要的快照可以被删除,释放存储空间。

注意事项:

  • 存储空间:快照会占用额外的存储空间,尤其是即时快照。
  • 性能影响:创建和使用快照可能会对虚拟机的性能产生一定影响,尤其是在磁盘I/O密集型操作时。
  • 依赖性:链式快照依赖于之前的快照,如果删除了早期快照,后续快照可能无法正常工作。
  • 磁盘空间管理:定期清理不再需要的快照,以优化存储空间使用。

快照是虚拟化环境中的一个强大工具,它提供了一种灵活的方式来保存和恢复虚拟机的状态,非常适合需要频繁测试和配置更改的环境。然而,合理管理快照对于维护性能和存储空间至关重要。

快照管理,只需要在VMware进行操作即可

安装vmtools步骤

在VMware Workstation的菜单栏中,选择“虚拟机” -> “安装VMware Tools”
sudo su -
//切换到root用户
mount /dev/cdrom /mnt
//挂载CD-ROM驱动器
cd /mnt
tar zxf VMwareTools-*.tar.gz -C /tmp
cd /tmp/vmware-tools-distrib
./vmware-install.pl -d
//这里,-d 参数表示自动运行安装程序reboot
//重启
vmware-toolbox-cmd
//配置vmtools的配置项

共享文件夹:

进入settings->选项->共享文件夹->进入/mnt/hgfs文件夹中,当然要和设置的主机路径是一致的才能看到相应的文件夹,注意一定要下载vmwaretools才能启动

目录结构介绍

Linux操作系统以其严格的文件系统层次结构而闻名。这种结构有助于组织文件和目录,使得系统管理更加方便。以下是Linux文件系统的基本目录结构及其主要组成部分的介绍:

1. / (根目录):
   - 所有其他目录的父目录。
   - 根目录下通常包含一些主要的系统目录。

2. /bin:
   - 存放基本的二进制文件(即可执行文件)。
   - 这些文件是系统启动和运行所必需的,如`ls`、`cp`、`mv`等。

3. /sbin:
   - 存放系统管理的二进制文件。
   - 这些文件通常由系统管理员使用,如`fdisk`、`ifconfig`、`iptables`等。

4. /etc:
   - 存放系统配置文件。
   - 几乎所有系统服务和应用程序的配置文件都存放在这里。

5. /lib:
   - 存放共享库文件。
   - 这些库文件是许多应用程序运行所必需的。

6. /media:
   - 临时挂载文件系统的挂载点。
   - 通常用于挂载可移动存储设备,如USB驱动器、CD-ROM等。

7. /mnt:
   - 临时挂载的文件系统。
   - 通常用于挂载网络文件系统或外部存储设备。

8. /boot:
   - 存放启动加载程序和内核。
   - 这些文件是系统启动时必须加载的。

9. /dev:
   - 存放设备文件。
   - 这些文件代表系统中的硬件设备,如硬盘、键盘、鼠标等。

10. /proc:
    - 虚拟文件系统,提供系统运行时的信息。
    - 这些文件不占用实际的磁盘空间,但可以提供关于系统和进程的信息。

11. /sys:
    - 另一个虚拟文件系统,提供系统硬件和驱动程序的信息。
    - 类似于/proc,但更加详细和结构化。

12. /usr:
    - 用户相关的应用程序和文件。
    - 通常包含用户安装的软件和文档。

13. /home:
    - 用户的个人目录。
    - 每个用户的主目录都存放在这里。

14. /opt:
    - 可选软件包的安装位置。
    - 通常用于安装第三方软件。

15. /tmp:
    - 临时文件存放目录。
    - 系统和应用程序的临时文件都存放在这里。

16. /var:
    - 可变数据的存放目录。
    - 包含日志文件、数据库文件、邮件队列等。

17. /root:
    - 系统管理员的家目录。
    - 通常只有root用户才能访问。

18. /srv:
    - 服务数据的存放目录。
    - 通常用于存放网站、FTP服务器等的数据。

19. /mnt:
    - 挂载文件系统的临时目录。
    - 通常用于临时挂载文件系统。

20. /run:
    - 系统运行时的系统数据。
    - 包含系统运行时的临时数据和状态信息。

这些目录构成了Linux文件系统的基础,每个目录都有其特定的用途和功能

请期待下一篇关于Linux的文章吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL的表,视图,索引创建

一。创建表 1。创建Student表 mysql> create table Student(Sno int primary key auto_increment,Sname varchar(30) not null unique,Ssex varchar(2) check (Ssex 男 or Ssex 女) not null,Sage int not null,Sdept varchar(10) default 计算机 not null); 2.创建Cour…

Infuse Pro for Mac全能视频播放器

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试安装完成!!! 效果 一、下载软件 下载软件…

Dav_笔记11:SQL Tuning Overview-sql调优 之 5

构建SQL测试用例 对于许多与SQL相关的问题,获得可重现的测试用例可以更轻松地解决问题。从11g第2版(11.2)开始,Oracle数据库包含SQL测试用例构建器,它可以自动完成收集和复制尽可能多的有关问题及其发生环境的信息的难…

【JavaScript】深入理解 `let`、`var` 和 `const`

文章目录 一、var 的声明与特点二、let 的声明与特点三、const 的声明与特点四、let、var 和 const 的对比五、实战示例六、最佳实践 在 JavaScript 中,变量声明是编程的基础,而 let、var 和 const 是三种常用的变量声明方式。本文将详细介绍这三种变量声…

上传文件传参 pc端vue的formData

formData let formData new FormData(); formData.append("file", blob, ref ".png"); //添加参数并且重新命名文件名称 if(ref.toString().indexOf(qrcode) > 0) formData.append(noStbg, true)//添加参数 uploadType(formData, sour…

USB转多路串口-纯硬件实现串口数据传输指示灯电路

前言 串口相关产品往往要求有数据收发时LED闪烁,我们经常会用软件实现,在MCU内注册一个定时器,有数据发送时就闪烁一段时间。软件点灯这种方式存在两个缺陷,一是接收方向不好实现;二是定时器一般用固定频率&#xff0…

Linux系统:date命令

1、命令详解: date 命令可以用来显示或设定系统的日期与时间。 2、官方参数: -d, --dateSTRING 通过字符串显示时间格式,字符串不能是now。-f, --fileDATEFILE 类似 --date 在 DATEFILE 的每一行生效-I[FMT], --iso-8601[FMT…

Redis底层数据结构的实现

文章目录 1、Redis数据结构1.1 动态字符串1.2 intset1.3 Dict1.4 ZipList1.5 ZipList的连锁更新问题1.6 QuickList1.7 SkipList1.8 RedisObject 2、五种数据类型2.1 String2.2 List2.3 Set2.4 ZSET2.5 Hash 1、Redis数据结构 1.1 动态字符串 Redis中保存的Key是字符串&#xf…

【C语言】VS的实用调试技巧

0. 前言 VS(Visual Studio)是集成开发环境,其内置了多种调试工具和技巧帮助开发人员在开发过程中解决问题。包含断点、监视窗口、自动窗口、调用堆栈等,通过这些技巧,开发人员可以有效地调试和解决程序中的问题。我们在VS编译器上写代码&…

Codeforces 903 div3 A-F

A 题目分析 数据范围很小&#xff0c;暴力枚举即可&#xff0c;然后给字符串x的长度设置一个上限&#xff0c;我设了50&#xff0c;因为n*m<25&#xff0c;多一倍够用了 C代码 #include<iostream> using namespace std; void solve(){int n,m;string x,s;cin>>…

尚硅谷vue全家桶(vue2+vue3)笔记

Vue2 一、Vue核心 01_简介 1.特点 采用组件化模式&#xff0c;提高代码复用率、且让代码更好维护。声明式编码&#xff0c;让编程人员无需直接操作DOM&#xff08;命令式编码&#xff09;&#xff0c;提高开发效率。使用虚拟DOM优秀的Diff算法&#xff0c;尽量复用DOM节点。…

Java 面试相关问题(下)——JVM相关问题GC相关问题

1. 类加载1.1 类的生命周期说一下&#xff1f;1.2 介绍下生命周期中的加载&#xff1f;1.3 介绍下生命周期中的验证&#xff1f;1.4 介绍下生命周期中的准备&#xff1f;1.5 介绍下生命周期中的解析&#xff1f;1.6 介绍下生命周期中的初始化&#xff1f;1.7 介绍下生命周期中的…

科研绘图系列:R语言组合堆积图(stacked barplot with multiple groups)

介绍 通常堆积图的X轴表示样本,样本可能会存在较多的分组信息,通过组合堆积图和样本标签分组信息,我们可以得到一张能展示更多信息的可发表图形。 加载R包 knitr::opts_chunk$set(warning = F, message = F) library(tidyverse) library(cowplot) library(patchwork)导入…

富芮坤FR800X系列之按键检测模块设计

FR800X系列按键检测模块 读者对象&#xff1a; 本文档主要适用以下工程师&#xff1a; 嵌入式系统工程师 单片机软件工程师 IOT固件工程师 BLE固件工程师 文章目录 1.概要2.用户如何设计按键检测模块2.1 GPIO初始化2.2按键模块初始化2.3设计中断函数&#xff1a;2.4循环…

Spring循环依赖详解

一、什么是循环依赖 在Spring框架中&#xff0c;循环依赖是指两个或更多的Bean相互间直接或间接地依赖对方的情况。这种依赖关系可能导致Bean的实例化过程中出现问题&#xff0c;但Spring通过其内部的处理机制能够解决某些类型的循环依赖。 简单的说就是A依赖B&#xff0c;B依赖…

数据库安全综合治理方案(可编辑54页PPT)

引言&#xff1a;数据库安全综合治理方案是一个系统性的工作&#xff0c;需要从多个方面入手&#xff0c;综合运用各种技术和管理手段&#xff0c;确保数据库系统的安全稳定运行。 方案介绍&#xff1a; 数据库安全综合治理方案是一个综合性的策略&#xff0c;旨在确保数据库系…

photoshop学习笔记——选区3 选区的变化

选区制作完成之后可以对选区进行变化 主要有&#xff1a; 反选&#xff1a;shift ctrl I 变换 修改&#xff1a; 边界 设置选区的边界大小 类似 CSS中的borderSize平滑 对选区的角进行平滑扩展 向外扩展选区收缩 向内收缩选区羽化 让边界变得过渡透明度 设置…

MySQL作业四

1. 创建数据库mydb15_indexstu 2. 创建表student&#xff0c;course&#xff0c;sc 2.1 创建表student 2.2 创建表course 2.3 创建表sc 3. 处理表 3.1 修改表student中年龄&#xff08;sage&#xff09;字段属性&#xff0c;数据类型由int改变为smallint 3.2 为表course中cno…

【数据结构】栈(基于数组、链表实现 + GIF图解 + 原码)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…

Golang | Leetcode Golang题解之第268题丢失的数字

题目&#xff1a; 题解&#xff1a; func missingNumber(nums []int) int {n : len(nums)total : n * (n 1) / 2arrSum : 0for _, num : range nums {arrSum num}return total - arrSum }