(一)Linux的歷史與環境搭建

【知識預告】

  1. Linux背景介紹
  2. Linux操作系統特性
  3. Linux的應用場景
  4. Linux的發行版本
  5. 搭建Linux環境

1 Linux背景介紹

1.1 什么是Linux?

Linux是一種自由、開源的操作系統。嚴格來說,它是基于類Unix設計思想,旨在為用戶提供穩定、安全、高效的計算環境。Linux誕生于20世紀90年代初,目前已廣泛應用于服務器、個人電腦、智能設備等多個領域,成為現代信息社會的重要支撐。

1.2 計算機發展史

1946年2月24日,世界上第一臺通用電子計算機——埃尼阿克(ENIAC)正式誕生。彼時,世界正處于美蘇冷戰時期,技術競爭異常激烈。計算機最初主要用于軍事用途,典型應用是計算導彈彈道軌跡。
隨著技術不斷突破,摩爾定律(每18到24個月芯片上集成的晶體管數量將翻倍)逐漸顯現,使得計算機體積迅速縮小、成本下降,計算機逐步走出軍事用途,進入科研和工業領域。
由于軍隊本身缺乏足夠的專業技術人才,政府出資,聯合高校與研究機構共同進行研發。這種“出資+技術”的合作模式,大大加速了計算機技術的發展,也促進了計算機的產業化。隨著技術成熟,越來越多的私人資本(如華爾街的資金和人才)進入,推動了第一批商業化計算機產品和操作系統的誕生。
政府則通過稅收回流資金,形成了良性的技術創新和經濟增長循環。

1.3 操作系統的故事

1.3.1 計算機硬件

早期計算機硬件主要由兩大公司推動:IBM和蘋果公司。

  • IBM以生產面向企業、高校和科研機構的大型機和工作站為主,操作系統主要采用UNIX系統,穩定、可靠,但昂貴。
  • 蘋果公司則采取“軟硬件一體化”的策略,自主開發硬件和操作系統(如Mac OS),以精良的設計和卓越的體驗聞名,不過價格同樣高昂,主要面向高端用戶群體。

1.3.2 計算機軟件

在軟件領域,微軟崛起,與英特爾(Intel)結盟,推出了兼容性更好、成本更低的個人電腦解決方案(即“Wintel聯盟”)。微軟主要提供操作系統(如DOS、Windows),通過授權模式迅速擴展市場,占領了大眾消費市場。

1.4 Linux的誕生

在這樣一個硬件和軟件格局初步形成的時代背景下(一般的平民百姓都用不起電腦),1991年,芬蘭赫爾辛基大學的21歲學生林納斯·托瓦茲(Linus Torvalds)橫空出世。他思考:能否開發一個免費的、人人可用的操作系統?
于是,他開始基于Minix系統的思想,自主開發一個新的內核,并將其命名為Linux(“Linux is not Unix”,取前四個字母,再加上x表示Unix家族)。
托瓦茲將Linux內核的源代碼免費發布在互聯網上,鼓勵全球開發者共同參與修改和完善。這種開源協作模式迅速吸引了大批計算機愛好者、黑客、工程師的參與,推動了Linux快速成長。

1.5 開源 vs 閉源,誰更好

我開始認為閉源好,但是事實上,開源軟件在保障質量方面具有天然優勢。

首先,開源意味著源代碼對所有人開放,任何開發者、黑客、研究人員都可以自由查看、審閱、測試甚至修改代碼。這樣一來,更多的專業人士參與其中,能夠快速發現潛在的問題和安全漏洞。每多一個人審閱,系統的健壯性、安全性就增加一分。就像一個程序,如果只有少數開發者能接觸到源代碼,那么問題被發現和修復的速度就有限;而如果全球數百萬開發者都能參與審閱和貢獻,那么漏洞自然更容易暴露并被及時修補。

以Linux為例,由于其完全開源,吸引了全球范圍內的優秀開發者持續關注和貢獻。不僅有自由軟件愛好者,還有許多曾在大型企業工作的高級工程師、研究人員也積極參與。他們有的是出于興趣,有的是出于對現有商業模式的不滿,還有的是為了推動技術進步。無論出于什么動機,開源社區中匯聚了大量具有極高專業水平的人才,這種力量遠遠超過了單一企業內部有限的資源。

當然,也有人認為閉源軟件通過嚴格的內部管理、專業的測試流程,也能保持較高的軟件質量。確實,像蘋果、微軟這樣的公司擁有完善的開發和測試體系,閉源軟件在某些特定場景下也非常優秀。但閉源模式下,源代碼不能公開接受全球開發者的審視,問題的發現和修復主要依賴內部團隊,因此在應對大規模漏洞、尤其是安全漏洞時,可能反應速度較慢,透明度也較低。

綜合來看,開源并不是天然完美的,但在長期、大規模協作下,開源軟件往往能實現更高的穩定性、安全性和可持續發展。Linux的發展就是最好的例證:從一個學生的小項目,成長為支撐全球互聯網基礎設施的核心系統,靠的正是開源模式下全球開發者共同打磨的力量。

2 Linux操作系統特性

  • 開源:源代碼對所有人開放,允許自由查看、修改和分發。
  • 免費:絕大多數Linux發行版無需付費使用,降低了使用門檻。
  • 穩定可靠:在服務器、高性能計算等應用場景中表現優異,系統崩潰率極低。
  • 安全性高:由于眾多開發者共同維護,漏洞能被快速發現和修復,安全性極高。
  • 高效性能:占用資源少,適用于各種硬件環境。

3 Linux的應用場景

  • 互聯網公司的服務器后端:絕大多數網站和云服務(如谷歌、Facebook、亞馬遜)后端服務器均基于Linux。
  • 智能設備操作系統:如Android系統就是基于Linux內核開發的,廣泛應用于手機、智能電視、車載系統等。
  • 嵌入式系統:在工業控制、物聯網、智能家居等領域,Linux也被廣泛使用,因其高度可定制、資源占用少的特性極具優勢。
  • 科研與高性能計算:超級計算機集群大多采用Linux系統,如全球Top500超級計算機中,超過90%運行的是Linux或其衍生系統。

4 Linux的發行版本

4.1 商業化版本

最早,Linux誕生于個人和開源社區,但隨著Linux在服務器、超級計算機和企業后臺系統中的應用越來越廣泛,企業客戶對穩定性、安全性、長期支持、合規性等提出了更高要求。于是,許多公司基于Linux內核開發出了商業化版本,以提供更加完善、穩定、可靠的解決方案,同時配套技術支持和服務。
Linux商業化版本的代表有:

  • Red Hat Enterprise Linux(RHEL):由Red Hat公司開發,是最早也是最成功的Linux商業化發行版之一。Red Hat通過提供穩定的軟件版本、長期的技術支持、安全補丁和認證服務,構建了完整的企業級解決方案。Red Hat通過訂閱制盈利,成為Linux商業化運營的典范。
  • SUSE Linux Enterprise Server(SLES):由德國SUSE公司開發,專注于企業服務器和大型數據中心應用,強調系統的可靠性與靈活性,在歐洲市場尤其受歡迎。
  • Ubuntu(特別是Ubuntu LTS版本):由Canonical公司維護,雖然基礎版本免費,但Canonical通過提供企業支持服務(如服務器優化、云平臺部署、安全更新)來實現商業變現,尤其在云計算領域影響力巨大。
  • Oracle Linux:由甲骨文公司推出,兼容Red Hat Enterprise Linux,主要面向需要使用Oracle數據庫和企業應用的客戶群體,強調高性能和高可用性。
  • CentOS(現已演變為CentOS Stream):雖然一開始是社區驅動的免費版本,但它是RHEL的下游版本,被許多企業作為成本更低的選擇使用。現在CentOS Stream變成了RHEL的滾動開發版本,為RHEL做前期測試。
  • Amazon Linux:由亞馬遜AWS推出,專門針對云環境進行了優化,深度集成了AWS平臺,主要用于云服務器實例(EC2)。
    Linux商業版本
    后續我主要用Centos,7.6/7.8/7.9版本。

4.2 技術版本

瀏覽器搜The Linux Kernel Archives,然后點擊HTTP,可以看Linux的技術版本。
在這里插入圖片描述

5 搭建Linux環境

5.1 Linux 環境的搭建方式主要有三種

  1. 直接安裝在物理機上(雙操作系統), 但是由于 Linux 桌面使用起來非常不友好, 不推薦。
  2. 使用虛擬機軟件, 將 Linux 搭建在虛擬機上。(不會,bug滿天飛)
  3. 使用云服務器, 可以直接在 騰訊云, 阿里云或華為云 等服務器廠商處直接購買一個云服務器。(氪金,成為人民幣玩家,也不貴,可以多個人共用一個賬號)

使用云服務器不僅環境搭建簡單, 避免折騰, 同時還有一個最大的好處, 部署在云服務器上的項目可以直接被外網訪問到, 這個時候就和一個公司發布一個正式的網站沒有任何區別。也就能讓我們自己寫的程序真的去給別人去使用。

5.2 購買云服務器

以阿里云為例, 其他的服務器廠商也是類似。

  1. 瀏覽器搜索阿里云。
  2. 登陸網站,買個最便宜的服務器。(2G夠用了)
  3. 右上角點擊控制臺,然后更改密碼。
  4. 在這里插入圖片描述
  5. 記住公網IP地址,再下載一個Xhell 8(必須是最新版本)。

5.3 使用 XShell 遠程登陸到 Linux

5.3.1 關于 Linux 桌面

Linux 啟動進入圖形化的桌面,這個東西以后就可以忘記了。 以后的工作中沒有機會使用圖形界面。

為什么工作中不使用Linux圖形界面?

在實際的生產環境中,大部分Linux服務器、后臺系統、云計算平臺等幾乎都是以命令行界面(CLI, Command Line Interface)為主,而不是圖形界面(GUI, Graphical User Interface)。主要原因有:

  1. 圖形界面需要消耗大量的系統資源(CPU、內存、硬盤空間等),而服務器的資源非常寶貴,優先要保證業務應用的性能和穩定性。命令行界面非常輕量,不需要加載冗余的圖形組件,能夠最大程度地節省資源。
  2. 圖形界面涉及更多的軟件層次(窗口管理器、圖形驅動等),意味著潛在的漏洞、崩潰風險也更多。純命令行系統架構簡單,出錯概率更低,安全性更高。 在對穩定性要求極高的服務器環境中,去除圖形界面可以大幅降低系統故障率。
  3. 在工作中,服務器大多放置在遠程機房,管理人員通過SSH等協議進行遠程登錄。命令行非常適合低帶寬、高延遲的遠程操作環境,而圖形界面需要圖像傳輸,網絡開銷大,效率低下。
  4. 對于熟悉Linux命令行的工程師來說,CLI操作可以實現更快、更精準、更自動化的管理,比如用腳本批量處理任務、自動化部署等等。命令行體現了專業水平,而圖形界面雖然友好,但操作步驟繁瑣,不適合大規模、高效率的工作場景。
  5. 在互聯網公司、金融系統、云服務提供商等行業,使用命令行管理服務器已經是公認的標準實踐。為了與行業規范接軌,新人必須適應無圖形界面的環境。

在以后的工作中,我們面對的Linux系統,通常都是“純凈的命令行環境”。雖然在學習初期圖形界面可以幫助理解和過渡,但真正走向職業工作,必須徹底掌握并習慣于命令行操作。忘記圖形界面,擁抱命令行,是成為一名合格技術人員的重要一步。

5.3.2 使用Xshell登陸主機

Linux命令行

// ssh root@你的公網IP地址,這里我的地址是121.40.223.120
ssh root@121.40.223.120

然后就到了下一步,要你輸入密碼。
在這里插入圖片描述
看到welcome就成功了。
在這里插入圖片描述
如果要和別人共用一個賬號。

// 命令行輸入
adduser HYQ    // 補充用戶名,然后按回車鍵
passwd HYQ     // 給新增的用戶名,補充密碼
// 然后系統會提示,New password:
// Retype new passworld:

注意:Linux命令行里面,密碼不回顯(不回顯示出來)。
在這里插入圖片描述
密碼輸入成功后,子賬號就創建好了。

其它人就可以通過剛才創建的子賬號,登陸你的云服務器了。登陸過程和上面一樣,只不過這次是:

ssh HYQ@121.40.223.120       // 剛才是ssh root@121.40.223.120

在這里插入圖片描述
密碼輸入成功后,和上面一樣看見welcome,就可以正常使用服務器了。

// 按下Ctrl+Alt+],就可以退出子賬號,就可以重新登陸root賬號了
// 如果嫌棄前面的命令行太多,礙眼睛,可以輸入clear清除上面的記錄

如果你想更改子賬號的密碼,登陸root賬號后,passwd HYQ就可以改密碼。userdel -r HYQ就可以徹底刪除這個子賬號。
更改/刪除子賬號密碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903342.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

光流法:從傳統方法到深度學習方法

1 光流法簡介 光流(Optical Flow)是指圖像中像素灰度值隨時間的變化而產生的運動場。 簡單來說,它描述了圖像中每個像素點的運動速度和方向。 光流法是一種通過分析圖像序列中像素灰度值來計算光流的方法。對于圖像數據計算出來的光流是一個二…

解決ssh拉取服務器數據,要多次輸入密碼的問題

問題在于,每次循環調用 rsync 都是新開一個連接,所以每次都需要輸入一次密碼。為了只輸入一次密碼,有以下幾種方式可以解決: ? 推薦方案:設置 SSH 免密登錄 最穩最安全的方式是:配置 SSH 免密登錄&#x…

web技術與Nginx網站服務

目錄 一. web基礎 1. 域名概念 2. Hosts 文件 3. DNS 4. 域名注冊 5. 網頁與 HTML 二. 網頁概述 1. HTML 概述 2. HTML 基本標簽 3. 網站和主頁 三. 靜態網頁與動態網頁 1. 靜態網頁 2. 動態網頁 3. 動態網頁語言 四. HTTP 協議 1. HTTP 協議概述 2. HTTP …

信創系統資產清單采集腳本:主機名+IP+MAC 一鍵生成 CSV

原文鏈接:信創系統資產清單采集腳本:主機名IPMAC 一鍵生成 CSV Hello,大家好啊!今天給大家帶來一篇在信創終端操作系統上自動批量采集主機名、IP 和 MAC 并導出為 CSV 表格的實戰文章!本方案使用 sshpass 和 Bash 腳本…

【dify+docker安裝教程】

目錄 一、dify安裝包下載 二、運行環境配置 1、下載docker 2、安裝 2.1 新建文件夾 2.2 安裝 2.3 命令安裝 3.下載完成后需要重啟電腦,注意保存文檔!!注意保存!!注意!!(血的教…

HTML 地理定位(Geolocation)教程

HTML 地理定位(Geolocation)教程 簡介 HTML5 的 Geolocation API 允許網頁應用獲取用戶的地理位置信息。這個功能可用于提供基于位置的服務,如導航、本地搜索、天氣預報等。本教程將詳細介紹如何在網頁中實現地理定位功能。 工作原理 瀏覽器可以通過多種方式確定…

協作開發攻略:Git全面使用指南 — 引言

協作開發攻略:Git全面使用指南 — 引言 Git 是一種分布式版本控制系統,用于跟蹤文件和目錄的變更。它能幫助開發者有效管理代碼版本,支持多人協作開發,方便代碼合并與沖突解決,廣泛應用于軟件開發領域。 文中內容僅限技…

畢業設計-基于預訓練語言模型與深度神經網絡的Web入侵檢測系統

項目技術說明 基于預訓練語言模型與深度神經網絡的Web入侵檢測系統,通過預訓練模型CodeBert分詞,將分詞輸入給BiGRU的深度學習模型訓練。通過sniff函數實時捕獲http流量信息,將流量信息輸入給模型進行檢測,模型可以檢測的類別有S…

[計算機科學#4]:二進制如何塑造數字世界(0和1的力量)

【核知坊】:釋放青春想象,碼動全新視野。 我們希望使用精簡的信息傳達知識的骨架,啟發創造者開啟創造之路!!! 內容摘要: 二進制是計算機世界的基石,數學是世界的…

JUC中各種鎖機制的應用和原理及死鎖問題定位

JUC中各種鎖機制的應用和原理及死鎖問題定位 在互聯網大廠Java求職者的面試中,經常會被問到關于JUC(Java Util Concurrency)中的各種鎖機制及其應用和原理的問題。本文通過一個故事場景來展示這些問題的實際解決方案。 第一輪提問 面試官&…

配置Ubuntu18.04中的Qt Creator為中文(圖文詳解)

配置Qt Creator為中文 1、前言2、先設置Ubuntu系統語言為中文3、配置Qt Creator中文環境2.1 IBus輸入法(方法一)2.2、測試IBus輸入法2.21IBus輸入法終端中測試2.2.2IBus輸入法Qt Creator中測試 2.3、Fcitx輸入法(方法二)2.3.1安裝…

高性能服務器配置經驗指南3——安裝服務器可能遇到的問題及解決方法

文章目錄 1、重裝系統后VScode遠程連接失敗問題2、XRDP連接黑屏問題1. 打開文件2. 添加配置3. 重啟xrdp服務 3、VScode遠程免密連接問題4、Vim編輯文件時出現不同用戶沖突編輯的問題 在完成 服務器基本配置和 深度學習環境準備后,大家應該就可以正常使用服務器了&…

PyQt6基礎_QThread

目錄 前置 代碼: 運行 正常運行 QThread運行報錯 視頻 前置 1 PySide6.QtCore.QThread - Qt for Python QThread官方文檔 2 長時間任務可以放到QThread中執行,避免占用主線程導致界面卡頓無法操作 代碼: import traceback,sys fro…

Spring Boot 應用運行指南

🚀 Spring Boot 應用運行指南 ?? 使用 Maven 🔧 運行命令 $ mvn spring-boot:run? 啟動效果 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_…

jeecgboot 3.8.0 集成knife4j問題一文解決

問題描述: ? 在cloud環境下,若應用系統配置了context-path,則無法通過網關進入后臺接口管理系統 原因分析: ? 查看請求信息發現少拼接了系統的context-path,導致無法正確請求到數據。直接使用正確的地址可以正常通過網關訪問。故此確定為集成knife4j的問題。 解決辦法…

【Flutter】Flutter + Unity 插件結構與通信接口封裝

關聯文檔:【方案分享】Flutter Unity 跨平臺三維渲染架構設計全解:插件封裝、通信機制與熱更新機制—— 支持 Android/iOS/Web 的 3D 內容嵌入與遠程資源管理,助力 XR 項目落地 —— 支持 Android/iOS/Web 的 3D 內容嵌入與遠程資源管理&…

推薦 1 款 9.3k stars 的全景式開源數據分析與可視化工具

Orama 是一個開源的數據分析與可視化項目,由askorama團隊開發和維護。該項目旨在為用戶提供一套強大而易用的工具集,幫助用戶輕松處理和理解大規模數據,通過創建交互式且引人入勝的數據可視化圖表,揭示隱藏在數據背后的深層次洞察…

關于windows API 的鍵鼠可控可測

相關函數解釋 GetAsyncKeyState 是 Windows API 中的一個函數,用于判斷某個虛擬鍵是否被按下。GetAsyncKeyState(VK_ESCAPE) 專門用于檢測 Esc 鍵的狀態。下面為你詳細介紹其用法: 函數原型 cpp SHORT GetAsyncKeyState( int vKey ); 參數 vKey&a…

vs 安裝完番茄助手visual assist 后 菜單欄不顯示

vs 安裝完番茄助手visual assist 后 菜單欄不顯示 出現原因解決辦法: 出現原因 vs安裝完番茄助手后,不顯示。主要原因是之前安裝過,但是試用過期了,卸載后重新安裝然后替換破解版的dll 導致的。 解決辦法: 關閉vs軟件…

論文導讀 - 基于邊緣計算、集成學習與傳感器集群的便攜式電子鼻系統

基于邊緣計算、集成學習與傳感器集群的便攜式電子鼻系統 原論文地址:https://www.sciencedirect.com/science/article/abs/pii/S0925400522015684 引用此論文(GB/T 7714-2015): WANG T, WU Y, ZHANG Y, et al. Portable electr…