1. 程式人生 > >【DataScience學習筆記】Coursera課程《數據科學家的工具箱》 約翰霍普金斯大學——Week2 Installing the Toolbox課堂筆記

【DataScience學習筆記】Coursera課程《數據科學家的工具箱》 約翰霍普金斯大學——Week2 Installing the Toolbox課堂筆記

repos terminal gin 是把 系統 cal director down 哪些

Coursera課程《數據科學家的工具箱》 約翰霍普金斯大學

Week2 Installing the Toolbox

Command Line Interface

基本上現在的每臺計算機都帶有某種形式的命令行界面。

  • Windows: Git Bash
  • Mac/Linux: Terminal

那麽命令行界面能做什麽呢?

  • 訪問不同文件夾
  • 創建文件、文件夾和程序
  • 編輯文件、文件夾和程序
  • 運行計算機程序

CLI Commands

  • 在命令行界面,輸入pwd再按回車,可以看到當前所在的目錄路徑,也叫工作目錄的路徑。所以pwd表示的是print working directory(輸出工作路徑)。
  • clear命令可以清除當前CLI窗口中的所有東西,類似matlab的clear命令。
  • ls命令會列出當前目錄中包含的文件和文件夾,ls -a命令會輸出所有的隱藏和未隱藏的文件。
jeff$ ls
Desktop Photos Music
jeff$ ls -a
Desktop Photos Music .Trash .DS_Store
jeff$
  • cd命令代表的是change directory(目錄變更),它需要一個參數值,表示你要進入的目錄。如果使用cd卻不添加任何參數,那麽它會直接將你帶到你的主目錄。而使用cd ..命令,它會進入上一級目錄。
jeff$ cd Music/Debussy
jeff$ pwd
/Users/jeff/Music/Debussy
jeff$ cd..
jeff$ pwd
/Users/jeff/Music
jeff$ cd
jeff$ pwd
/Users/jeff
jeff$
  • mkdir命令表示的是make directory(創建目錄),它實現的功能類似於右擊創建新的文件夾。它需要一個參數來表示新建文件夾的名稱。
jeff$ mkdir Documents
jeff$ ls
Desktop Photos Music Documents
jeff$
  • touch命令會創建一個空文件。
jeff$ touch test_file
jeff$ ls
Desktop Photos Music Documents test_file
jeff$
  • cp命令代表copy(復制)。假設你有一個文件,你想復制它,你需要做的是給cp命令加兩個參數值。第一個參數值是你想復制的文件,第二個參數值是你想將它復制到的位置。
jeff$ cp test_file Documents
jeff$ cd Documents
jeff$ ls
test_file
jeff$ cd ..
jeff$

cp命令也可以用來復制文件夾的內容,不過這就必須使用-r的參數了。下面就是把Documents文件夾的內容復制到More_docs文件夾裏了。

jeff$ mkdir More_docs
jeff$ cp -r Documents More_docs
jeff$ cd More_docs
jeff$ ls
test_file
jeff$ cd ..
jeff$
  • rm代表的是remove(刪除),所以這個命令有點像delete命令。一般用來刪除不想要的文件。
jeff$ ls
Desktop Photos Music Documents More_docs test_file
jeff$ rm test_file
jeff$ ls
Desktop Photos Music Documents More_docs
jeff$

同樣地,也可以添加-r的參數來刪除整個目錄及內容。

  • mv代表的是move(移動),所以這個命令允許我們在目錄之間轉移文件。它也需要接受兩個參數,第一個參數是需要移動的文件名,第二個參數是想要移動到的目錄名稱。

我們還可以使用mv命令來重命名文件。如果移動文件的時候換個名字,實際的效果就是重命名。也就是說把第二個參數換成新文件名。

  • echo命令會輸出你提供的任意參數值。
jeff$ echo Hello World!
Hello World!
jeff$
  • date命令會輸出今天的日期時間。
jeff$ date
Mon Nov 4 20:48:03 EST 2013
jeff$

Introduction to Git

版本控制系統的作用是按時間順序記錄你對某個或某組文件所做的所有修改,方便你之後找回某個特定版本,對數據科學家來說這是最常用的工具之一。

而Git是一個免費開源的版本控制系統,它是分布式的,因此可以迅速有效地處理各種規模的項目,它是目前應用最廣泛的版本控制系統之一。它是由Linux系統的開發者創建的。

因為每一次向Git資源庫的提交都會被標上提交者的用戶名都會被標上提交者的用戶名,所以一旦安裝好了Git,就需要進行一下設置,輸入你的用戶名和電子郵箱。也就是下面這兩行代碼。

$ git config --global user.name "Your Name here"
$ git config --global user.email "[email protected]"

使用下面的命令,可以看到用戶名和郵箱一些的相關信息。

$ git --list

而使用exit就可以退出git bash了。

$ exit

Introduction to Github

GitHub是一個提供與軟件開發的網絡主機服務,它使用Git版本控制軟件作為核心驅動力,它能夠讓你在線開發項目,也能幫助你將項目提交到網上,方便其他人查閱和開發。

簡單來說,它允許用戶對本地資源庫執行推送和拉取操作。對處於Git管理下的本地資源庫,你可以將它們推送至網絡上的遠程資源庫中,或是從遠程資源庫拉取回來。

它同時提供給每位用戶一個主頁,當中列出該用戶所有的資源庫,並且這些GitHub上的資源庫也會備份在服務器上,以防你的本地庫發生意外。

不過GitHub的核心競爭力還是在於它的社交功能,它允許用戶互相關註,互相分享以及開發各自的項目,這才是GitHub強大的地方。

Creating a Github Repository

Creating a Local Copy

在GitHub的網頁上創建好了倉庫後,可以在本地創建一個備份。

  • 打開Git Bash
  • 在電腦裏創建一個目標來存儲這個倉庫的備份。
$ mkdir ~/test-repo
  • 定位到這個新目錄
$ cd ~/test-repo
  • 在當前目錄初始化一個git倉庫
$ git init
  • 將本地倉庫指向遠程服務器上的倉庫,也就是把兩個倉庫連接起來
$ git remote add origin https://github.com/yourUserNameHere/test-repo.git

Clone the Repo

要克隆其他人的倉庫的話,可以在網頁上直接Fork,也可以通過git命令進行。

$ git clone https://github.com/yourUserNameHere/repoNameHere.git

Basic Git Commands

Pushing and pulling

技術分享圖片

workspace,也就是我們本地的電腦工作區。

index,這個區域是告訴Git哪些文件需要進行版本控制。

local repository,裏面都是經過了版本控制的本地文件。

remote repository,也就是GitHub上的遠程倉庫。

Adding

所以說,我們第一件事就是要把新文件納入版本控制,也就是把它們添加到索引中,這樣Git就知道這些文件需要被檢測。

git add .

該命令會把所有新文件添加到你現在的工作目錄。

git add -u

該命令會更新那些被改了名或被刪除的文件。

git add -A

該命令則包含了上述兩個命令的作用。

Committing

一旦添加進了索引,那麽就可以把它們提交到本地資源庫了。

git commit -m "message"

其中引號內的內容,是對這條提交的註釋。

不過到這一步,還僅僅是一個本地操作。

Pushing

如果要把修改更新到GitHub,那麽就在同樣的目錄下進行下面的命令。

git push

Branches

有時我們在做一個項目,可能會有很多人同時使用一個版本,我們不希望直接編輯那個被很多人同時使用的版本,或者覺得自己對這個文件做了很多次修改可能會破壞別人的成果,那麽我們可以創建一個分支。

分支就是某個目錄的一個復制品,我們可以在上面較為獨立地進行修改。

所以創建一個新的分支的命令是

git checkout -b branchname

使用下面的命令,你可以隨時查看你在哪個分支上工作

git branch

切換回主分支則使用下面的命令

git checkout master

Pull requests

當你準備做一個pull請求,或者把你的本地改動推送到遠程資源庫時,假設你正在一個不同的分支上工作,或者你正在一個從別人那裏fork過來的倉庫上工作,你可能會向把你開發的東西合並到原始倉庫裏,或是合並至原始分支。要達到這個目的,你需要發布一個pull請求,這是GitHub特有的功能。

所以我們應該先導GitHub的網頁,進入你感興趣的分支,再選擇並進入了分支之後,再點擊compare & pull request的按鍵。它就會向擁有那些分支或資源庫的個人發送一個pull請求的提醒。擁有者是本人那自己就可以確定,是他人的話,如果他們認為你的修改是合理的,就會決定把你的請求整合到他們的倉庫。

Basic Markdown

這個其實就是我寫博客用的啦。本節課講的都很基礎,就不做筆記啦。

Installing R Packages

可以使用install.packages()命令來安裝R的程序包。

比如說安裝slidify程序包。

install.packages("slidify")

當然,也可以一行命令安裝多個程序包。

如果是不是從鏡像網CRAN下載程序包,比如說是從Bioconductor下載。

那麽可以這樣

source("http://bioconductor.org/biocLite.R")
biocLite()

然後下一次要從Bioconductor下載程序包時,就可以使用和install.packages類似的輸入了。

biocLite(c("GenomicFeatures","AnnotationDbi"))

在安裝完程序包後,還要載入程序包才能使用。這就需要library命令來告訴R要載入哪個程序包。

library(ggplot2)

註意,使用library的時候不要把程序包名放入引號裏,不然就無法正確載入。

【DataScience學習筆記】Coursera課程《數據科學家的工具箱》 約翰霍普金斯大學——Week2 Installing the Toolbox課堂筆記