你知道哪個操作系統(tǒng)是世界上最受歡迎的操作系統(tǒng)嗎?是Linux!它一般運行于服務器和超級計算機上,我們日常訪問網站背后的數百萬臺服務器很有可能運行著的操作系統(tǒng)就是Linux。在本文中,我們將學習Linux是什么以及它來自何處,常用的Linux知識以及想要在這個令人興奮的平臺上暢游所需的命令。 1、什么是Linux? 就像Windows或Apple的mac OS一樣,Linux也是一個操作系統(tǒng)。操作系統(tǒng)是管理計算機中不同設備和應用程序軟件的集合。舉例來說,其中的部分軟件負責著關閉、啟動計算機,有些軟件提供與鍵盤和鼠標等設備交互界面等功能。 學習使用Linux系統(tǒng)是熟悉命令行的絕佳機會,命令行是與計算機進行通信的最明確的方式。此外,當你嘗試不同的項目時,你將會學習軟件倉庫,程序包管理,文件權限,用戶管理等更多信息。如果你有使用npm和GitHub的經驗,那么程序包管理和軟件倉庫可能是你已經熟悉的概念。 2、為什么Linux如此流行? Linux在企業(yè)計算,大數據和科學(聯想下超級計算機)世界中獨樹一幟。主要原因如下
3、Unix哲學 Linux是一個“類Unix”操作系統(tǒng),這意味著它的大部分功能派生自Unix操作系統(tǒng),并且通常遵循Unix的設計原則。理想的Unix程序是簡單,模塊化和可擴展的。Unix程序確實能很好地完成一些任務,并且被設計為可以與其他程序很好地協(xié)同工作,而不必依賴太多其他程序。該系統(tǒng)通過利用程序的協(xié)作而變得強大,而不是因為程序本身超級強大。 關于Linux,我最喜歡的一點是一切都是文件。你在終端中運行的命令和程序被抽象成文件。用來快速打開自己喜歡的應用程序的桌面圖標也被抽象成文件。系統(tǒng)檢查應用程序更新的代碼庫如何處理?當然也是寫在文件里。所有可能導致混亂的都可以用文件解決。Linux就是這么透明、富有動力和優(yōu)雅。你可以想象一下,你可以隨心設置自己的Linux安裝程序,同時擁有對系統(tǒng)的完全控制權,只要你想要的,完全甩掉你不想要的,這非??犰?! 這些原則如實地說明了Linux的靈活性。怪不得它被用于許多應用中。 4、一切都是文件,文件是一切的最終歸宿 接下來,我將向你展示Linux中的典型系統(tǒng)樹或文件系統(tǒng)層次結構。你可以在我的其他文章中(https:///emtes/learning-data-structures-trees-2p5g)閱讀有關樹狀數據結構的更多信息。如果你要在自己的Linux系統(tǒng)上進行操作,你的目錄可能跟我的不完全一樣,可能具有更多或更少的目錄。如果你想詳細了解這些目錄(文件夾),請在Linux終端中敲入man hier并運行該命令來閱讀手冊。我個人的習慣是,將喜歡的搜索引擎放在附近,以隨時查找我不知道含義的新名稱。 / 這是根目錄(文件夾),文件系統(tǒng)樹(數據結構??)的根 /bin 包含二進制文件,系統(tǒng)啟動需要的可執(zhí)行程序 /boot 包含機器啟動時所需的內核和文件 /dev包含設備節(jié)點,與連接到計算機的物理設備一起使用的指令/接口 /etc包含系統(tǒng)范圍的配置文件(發(fā)音為etsy),大型軟件包(如gtk,python,X11)一般也在此處存儲配置文件。 /home 包含系統(tǒng)用戶的目錄(每個用戶的下載,圖片等) /lib 包含啟動計算機的核心程序所必需的共享庫 /lost+found 包含由于系統(tǒng)崩潰或驅動器錯誤而放錯位置的數據 /media 包含用于USB,CD和DVD等媒體設備的安裝點 /mnt 是臨時文件系統(tǒng)的掛載點(例如用來安裝系統(tǒng)的內容) /opt包含程序的其他程序包。在我的機器中,Google Chrome和Minecraft Launcher將文件保存在此處。 /proc 包含與內核和正在運行的進程有關的文件 /tmp 包含在執(zhí)行程序時可能創(chuàng)建的臨時文件 /usr包含一個次要的只讀系統(tǒng)樹,用于與某些程序共享或用于安裝在其他Linux系統(tǒng)上。上面存在許多目錄也存在這里,并包含一些其他文件 /var 包含隨時間變化其大小發(fā)生變化的文件,例如日志和備份 如果你經常使用Linux,可能偶爾會覺得需要在某個奇怪的目錄中編輯或寫入文件。我希望當你知道這些目錄名稱的通常含義后可以對你有所幫助! 5、命令行基礎 之前我說過“與Linux機器通信的最明確的方法是命令行”,我是認真的。接下來,讓我們開始學習一些基本的命令行或終端命令,這些命令將使你開始熟悉系統(tǒng)。如果你當前使用圖形用戶界面進行開發(fā),當你熟悉命令行后,你可能會發(fā)現從終端執(zhí)行操作會更加快捷和安全。 你和終端之間有一個名為shell(可以理解為操作系統(tǒng)內核外圍的殼)的程序。Shell是解釋文本命令并將其發(fā)送到操作系統(tǒng)以執(zhí)行的程序。最常見的shell程序是Bash,大多數Linux發(fā)行版中都包含該程序。對于macOS用戶來說,Apple最近將macOS的Shell程序切換為zsh。macOS實際上也是一個類似Unix的操作系統(tǒng)。當然你也可以隨意更改shell! 6、終端命令的結構 因為文章已經論述的夠多了,所以我不會在這篇文章中分享太多命令,要注意的是學習模式更為重要。通常,終端命令遵循非常相似且可預測的結構: program_name [--optional flags] [optional arguments] 標志(flag)可以出現在參數之后,并且通??s短到一個字母和一個破折號,例如-f。標志是更改程序行為方式的選項。比如-h或者--help是常用的幫助性質的標志,程序收到該標志后會提供給你哪些標志可供使用的信息。 參數通常是文件,但也可以是字符串和數字。 你可以從系統(tǒng)中任何目錄調用程序,也可以將系統(tǒng)中任何目錄的文件用作參數。你可以這么做的原因是你可以在Linux中使用相對或絕對路徑來命名文件。相對路徑是相對于當前目錄的,你可以使用.表示當前目錄(下文會詳述)。絕對路徑從系統(tǒng)根目錄/開始,你需要指明每一級的目錄以獲取所需的文件。 7、命令索引
ls -a ~/Documents 8、文件操作
你還可以使用mv重命名文件和目錄: mv fun-letter.txt hilarious-letter.txt 其含義就是將其移動到名為新名稱的位置
你很快就會發(fā)現自己想要做更復雜的事情,因此請閱讀這些命令的更多信息并保留備忘單??。 9、日常使用的Linux 我不會說2020年將是Linux在臺式機世界的元年,但我要分享的是,有許多Linux發(fā)行版已經能夠做到開箱即用,我們可以使用非常簡單的方法進行安裝。如果你被Shell的功能所吸引,或者擔心使用其他操作系統(tǒng)帶來的隱私泄露風險,或者只是喜歡黑客攻擊等技術,那么Linux很適合你。作為開發(fā)人員,這也是一個很棒的平臺,因為它是在考慮其他開發(fā)人員的情況下制作的。Linux發(fā)行版(例如Ubuntu,Linux Mint和Fedora)可以快速啟動并運行。這些發(fā)行版背后有著龐大的社區(qū)支持,社區(qū)成員很愿意幫助他人。我最后想提醒的是,記住備份所有重要的文件! 原文:https:///emtes/so-linux-3i9k (完) 看完本文有收獲?請轉發(fā)分享給更多人 關注「Python那些事」,做全棧開發(fā)工程師 |
|