華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

眾所周知,前段時間華為在自家的Matebook上裝上了深度linux,一時之間引來大家熱議。而在近日,華為更是將絕大部分自家的筆記本電腦換上了深度linux,尤其是一些新電腦,不再有windows版本,直接上深度linux系統。而從實際銷售情況來看,據經銷商表示沒有windows的華為筆記本一樣賣得不錯,甚至還頗受歡迎,有消費者表示,就喜歡安裝了linux版本的華為筆記本。今天就帶大家來了解一下Linux系統到底是個什麼怪物。

操作系統(Operation System)

首先開片一張圖帶你瞭解什麼是操作系統:

華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

操作系統是管理計算機硬件與軟件資源的計算機程序,同時也是計算機系統的內核與基石。操作系統需要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操作網絡與管理文件系統等基本事務。操作系統也提供一個讓用戶與系統交互的操作界面。在計算機中,操作系統是其最基本也是最為重要的基礎性系統軟件。從計算機用戶的角度來說,計算機操作系統體現在其提供的各項服務;從程序員的角度來說,其主要是指用戶登錄的界面或者接口;如果從設計人員的角度來說,就是指各式各樣模塊和單元之間的聯繫。

沒有安裝操作系統的計算機,通常被稱為裸機,如果想在裸機上運行自己所編寫的程序,就必須用機器語言書寫程序。如果計算機上安裝了操作系統,就可以在操作系統上安裝支持的高級語言環境,用高級語言開發程序。

不同應用領域的主流操作系統

  • 桌面操作系統
  1. Windows 系列用戶群體大
  2. macOS 適合於開發人員
  3. Linux 應用軟件少
  • 服務器操作系統
  1. Linux安全、穩定、免費佔有率高
  2. Windows Server付費佔有率低
  • 嵌入式操作系統:機頂盒、數字電視、網絡電話、程控交換機、手機、PDA等
  1. Linux
  • 移動設備操作系統
  1. iOS
  2. Android(基於 Linux)

由上可知,Linux在各個領域都有存在。

華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

2020操作系統佔比圖

Linux發展史

  • Unix

1969 年Ken Thompson 當時在實驗室無聊時,為了讓一臺空閒的電腦上能夠運行 "星際旅行(Space Travel)" 遊行,在 8 月份左右趁著其妻子探親的時間,用了 1 個月的時間,使用匯編寫出了 Unix 操作系統的原型。1971 年,同樣酷愛 "星際旅行(Space Travel)" 的 Dennis M.Ritchie 為了能早點兒玩上游戲,加入了 Thompson 的開發項目,合作開發 UNIX。1973 年初,Dennis M.RitchieB 語言 的基礎上最終設計出C 語言的主體,ThompsonRitchie 迫不及待地開始用它完全重寫了現在大名鼎鼎的 Unix 操作系統。

華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

肯·湯普遜(左)和丹尼斯·裡奇(右)

  • Minix

因為 AT&T(通用電氣) 的政策改變,在 Version 7 Unix 推出之後,發佈新的使用條款,將 UNIX 源代碼私有化,在大學中不能再使用 UNIX 源代碼。Andrew S. Tanenbaum(塔能鮑姆) 教授為了能 在課堂上教授學生操作系統運作的細節,決定在不使用任何 AT&T 的源代碼前提下,自行開發與 UNIX 兼容的操作系統,以避免版權上的爭議。以 小型 UNIX(mini-UNIX)之意,將它稱為 MINIX。

  • Linux

1991 年 林納斯(Linus) 就讀於赫爾辛基大學期間,對 Unix 產生濃厚興趣,嘗試著在Minix 上做一些開發工作。林納斯 利用 GNU 的 bash 當做開發環境,gcc 當做編譯工具,編寫了 Linux 內核,一開始 Linux 並不能兼容 Unix,即 Unix 上跑的應用程序不能在 Linux 上跑,即應用程序與內核之間的接口不一致,一開始 Linux 只適用於 386,後來經過全世界的網友的幫助,最終能夠兼容多種硬件。


華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

林納斯(Linus)

  • Linux 發行版

Linux 發行版(也被叫做 GNU/Linux 發行版)通常包含了包括桌面環境、辦公套件、媒體播放器、數據庫等應用軟件。常見的發行版本如下:

Elementary OS:號稱是世界上最“漂亮”的發行版,設計精巧,精美出色的桌面,環境預裝的應用程序不多;

Linux Mint:對於Linux新手來說,這是一個很好的選擇,適用於從Windows/Mac系統切換的用戶,完整的多媒體支持,真正實現開箱即用,大量定製選項;

Arch Linux:吸引經驗豐富的用戶,而不是初學者,巨大的定製潛力,Arch Linux提供了一種更加友好的Linux體驗,不適合容易放棄的人;

Ubuntu:Ubuntu是很好的選擇,安全穩定的LTS版本,Lubuntu spin非常適合低功耗的個人電腦;

Tails:一個專為有隱私意識的人準備的發行版,強調安全性和隱私性,仍然維護用戶友好的UI,功能比較基本;

CentOS:Red Hat Linux企業版的分支,專為穩定性而設計,非常適合服務器使用,不太適合日常桌面使用;

當然還有其他的很多發行版本,比如國產比較火爆的深度Deepin操作系統,Redhat,Fedora,openSUSE,Debian,Manjaro,Mageia等等。

Linux文件和目錄

我們通過Windows來對比兩者文件系統的區別:

在 Windows 下,打開 “計算機”,我們看到的是一個個的驅動器盤符:

華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

每個驅動器都有自己的根目錄結構,這樣形成了多個樹並列的情形。

我們以Ubuntu為例看看,在 Linux 下,我們是看不到這些驅動器盤符,我們看到的是文件夾(目錄):

華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

Ubuntu 沒有盤符這個概念,只有一個根目錄 /,所有文件都在它下面。


華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

Linux 主要目錄速查表

  • /:根目錄,一般根目錄下只存放目錄,在 linux 下有且只有一個根目錄,所有的東西都是從這裡開始當在終端裡輸入 /home,其實是在告訴電腦,先從 /(根目錄)開始,再進入到 home 目錄
  • /bin、/usr/bin:可執行二進制文件的目錄,如常用的命令 ls、tar、mv、cat 等
  • /boot:放置 linux 系統啟動時用到的一些文件,如 linux 的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub
  • /dev:存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備,常用的是掛載光驅mount /dev/cdrom /mnt
  • /etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件
  • /home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下~ 表示當前用戶的家目錄
  • /lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助
  • /lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置於此目錄下
  • /mnt: /media:光盤默認掛載點,通常光盤掛載於 /mnt/cdrom 下,也不一定,可以選擇任意位置進行掛載
  • /opt:給主機額外安裝軟件所擺放的目錄
  • /proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由於數據都存放於內存中,所以不佔用磁盤空間
  • /root:系統管理員root的家目錄
  • /sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root 使用的命令,一般用戶只能"查看"而不能設置和使用
  • /tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下
  • /srv:服務啟動之後需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內
  • /usr:應用程序存放目錄。/usr/bin:存放應用程序,/usr/share:存放共享數據,/usr/lib:存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件,/usr/local:存放軟件升級包,/usr/share/doc:系統說明文件存放目錄,/usr/share/man:程序說明文件存放目錄
  • /var:放置系統執行過程中經常變化的文件,/var/log:隨時更改的日誌文件,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務啟動後,其 PID 存放在該目錄下。
  • 常用 Linux 命令的基本使用

    很多人可能在電視或電影中看到過類似的場景,黑客面對一個黑色的屏幕,上面飄著密密麻麻的字符,梆梆一頓敲,就完成了竊取資料的任務。

    華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

    Linux 剛出世時沒有什麼圖形界面,所有的操作全靠命令完成,就如同電視裡的黑客那樣,充滿了神秘與晦澀。近幾年來,儘管 Linux 發展得非常迅速,圖形界面越來越友好,但是在真正的開發過程中,Linux 命令行的應用還是佔有非常重要的席位,而且許多Linux功能在命令行界面要比圖形化界面下運行的快。可以說不會命令,就不算會 Linux

    最常用的基礎命令:

    華為都開始用Linux了,你還不來了解下全球第三大桌面操作系統?

    • 在敲出 文件/目錄/命令 的前幾個字母之後,按下 tab 鍵如果輸入的沒有歧義,系統會自動補全如果還存在其他 文件/目錄/命令,再按一下 tab 鍵,系統會提示可能存在的命令
    • 按 上/下 光標鍵可以在曾經使用過的命令之間來回切換
    • 如果想要退出選擇,並且不想執行當前選中的命令,可以按 ctrl + c

    終端命令格式:

    command [-options] [parameter]

    說明:

    • command:命令名,相應功能的英文單詞或單詞的縮寫
    • [-options]:選項,可用來對命令進行控制,也可以省略
    • parameter:傳給命令的參數,可以是 零個一個 或者 多個

    其他常用命令:

    1. 啟動終端: ctr+alt+t2. 終端字體放大: ctr+shift+'+',終端字體縮小: ctr+'-'3. ls: 查看當前目錄下的文件信息4. pwd: 查看目錄所在的路徑5. touch: 創建文件6. mkdir: 創建文件夾7. rmdir: 刪除文件夾,提示:只能是空文件夾8. rm: 默認刪除的是文件,如果刪除文件夾需要加上-r選項,-r:以遞歸的方式把文件夾下的所有文件信息刪除掉9. cd:切換目錄    9.1 cd 目錄名 : 切換到指定目錄    9.2 cd .: 切換到當前目錄    9.3 cd ..: 切換到上一級目錄    9.4 cd ~: 切換到當前用戶的目錄    9.5 cd: 等價與cd ~ 切換到當前用戶的目錄    9.6 cd -: 切換到上一次目錄10. 絕對路徑: 從根目錄算起的路徑叫做絕對路徑,比如: /home/python11. 相對路徑: 從當前目錄算起的路徑叫做相對路徑, 比如: ./AAA ../BBB12. 路徑的使用總結: 如果離當前目錄近使用相對路徑,如果離根目錄近使用絕對路徑,如果進入的是中間目錄建議使用絕對路徑13. 自動補全: tab鍵14. cp: 拷貝    14.1 cp 文件名 路徑: 把文件拷貝到指定路徑    14.2 cp 路徑/文件名 路徑: 把指定路徑的文件拷貝到指定路徑    14.3 cp 文件名 路徑/新的文件名 : 先把文件拷貝到指定目錄然後再重命名    14.4 cp 文件夾 路徑 -r: 拷貝文件夾 -r:以遞歸的方式把文件夾下的所有文件拷貝過去15. mv: 移動(剪切)    15.1 mv 文件名 路徑: 把文件移動到指定路徑    15.2 mv 路徑/文件名 路徑: 把指定路徑的文件移動到指定路徑    15.3 mv 文件名 新的文件名: 重命名    15.4 mv 文件夾 路徑: 把文件夾移動到指定目錄,不需要加上-r16. tree: 以目錄樹方式顯示當前文件夾信息    16.1 tree / : 以目錄樹方式顯示指定路徑的文件信息17. 命令的格式    17.1 命令名 選項 參數, 提示:有些命令選項可以放到參數的後面,但是:scp 選項必須要放到命令名的後面18. ls 選項    21.1 -l: 以列表的方式取顯示    21.2 -a: 顯示隱藏文件    21.3 -h: 顯示文件大小的單位    21.4 ll: ls -al 顯示隱藏文件並且以列表方式顯示 , l->ls19. mkdir 選項    22.1 -p: 把依賴文件夾提取創建好,比如: mkdir 123/456/789 -p20. rm選項    23.1 -r: 以遞歸的方式刪除文件夾裡面的所有內容    23.2 -i: 顯示刪除的時候提醒信息    23.3 -v: 顯示刪除後的描述信息    23.4 -d: 刪除空目錄    23.5 -f: 如果文件或者目錄存在則刪除,否則就不刪除也不會報錯21. cp選項    24.1 -i:拷貝文件的時候如果指定目錄有該文件需要顯示提醒信息    24.2 -v:顯示拷貝文件的路徑描述    24.3 -r:以遞歸的方式拷貝文件夾裡面的所有內容22. mv選項    25.1 -i:移動文件顯示提醒信息    25.2 -v:顯示移動後的路徑描述23. 重定向(>,>>): 在終端顯示的內容信息重寫規定方向,保存到指定文件裡面,以後查看數據是文件查看就可以了    23.1 > :如果文件不存在,那麼先創建,否則會先把原有文件的數據清空然後再寫入    23.2 >> : 在原有數據的基礎上進行追加    23.3 總結: ls, cat, tree都可以使用重定向24. gedit:文本編輯工具,可讀可編輯25. cat: 內容在終端顯示,不能進行編輯,提示:適合查看小型文件,大型文件使用分屏方式顯示(more)26. more:分屏顯示    29.1 f:表示下一頁    29.2 空格:表示下一頁    29.3 回車: 表示下一行    29.4 b:表示上一頁    29.5 q:退出27. 文件合併cat 1.txt 2.txt > 3.txt28. 管道: 可以理解成是一個容器,存放在終端顯示的內容28.1 總結: ls /bin | more , cat, tree, ls都是可以結合管道使用完成分屏顯示的29. 鏈接ln    29.1 -s軟連接:可以理解成快捷方式,把原文件刪除掉通過軟鏈接無法打文件的數據, 提示:創建軟連接不會對硬鏈接數加1    29.2  硬連接: 同一個數據有多個文件名在使用,某個文件刪除掉,還可以通過其它文件名訪問這個文件的數據, 提示:創建硬鏈接硬鏈接數會加1    29.3 提示:如果創建的軟鏈接沒有和原文件在同一個目錄裡面,那麼需要使用絕對路徑創建軟連接30. grep: 根據指定的內容在文件中進行查找    30.1 grep "a" 8.txt : 根據指定內容在文件中進行查找    30.2 -n:行號, -i:忽略大小寫 -v: 取反    30.3 總結: ^,$ [], . 支持的正則表達式31. find:在指定目錄查找對應的文件    31.1 find . -name ".txt": 在當前目錄查找後綴是.txt的文件, -name根據文件名查找    31.3 find . -perm 666: 在當前目錄查找文件權限是可讀可寫的, -perm根據權限查找    31.3 總結: ?[] 支持的通配符32. ls:支持的通配符: _,? , [], []:表示匹配任意列舉中的一個字符33. 通配符: ? _ [],起到了模糊查詢的作用34. tar: 打包、壓縮、解包、解壓縮    34.1 打包 tar -cvf test.tar *.txt, -c: 表示要打包, -v:顯示文件打到包裡面 -f:表示文檔名稱,提示-f必須放到所有選項的後面    34.2 解包 tar -xvf test.tar , -x:表示解包    34.3 打包及壓縮合並的命令:tar -zcvf test.tar.gz *.txt    34.4 解壓縮及解包合併的命令:tar -zxvf test.tar.gz ->得到對應的文件    34.5 指定解壓縮的路徑 tar -zxvf test.tar.gz -C ../BBB, -C:指定解壓縮後的路徑    34.6 tar -jcvf test.bz2 *.txt -> test.bz2    34.7 tar -jxvf test.bz2 -> 得到對應的文件    34.8 -C: 指定解壓縮的路徑: tar -jxvf test.bz2 -C ../BBB35. zip的壓縮及解壓縮    35.1 zip test *.txt -> test.zip ,提示:壓縮包的後綴不需要指定默認是.zip    35.2 unzip test.zip -> 得到是壓縮包裡面的文件    35.3 unzip -d ./123 test.zip -> 解壓到指定路徑 , -d:表示解壓的路徑36. chmod:修改權限    36.1 -r(4):可讀 -w(2):可寫 -x(1):可執行    36.2 u:當前用戶 g: 同組用戶 o: 其它用戶 a:所有用戶    36.3 +:添加權限, -:撤銷權限 , = : 賦值權限    36.4 chmod 000 1.txt : 全部沒有權限    36.5 chmod a=- 1.txt chmod a= 1.txt : 全部沒有權限    36.6 chmod 777 1.txt chmod a=rwx 1.txt : 都權限,可讀可讀可執行    36.7 chmod 664 1.txt chmod u=rw,g=rw,o=r 1.txt 設置不同用戶不同權限37. cp選項37.1-a: 保留文件原有權限,-a包含-r,也就是使用-a也可以拷貝文件夾38. which : 查看命令的路徑39. sudo -s: 切換到管理員賬號40. passwd:修改密碼41. who :當前那些用戶登陸42. whoami:當前電腦登陸的用戶是誰43. exit:退出44. ssh: 遠程登陸 44.1 ssh : 可以遠程登陸服務端可以通過vim修改文件45. scp: 遠程拷貝    45.1 scp 1.txt [email protected]:/home/python/Desktop ,把本地文件拷貝到服務器端    45.2 scp -r test [email protected]:/home/python/Desktop,把本地文件夾拷貝到服務器端    45.3 scp [email protected]:/home/python/Desktop/1.txt . , 把服務端的文件拷貝的本地    46.4 scp -r [email protected]:/home/python/Desktop/test . , 把服務端的文件夾拷貝的本地46. sudo apt-get install 安裝包名 :安裝軟件    sudo apt-get remove 安裝包名:卸載軟件    sudo apt-get update :更新源碼    sudo dpkg -I 安裝包文件:安裝已下載的文件    sudo dpkg -r xxSoftName :卸載47. vim的使用47.1 命令模式Esc, 編輯模式i, 末行模式:, 命令模式是編輯模式和末行模式的中轉站48. vim常用命令    48.1. i: 進入編輯模式    48.2. yy: 複製光標所在行 複製多行: 數字+yy    48.3. p: 粘貼, 粘貼多次: 數字+p    48.4. dd(刪除、剪切), 剪切或者刪除多行:數字+dd    48.5. V: 選中多行    48.6. 上下左右: k:上, j:下, l:右 ,h:左 等同於方向鍵    48.7. x: 從前往後刪除一個字母    48.8. X: 從後往前刪除一個字母    48.9. u: 撤銷    48.10. shift + >: 往右縮進    48.11. shift +  
    <: .:="" g:="" gg:="" shift="" :="" n:="" s:="" ctr="" :wq="" :x:="" sync="" shutdown="" now="" who="" am="" i="" w="" uname="" cat="" lsb_release="" rpm="" grep="" kernel-devel="" yum="" install="" date="" clock="" bios="" cal="" clear="" ifconfig="" ping="" www.baidu.com="" id="" sort="" uniq="" wc="" cores="" top="" vmstat="" free="" df="" iostat="" sar="" ps="" aux="" firefox="" kill="" systemctl=""/>

    至此Linux基本介紹及使用已經講解完畢了,大家想學習的可以下載一個上面適合自己的系統用VMware虛擬機安裝嘗試一下。

    作者簡介:Python菜鳥工程師,將在接下來的一段時間內與大家分享一些與Python相關的知識點。如若文中出現問題,各位大佬多多指點,互相學習。喜歡的關注一個吧!謝謝!


    分享到:


    相關文章: