作為一個合格的數據挖掘從業者,除了要精通算法,圍繞算法周圍的各項技術也應該有足夠的儲備,這樣才可以更好的將算法落地。其中linux系統的使用,在我看來就是不可或缺的技能之一。
雖然Linux系統的整體運維優化也是一門很深的學問,但是我們的重點是數據挖掘的話,只需要了解日常運維和使用就可以滿足工作中95%的需求。
下面會分為三部分對Linux進行介紹:
Linux系統簡介
數據挖掘方面的優勢
Linux的常用代碼和操作
1.1. Linux系統簡介Linux是一款開源的作業系統,通過無數牛x閃閃程式設計師夜以繼日的禿頭迭代,具備了諸如高效、安全等一系列特徵,進而成為了無數大廠背後伺服器、超級計算機的標配系統。
Linux分為內核版和各種發行版,內核版就是只有最核心那部分代碼的版本,而發行版則是在內核版基礎上添加各種驅動和功能,我們常見和常用的就是各種發行版系統。
其中主流的是Red Hat Linux、centos、ubuntu、Debian等,其中Red Hat Linux主要面向企業,通過付費服務提供更加穩定的支持,而我們下面使用的則是驅動和交互比較強悍,也是目前應用最廣的ubuntu 系統。
1.2. 數據挖掘方面的優勢於個人經驗來說,掌握Linux系統使用有以下幾個優勢:
各種依賴配置簡便,諸如ubuntu帶有apt安裝功能,直接一行代碼即可安裝需要的環境依賴。同時,由於是官方源下載,可以大大保證依賴的穩定性,相比windows及MacOS無疑大大提升生產力。
企業內伺服器通常都是Linux系統,而我們模型最終通常也會在生產系統上線,所以掌握Linux基本操作無疑會大大提升工作效率。
因為蘋果公司和nvidia決裂,導致新的蘋果電腦和系統並不支持nvidia的顯卡,而深度學習則是很依賴顯卡加速,所以如果你想在深度學習有所研究的話,朋友,拋棄你的蘋果電腦和MacOS吧~
因為個人通常使用Ubuntu命令行進行各種操作,所以可以很好的把相應操作代碼進行記錄,方便後續的回溯和重現~同時,ubuntu也提供桌面式的操作方法,相比另外兩款系統,基本上可以說出那句:你行的我也行,你不行的我還是行~
當然,並不是說ubuntu或者說linux可以吊打另外兩款系統,畢竟多年的操作習慣在部分工作中還是很有優勢的。但是光從數據挖掘寫python代碼的角度,不得不說ubuntu還是更能提高生產效率。
1.3. Linux的常用代碼和操作通過上面的白話,相信各位已經對Linux有所認識,下文將針對Linux的發行版ubuntu進行常用代碼和操作的介紹。
1.3.1. 安裝Ubuntu可以和windows或者macos一樣進行單系統或者多系統的安裝,但是那樣會花費超級多的時間找到合適的安裝方案。
這個時候,我們就可以祭出我們上一篇文章介紹的神器Docker,僅需一行代碼就可以下載Ubuntu系統,再一行代碼,就可以進入到Ubuntu系統中暢遊~
(不了解Docker的朋友可以關注我們的公眾號,在我們上一篇文章有入門介紹)
步驟1:拉取最新ubuntu鏡像
docker pull ubuntu
步驟2: 啟動ubuntu鏡像
docker run -it --name ubuntu ubuntu:latest env LANG=C.UTF-8 /bin/bash
通過上述代碼,我們已經成功進入ubuntu系統的容器
註:關於退出容器、再進入容器、刪除容器可以參考之前的docker入門文章。
1.3.2. 常用命令1.3.2.1. 目錄處理進入目錄
cd 路徑
進入根目錄
cd /
進入用戶目錄
cd ~
建立文件夾
mkdir 文件夾名
顯示當前所在文件夾路徑
pwd
列出當前文件夾下文件&文件夾
ls
ll
複製文件或目錄
cp 源文件/文件夾 目標路徑
常用選項:
移動文件或目錄
mv 源文件/文件夾 目標路徑
常用選項:
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,才會升級 (update)
刪除文件/文件夾
rm 目標文件/文件夾
常用選項:
1.3.2.2. 遠程操作如果你是Linux系統或者蘋果系統的用戶,當需要遠程連接Linux(Ubuntu)時,有兩個常用命令。(比如你租用雲伺服器,將會是很常用的語句)
ssh遠程連接Linux(Ubuntu)
ssh root@xx.xx.xx.xx
其中root是你的登陸用戶名,xx.xx.xx.xx是你遠程Linux系統(ubuntu)的IP
本地文件複製到遠程伺服器/遠程伺服器文件複製到本地
當我們遠程伺服器沒有開啟ftp功能時,可以通過以下兩條命令進行文件傳輸。
從伺服器複製文件/文件夾到本地:
scp -r root@xx.xx.xx.xx:/data/ /home/
root@xx.xx.xx.xx同ssh登陸,是遠程用戶名和密碼
-r代表拷貝整個文件夾,如果只是拷貝單個文件可以不加這個選項
/data是我們要複製的文件/文件夾,/home是本地文件夾。
把本地文件/文件夾複製到遠程伺服器: 對於本地文件/文件夾複製到遠程伺服器,只是上一步語句後面來兩個參數的顛倒。
scp /home/test.txt root@xx.xx.xx.xx:/data/
上面就是Linux系統及操作的簡單入門介紹,就像我們常用的windows或者MacOS一樣,常用的操作其實很簡單,對於目標是數據挖掘的我們來說,掌握上述代碼,差不多就可以滿足日常90%的工作需求。當然,上述代碼也只能幫助你入門和簡單操作,如果有時間,還是可以在翻看相關書籍或者資料對Linux進行更深入的研究。
參考資料 Runoob linux教程(https://www.runoob.com/linux/linux-tutorial.html)