在這篇文章里,我們將要一睹能快速分析文本數(shù)據(jù)(如日志,報告等)的最方便工具。很多時候,我們需要的數(shù)據(jù)并不存儲在我們的本機上。所以首先,我們要知道如何鏈接到遠程服務器上并使用它。為此,使用SSH最為合適。(SSH,即Secure Shell,是一個加密網(wǎng)絡協(xié)議,它能讓你在一個不安全的網(wǎng)絡上安全地遠程登陸和使用其他網(wǎng)絡服務) 在Ubuntu的終端你可以用以下幾個命令之一來登陸遠程服務器。 在遠程主機上執(zhí)行命令: 此時,SSH 客戶端就已經(jīng)在Ubuntu的默認程序列表中了。若沒有,你可以在終端嘗試以下命令。 On Windows1. 運行PuTTY并輸入你的鏈接設置: a. Host Name: example.com b. Port: 22 (leave as default) c. Connection Type: SSH (leave as default) 2. 點擊Open開啟一個SSH回話。 3. 當打開SSH連接時,你應該會看到一個終端提示讓你輸入用戶名。 4. 接下來,輸入密碼。需要注意的是,當輸入密碼的時,你不會看到游標移動或任何輸入字符(如**)。這是一個標準的PuTTY安全特性。點擊enter。 5. 現(xiàn)在你已經(jīng)可以在終端提示符下使用遠程主機了。 SSH的一個好的特性是可以創(chuàng)建secure tunnels。 On Ubuntu1. 將遠程主機連接到本地 進入主機1.1.1.1 獲得主機192.168.0.1的權限 操作:
使用ssh隧道一個非常有用的方式就是用于這種通信加密。比如,你在一個開放的網(wǎng)絡中使用,但是你不想別人能夠攔截你的數(shù)據(jù)。 2. 將本地機(客戶機)的某個端口轉發(fā)到遠端指定機器的指定端口 在本機1.1.1.1輸入就會得到訪問遠程主機192.168.0.1的頁面。 操作:
反向隧道用于這種情況,你需要訪問一臺被防火墻保護或處于NAT之后的主機。 使用PuTTY的SSH隧道功能
現(xiàn)在我們連上了主機,已經(jīng)可以操作了。但是一些命令需要root權限。如果主機允許使用root權限,你可以在終端中執(zhí)行: 在輸入root用戶的密碼后,通過終端向遠程主機的鏈接就會被確認,你也獲得了root權限: 我們知道了如何鏈接到主機和獲取必要權限的所有要點,但這還不足以用來分析主機上的數(shù)據(jù)。接下來還要學習在遠程主機上控制、數(shù)據(jù)獲取和獲取的基本命令。 使用文件系統(tǒng)現(xiàn)在,我們開始學習如何使用文件系統(tǒng)。以下是相應的命令用來: 1. 處理文件和文件夾 新建一個文件夾 dir_name 將dir_name重命名為dir_name2 刪除文件夾/文件 操作:
刪除所有以file2015開頭的文件;*表示任意字符,你可以把它用在任何表示缺失字符的地方。 創(chuàng)建文件 file_name.txt 重命名文件 2. 權限
執(zhí)行file文件的權限 R 代表dir_name文件夾所有的文件 3. 所有者(Owner)/所屬群組(Group) 為file.txt文件設置所有者和群組 遞歸設置所有者和群組 4. 查看磁盤空間 顯示目前在Linux系統(tǒng)上的文件系統(tǒng)的磁盤使用情況 獲取文件夾大小 獲取文件夾和子目錄的大小 獲取文件大小 下面的命令可以用來獲取主機系統(tǒng)的狀態(tài):
現(xiàn)在我們已經(jīng)知道如何使用文件系統(tǒng)并獲得我們想要信息。不幸的是,在大部分情況下,這些信息都不便于人們理解。所以要考慮能方便數(shù)據(jù)分析的工具。 分析信息的第一步,就是找到信息。 通過這個命令可以用*符號,如果全名太長或者不知道,這時用 這個例子查詢主機上的認證日志: 一旦找到了文件,通常情況下我們希望查看他們的內(nèi)容。
除了對文件重定向,也可以對腳本和命令重定向
和的文件內(nèi)容保存到/home/auth.log 從上面的輸出,我們可以看到,有許多冗余的信息。我們可以通過過濾來得到想要的信息。有一個非常有用的用法grep來處理這種情況。語法如下:
Grep也可以應用到命令和腳本中
通過sshd過濾,我們可以打印只關于ssh的認證記錄 我們也可以跟蹤文件更改記錄。例如,當你需要測試網(wǎng)頁時,這將變得非常有用。所以當你查詢?nèi)罩净蛘卟榭葱碌恼J證記錄時,你可以獲取到這樣的信息: 打印制定文件的第三方應用的新記錄 也可以配合Grep來使用 打印包含error的新記錄 接下來讓我們看看tail做了什么。首先設置跟蹤文件 然后利用tail命令 在每個面向主機ssh的新連接建立以后,我們顯示相關信息和認證記錄。 另一個用于分析文件的有用工具是awk. 利用它,我們可以很容易地處理任何一個文件結構。Awk是用于語義搜索和編輯的工具。它可以看做成一種shell形式的awk。運行awk程序有很多種方式。對于一個很短的程序,很容易將其加入運行awk的命令,如下: 我們可以利用awk查看用戶何時連接或加入ssh 另外一個有用的命令是sed. 該命令將文件(默認為標準輸入)復制到標準輸出,利用包含這些命令的腳本編輯這些文件。利用標識符-f命令可以得到sfile文件的鏡像。如果只有-e script選項,-e標識符可以省略。默認情況下-n標識符無效。Script包含編輯命令,每個占一行,格式如下: Sed命令循環(huán)將輸入字符串轉化,并輸出。 例子:
下面介紹一下一些便于遠程主機操作的有用的命令。Tar和zip對于文檔的操作會節(jié)省空間和流量。常用的命令如下: 對于tar:
對zip:
其中,-d指明目標目錄。 當然,遠程主機的相關任務還需要本地電腦和遠程主機之間的文件傳輸。下面的命令將幫助我們完成這些任務:
利用awk命令我們已經(jīng)獲得用戶連接時間和斷開時間?,F(xiàn)在我們將這些保存在一個文件中,將其壓縮成tar文件并上傳: 總結通過這篇文章,我們可以看多CLI的多種用途和它是如何幫助我們進行數(shù)據(jù)科學探究的。多數(shù)讀者肯定在搜索命令行上花了不少的時間。本文旨在幫助理解這些常用的基礎命令。 每一個指令都很有用,它們的合理組合將會形成一個非常強大指令?,F(xiàn)在你可以熟練運用grep,sed和awk等命令。它們將會給你帶來很多機會。 我們希望了解更多讀者平時常用的指令,請在下面留言,繼續(xù)學習這些指令,提升自我。好運! |
|
來自: 昵稱16619343 > 《辦公技能》