眾所周知,前段時間華為在自家的Matebook上裝上了深度linux,一時之間引來大家熱議。而在近日,華為更是將絕大部分自家的筆記本電腦換上了深度linux,尤其是一些新電腦,不再有windows版本,直接上深度linux系統。而從實際銷售情況來看,據經銷商表示沒有windows的華為筆記本一樣賣得不錯,甚至還頗受歡迎,有消費者表示,就喜歡安裝了linux版本的華為筆記本。今天就帶大家來了解一下Linux系統到底是個什麼怪物。
操作系統(Operation System)
首先開片一張圖帶你瞭解什麼是操作系統:
操作系統是管理計算機硬件與軟件資源的計算機程序,同時也是計算機系統的內核與基石。操作系統需要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操作網絡與管理文件系統等基本事務。操作系統也提供一個讓用戶與系統交互的操作界面。在計算機中,操作系統是其最基本也是最為重要的基礎性系統軟件。從計算機用戶的角度來說,計算機操作系統體現在其提供的各項服務;從程序員的角度來說,其主要是指用戶登錄的界面或者接口;如果從設計人員的角度來說,就是指各式各樣模塊和單元之間的聯繫。
沒有安裝操作系統的計算機,通常被稱為裸機,如果想在裸機上運行自己所編寫的程序,就必須用機器語言書寫程序。如果計算機上安裝了操作系統,就可以在操作系統上安裝支持的高級語言環境,用高級語言開發程序。
不同應用領域的主流操作系統
- 桌面操作系統
- Windows 系列用戶群體大
- macOS 適合於開發人員
- Linux 應用軟件少
- 服務器操作系統
- Linux安全、穩定、免費佔有率高
- Windows Server付費佔有率低
- 嵌入式操作系統:機頂盒、數字電視、網絡電話、程控交換機、手機、PDA等
- Linux
- 移動設備操作系統
- iOS
- Android(基於 Linux)
由上可知,Linux在各個領域都有存在。
Linux發展史
- Unix
1969 年Ken Thompson 當時在實驗室無聊時,為了讓一臺空閒的電腦上能夠運行 "星際旅行(Space Travel)" 遊行,在 8 月份左右趁著其妻子探親的時間,用了 1 個月的時間,使用匯編寫出了 Unix 操作系統的原型。1971 年,同樣酷愛 "星際旅行(Space Travel)" 的 Dennis M.Ritchie 為了能早點兒玩上游戲,加入了 Thompson 的開發項目,合作開發 UNIX。1973 年初,Dennis M.Ritchie 在 B 語言 的基礎上最終設計出C 語言的主體,Thompson 和 Ritchie 迫不及待地開始用它完全重寫了現在大名鼎鼎的 Unix 操作系統。
- 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 發行版
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 下,打開 “計算機”,我們看到的是一個個的驅動器盤符:
每個驅動器都有自己的根目錄結構,這樣形成了多個樹並列的情形。
我們以Ubuntu為例看看,在 Linux 下,我們是看不到這些驅動器盤符,我們看到的是文件夾(目錄):
Ubuntu 沒有盤符這個概念,只有一個根目錄 /,所有文件都在它下面。
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相關的知識點。如若文中出現問題,各位大佬多多指點,互相學習。喜歡的關注一個吧!謝謝!
閱讀更多 大鬍子網絡 的文章