久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

數(shù)據(jù)科學家必知的21個命令

 完顏阿骨打矩陣 2017-06-07

數(shù)據(jù)科學家必知的21個命令

在這篇文章里,,我們將要一睹能快速分析文本數(shù)據(jù)(如日志,,報告等)的最方便工具,。很多時候,我們需要的數(shù)據(jù)并不存儲在我們的本機上,。所以首先,,我們要知道如何鏈接到遠程服務(wù)器上并使用它。為此,,使用SSH最為合適,。(SSH,即Secure Shell,是一個加密網(wǎng)絡(luò)協(xié)議,,它能讓你在一個不安全的網(wǎng)絡(luò)上安全地遠程登陸和使用其他網(wǎng)絡(luò)服務(wù))

在Ubuntu的終端你可以用以下幾個命令之一來登陸遠程服務(wù)器,。

$ ssh user@host$ ssh -p port host

通過密鑰鏈接:

$ ssh -i key.pem user@host

在遠程主機上執(zhí)行命令:

$ ssh -i key.pem user@host 'command'

此時,SSH 客戶端就已經(jīng)在Ubuntu的默認程序列表中了,。若沒有,,你可以在終端嘗試以下命令。

command sudo apt-get install ssh

On Windows

若你使用微軟的Windows,,你需要安裝一款開源軟件PuTTY(地址http://www./)來使用SHH,。為了使用PuTTY鏈接,需要以下幾步:

  1. 運行PuTTY并輸入你的鏈接設(shè)置:

  2. 點擊Open開啟一個SSH回話,。

  3. 當打開SSH連接時,,你應(yīng)該會看到一個終端提示讓你輸入用戶名。

數(shù)據(jù)科學家必知的21個命令

  1. a. Host Name: example.com

    b. Port: 22 (leave as default)

    c. Connection Type:SSH (leave as default)

  2. 接下來,,輸入密碼,。需要注意的是,當輸入密碼的時,,你不會看到游標移動或任何輸入字符(如**),。這是一個標準的PuTTY安全特性。點擊enter,。

  3. 現(xiàn)在你已經(jīng)可以在終端提示符下使用遠程主機了,。

  4. SSH的一個好的特性是可以創(chuàng)建secure tunnels。

On Ubuntu

1. 將遠程主機連接到本地

進入主機1.1.1.1

ssh -f -N -R 22:192.168.0.1:22 [email protected]

獲得主機192.168.0.1的權(quán)限

$ ssh localhost

操作:

--R
將遠程主機(服務(wù)器)的某個端口轉(zhuǎn)發(fā)到本地端指定機器的指定端口,。執(zhí)行遠程重定向,。當你訪問遠程主機的這個端口,就會建立一個SSH隧道,,并建立了通向這個主機端口的鏈接,。

--N
不執(zhí)行遠程腳本或命令,只在前向端口時使用。

--f
經(jīng)過遠程系統(tǒng)認證后立即進入后臺模式,。

使用ssh隧道一個非常有用的方式就是用于這種通信加密,。比如,你在一個開放的網(wǎng)絡(luò)中使用,,但是你不想別人能夠攔截你的數(shù)據(jù),。

2. 將本地機(客戶機)的某個端口轉(zhuǎn)發(fā)到遠端指定機器的指定端口

在本機1.1.1.1輸入http://localhost:80就會得到訪問遠程主機192.168.0.1的頁面。

ssh -f -N -L 80:192.168.0.1:80 [email protected]

操作:

--L
將本地機(客戶機)的某個端口轉(zhuǎn)發(fā)到遠端指定機器的指定端口,。

反向隧道用于這種情況,,你需要訪問一臺被防火墻保護或處于NAT之后的主機。

使用PuTTY的SSH隧道功能

  • 在Connection -> SSH -> Tunnels,,輸入

    Source port: 22Destination: localhost:22

  • 選擇”Dynamic”,,點擊“Add”

  • 在會話中輸入目標主機地址并選擇SSH協(xié)議。通過手動輸入已保存的會話名來保存你的選擇,。例如:“HostName with ssh tunnel on 22”,,點擊“保存”,雙擊會話名,,連接成功,。

  • 當SSH會話建立成功,你可以通過瀏覽器驗證鏈接是否成功,。

現(xiàn)在我們連上了主機,,已經(jīng)可以操作了。但是一些命令需要root權(quán)限,。如果主機允許使用root權(quán)限,,你可以在終端中執(zhí)行:

$ sudo -s

在輸入root用戶的密碼后,通過終端向遠程主機的鏈接就會被確認,,你也獲得了root權(quán)限:

數(shù)據(jù)科學家必知的21個命令

我們知道了如何鏈接到主機和獲取必要權(quán)限的所有要點,,但這還不足以用來分析主機上的數(shù)據(jù)。接下來還要學習在遠程主機上控制,、數(shù)據(jù)獲取和獲取的基本命令,。

使用文件系統(tǒng)

現(xiàn)在,我們開始學習如何使用文件系統(tǒng),。以下是相應(yīng)的命令用來:

1. 處理文件和文件夾

新建一個文件夾 dir_name

mkdir dir_name

將dir_name重命名為dir_name2

mv dir_name dir_name2

刪除文件夾/文件

rm -rf dir_name

操作:

  • -r, -R 處理所有嵌套的子目錄,。

  • -i 每一個傳輸鏈接移除之前需確認

  • -f 若錯誤是因文件不存在導致,則不以false結(jié)束,,且不詢問是否建立連接

刪除所有以file2015開頭的文件,;*表示任意字符,你可以把它用在任何表示缺失字符的地方,。

rm -rf file2015*

創(chuàng)建文件 file_name.txt

touch file_name.txt

重命名文件

mv file_name.txt file_name2.txt

2. 權(quán)限

  • ls -la 查看目錄下所有文件,、文件夾的連接情況及所有權(quán)

  • -l 關(guān)鍵的擴展輸出

執(zhí)行file文件的權(quán)限

chmod 777 file.sh

R 代表dir_name文件夾所有的文件

chmod -R 777 dir_name - set access 777 recursively

更多信息請參考: https://ru./wiki/Chmod

3. 所有者(Owner)/所屬群組(Group)

為file.txt文件設(shè)置所有者和群組

chown ubuntu:ubuntu file.txt

遞歸設(shè)置所有者和群組

chown -R ubuntu:ubuntu dir_name

4. 查看磁盤空間

顯示目前在Linux系統(tǒng)上的文件系統(tǒng)的磁盤使用情況

df -h

獲取文件夾大小

du -sh dir_name/

獲取文件夾和子目錄的大小

du -h dir_name/*

獲取文件大小

du -h filename

下面的命令可以用來獲取主機系統(tǒng)的狀態(tài):

  • 查看內(nèi)存和交換空間的使用情況

    free
  • 實時顯示系統(tǒng)中各個進程的資源占用狀況

    top/htop

現(xiàn)在我們已經(jīng)知道如何使用文件系統(tǒng)并獲得我們想要信息,。不幸的是,在大部分情況下,,這些信息都不便于人們理解,。所以要考慮能方便數(shù)據(jù)分析的工具。

分析信息的第一步,,就是找到信息。

find / var -name search _name

通過這個命令可以用*符號,,如果全名太長或者不知道,,這時用

find / var -name search_name*

這個例子查詢主機上的認證日志:

數(shù)據(jù)科學家必知的21個命令

一旦找到了文件,通常情況下我們希望查看他們的內(nèi)容,。

  • 輸出文件內(nèi)容

    cat file_name
  • 將文件1和文件2合并,,存入文件3

    cat file_name1 file_name2 > file_name3
  • 將多個文件合并存入文件的開始

    cat file_name* > file_name_end
  • 將多個文件合并到制定目錄下的制定文件

    cat some_dir*/file_name* > file_name_end

除了對文件重定向,也可以對腳本和命令重定向

  • 重定向輸出到文件(覆蓋文件)

    ./some_script.sh > /path/to/file.txt
  • 重定向輸出到文件尾部

    ./some_script.sh >> /path/to/file.txt
  • 將標準輸出和錯誤輸出重定向到/dev/null

    some command > /dev/null 2>&1

下一步保存文件內(nèi)容

/var/log/auth.log

/var/log/auth.log.1

的文件內(nèi)容保存到/home/auth.log

數(shù)據(jù)科學家必知的21個命令

從上面的輸出,,我們可以看到,,有許多冗余的信息。我們可以通過過濾來得到想要的信息,。有一個非常有用的用法grep來處理這種情況,。語法如下,

  • 將cat的output信息過濾,,這得到包含some_line的行

    cat file_name | grep some_line

Grep也可以應(yīng)用到命令和腳本中

  • 只輸出包含errors的字符串

    python run_sum_script.py | grep error

通過sshd過濾,,我們可以打印只關(guān)于ssh的認證記錄

數(shù)據(jù)科學家必知的21個命令

我們也可以跟蹤文件更改記錄。例如,,當你需要測試網(wǎng)頁時,,這將變得非常有用。所以當你查詢?nèi)罩净蛘卟榭葱碌恼J證記錄時,,你可以獲取到這樣的信息:

打印制定文件的第三方應(yīng)用的新記錄

tail -f some_web_server_log

也可以配合grep來使用

打印包含error的新記錄

tail -f some_web_server_log | grep error

接下來讓我們看看tail做了什么,。首先設(shè)置跟蹤文件

/var/log/auth.log

然后利用tail命令

-f /var/log/auth.log | grep sshd

在每個面向主機ssh的新連接建立以后,我們顯示相關(guān)信息和認證記錄,。

另一個用于分析文件的有用工具是awk. 利用它,,我們可以很容易地處理任何一個文件結(jié)構(gòu)。Awk是用于語義搜索和編輯的工具,。它可以看做成一種shell形式的awk,。運行awk程序有很多種方式。對于一個很短的程序,,很容易將其加入運行awk的命令,,如下:

awk 'program' input-file1 input-file2

更多信息,請參考手冊: http://www./software/gawk/manual/gawk.html

我們可以利用awk查看用戶何時連接或加入ssh

$ awk '/sshd/ && /pam_unix/ {print ($1,$2,$3,$8,$11)}' /var/log/auth.log

數(shù)據(jù)科學家必知的21個命令

另外一個有用的命令是sed. 該命令將文件(默認為標準輸入)復(fù)制到標準輸出,,利用包含這些命令的腳本編輯這些文件,。利用標識符-f命令可以得到sfile文件的鏡像,。如果只有-e script選項,-e標識符可以省略,。默認情況下-n標識符無效,。Script包含編輯命令,每個占一行,,格式如下:

[addr [, addr]] cmd [args]

Sed命令循環(huán)將輸入字符串轉(zhuǎn)化,,并輸出。

例子:

  • 將report.txt文件中所有的John替換為Nick

    sed 's/Nick/John/g' report.txt
  • 刪除那些包含如下信息的行:

    who | sed '2,4d'
  • 等等,。

下面介紹一下一些便于遠程主機操作的有用的命令,。Tar和zip對于文檔的操作會節(jié)省空間和流量。常用的命令如下:

對于tar:

  • 壓縮階段忽略讀取錯誤

    tar czf new-tar-file-name.tar.gz file-or-folder-to-archive
    --ignore-failed-read

    其中,,

  • c 用于從創(chuàng)建新的文檔

  • z 設(shè)置用gzip壓縮

  • f 設(shè)置文檔文件,。

  • 對于多級目錄:

    tar -czf new-tar-file-name.tar.gz file1 file2 folder1 folder2
  • x設(shè)置提取文檔

  • z設(shè)置利用gzip解壓

  • f設(shè)置文檔文件

對zip:

  • 壓縮文件命令:

    zip file-or-folder-to-archive new-zip-file-name.zip
  • 解壓文件命令:

    unzip -d new-zip-file-name.zip

其中,-d指明目標目錄

當然,,遠程主機的相關(guān)任務(wù)還需要本地電腦和遠程主機之間的文件傳輸,。下面的命令將幫助我們完成這些任務(wù):

  • 從本機下載tar

    scp -r (recursive) username@server:(remote location) (local location
  • 向遠程服務(wù)器上傳文件

    scp -r (local location) username@server:(remote location)

利用awk命令我們已經(jīng)獲得用戶連接時間和斷開時間。現(xiàn)在我們將這些保存在一個文件中,,將其壓縮成tar文件并上傳:

數(shù)據(jù)科學家必知的21個命令

總結(jié)

通過這篇文章,,我們可以看多CLI的多種用途和它是如何幫助我們進行數(shù)據(jù)科學探究的。多數(shù)讀者肯定在搜索命令行上花了不少的時間,。本文旨在幫助理解這些常用的基礎(chǔ)命令,。

每一個指令都很有用,它們的合理組合將會形成一個非常強大指令?,F(xiàn)在你可以熟練運用grep,,sed和awk等命令。它們將會給你帶來很多機會,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多