linux學習:【第1篇】初識Linux及安裝

来源:https://www.cnblogs.com/hellokuangshen/archive/2019/01/11/10254980.html
-Advertisement-
Play Games

狂神聲明 : 文章均為自己的學習筆記 , 轉載一定註明出處 ; 編輯不易 , 防君子不防小人~共勉 ! linux學習:【第1篇】初識Linux及安裝 寫在前面 學習之初看了一段文章,很有感觸,所以也想把這些分享給大家,認真讀完,明確自己的方向 很多同學接觸Linux不多,對Linux平臺的開發更是 ...


狂神聲明 : 文章均為自己的學習筆記 , 轉載一定註明出處 ; 編輯不易 , 防君子不防小人~共勉 ! 

linux學習:【第1篇】初識Linux及安裝

寫在前面

學習之初看了一段文章,很有感觸,所以也想把這些分享給大家,認真讀完,明確自己的方向

很多同學接觸Linux不多,對Linux平臺的開發更是一無所知。 而現在的趨勢越來越表明,作為一個優秀的軟體開發人員,或電腦IT行業從業人員, 掌握Linux是一種很重要的謀生資源與手段。

下來我將會結合自己的幾年的個人開發經驗,及對 Linux,更是類UNIX系統,及開源軟體文化, 談談Linux的學習方法與學習中應該註意的一些事。

就如同剛纔說的,很多同學以前可能連Linux是什麼都不知道,對UNIX更是一無所知。 所以我們從最基礎的講起,對於Linux及UNIX的歷史我們不做多談,直接進入入門的學習。

Linux入門是很簡單的,問題是你是否有耐心,是否愛折騰,是否不排斥重裝一類的大修。 沒折騰可以說是學不好Linux的,鳥哥說過,要真正瞭解Linux的分區機制,對LVM使用相當熟練, 沒有20次以上的Linux裝機經驗是積累不起來的,所以一定不要怕折騰。

由於大家之前都使用Windows,所以我也儘可能照顧這些朋友。 我的推薦,如果你第一次接觸Linux,那麼首先在虛擬機中嘗試它。 我們這裡使用VM , 但不推薦大家使用盜版,看個人資金情況 . 也有其他的選擇 , 比如 : Virtual Box 也非常棒 .

如何使用虛擬機,是你的事,這個我不教你,因為很簡單,不會的話Google或Baidu都可以, 英文好的可以直接看官方文檔。 現在介紹Linux發行版的知識。

正如你所見,Linux發行版並非Linux,Linux僅是指操作系統的內核,作為科班出生的你不要讓我解釋 。

我推薦的發行版如下:

  • UBUNTU 適合純新手,追求穩定的官方支持,對系統穩定性要求較弱,喜歡最新應用,相對來說不太喜歡折騰的開發者。
  • Debian,相對UBUNTU難很多的發行版,突出特點是穩定與容易使用的包管理系統,缺點是企業支持不足,為社區開發驅動。
  • Arch,追逐時尚的開發者的首選,優點是包更新相當快,無縫升級,一次安裝基本可以一直運作下去,沒有如UBUNTU那樣的版本概念,說的專業點叫滾動升級,保持你的系統一定是最新的。缺點顯然易見,不穩定。同時安裝配置相對Debian再麻煩點。
  • Gentoo,相對Arch再難點,考驗使用者的綜合水平,從系統安裝到微調,內核編譯都親歷親為,是高手及黑客顯示自己技術手段,按需配置符合自己要求的系統的首選。
  • Slackware與Gentoo類似。
  • CentOS,社區維護的RedHat的復刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的相容性在理論上來說是最好的。如果你專註於Linux伺服器,如網路管理,架站,那麼CentOS是你的選擇。
  • LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說明,一步步,一條條命令,一個個軟體包的去構建你的Linux,完全由你自己控制,想要什麼就是什麼。如果你做出了LFS,證明你的Linux功底已經相當不錯,如果你能拿LFS文檔活學活用,再將Linux從源代碼開始移植到嵌入式系統,我敢說中國的企業你可以混的很好。

 Linux簡介

1991年誕生 , 免費 , 開源

Linux內核最初只是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。

Linux能運行主要的UNIX工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。

 虛擬機和Centos安裝

安裝方式 : 

  • 整機安裝
  • 雙系統並存安裝
  • 虛擬機安裝

我們這裡使用虛擬機 

由於安裝都是下一步下一步 , 所以這裡只給出步驟,大家自行下載和安裝.我覺得作為一個寫程式的人,如果基本的安裝都不能夠正常完成,是非常不合格的.

  1. vmware workstation 虛擬機在360軟體管家即可下載,但是是收費的.我不推薦大家使用破解.可自行購買,支持軟體工作者
  2. 下載後 激活軟體 , 然後下載我們的linux centos系統 .
  3. centos 官網下載地址:https://www.centos.org/download/
  4. 直接用ios鏡像文件去安裝即可 , 重點註意調整分區的時候 一定要有 /home這個分區
  5. 然後都是下一步, 語言啊,時區啊,用戶名,密碼等等 , 大家輸入東西的時候可以自己記錄好.真的很簡單的安裝步驟 , 認真安裝完畢,可以瞭解很多linux的內容.
  6. 安裝完成,重啟,登錄即可進入主界面
  7. 註意自己分配的磁碟大小

  如果安裝過程中有問題,可以聯繫我或者評論,看到了我都會回覆 . 也有傻瓜式安裝,就是拷貝虛擬機文件,然後在VM中直接打開就可以使用了.沒有文件的話也可以加我QQ私聊,可以發給你們,記得備註. 安裝好如下圖 : 

一定要安裝好系統 , 才能進入下一步的學習

VM虛擬機大家可以研究下以下功能:

  • 快照功能(可以恢復到保存時候的狀態)
  • 網路模式(網路連接方式)
  • 還有一些其它功能,可以自行在菜單欄中點擊查看.十分簡單

學會了以上技能 , 我們就可以開始我們的LINUX系統學習了

 Linux 系統啟動過程

linux啟動時我們會看到許多啟動信息。

Linux系統的啟動過程並不是大家想象中的那麼複雜,其過程可以分為5個階段:

  1.  內核的引導。
  2.  運行 init。
  3.  系統初始化。
  4.  建立終端 。
  5.  用戶登錄系統。

大概的流程介紹

當電腦打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬碟)來啟動。

init 進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啟動。

許多程式需要開機啟動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。Linux允許為不同的場合,分配不同的開機啟動程式,這就叫做"運行級別"(runlevel)。

在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。

rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啟動了。

init接下來會打開6個終端,以便用戶登錄系統。

當我們看到mingetty的登錄界面時,我們就可以輸入用戶名和密碼來登錄系統了。

 

Linux預設提供了六個命令視窗終端機讓我們來登錄。

預設我們登錄的就是第一個視窗,也就是tty1,這個六個視窗分別為tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來切換它們。

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

 Linux 關機

在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。

正確的關機流程為:sync > shutdown > reboot > halt

關機指令為:shutdown 

不管是重啟系統還是關閉系統,首先要運行 sync 命令,把記憶體中的數據寫到磁碟中。

sync 將數據由記憶體同步到硬碟中。

shutdown 關機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關機:

shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個命令告訴大家,電腦將在10分鐘後關機,並且會顯示在登陸用戶的當前屏幕中。

shutdown –h now 立馬關機

shutdown –h 20:25 系統會在今天20:25關機

shutdown –h +10 十分鐘後關機

shutdown –r now 系統立馬重啟

shutdown –r +10 系統十分鐘後重啟

reboot 就是重啟,等同於 shutdown –r now

halt 關閉系統,等同於shutdown –h now 和 poweroff

要取消即將進行的關機,只要輸入下麵的命令:
# shutdown -c

 Linux文件系統

ls /   :  終端輸入命令可查看

目錄

在 Linux 或 Unix 操作系統中,所有的文件和目錄都被組織成以一個根節點開始的倒置的樹狀結構。

文件系統的最頂層是由根目錄開始的,系統使用 / 來表示根目錄。在根目錄之下的既可以是目錄,也可以是文件,而每一個目錄中又可以包含子目錄文件。如此反覆就可以構成一個龐大的文件系統。

在Linux文件系統中有兩個特殊的目錄,一個用戶所在的工作目錄,也叫當前目錄,可以使用一個點 . 來表示;另一個是當前目錄的上一級目錄,也叫父目錄,可以使用兩個點 .. 來表示。

  •  . :代表當前的目錄,也可以使用 ./ 來表示;
  •  .. :代表上一層目錄,也可以 ../ 來代表。

如果一個目錄或文件名以一個點 . 開始,表示這個目錄或文件是一個隱藏目錄或文件(如:.bashrc)。即以預設方式查找時,不顯示該目錄或文件。

系統啟動 : 

  • /boot:存放的啟動Linux 時使用的內核文件,包括連接文件以及鏡像文件。
  • /etc:存放所有的系統需要的配置文件子目錄列表,更改目錄下的文件可能會導致系統不能啟動。
  • /lib:存放基本代碼庫(比如c++庫),其作用類似於Windows里的DLL文件。幾乎所有的應用程式都需要用到這些共用庫。
  • /sys: 這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。sysfs文件系統集成了下麵3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。該文件系統是內核設備樹的一個直觀反映。當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中

指令集合:

  • /bin:存放著最常用的程式和指令
  • /sbin:只有系統管理員能使用的程式和指令。

外部文件管理:

  • /dev :Device(設備)的縮寫, 存放的是Linux的外部設備。註意:在Linux中訪問設備和訪問文件的方式是相同的。
  • /media:類windows的其他設備,例如U盤、光碟機等等,識別後linux會把設備放到這個目錄下。
  • /mnt:臨時掛載別的文件系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以查看光碟機里的內容了。

臨時文件:

  • /run:是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
  • /lost+found:一般情況下為空的,系統非法關機後,這裡就存放一些文件。
  • /tmp:這個目錄是用來存放一些臨時文件的。

賬戶:

  • /root:系統管理員的用戶主目錄。
  • /home:用戶的主目錄,以用戶的賬號命名的。
  • /usr:用戶的很多應用程式和文件都放在這個目錄下,類似於windows下的program files目錄。
  • /usr/bin:系統用戶使用的應用程式與指令。
  • /usr/sbin:超級用戶使用的比較高級的管理程式和系統守護程式。
  • /usr/src:內核源代碼預設的放置目錄。

運行過程中要用:

  • /var:存放經常修改的數據,比如程式運行的日誌文件(/var/log 目錄下)。
  • /proc:管理記憶體空間!虛擬的目錄,是系統記憶體的映射,我們可以直接訪問這個目錄來,獲取系統信息。這個目錄的內容不在硬碟上而是在記憶體里,我們也可以直接修改裡面的某些文件來做修改。

擴展用的:

  • /opt:預設是空的,我們安裝額外軟體可以放在這個裡面。
  • /srv:存放服務啟動後需要提取的數據(不用伺服器就是空)

Linux操作系統結構

  • 硬體
  • Kernel(內核)
  • shell(命令解釋器)
  • 外層應用程式

擴展瞭解 : Android系統和linux內核的關係詳解

為什麼android開發有用java,看下圖的右側即可瞭解

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目前大量數據介面均採用API的方式為各類應用提供數據服務。Nancy是.net下實現webapi的一個輕量級的框架,可以快速搭建一個api服務環境,是一種快速建立api服務的不錯選擇。 本文記錄.net core環境下利用Nancy快速搭建webapi的全過程。 Ⅰ.開發環境 跨平臺的: .net ...
  • Mycat 讀寫分離: 讀寫分離,簡單地說是把對資料庫的讀和寫操作分開,以對應不同的資料庫伺服器。主資料庫提供寫操作,從資料庫提供讀操作,這樣能有效地減輕單台資料庫的壓力。主資料庫進行寫操作後,數據及時同步到所讀的資料庫,儘可能保證讀、寫資料庫的數據一致,比如MySQL的主從複製、Oracle的da ...
  • 最近使用電腦時遇到的問題: 使用spotlight進行搜索時,只要輸入字母超過一定個數(在我的Mac上是3個),spotlight就閃退了。 谷歌搜索得到大部分解決方案是在系統自帶詞典的偏好設置里取消外部字典的勾選(如https://placeless.net/2017/09/28/spotligh ...
  • 本文內容參考《kuberneters進階實戰》/馬哥的新書/推薦 部署前的準備 主機名稱解析 分散式系統環境中的多主機通信通常基於主機名稱進行,這在IP地址存在變化的可能性時為主機提供了固定的訪問入口,因此一般需要有專用的DNS服務負責解決各節點主機名。不過,考慮到此處部署的是測試集群,因此為了降低 ...
  • 今天需要再服務上部署一個.net 方面的項目;當時開啟服務的命令只能在前臺執行;使用nohub CMD &等放在後臺開啟服務都會宕機;所以搜尋了Supervisor 這個解決辦法,為服務創建守護進程。具體操作如下 1、什麼是守護進程 本篇的創建守護進程,是指發佈在Linux上 asp.net cor ...
  • 原文鏈接:http://www.oschina.net/translate/20-advanced-commands-for-middle-level-linux-users?from=20130811 ...
  • iostat(1)是在Linux系統上查看I/O性能最基本的工具,然而對於那些熟悉其它UNIX系統的人來說它是很容易被誤讀的。比如在HP-UX上 avserv(相當於Linux上的 svctm)是最重要的I/O指標,反映了硬碟設備的性能,它是指I/O請求從SCSI層發出、到I/O完成之後返回SCSI ...
  • 內核很多重要子系統均通過proc文件的方式,將自身的一些統計信息輸出,方便最終用戶查看各子系統的運行狀態,這些統計信息被稱為metrics。 直接查看metrics並不能獲取到有用的信息,一般都是由特定的應用程式(htop/sar/iostat等)每隔一段時間讀取相關metrics,併進行相應計算, ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...