❤️新版Linux零基础快速入门到精通------第一部分❤️
- 非科班的我!Ta!还是来了~~~
- [1. 来认识一下Linux吧!](#1. 来认识一下Linux吧!)
-
- [1.1 操作系统概述](#1.1 操作系统概述)
-
- [1.1.1 操作系统概述](#1.1.1 操作系统概述)
- [1.1.2 操作系统的发展史](#1.1.2 操作系统的发展史)
-
- [1.1.2.1 Unix](#1.1.2.1 Unix)
- [1.1.2.2 Minix](#1.1.2.2 Minix)
- [1.1.2.3 Linux](#1.1.2.3 Linux)
- [1.1.3 操作系统的发展](#1.1.3 操作系统的发展)
- [1.2 Linux初识](#1.2 Linux初识)
-
- [1.2.1 Linux内核版本](#1.2.1 Linux内核版本)
- [1.2.2 Linux发行版本](#1.2.2 Linux发行版本)
- [1.3 虚拟机介绍](#1.3 虚拟机介绍)
-
- [1.3.1 虚拟机基本概念](#1.3.1 虚拟机基本概念)
- [1.3.2 为什么使用虚拟机](#1.3.2 为什么使用虚拟机)
- [1.4 构建虚拟机环境](#1.4 构建虚拟机环境)
- [1.5 远程连接Linux系统](#1.5 远程连接Linux系统)
-
- [1.5.1 掌握操作系统的图形化、命令行2种操作模式](#1.5.1 掌握操作系统的图形化、命令行2种操作模式)
- [1.5.2 FinalShell SSH工具,服务器管理,远程桌面加速软件](#1.5.2 FinalShell SSH工具,服务器管理,远程桌面加速软件)
- [1.5.3 掌握使用FinalShell软件连接Linux操作系统](#1.5.3 掌握使用FinalShell软件连接Linux操作系统)
- [1.6 WSL(Windows Subsystem for Linux)](#1.6 WSL(Windows Subsystem for Linux))
- [1.7 虚拟机快照](#1.7 虚拟机快照)
-
- [1.7.1 创建虚拟机快照](#1.7.1 创建虚拟机快照)
- [1.7.2 管理虚拟机快照](#1.7.2 管理虚拟机快照)
- [1.8 虚拟机克隆](#1.8 虚拟机克隆)
-
- [1.8.1 创建克隆虚拟机](#1.8.1 创建克隆虚拟机)
非科班的我!Ta!还是来了~~~
Linux一开始就不是为桌面用户准备的,林纳斯自己本身就是一个Unix极客,他设计Linux就参考了Unix的设计哲学,也就是说Linux从一开始就是为专业用户设计的。 不管是Unix操作系统也好,还是Linux操作系统也好,本质上都是为了提高生产效率。Linux的设计者林纳斯,自己就是一个Unix极客,他是不满意Unix当时的版权问题,于是他吸收了很多Unix的优点,在这个基础上设计了Linux操作系统。Linux的设计哲学,让Linux很多场景下都需要命令行操作,并且Linux设计者并不是很鼓励大家使用桌面,或者更合理的说法是,Linux的设计初衷是即使你要用一个桌面,也希望你能掌握好各种命令行操作,Vim/Emacs、GCC等各种软件,都更加鼓励大家用命令行操作
Linux诞生的时机吧,运气也确实不太好,我们且不说苹果的Mac OS X,Linux在1991年的时候由林纳斯开发,内核开发出来之后,1991年10月5日,林纳斯将Linux V0.01版内核源代码释放出来供众多的开发者进行完善,一直到93年才有10万用户,这些用户也基本都是程序员,96年的时候也才350万用户。这个发展其实是有点太慢了,跟Windows、MacOS动辄几千万、上亿的用户没办法比。言归正传,Linux只是一门基本计算机技能,它对学习者的背景、知识结构、年龄都没啥要求,只要坚持不懈的进步,Linux没啥学不会的。当然在学习中总会遇到瓶颈,这个时候就需要自我调节、坚持下去。学习Linux有大量的东西需要记忆,如果你懒得背、懒得学习、懒得去搞清 ,那当然会觉得难学了。还是那句话,脚踏实地,总会有所收获。
❤️积极的学习心态意味着好的开始❤️
"Linux这个操作系统难用吗?难!一片黑漆漆的命令行窗口闪烁着谜一样的光标,本来英语就是老大难,现在竟然让我背那么多命令?""Linux这个操作系统难吗?简单,纯命令行设计、个性化强、工作效率高、黑漆漆的窗口天生自带神秘感。"
1. 来认识一下Linux吧!
1.1 操作系统概述
1.1.1 操作系统概述
-
计算机由哪两个主要部分组成?
-
硬件:计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。
-
软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流。
-
-
操作系统是什么?有什么作用?
- 操作系统是软件的一类。
- 主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁
-
常见的操作系统有哪些?
- PC端:Windows Linux MacOS
- 移动端:Android、IOS、鸿蒙系统
1.1.2 操作系统的发展史
1.1.2.1 Unix
- 💻1965年之前,电脑只有军事或者学院的研究机构碰的起,当时大型主机至多能提供30台终端(30个键盘、显示器)的连接。
- 💻1965年左后由贝尔实验室、麻省理工学院 以及 通用电气共同发起了Multics项目,想让大型主机支持300台终端
- 💻1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
- 💻1969年从这个项目中退出的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行"星际旅行"游行,在8月份左右趁着其妻子探亲的时间,用了1个月的时间编写出了 Unix操作系统的原型
- 💻1970年,美国贝尔实验室的 Ken Thompson,以 BCPL语言 为基础,设计出很简单且很接近硬件的 B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统 。
因为B语言的跨平台性较差,为了能够在其他的电脑上也能够运行这个非常棒的Unix操作系统,Dennis Ritchie和Ken Thompson 从B语言的基础上准备研究一个更好的语言 - 💻1972年,美国贝尔实验室的 Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言
- 💻1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统
1.1.2.2 Minix
因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
1.1.2.3 Linux
因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具 ,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范); 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件
1.1.3 操作系统的发展
Minix没有火起来的原因
Minix的创始人说,MINIX 3没有统治世界是源于他在1992年犯下的一个错误,当时他认为BSD必然会一统天下,因为它是一个更稳定和更成熟的系统,其它操作系统难以与之竞争。因此他的MINIX的重心集中在教育上。四名BSD开发者已经成立了一家公司销售BSD系统,他们甚至还有一个有趣的电话号码1-800-ITS-UNIX。然而他们正因为这个电话号码而惹火上身。美国电话电报公司因电话号码而提起诉讼。官司打了三年才解决。在此期间,BSD陷于停滞,而Linux则借此一飞冲天。他的错误在于没有意识官司竟然持续了如此长的时间,以及BSD会因此受到削弱。如果美国电话电报公司没有起诉,Linux永远不会流行起来,BSD将统治世界。
1.2 Linux初识
Linux系统的组成如下:
- Linux系统内核
- 系统级应用程序
- 内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。
- 系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放等。
1.2.1 Linux内核版本
内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
- 开发版:由于要试验各种解决方案,所以变化很快。
可以看出,内核是Linux操作系统最核心的所在,系统级应用程序只是锦上添花。Linux内核是免费开源的,任何人都可以下载内核源码并查看且修改。可以通过: https://www.kernel.org 去下载Linux内核
1.2.2 Linux发行版本
Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
目前市面上较知名的发行版有:Ubuntu
、RedHat、CentOS
、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
1.3 虚拟机介绍
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
比较通俗的回答(适合没有电脑基础的朋友)
虚拟机,顾名思义就是虚拟出来的电脑,这个虚拟出来的电脑和真实的电脑几乎完全一样,所不同的是他的硬盘是在一个文件中虚拟出来的,所以你可以随意修改虚拟机的设置,而不用担心对自己的电脑造成损失,因此可以用来做试验什么的,呵呵,差不多就是这样了,不知道我说的能明白不^_^,简单说就是一句话,虚拟出来的电脑,你干什么都行。
比较专业的回答(适合有一点电脑基础的朋友)
虚拟机是指运行在Windows或Linux计算机上的一个应用程序,这个应用程序"模拟"了一个基于x86的标准PC的环境。这个环境和普通的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCSI控制器等设备,提供这个应用程序的"窗口"就是虚拟机的显示器。在一台电脑上将硬盘和内存的一部分拿出来虚拟出若干台机器,每台机器可以运行单独的操作系统而互不干扰,这些"新"机器各自拥有自己独立的CMOS、硬盘和操作系统,你可以像使用普通机器一样对它们进行分区、格式化、安装系统和应用软件等操作,还可以将这几个操作系统联成一个网络。在虚拟系统崩溃之后可直接删除不影响本机系统,同样本机系统崩溃后也不影响虚拟系统,可以下次重装后再加入以前做的虚拟系统。同时它也是唯一的能在 Windows和Linux主机平台上运行的虚拟计算机软件。虚拟机软件不需要重开机,就能在同一台电脑使用好几个OS,不但方便,而且安全。虚拟机在学习技术方面能够发挥很大的作用。
1.3.1 虚拟机基本概念
一般意义的虚拟机:通过虚拟机软件,你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。对于你而言,它只是运行在你物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。因此,当我在虚拟机中进行软件评测时,可能系统一样会崩溃,但是,崩溃的只是虚拟机上的操作系统,而不是物理计算机上的操作系统,并且,使用虚拟机的"Undo"(恢复)功能,我可以马上恢复虚拟机到安装软件之前的状态。
1.3.2 为什么使用虚拟机
- 演示环境,可以安装各种演示环境,便于做各种例子;
- 保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行;
- 避免每次重新安装,银行等常用工具,不经常使用,而且要求保密比较好的,单独在一个环境下面运行;
- 想测试一下不熟悉的应用,在虚拟机中随便安装和彻底删除;
- 体验不同版本的操作系统,如Linux、Mac等。
终端虚拟化由于其带来的维护费用的大幅降低而受到追捧------如能降低占用空间,降低购买软硬件设备的成本,节省能源和更低的维护成本。它比实际存在的终端设备更加具备性价比优势。但这些并非是教育行业和厂商对虚拟化技术情有独钟的惟一原因。另一方面,我们一般较少提及,那就是:虚拟化技术能大幅提升系统的安全性。
1.4 构建虚拟机环境
VMware Fusion
在Windows系统中使用的VMware WorkStation未提供Mac版,Mac系统可以使用VMware Fusion Pro
Fusion Pro和Workstation Pro均是VMware公司出品,完全兼容,体验基本是一致的。
下载地址: https://www.vmware.com/cn/ products/fusion.html
1.5 远程连接Linux系统
1.5.1 掌握操作系统的图形化、命令行2种操作模式
对于操作系统的使用,有2种使用形式:
-
图形化页面使用操作系统
-
以命令的形式使用操作系统
不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。
- 图形化:使用操作系统提供的图形化页面,以获得图形化反馈的形式去使用操作系统。
- 命令行:使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。
使用命令行学习Linux系统
- 尽管图形化是大多数人使用计算机的第一选择, 但是在Linux操作系统上,这个选择被反转了。
- 无论是企业开发亦或是个人开发,使用Linux操作系统,多数都是使用的:命令行
这是因为:
- Linux从诞生至今,在图形化页面的优化上,并未重点发力。所以Linux操作系统的图形化页面:不好用、不稳定。
- 在开发中,使用命令行形式,效率更高,更加直观,并且资源占用低,程序运行更稳定
1.5.2 FinalShell SSH工具,服务器管理,远程桌面加速软件
本章转载了这位大佬:https://www.hostbuf.com/t/988.html
FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求
特色功能:
云端同步,免费海外服务器远程桌面加速,ssh加速,本地化命令输入框,支持自动补全,命令历史,自定义命令参数
java
Windows X64版,下载地址:
http://www.hostbuf.com/downloads/finalshell_windows_x64.exe
macOS Arm版,支持m1,m2,m3 cpu,下载地址:
http://www.hostbuf.com/downloads/finalshell_macos_arm64.pkg
macOS X64版,支持旧款intel cpu,下载地址:
http://www.hostbuf.com/downloads/finalshell_macos_x64.pkg
Linux X64版,下载地址:
http://www.hostbuf.com/downloads/finalshell_linux_x64.deb
Linux Arm64版,下载地址:
http://www.hostbuf.com/downloads/finalshell_linux_arm64.deb
Linux LoongArch64龙芯版,下载地址:
http://www.hostbuf.com/downloads/finalshell_linux_loong64.deb
更新日志:
http://www.hostbuf.com/t/989.html
主要特性:
- 多平台支持Windows,macOS,Linux
- 多标签,批量服务器管理.
- 支持登录ssh和Windows远程桌面.
- 漂亮的平滑字体显示,内置100多个配色方案.
- 终端,sftp同屏显示,同步切换目录.
- 命令自动提示,智能匹配,输入更快捷,方便.
- sftp支持,通过各种优化技术,加载更快,切换,打开目录无需等待.
- 服务器网络,性能实时监控,无需安装服务器插件.
- 内置海外服务器加速,加速远程桌面和ssh连接,操作流畅无卡顿.
- 内存,Cpu性能监控,Ping延迟丢包,Trace路由监控.
- 实时硬盘监控.
- 进程管理器.
- 快捷命令面板,可同时显示数十个命令.
- 内置文本编辑器,支持语法高亮,代码折叠,搜索,替换.
- ssh和远程桌面均支持代理服务器.
- 打包传输,自动压缩解压.
- 支持rz,sz (zmodem)
- 多地点ping监控
- 命令输入框,支持自动补全,命令历史
- 自定义命令参数功能,可动态根据输入参数生成命令
- 可设置终端背景图片,并拥有动态背景模糊,文字阴影效果.
- 一键查看各种系统信息
更多功能会逐步增加,保持最少每周一次更新的频率,敬请关注.
界面截图:
查看系统消息
进程管理器
主机检测,Ping监控,Trace实时跟踪
高级网络监控,监控每个进程监听的端口,以及网络连接状态
打包传输,自动压缩解压,适合传输大量文件,文件夹和文本文件.
1.5.3 掌握使用FinalShell软件连接Linux操作系统
1.6 WSL(Windows Subsystem for Linux)
大家可用看这位大佬的文章。WSL使用史上最详细教程
Done~~
1.7 虚拟机快照
-
在学习阶段我们无法避免的可能损坏Linux操作系统。
-
如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。
-
VMware虛拟机(Workstation和Funsion)支持为虚拟机制作快照。
-
通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。
推荐虚拟机关机的时候进行快照操作
1.7.1 创建虚拟机快照
首先点击菜单栏上的"时钟加号"按钮。
输入名称以及描述(也可不输入,默认名称为快照*),然后点击"拍摄快照"即可创建虚拟机快照。
1.7.2 管理虚拟机快照
点击"时钟扳手"按钮。
点击任一快照,然后点击"转到",然后点击"是",即可实现快照恢复功能。
1.8 虚拟机克隆
在工作中,经常会遇到需要同时开启多个同配置虚拟机的场景,此时无需创建多个虚拟机,使用VMware的克隆功能即可快速创建若干同配置的虚拟机。
1.8.1 创建克隆虚拟机
首先点击菜单栏中的"虚拟机"→"管理"→"克隆"。
选择------克隆方法
- 创建链接克隆。优点是占用磁盘空间少;缺点是原始的虚拟机不能删除,如果删除了原始虚拟机,那么链接克隆虚拟机也将失效。
- 创建完整克隆。优点是此克隆虚拟机完全独立,即使删除了原始虚拟机,对完整克隆虚拟机也没有影响;缺点是占用磁盘空间多。
二者的共性是:在不删除原始虚拟机的前提下,都可以独立运行,克隆虚拟机与原始虚拟机互不影响。
选择完"克隆方法"后点击"下一步"。
此时我的虚拟机中就多出了刚刚创建的克隆虚拟机,此虚拟机可正常开机运行,并且用户名以及密码等与克隆前的状态完全一致。
可以看到,克隆虚拟机占用的空间远小于原始虚拟机。