自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何讓計(jì)算機(jī)工作環(huán)境更便捷?幾行簡(jiǎn)單的命令即可

新聞 前端
作為一個(gè)喜歡便捷環(huán)境的人,我總是喜歡改進(jìn)我的工作方式,將日常的枯燥過(guò)程變得「自動(dòng)化」。在這篇文章中,我將描述如何使環(huán)境更便于使用。

 作為長(zhǎng)期從事數(shù)據(jù)科學(xué)相關(guān)工作的人,作者很喜歡便捷的工作環(huán)境,并為此探索出來(lái)一些小技巧。通過(guò)這些技巧,可以將日常一些重復(fù)性或者枯燥的簡(jiǎn)單工作變得「自動(dòng)化」,使計(jì)算機(jī)的工作環(huán)境更加友好。

過(guò)去幾年里,我一直從事數(shù)據(jù)科學(xué)/研究項(xiàng)目,本科就做了一些與這個(gè)行業(yè)相關(guān)的工作,現(xiàn)在是研究生在讀,也在做這方面的研究。作為一個(gè)喜歡便捷環(huán)境的人,我總是喜歡改進(jìn)我的工作方式,將日常的枯燥過(guò)程變得「自動(dòng)化」。在這篇文章中,我將描述如何使環(huán)境更便于使用。

我使用的設(shè)置包含以下組件:

  • 個(gè)人電腦(Linux 發(fā)行版)
  • 網(wǎng)關(guān)
  • 遠(yuǎn)程服務(wù)器

[[263579]]

由于我研究的項(xiàng)目計(jì)算量巨大,筆記本電腦無(wú)法負(fù)擔(dān)。因此,我需要這些機(jī)器輔助我。出于安全原因,遠(yuǎn)程服務(wù)器無(wú)法直接訪問,這意味著它們只能由網(wǎng)關(guān)機(jī)器訪問。

連接服務(wù)器的基本方法是首先將 ssh 連接到網(wǎng)關(guān),然后將 ssh 連接到服務(wù)器,每次連接時(shí)都需要輸入用戶名和密碼。輸入一遍又一遍是相當(dāng)麻煩的?,F(xiàn)在我將介紹如何使用單個(gè)命令輕松連接到兩個(gè)服務(wù)器。

充分利用 SSH

關(guān)于 SSH

SSH是一種安全協(xié)議,允許用戶控制他們連接的服務(wù)器。使用 ssh 連接到遠(yuǎn)程服務(wù)器的常用方法是使用以下命令:ssh user@host,然后獲得一個(gè)密碼提示符。在這篇文章中,我不會(huì)詳細(xì)介紹 ssh 的工作原理,只是利用 ssh 基本的使用知識(shí)。

無(wú)需密碼即可連接

首先創(chuàng)建一個(gè)認(rèn)證密鑰,并將公共密鑰傳輸?shù)轿覀兿脒B接的服務(wù)器。我們從設(shè)置連接開始——從筆記本電腦到網(wǎng)關(guān)。

我們將使用一個(gè)名為 ssh-copy 的小軟件。它為我們完成所有工作,我們需要做的就是在終端中鍵入以下命令:

  1. ssh-keygen -t rsa # create an SSH key, if needed. 
  2. ssh-copy-id -i ~/.ssh/id_rsa.pub user@host 
  • Linux 用戶應(yīng)該已經(jīng)安裝了這個(gè)軟件。
  • Mac 用戶需要通過(guò)命令 brew install ssh-copy-id 安裝 ssh-copy 工具。

ssh-copy-id 命令將 SSH 密鑰復(fù)制到服務(wù)器,如果需要,創(chuàng)建相應(yīng)的 文件夾,將公鑰作為授權(quán)密鑰添加到服務(wù)器的.ssh / authorized_keys 文件中。

如果由于某種原因這不起作用,只需復(fù)制粘貼以下命令,這基本就是 ssh-copy 的作用:

打開終端并運(yùn)行以下步驟:

  • 生成一對(duì)認(rèn)證密鑰。系統(tǒng)將要求你輸入任意密碼。ssh-keygen -t rsa
  • 在遠(yuǎn)程計(jì)算機(jī)上創(chuàng)建一個(gè) 文件夾(如果已存在則無(wú)需創(chuàng)建)ssh user@host mkdir -p .ssh
  • 將之前生成的公鑰添加到遠(yuǎn)程計(jì)算機(jī)。cat .ssh/id_rsa.pub | ssh user@host 'cat >> .ssh/authorized_keys'

OK!從現(xiàn)在開始,你無(wú)需密碼即可輕松訪問服務(wù)器。

  1. ssh user@host 

要從網(wǎng)關(guān)連接服務(wù)器,遵循相同的步驟(如果尚未配置)。

方便的 SSH

現(xiàn)在要做的是進(jìn)階版。與每次 ssh 都使用完整主機(jī)名+用戶名不同,我們可以使它更方便——無(wú)論是網(wǎng)關(guān)或代理機(jī)器。

在本地計(jì)算機(jī)的~/.ssh/config 文件下插入以下內(nèi)容:

  1. Host gate 
  2.  HostName [gateway.name] 
  3.  User [user] 
  4. Host work1 
  5.  HostName [machine.name] 
  6.  user [user] 
  7.  ProxyCommand ssh gate nc %h %p 

還有一個(gè)有用的配置參數(shù)名為「IdentityFile」,它在處理多個(gè)公鑰/私鑰對(duì)時(shí)非常有用。假設(shè)你除了個(gè)人賬戶外,有一個(gè) github 的工作帳戶。那你就需要另一個(gè)公鑰-私鑰對(duì),但你還是需要一個(gè)方便的接口。以下是在配置文件中進(jìn)行設(shè)置的示例:

  1. Host company-github 
  2.  User git 
  3.  HostName company.github.com 
  4.  IdentityFile ~/.ssh/github.comp.key 

每個(gè) ssh 連接將使用匹配的密鑰進(jìn)行連接。

為了使每個(gè)服務(wù)器輕松連接,我們可以以類似的方式添加所有遠(yuǎn)程服務(wù)器。

現(xiàn)在,只需要簡(jiǎn)單的命令 ssh gate 或 ssh work1,就可以直接連接到網(wǎng)關(guān)或 work1 服務(wù)器,無(wú)需任何密碼或其它連接。

隧道(Tunneling)

現(xiàn)在我們可以方便地訪問遠(yuǎn)程服務(wù)器,然后可以使用隧道來(lái)實(shí)現(xiàn)對(duì)計(jì)算機(jī)中服務(wù)器資源的無(wú)縫訪問。這樣,我們可以在遠(yuǎn)程機(jī)器(具有大量?jī)?nèi)存)上運(yùn)行 Jupyter notebook,并在瀏覽器上與它進(jìn)行交互。它可以實(shí)現(xiàn)如下功能:

  • 關(guān)閉計(jì)算機(jī),并保持 notebook 在服務(wù)器上運(yùn)行。
  • 從另一臺(tái)計(jì)算機(jī)也可以打開和訪問同一 notebook。
  • 保持模型可在遠(yuǎn)程服務(wù)器上加載。即加載一次即可訪問(或直到管理員重啟)。

例如,如果我們想在端口 9100 上打開服務(wù)器 work1 上的 notebook,可以使用以下命令打開到端口 9200 上的計(jì)算機(jī)的隧道:

  1. *ssh* *-N* *-f* *-L* *localhost*:9200:localhost:9100 *work1* 

有趣的隧道

現(xiàn)在你已經(jīng)了解如何設(shè)置隧道,你可以一直使用這個(gè)技巧(至少我一直這樣做)?,F(xiàn)在以 Jupyter notebook 和 Tensorboard 為例做一個(gè)演示。Tensorboard 服務(wù)器不會(huì)消耗很多資源,但 notebooks 有時(shí)會(huì)。由于不同的項(xiàng)目使用的機(jī)器不同(為平衡負(fù)載),因此會(huì)使用不同的隧道,所以我有時(shí)不記得哪個(gè)端口用于什么應(yīng)用,更不用說(shuō)在哪個(gè)服務(wù)器上了。

最終,我們轉(zhuǎn)向自己的機(jī)器,控制的變量是端口號(hào),而這些數(shù)字很快會(huì)被遺忘。我最近找到了一部分解決方案。我沒有在 localhost:xxxx 上打開應(yīng)用程序,而是生成了新的域名,這些域名只轉(zhuǎn)發(fā)到 localhost 主機(jī)。這雖然沒有解決端口問題,但現(xiàn)在每個(gè)應(yīng)用程序都有自己的名稱,沒有混淆,在使用一兩次后,現(xiàn)代瀏覽器就會(huì)記住端口,所以你只需記住你為每個(gè)程序起的名稱即可。

要進(jìn)行域轉(zhuǎn)發(fā),請(qǐng)執(zhí)行以下操作:

  • 使用 sudo [vim|nano|...] /etc/hosts 打開/etc/hosts 文件
  • 你應(yīng)該在某處(可能在頂部)發(fā)現(xiàn)這一行:127.0.0.1 localhost
  • 復(fù)制該行,使用你為應(yīng)用程序取的名字替換 localhost 的名稱(例如,tensorboard)。

現(xiàn)在你可以在 tensorboard:8100 上找到 tensorboard 應(yīng)用。

但端口問題仍然沒有解決,歡迎提出建議。

更多便捷技巧

保持 SSH 打開

如果你已經(jīng)使用隧道一段時(shí)間,你可能發(fā)現(xiàn)如果閑置幾分鐘后,隧道往往在不工作時(shí)都會(huì)斷開連接。如果你同時(shí)在處理好幾件事,而沒有一直使用隧道,那這個(gè)重復(fù)連接的工作真的很煩人。通過(guò)在 ssh 配置文件中添加一行簡(jiǎn)單語(yǔ)句,這個(gè)問題就可以很容易解決。這樣,每隔 x 秒,一個(gè)'喚醒(sign-of-life)'信號(hào)會(huì)被發(fā)送到服務(wù)器上。在本地計(jì)算機(jī)上,編輯 /etc/ssh/ssh_config 文件(帶有 sudo)并在 Host *行后輸入以下行:

  1. ServerAliveInterval 120 

這適用于所有 ssh 連接。如果不想所有的 ssh 都保持連接,則可以通過(guò)給~/.ssh/config 配置文件添加相同的行來(lái)僅連接特定的 ssh。配置如下:

  1. Host gate 
  2.  HostName gateway.name 
  3.  User user 
  4.  IdentityFile ~/.ssh/gateway 
  5.  ServerAliveInterval 120 

Autossh

現(xiàn)在,隧道在不工作時(shí)也不會(huì)關(guān)閉,事情看起來(lái)很順利。但當(dāng)你準(zhǔn)備睡覺(人總要休息?。r(shí),你就會(huì)暫停/休眠你的電腦(不是關(guān)機(jī))。第二天,你想重新開始工作,你在本地計(jì)算機(jī)上準(zhǔn)備打開隧道時(shí)發(fā)現(xiàn),...... 連接已關(guān)閉,你需要重新打開它。這也讓人心累不是嗎?幸運(yùn)的是,這也有解決方案!

關(guān)于 autossh:http://www.harding.motd.ca/autossh/

這個(gè)絕妙的程序?qū)⒈WC你的 ssh 連接一直開啟,除非關(guān)閉計(jì)算機(jī)。只要沒有關(guān)機(jī),ssh 就一直是連接著的。例如,你可以將計(jì)算機(jī)置于休眠狀態(tài),斷開 Wifi 等連接,但一旦重新聯(lián)機(jī),此程序?qū)⒅匦聻槟氵B接 ssh。

通過(guò)運(yùn)行以下行來(lái)安裝 autossh:

  1. sudo apt-*get* install autossh 

現(xiàn)在運(yùn)行以下命令:

  1. *autossh* *-M* 20000 *-N* *-f* *-L* *localhost*:9201:localhost:9100 *work1* 

這與我們之前看到的命令非常相似,除了命令名稱(duh)和 -M 20000 標(biāo)志(這是顯示器所在的端口)。

IntelliJ 集成

在 Pycharm 專業(yè)版中,有一個(gè)很好的功能,即可以連接遠(yuǎn)程服務(wù)器并直接在上面工作。你可以在自己的計(jì)算機(jī)上編寫代碼,在遠(yuǎn)程服務(wù)器上運(yùn)行代碼,或者在遠(yuǎn)程服務(wù)器上完全同步整個(gè)存儲(chǔ)庫(kù)。

interlliJ 界面會(huì)不時(shí)變化,但主題不變。我將介紹特定版本 - V. 2018.1.4 的步驟。

  • 進(jìn)入 Pycharm 的設(shè)置界面
  • 構(gòu)建,執(zhí)行,部署 - >部署
  • 單擊綠色+,創(chuàng)建新的部署設(shè)置
  • 輸入相關(guān)信息(名稱、主機(jī)、端口(通常為 22)、根路徑和用戶名)

現(xiàn)在右鍵點(diǎn)擊項(xiàng)目文件夾,在部署鍵下,你可以上傳、下載項(xiàng)目或使其與遠(yuǎn)程位置同步(可以設(shè)置快捷鍵)。

使用遠(yuǎn)程解釋器:

  • 進(jìn)入項(xiàng)目設(shè)置欄
  • 在項(xiàng)目解釋器標(biāo)記下(在項(xiàng)目解釋器選項(xiàng)附近,有一個(gè)小齒輪按鈕)。單擊它,然后點(diǎn)擊「添加」。
  • 在左側(cè)菜單中,單擊 SSH 解釋器
  • 單擊「現(xiàn)有服務(wù)器配置」選項(xiàng),使用我們之前創(chuàng)建的部署配置。
  • 選擇遠(yuǎn)程解釋器(例如 anaconda / python)
  • ... 全部完成

 

責(zé)任編輯:張燕妮 來(lái)源: 機(jī)器之心
相關(guān)推薦

2009-07-10 11:42:36

配置JDK工作環(huán)境如何配置JDK

2019-07-05 10:45:04

思科魏松斌人工智能

2014-09-11 12:18:13

移動(dòng)惠普云計(jì)算

2022-12-29 10:31:24

數(shù)字孿生3D模型庫(kù)

2011-10-31 17:56:11

互聯(lián)網(wǎng)

2013-02-21 10:03:57

Win8云存儲(chǔ)Skydrive

2022-12-14 10:35:03

2012-01-17 10:34:14

程序員

2016-02-22 10:24:12

程序員工作環(huán)境

2019-10-22 09:00:00

架構(gòu)圖像檢索視覺搜索

2017-10-17 11:04:24

2011-10-11 09:33:11

計(jì)算機(jī)工作

2011-01-14 10:33:59

2011-01-14 10:38:49

Linux配置桌面特效

2011-01-14 10:45:02

2011-01-21 10:28:06

2011-09-15 14:32:01

2015-09-11 10:45:55

服務(wù)器華為

2012-02-13 09:31:44

傲游手機(jī)瀏覽器

2022-09-14 12:25:17

IT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)