2013年9月17日 星期二

Linux & VIM操作篇(1)

進入到資科系,免不了需要動動手寫一下程式啦~

程式這種東西嘛,只用看的和聽的是不夠的,

所以要勞駕您動動你的手指以及頭腦來寫些程式出來囉~

做為這一系列文章的第一篇,

在此要先來介紹一下我們接下來寫程式會用到的環境---Solaris系統以及VIM

Section 1. Connection

由於系上的ghost主機是擺在機房裡,我們不可能跑到真的主機前面去打code,

所以我們必須利用一些小工具來讓我們即便不在ghost主機前面也可以打程式

1.1 Tools --- Pietty

Download link

下載完解壓縮到桌面後我們就可以直接點開執行囉

1.2 URL

ghost主機的網址是 ghost.cs.nccu.edu.tw

把這串網址打進Pietty裡再按連線就好囉,如下圖所示

 
只有第一次的時候我們才要點左邊的TELNET,之後就都點SSH囉(網址列下面那兩項)

1.3 Log in

看到以下畫面就可以輸入你的ID登入了,

第一次登入的時候會要你設定你的密碼,

就輸入你想要的密碼就可以了


1.4 Modification

現在請由上方工具列之選項→字型→調整字型至16pt以上,

一般至少要16號字寫程式才不傷眼力,

為了您的健康,請務必把字體調大一點

Section 2. First setting

這裡就請各位把這些指令打進去囉

passwd (1.3節已設過密碼的就不必再打這個)
elm (你會在下面看到"May I..."的問題,全部按Enter即可,最後結束後按q離開)
cp ~g9803/.profile . 
cp ~g9803/.vimrc .  
cp ~g9803/.bashrc .  
exit

這之後就會關閉連線重新登入,第一次的設定到此完成,

只有第一次要做這些事,之後再登入就不用了

Section 3. Commands

這裡是一些指令範例,讓你們熟悉一下各種指令

3.1 Directories related - cd, mkdir

cd (change directory) eg:
cd /usr/local/class
到達cd後面接著的地方(這裡是/usr/local/class)

mkdir (make directory) eg:
mkdir folder 
建立一個名為folder的資料夾

3.2 File related - ls, mv, cp, rm

ls (list) eg.
ls -lha 列出檔案(包含隱藏檔及詳細資訊)

mv (move) eg.
mv a.c b.c   重新命名a.c → b.c


cp (copy) eg.
cp -r /tmp .   將tmp資料夾下的東西全複製來現在的目錄


rm (remove) eg.
rm *.c    刪掉所有以.c結尾的檔


3.3 Editor related - vim, emacs...

之後就是用VIM這個指令來寫作業囉eg.
vim hw1.c


Section 4. VIM

4.1 Open VIM

兩種開啟方式:
vim

開啟空白的VIM
vim filename 
會開啟或建立這個檔案,若檔案有內容則應如下圖所示
filename 請替換成你的檔案名


4.2 Normal mode

接下來要講一下VIM的三種模式 --- normal, insert, command mode

我們一開啟VIM都會先進入一般模式底下,

而模式間的切換關係如下圖:

 

現在只先介紹現在需要用到的功能鍵,剩下的會在VIM操作篇(2)續有敍述

ZZ - 存檔和離開(連按兩個大Z,注意大小寫是有差的喔)

4.3 Insert mode

這個模式之下可以讓你輸入文字,在這模式基本上功能和記事本差不多

用上下左右鍵移動並可在任意處輸入文字

在這裡我們按小i就可以進入輸入模式了,

打完程式請按ESC回到一般模式(見4.2的圖)

然後就可以存檔囉:)

4.4 Command mode

在這裡我們只會先用到以冒號做為起始的命令,

在這個模式之下我們可以對VIM做一些命令,

以下是一些現在需要知道的基本命令:

:w --- write, 存檔

:q --- quit, 離開,但當你還沒存檔要離開時VIM會給你警告

:wq --- write and quit, 存檔後離開,和一般模式的ZZ一樣

:make --- make program, 執行make功能(之後會提到 

Section 5. Assignment 0

5.1 Download materials

註: 以下斜體字的部份請依各位及各次作業不同而改變

要做作業首先必須先把作業的資料複製下來,

在這之前我們必須先做個CP1的資料夾用來放我們的作業,不然會很亂

登入後在家目錄底下我們輸入
mkdir cp1

即可設立一名為cp1的資料夾(也可以是其它名稱沒關係)
cd cp1

到cp1的資料夾裡
cp -r /usr/local/class/cp1/assign/assign0 .

複製作業的資料下來,assign的數字每次要換,另外最後有一個小點別忘囉:)
cd assign0 

進去assign0的資料夾裡要寫作業了

5.2 Editting

vim hw0.c

開啟hw0.c,開始寫作(?) 你應該會看到以下畫面:


接著按i進去輸入模式,如下圖,視窗左下會有insert字樣:



把游標移到第6行處,

按backspace把ID:後面的數字消掉如下圖:


輸入自己的學號,輸入完如下圖


請記得是打你的學號,不是我的!!!

然後按ESC回到命令模式,接著按:w存檔




按Enter後會顯示已存入:


最下面看到 "hw0.c ...written" 就是成功存入囉

5.3 Make

這有兩種做法

第一種是在VIM的命令模式打入
:make

在之後的練習中會講到如果有compile error的話會怎麼樣,
但在這裡先不會遇到,留待第2篇時再述


按Enter確定後會出現以下畫面


這樣就是成功了,按兩下Enter回到VIM,接著輸入
:q


就會回到一開始登入的畫面了

第二種做法是先按:q離開VIM,再輸入
make

然後就完成了:)

那值得一提的是,雖然第二個方法比較簡短,

但當事後遇到compile error時就會比第一個方法麻煩了,

可以先熟悉一下第一種作法

5.4 Execution

要執行做好的檔案,請輸入
./hw0

隨每次作業不同也要跟著換數字喔

然後看到如下圖就表示成功了


記得確認學號正確!

5.5 Submit

輸入以下指令即可
/usr/local/class/cp1/bin/submit 0

然後等五個steps跑完就可以去WM3上看是否上傳成功囉

5.6 Shortcut

如果覺得每次要打 /usr/local/class/cp1...這樣很麻煩的話,有個比較簡便的方法

cp1資料夾下:
ln -s /usr/local/class/assign/ hw

ln -s /usr/local/class/cp1/bin/submit sub

之後5.1節複製的地方就只要打
cp -r hw/assign0 .

5.5節繳交只要打
../sub 0

注意到了5.5節的時候你已經是在assign0資料夾裡面了

還有hwsub都可以換成你喜歡的名稱

沒有留言:

張貼留言