윈도우에서 리눅스 명령어를 사용하고 싶을때는 아래 포스팅에서 소개한 GOW 를 사용하거나~ Cygwin  등을 사용했었습니다. 



그런데 GOW 를 쓰다 보니 없는 명령어들이 좀 되더군요. 

그래서 최근에는 GnuWin32 를 사용합니다.

오늘은 GnuWin32 설치 방법에 대해 소개해 드리려 합니다.

     1. 일단 주소에서 GnuWin32 를 다운로드 합니다. 


다운로드 받은 GetGnuWin32-0.6.3.exe 파일을 실행하면 GetGnuWin32 폴더가 생성 되고~

     2. 해당 폴더 안에 들어가서 download.bat 파일을 더블클릭해서 실행 시킵니다.
         이건 시간이 좀 오래 걸리더군요. 그냥 명령어 실행 시켜 놓고 다른일 하시다 보면 끝납니다. 1~2시간 걸린거 같네요.

     3. 다음으로 아래 명령어를 통해 설치하고 싶은 폴더에 설치 합니다.

install D:\GnuWin32


     4. 마지막으로 path 환경 변수에 D:\GnuWin32 폴더를 등록하면 어떤 폴더에서던 GnuWin32 명령어를 사용 할 수 있습니다. 


정리하면 GnuWin32 다운로드 하고 압축을 푼 후에 설치 명령어는 아래와 같습니다.

cd /d .\GetGnuWin32
download.bat
install.bat  D:\GnuWin32
setx path "D:\GnuWin32\bin";%path% /m


오늘은 Cygwin 에서 notepad++ 을 실행하는 방법에 대해 소개하려 합니다.

 

Cygwin 에서 윈도우 메모장을 실행 할 때는 아래 그림과 같이 notepad <파일명>을 통해 실행 할 수 있습니다.

 

파일이 없는 경우에는 아래 그림과 같이 새 파일을 만드시겠습니까? 라는 메시지가 뜹니다.

 

저는 windows 에서 notepad++ 을 많이 사용하는데 notepad++ 을 위 예와 같이 사용하기 위해서는 약간의 작업이 필요 합니다.

 

~/.bashrc 파일에 다음과 같이 함수 하나를 만들어 줍니다. 아래 함수에서 붉은 색 글씨 부분이 notepad++ 의 실행 파일 경로 입니다.

 

저는 아래 함수에서 보이는 바와 같이 D:\utility\npp.6.6.9.bin\notepad++.exe 이 notepad++ 실행 파일 경로 입니다.

 

Cygwin 에서는 C:\ 드라이브는 /cygdrive/c, D:\ 드라이브는 /cygdrive/d 로 표현되므로 아래와 같이 경로를 적어 줘야 합니다.

 

npp () {

/cygdrive/d/utility/npp.6.6.9.bin/notepad++.exe -multiInst -nosession -noPlugin $(cygpath -w -- "$@")

}

 

또한 위 함수에서 -multiInst -nosession –noPlugin 와 같은 옵션들은 notepad++ 의 옵션입니다.

 

~/.bashrc 에 위와 같이 함수를 하나 만든 후에~ 저장하고 닫습니다. 그리고 Cygwin 을 다시 시작하거나 source ~/.bashrc를 실행 합니다.

 

이제 아래와 같이 타이핑 하면 Cygwin 에서 notepad++을 사용 할 수 있습니다.

 

npp <파일명>

Example) npp b.txt

 

Cygwin 에서 다은 에디터를 사용하고 싶을 때도 위와 마찬가지 방법으로 하면 되겠죠.

 

참고 사이트: https://jadendreamer.wordpress.com/2013/11/01/cygwin-tutorial-use-external-editor-notepad/


리눅스 데스크톱 사용시 요즘은 GUI 을 많이 사용하곤 하지만

 

그래도~ 리눅스는 터미널이죠~

 

보통의 경우 리눅스 터미널은 bash shell 을 사용하곤 하는데~ bash 에서 cd(change directory) 명령을 통해 디렉터리를 자주 왔다리 갔다리 하는데… 이게 참… 불편합니다.

 

그래서 좀 찾아보니 역시 어딘가에 답은 있더군요. 아래 글을 보니 commacd 라는 툴에 대해 소개 하더군요.

 

http://shyiko.com/2014/10/10/commacd/

 

말 그래도 ,( comma) 을 사용하여 directory 를 이동하는 건데~ 이게 써보니 무지하게 획기적이더군요.

 

commacd의 공식 사이트는 아래 주소와 같습니다.

 

https://github.com/shyiko/commacd

 

저는 지금 윈도우에서 사용 중이라 Cygwin 에서 진행을 해 봤습니다. 물론 리눅스에서도 똑같이 하면 됩니다.

 

위 페이지에서 Installation 부분을 보시면 아시겠지만 일단 curl 이 설치가 되어 있어야 합니다.

 

https://github.com/shyiko/commacd#installation

 

curl 이 설치되어 있는 분은 위 설명 대로 아래 명령어를 통해 설치하면 되고~

 

curl https://raw.githubusercontent.com/shyiko/commacd/master/commacd.bash -o ~/.commacd.bash && \

echo "source ~/.commacd.bash" >> ~/.bashrc

 

저처럼 아래와 같이 Cygwin에서 wget을 사용하여 설치 해도 됩니다. 주의할 점은 아래와 같이 –O 을 써야 한다는 겁니다.

 

wget https://raw.githubusercontent.com/shyiko/commacd/master/commacd.bash -O ~/.commacd.bash && \

echo "source ~/.commacd.bash" >> ~/.bashrc

 

 

vim ~/.bashrc 명령을 통해 .bashrc 파일을 확인 하면 아래 그림과 같이 source ~/.commacd.bash 라는 명령어가 추가 된 것을 확인 할 수 있습니다.

다음으로 bashrc 파일을 실행 합니다.

source ~/.bashrc

 

이제 commacd 을 사용하는 일만 남았군요.

 

Usage 을 보시면 간단한 사용 방법을 아실 텐데요~

 

https://github.com/shyiko/commacd#usage

 

주 사용방법은 , ,, ,,, 을 사용하는 겁니다.

 

, 는 하위 폴더로 가는 거고~ ,, 는 상위 폴더~ ,,, 는 상하위로 가는 명령어입니다.

 

, d 라는 명령어를 통해 현재 폴더 하위의 d 가 들어가 있는 폴더의 목록을 보여 주면 숫자로 선택 하면 됩니다.

 

, c 을 하면 c 로 시작하는 폴더가 나오고~ , p 라고 하면 p 로 시작하는 폴더가 나오죠~

 

그 하위로 갈 때도 일일이 path 을 다 치지 않고~ /usr/local/Cellar 폴더 가려면 , /u/l/ce 와 같이 일부만 쳐도 들어가더군요.

 

현재 저는 /cygdrive/c/Users/Administrator/Downloads 폴더에 있습니다. 현재 폴더의 상위 폴더인 /cygdrive/c 로 가기 위해서는

 

,, c 라고만 하면 상위에서 c 가 들어있는 최 하위 폴더로 가게 됩니다.

 

다음으로 ,,, 명령을 실행 해 볼 건데요. ,,, 명령을 통해 최상위 폴더 아래의 임의의 폴더로 접근 할 수 있습니다.

 

현재 저는 다음과 같이 /cygdrive/c/Program Files/AhnLab 폴더에 잇습니다.

 

그런데 /cygdrive/c/Windows 폴더에 접근 하고 싶다고 해보죠~

 

그럼 아래 그림과 같이 간단하게 ,,, c/win 라고만 타이핑 하면 해당 패턴을 가진 폴더가 나오고~ 아래 그림과 같이 0을 선택하여 해당 폴더로 이동 할 수 있습니다.

 

commacd 아~ 너무 편하고 좋네요. cd 의 혁명인 것 같습니다. 앞으로는 commacd 없으면 못 살 거 같네요.


참고주소 : http://wiki.octave.org/Octave_for_Microsoft_Windows

 

Windows 에서는 octave GUI 환경이 정상적으로 동작하지 않아서 불편했는데

 

Octave 3.8 버전에서는 GUI 가 제대로 돌아가는 군요.

 

Octave 도 MATLAB 부럽지 않게 좋아 졌네요.

 

OCTAVE 3.8 windows 버전은 아래 주소에서 다운로드 가능 합니다.

 

http://mxeoctave.osuv.de/

 

official build 는 아니라고 하네요.

 

위 주소에서 아래 그림과 같이 다운로드 하시면 됩니다.



 

저는 portable 버전을 다운로드 했습니다. Install 하고 싶으면 install 버전을 다운로드 하시기 바랍니다.

 

다운로드 후에 octave-3.8.2-1-portable.7z 파일을 압축 해제 하시면 됩니다.

 

저는 현재 windows 7 64 비트인데요. 위 파일을 압축해제 해도 정상적으로 동작하지가 않더군요. GUI 는 뜨는데 그림이 제대로 그려지지 않았습니다.

 

그래서 찾아보니 아래 주소의 파일을 다운로드해서 압축을 해제한 폴더(octave-3.8.2) 에 위치 시키고~ octave-gui.bat 을 실행 시키면 됩니다.

 

http://mxeoctave.osuv.de/octave-gui.bat

 

실행 시켜 보니 아래 그림과 같이 OCTAVE GUI 환경이 나오는 것을 확인 할 수 있습니다.

 

마치 MATLAB 과 유사하게 Workspace, Command History, Command Window 등으로 구성되어 있더군요.

 

아래 그림과 같이 Command Window 에 입력 해보니~

 

정상적으로 그림이 나오네요.

 

종전에는 Cygwin에서 octave 를 주로 사용하곤 했는데, 앞으로는 octave 3.8 버전을 자주 사용하게 될 것 같네요.


  1. sjb 2014.09.22 21:12

    아무래도 정식 버전 나올 때까지 기다려야 겠어요. 전 다운 받으면 자동으로 설치될 줄 알았는데, 다운받은 거 아무리 찾아봐도 installer 는 없네요.

    • 남성 2014.09.23 00:15 신고

      제 포스팅의 설명은 portable 버전에 대한 설명입니다. Installer 버전은 위에 있는 Installer 에 있는 download 를 클릭해서 다운로드 받으시면 됩니다. 저는 Installer 버전도 설치 잘 되네요.

  2. male 2014.09.28 15:42

    좋은 정보 정말 감사합니다! 도움이 많이 되었습니다

    • 남성 2014.09.28 17:00 신고

      도움되었다니 다행이네요. 방문해 주셔서 감사합니다. ^^

  3. oct 2014.11.04 17:50

    제가 octave install 하여 설치하고 experimental line인가를 켰는데 error: C:/Users/?μ??? Invalid argument
    이렇게 뜨면서 command창에 그래프를 입력하려고해도 키가 안먹네요 무슨 방법 없을까요? ㅜ

  4. 비싼매틀랩 2015.03.02 22:07

    설치방법 찾다가 설명 잘보고 갑니다
    그런데 포터블이랑 인스톨해서 쓰는거랑 성능같은건 차이가 없는거죠??
    간소화버전인지.. 뭐가 크게 다른가요??

  5. 비싼매틀랩 2015.03.02 22:44

    하다보니까..저장이 안되는게 다른건가요?? 매틀랩도 별로 안써봐서 왕초본데 command window 내용이 저장이 안되는것같은데..혹시 그게 다른점인지요

    • 남성 2015.03.04 20:26 신고

      성능이나 기능이 차이가 잇는건 아닙니다. 그냥 설치를 해서 사용해야 하느냐 아니면 그냥 폴더 압축만 풀어서 사용하면 되느냐의 차이 입니다.

윈도우에서 GCC 를 사용하고자 하는 경우 MinGW 를 사용하거나 Cygwin 을 설치하거나 또는 Virtual box 에 리눅스를 설치해서 사용할 수 있다.

 

아래 포스팅에서 TDM-GCC 설치 방법에 대해 소개한 적이 있는데~

  

2013/06/06 - [유틸] - MinGW 64bits 설치


오늘은 MinGW 뿐만 아니라 boost 라이브러리를 사용하고 싶었다.

 

현재 내 PC 환경은 윈도우 7 64비트이다.

 

찾아보니 아래 주소의 MinGW Distro 가 나왔고, x64-native, GCC 4.8.2, Boost 1.55.0 라는 특징을 가지고 있었다.

 

http://nuwen.net/mingw.html

 

또한 C++11 을 default 로 설정해 놓았다고 한다.

 

위 주소에 들어가서 아래 그림의 링크를 클릭해서 다운로드 받는다. 위에 링크된 mingw-11.6.exe 은 git 이 없는 버전이고

 

아래에 있는 mingw-11.6-without-git.exe 은 말 그대로 git 은 빠진 버전이다.

 

나는 git 은 따로 설치를 했었기에 아래에 있는 mingw-11.6-without-git.exe 를 다운로드 받았다.

 

설치는 굉장히 간단한데~ 다운로드 받은 mingw-11.6-without-git.exe 파일을 더블 클릭하고 아래 그림과 같이 path 를 잡아 주면 된다.

 

위 그림과 같이 최상위 폴더를 잡아주면 C:\ 하위에 MinGW 라는 폴더가 생긴다. 그래서 나는 C:\MinGW 에 설치했다.

 

윈도우에서 Codeblocks IDE 에서 boost library 를 사용하여 소문자를 대문자로 변환해 보았다.

 

소문자를 대문자로 변환하는 과정에서 아래 주소에서 확인한 boost 라이브러리의 to_upper() 함수를 사용했다.

 

http://stackoverflow.com/questions/735204/convert-a-string-in-c-to-upper-case

 

Codeblock 셋팅시에 Compiler 를 다음과 같이 방금 설치한 MinGW Distro 에 맞게 설정 해준다.

 

Compiler 의 search directory 역시 아래 그림과 같이 mingw 의 include path(C:\MinGW\include)를 추가해준다.

 

아래와 같이 코딩하고~

 

#include <iostream>

#include <boost\algorithm\string.hpp>

#include <string>

 

using namespace std;

 

int main()

{

 

string str = "Hello World";

 

string newstr = boost::to_upper_copy<string>(str); // 대문자로 변경후 새로운 변수에 저장

 

cout << "before upper : " << str << ",\t to upper : " << newstr << endl;

 

boost::to_upper(str); // // 대문자로 변경후 현재 변수에 저장

 

cout << "Str to upper : " << str << endl;

 

return 0;

}

 

F9 를 눌러서 Build And Run 을 수행해 보면 다음과 같이 정상적으로 동작 한다.



오늘 포스팅에서는 Linux sort 명령어의 사용 방법에 대해 알아보려 합니다.

 

아래 포스팅에서 텍스트 파일의 내용을 unique 하게 sorting 하는 방법에 대해 설명 드린적이 있는데~

 

아래 포스팅 에서는 Gow의 uniq 명령과 윈도우의 sort명령을 사용했었습니다.


2014/05/14 - [컴퓨터일반] - windows console 에서 텍스트 파일 내용 unique 하게 정렬하기

 

하지만 Linux 의 sort 명령어에는 굉장히 편리하게도 unique 옵션이 있더군요.

 

간단한 예로 다음과 같은 테스트 쿼리를 예로 들어보죠~

 

아래 insert 구문은 아래 포스팅에서 소개 드렸던 generateda를 사용하여 만들어진 테스트 데이터 입니다.


2014/06/17 - [유틸] - Database 테스트 데이터 생성 사이트 generatedata


INSERT INTO myTable (NAME,PHONE,NUMBER) VALUES ("Ahmed","1-156-444-1052",5);

INSERT INTO myTable (NAME,PHONE,NUMBER) VALUES ("Nissim","1-786-558-9774",2);

INSERT INTO myTable (NAME,PHONE,NUMBER) VALUES ("Herman","1-831-439-1058",4);

INSERT INTO myTable (NAME,PHONE,NUMBER) VALUES ("Nissim","1-144-592-7170",1);

INSERT INTO myTable (NAME,PHONE,NUMBER) VALUES ("Gannon","1-863-622-1551",4);

INSERT INTO myTable (NAME,PHONE,NUMBER) VALUES ("Samuel","1-963-369-2263",5);

 

generateda에서 랜덤하게 만들어진 데이터 이므로 중복이 있을수도 있겠죠~ 위에 예로 든 데이터에서는 Nissim 이라는 이름이 중복입니다.

 

위 예처럼 몇 줄 안 되는 경우에는 일일이 확인해서 중복되는 데이터들을 지워 줄 수 있겠지만,중복되는 경우가 많다면 일일이 사람이 지워주기는 힘들겠죠~

 

Linux 의 sort 명령어를 몰랐다면 Excel 과 같은 프로그램등을 이용해서 정렬해서 중복되는 데이터들을 제거 했겠지만 대단히 불편했을 것 같네요~

 

Sort 명령어의 몇 가지 옵션에 대해 알아보겠습니다. 저는 현재 windows 환경이라 Cygwin 에서 linux sort 함수를 사용하도록 하겠습니다.

 

-u : unique 옵션

-t : 뒤에 구분자를 넣어 줌

-k : 뒤에 몇 번째 열을 기준으로 sort 할 것인지를 넣어줌, 쉼표로 구분하여 시작열, 끝열을 넣어줌, 시작열만 지정할 경우 시작열부터 줄의 끝까지임

 

 

 

위 옵션을 바탕으로 위에서 소개한 쿼리 예에 대해 이름에 따른 정렬을 시켜 보죠~ 위 쿼리는 query.txt 파일에 적혀 있습니다.

 

위 쿼리 문자열을 보면 쌍따옴표(") 를 기준으로 2번째 열이 바로 이름 컬럼이라는 것을 알 수있습니다. 따라서 구분자로는 –t 옵션에 쌍따옴표를 넣어주고~ –k 옵션에는 2를 넣어 줍니다. 하지만 그냥 2를 넣어주면 2 부터~ 끝까지 이기 때문에~ 정상적으로 unique 하게 sort 가 안됩니다. 딱 2번째 컬럼 즉 이름 부분만 선택하기 위해 2,2 라고 넣어줘야 합니다.

 

sort –u –k 2,2 –t '"' query.txt > uniq.txt

 

 

위 명령을 실행해 보겠습니다. 다음과 같이 중복된 이름이었던 4번째 행이 사라진 것을 확인 할 수 있습니다.

 

Octave statistics package 를 살펴 보다가 괜찬은 함수를 하나 발견했다.

 

바로 runlength 라는 함수인데~ runlength 함수는 아래 주소에서도 볼 수 있는 Run-length encoding 을 수행하는 함수이다.

 

http://en.wikipedia.org/wiki/Run_length

 

위 주소에도 설명되어 있듯이, Run-length encoding 방식은 가장 간단한 데이터 압축 방식으로서 반복되는 sequence 들을 반복 횟수로 표현하는 방식이다.

 

Runlength 함수는 다음과 같이 사용된다.

 

현재 윈도우 7 64 비트 Cygwin octave 에서 실험해 봤다.

 

위에도 기재했듯이 runlength 함수는 statistics package 에 들어있으므로 statistics package 를 설치해야 한다.

 

Package 설치 방법에 대해서는 아래 포스팅을 참조하기 바란다.


2013/09/14 - [programming language/Octave] - Cygwin Octave package 설치 방법


 

다음과 같이 반복되는 열들에 대해 ~ 반복 횟수를 표시해 준다.



아래 포스팅에서 C/C++, MATLAB 에서 Q-function 을 사용하는 방법에 대해 소개한 적이 있는데요~

2011/10/05 - [통신] - [C/C++] Q, erfc function


2011/03/19 - [programming language/MATLAB] - MATLAB erf, erfc, Q- function


오늘은 대표적인 MATLAB 클론이라 할 수 있는 OCTAVE에서 Erfc, Erf, Q-Function 사용하는 방법에 대해 소개하려 합니다.

 

현재 제 컴퓨터 환경은 윈도우 7 이고~ 64 비트 입니다.

 

아래 포스팅에서는 윈도우에서 OCTAVE 를 설치하는 방법에 대해 소개한 적이 있는데요~


2013/09/14 - [programming language/Octave] - Windows 에서 Octave 사용하기


오늘은 Cygwin OCTAVE 를 사용해 보겠습니다.

 

현재 저는 Cygwin 64 비트를 설치했고~ Cygwin terminal 에서 OCTAVE 라는 명령어를 쳐서 다음과 같이 OCTAVE를 실행 시킵니다.

 

Help qfunc 를 쳐서 qfunc 에 대한 설명을 보려 했더니 위 그림과 같은 메시지가 나오더군요.

 

Qfunc은 Communications Package 에 들어있는 함수이므로 OCTAVE Communications Package 를 설치해야 합니다.

 

Cygwin 에서 OCTAVE Communications Package 를 설치하는 방법 중 가장 쉬운 방법은 Cygwin installer 에서 아래 그림과 같이 Math category 를 다 설치하는 겁니다.

 

아래 그림과 같이 math category 에는 Communications Package 뿐만 아니라 다양한 Package 들이 있고 math category를 설치하면 대부분이 OCTAVE Package 들을 설치 할 수 있습니다.

 

Math category 에는 아래 그림과 같이 OCTAVE Package 외에도 다양한 라이브러리 들이 있으므로 설치해서 한번 쭉 보는 것도 공부가 될 것 같네요

 

현재 위 그림에서 저는 Communications Package 는 설치가 되어 있지만 단순히 OCTAVE 에 로드가 되지 않은겁니다.

 

저와 같은 경우라면 위 그림에서의 설명 대로 OCTAVE command window 에서 pkg load Communications 라고 하시면 됩니다.

 

다시 help qfunc 라고 하면 정상적으로 설명이 보이는 것을 확인 할 수 있고~ 이제 부터는 아래 그림과 같이 함수를 사용 할 수 있습니다.

 

아래 그림과 같이 erf, erfc, erfcinv, erfcx, erfi, erfinv 와 같은 함수들도 octave 에서 제공하니 편리하게 사용하시면 됩니다.



아래 포스팅에서 파이썬을 이용하여 텍스트 파일의 내용을 unique 하게 sorting 하는 방법에 대해 소개한 적이 있는데요~ 



2013/11/26 - [programming language/Python] - ipython으로 unique 하게 sorting 하기

 


좀더 찾아보니 리눅스 명령어들을 사용하면 훨씬 더 쉽게 할 수 있더군요.

 

리눅스를 사용하시는 분들이라면 그냥 사용하면 되겠지만 윈도우를 사용하시는 분들은 아래 포스팅에서 소개해 드렸던 GNU On Windows (GOW) 를 설치 하시기 바랍니다.



2012/11/11 - [유틸] - GNU On Windows 를 이용하여 Windows 에서 Linux 명령어 사용하기

 

아님~ 윈도우에 Cygwin 을 설치해서 사용하시는 분들이라면 그냥 Cygwin terminal 상에서 하셔도 무방 합니다.

 

unique 한 정렬을 위해 사용하는 명령어는 uniq 인데요~

 

다음과 같은 sampleFile.txt 파일이 있을 때~

 

위에 보이는 바와 같이 sample1 이 3개 sample3 가 2 개가 있고 나머지는 1개씩 있습니다.

 

uniq 명령어는 연달아서 중복된 내용이 있을 때만 중복된 내용을 제거 해 줍니다. 따라서 텍스트 파일의 내용을 unique 하게 정렬하기 위해서는 다음과 같이 sort 를 먼저 한 다음에 uniq 명령어를 통해 중복된 내용들을 제거 해 줄 수 있습니다.

 

uniq 명령어에는 다음과 같은 다양한 옵션들이 있는데~ 제가 사용하는 옵션들은 다음과 같습니다.

 

–c : 개수를 센다.

 

-d : 중복되는 라인만 나오게 한다.

 

-u : unique 한 라인만 나오게 한다.



리눅스를 사용하시는 분들이라면 비교적 쉘에서 명령어를 치는데 익숙하실 텐데요~

 

명령어에 익숙하더라도 도구를 제대로 사용하지 못한다면 생산성이 떨어질 수 밖에 없겠죠~

 

아래 주소에는 대표적인 리눅스 쉘인 Bash shell 의 단축키에 대해 설명이 있는데요~

 

http://www.howtogeek.com/howto/ubuntu/keyboard-shortcuts-for-bash-command-shell-for-ubuntu-debian-suse-redhat-linux-etc/

 

간단하게 한글로 번역해 봤습니다. Cygwin에서도 동일하게 적용되더군요.

 

Ctrl + A    현재 타이핑하는 라인의 처음으로 커서 이동

Ctrl + E    현재 타이핑하는 라인의 끝으로 커서 이동

Ctrl + L 스크린 Clear (clear 명령을 해도 현재 스크린이 지워짐)

Ctrl + U    현재 커서 이전 글자들을 다 지움

Ctrl + H    backspace 키와 동일

Ctrl + R    이전에 사용했던 명령어들을 검색

Ctrl + C    현재 실행되는 것을 강제로 멈춤

Ctrl + D    현재의 shell을 나감(종료)

Ctrl + Z    현재 실행되는 process 를 background process 로 돌림

Ctrl + W    커서 이전 한 단어를 지움

Ctrl + K    커서 이후의 글자들을 다 지움

Ctrl + T    커서 이전의 두 글자의 위치를 서로 바꿈

Esc + T    커서 이전의 마지막 두 단어의 위치를 서로 바꿈

Alt + F    전방으로 한 단어 이동

Alt + B    후방으로 한 단어 이동

Tab    파일 또는 폴더 명 자동 완성


Cygwin 은 윈도우에서 X-windows를 사용하는 방법에 대해 설명 드립니다.

 

Cygwin설치시 다음 그림과 같이 X11 Category install 로 바꾸고 설치해 줍니다.


 

또는 CMD에서 명령어를 이용해서 설치하기 위해서는 아래 주소 참조하여~

 

http://cygwin.com/faq/faq.html#faq.setup.cli

 

다음과 같은 명령어로도 X11 Category 를 설치 할 수도 있습니다. 아래 명령어 이후 나오는 Cygwin설치 창에서 다음~ 다음~ 만 눌러줘도 됩니다.

 

setup-x86_64.exe –q –C X11

 

 

설치를 했으면 Cygwin 터미널에서 다음과 같이 xinit 라는 명령어를 쳐줍니다.

 

그럼 이렇게 X-windows 가 나타납니다.

 

다음으로 간단하게 octave 에서 그래프를 한번 그려볼까요~

 

그래프를 그리면 아래 그림과 같이 Gnuplot 를 사용해서 아래 포스팅에서 소개했던 것보다 예쁜 그래프를 그려 보실 수 있습니다. 


2013/09/04 - [programming language/Octave] - Cygwin Octave plot() 안 될 때~

 

 

X-windows를 끄는 방법은 아래 그림과 같이 메뉴를 드래그해서 quit 를 선택하면 됩니다.


 

다음으로 Cygwin 터미널에 startx 라고 타이핑 하면~ 아래 그림과 같이 또 다른 형태의 X-windows를 사용할 수 있습니다.


 

마찬가지로 octave 그래프 하나 그려볼까요~ 아래 그림처럼 X-windows상에서 그래프가 그려지고 드래그 해서 이동도 가능하더군요.





Windows에서 리눅스 명령어들을 사용할 때 많은 분들이 Cygwin 을 사용하실 겁니다.

 

Cygwin 을 사용하면서 처음에 가장 당황 스러운게 파일 또는 디렉터리의 경로가 어떻게 되는지 모르겠다는 겁니다.

 

첫번째로 기본 경로들에 대해 확인하기 위해서는 다음 그림과 같이 Cygwin 터미널에서 mount 라는 명령어를 사용해서 현재 Cygwin 과 Windows 폴더 사이의 매칭된 경로를 확인해야 합니다.

 

제 Windows 는 C,D,E,F 이렇게 네 개로 파티션이 구성되어 있는데~

 

각각이 /cygdrive/c, /cygdrive/d, /cygdrive/e, /cygdrive/f 마운트 되어 있는 것을 확인 있습니다.

 

또한 보통 C:/cygwin64/bin 이 Cygwin 에서 /usr/bin mount 되어 있는 것을 확인 있습니다.

 

Cygwin / (루트) 디렉터리는 Cygwin 설치되어 있는 폴더입니다. 경우는 C:/cygwin64 입니다.

 

이렇게 mount 관계를 확인 하는 방법도 있지만 Cygwin 에는 Cygwin과 Windows 간의 path 관계를 알려주는 cygpath 라는 툴이 존재합니다.

 

Cygwin 터미널에서 cygpath 라고 타이핑 하고 엔터를 치면 다음과 같이 cygpath 사용을 위한 옵션들이 나타납니다.


 

제가 자주 사용하는 몇 가지 옵션들에 대해서만 설명드리면~

 

-w 는 Windows path 를 –u 는 unix path 를 –a를 절대 경로를 의미합니다.

 

간단하게 몇 가지 변환 예를 들어보죠~

 

제 Windows 폴더 중에 C:\Users\Administrator\Downloads\cygwin 폴더가 Cygwin 에서는 어떻게 되는지 확인해 보죠~

 

다음과 같이 명령하면~ /cygdrive/c/Users/Administrator/Downloads/cygwin 폴더라는 것을 확인 할 수 있습니다.


cygpath.exe -u 'C:\Users\Administrator\Downloads\cygwin'

 

 

반대로 Cygwin 의 경로를 Windows 경로로 바꿔보죠~

 

제 홈 디렉터리에 있는 distribute_setup.py 라는 폴더의 Windows 경로를 확인해 보죠~ 절대 경로를 확인하기 위해~ a 옵션을 추가 했습니다.


cygpath.exe -wa ./distribute_setup.py

 



우분투를 비롯한 리눅스를 사용하신 분 들은 apt-get 또는 yum 과 같은 명령어를 통해 package 를 관리하는게 익숙 하실텐데요~~

 

Cygwin 을 사용하면서 이런 package 관리자가 없을까 찾아보니 아래 주소에서 소개하더군요.

 

http://www.fir3net.com/Cygwin/cygwin-package-installation.html

 

https://code.google.com/p/apt-cyg/



뭐 영어로 된 정보다 보니 한국어로 번역한다고 생각하고 다시 한번 정리해 보죠.

 

일단 APT-CYG 설치를 위해 Cygwin 에 subversion , wget 이 설치되어 있어야 합니다.

 

아래 주소에서 소개한 것 처럼 GUI 환경에서 설치를 해도 되지만~ 위 주소에 소개돼 있는데로~



2012/10/07 - [유틸] - Cygwin에서 간단히 C 코딩해보기~



2013/09/04 - [programming language/Octave] - Cygwin Octave plot() 안 될 때~

 

setup-x86.exe 또는 setup-x86_64.exe 파일을 이용해서 설치해 보겠습니다. 저는 64 비트 cygwin 을 설치하기 위해 setup-x86_64.exe 을 이용했습니다.

 

command 창에서 setup-x86_64.exe 파일이 있는 폴더로 이동합니다.

 

그리고 다음과 같이 명령어를 쳐 줍니다.

 

setup-x86_64.exe -q -P wget,tar,qawk,bzip2,subversion,vim

 

 

다음으로 Cygwin 을 실행하고~ Cygwin shell 에서 아래 명령어를 순서대로 쳐 줍니다.

 

$ svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/

$ chmod +x /bin/apt-cyg

 

apt-cyg 사이트에 나와 있는 데로~ 아래 명령어를 치면~ nano editor 가 설치되어야 하고 ~

$ apt-cyg install nano

 

다음과 같이 하면 update 가 되는게 정상인데~ (2014/04/01 현재 다시 한번 해보니 수정되었더군요. 아래 내용은 이제 필요가 없을듯 합니다.)

$ apt-cyg update

 

다음과 같이 setup.ini 파일이 없다고 에러가 발생합니다.

 

이에 대해 찾아보니 아래 주소에 그 해법이 있었습니다.

https://code.google.com/p/apt-cyg/issues/detail?id=23

 

cygwin 에서 아래 명령어를 통해 apt-cyg 파일을 엽니다.

 

$ vim /bin/apt-cyg

 

vim 사용이 어려우신 분은 그냥 윈도우에서 아래 주소의 파일을 메모장 등으로 엽니다.

 

C:\cygwin64\bin\apt-cyg

 

apt-cyg 파일의 98 번째 줄과 105 번째 줄을 각각 다음과 같이 바꿔줍니다.

 

Line #98 - wget -N $mirror/x86_64/setup.bz2

Line #105 - wget -N $mirror/x86_64/setup.ini

 

저 처럼 setup-x86_64.exe 로 설치하지 않고 setup-x86.exe 파일을 이용하여 설치하신 분들은 다음과 같이 바꿔줍니다.

 

Line #98 - wget -N $mirror/x86/setup.bz2

Line #105 - wget -N $mirror/x86/setup.ini 


변경 후에 저장을 하고~ Cygwin 에서 다시 update를 다시 해보죠~

 

다음과 같이 정상적으로 동작하는 것을 확인 할 수 있습니다.

 

마지막으로~ cygwin 에서 설치가능한 package들은 아래 주소에서 확인해 보시기 바랍니다.

http://cygwin.com/packages/



이전 포스팅에서 Cygwin 에서의 Octave 사용과 관련하여 간단하게 설명드린 바 있는데요~


2013/09/04 - [programming language/Octave] - Cygwin Octave plot() 안 될 때~


 


오늘은 좀더 구체적으로 package 설치하는 방법에 대해 설명하려 합니다.

 

octave 에는 다양한 package 들이 있는데요. Package 는 용도에 따른 함수 라이브러리 들입니다. MATLAB 의 툴박스와 같은 의미 입니다.

 

Octave 에서 사용가능한 Package 들의 목록은 아래 주소에서 확인 할 수 있습니다.

 

http://octave.sourceforge.net/packages.php

 

아래 그림과 같이detail 을 누르고 들어가서~ 보시면 아래 그림과 같은 Dependencies 가 있는데요~

Signal 1.2.2 버전의 package 를 설치하기 위해서는 Octave (>= 3.6.0) 3.6.0 버전 이상과 specfun (>= 0.0.0), control (>= 2.2.3), general (>= 1.3.2) 의 package 들이 미리 깔려 있어야 한다는 겁니다.

Octave 에서 ver 이라고 치면 아래 그림과 같이 현재의 Octave 버전과 Package 들이 보여지게 됩니다.

 

Octave package 를 설치하는 가장 쉬운 방법은 Octave 프로그램 상에서 아래 형식의 명령어를 사용하는 겁니다.


pkg install -forge 패키지 이름 –auto

 

–forge 는 octave-forge 사이트에서 자동으로 받으라는 것이고 –auto 는 해당 package 를 자동으로 load 하는 겁니다. –forge 옵션을 사용 할 때는 인터넷이 연결된 상태여야 합니다.

 

그럼 간단하게 audio package 를 설치하는 예를 실행해 보죠~

 

audio package 는 이름만 보셔도 아시겠지만 음원과 관련한 package 인데요~      Function Reference 를 확인해 보시면~ 음원을 재생하고 읽고 쓰고 하는 등과 같은 함수들이 들어있네요~

 

http://octave.sourceforge.net/audio/index.html

 

Octave Command 창에서 다음과 같이 명령어를 칩니다.

pkg install -forge audio –auto

 

다음과 같이 설치되는 것을 보실 수 있을 겁니다.

 

그리고 잘 설치 된 건가 확인 하기 위해 audio package 의 함수 중 하나인 soundsc() 함수에 대한 help 를 볼까요~ 잘 설치된 걸 확인 할 수 있습니다.

 

그럼 즐거운 Octave 프로그래밍 되시길~


  1. 2014.04.08 01:35

    비밀댓글입니다

    • 남성 2014.04.08 03:15 신고

      cygwin octave 에서 그래프가 안그려 진다는 거죠?
      아래 글 참조해서 x 윈도우에서 해 보시기 바랍니다.
      http://iamaman.tistory.com/706

윈도우에서 리눅스 명령 또는 툴들을 사용할 때 GOW 도 사용하지만


2012/11/11 - [유틸] - GNU On Windows 를 이용하여 Windows 에서 Linux 명령어 사용하기


많은 분들이 훨씬 더 많은 기능을 담고 있는 Cygwin 을 주로 사용하실 텐데요~


아래 주소의 Cygwin 홈페이지를 가보니 요즘은 64 비트 Cygwin 도 나왔더군요.

 

http://cygwin.com/install.html

 

32 비트를 설치하시려면~ setup-x86.exe 파일을,  64 비트를 설치하시려면~ setup-x86_64.exe 파일을 다운로드 받아서 설치하시면 됩니다.

 

 

저도 요즘은 64 비트 윈도우를 사용하다 보니 64 비트 Cygwin 을 낼름 깔아 봤습니다.

 

설치 방법은 밑에 글 참조 바랍니다. 

2012/10/07 - [유틸] - Cygwin에서 간단히 C 코딩해보기~

 

제 블로그에서는 MATLAB 을 주로 설명하지만 리눅스에서는 Octave 라는 MATLAB 과 굉장히 유사한 프로그램이 있습니다.

 

Cygwin 에서 Octave 를 설치하실 때, Octave 는 Math 카테고리에 있으니깐 Math 옆의 Default 라고 되어 있는 글을 클릭해서 Install 로 바꿔준 후에 설치하셔야 합니다.

 

 

기쁜 마음으로 ~ Cygwin64 Terminal 에서 다음과 같이 Octave를 실행했습니다.

 

뭐 당연히~ 잘~~ 실행 되더군요.

 

그래서 간단히 사용을 해 봤죠.

 

x=linspace(0, 2*pi,100);

y=sin(x);

plot(x,y)

 

간단하게~ sin() 그래프 그리는 건데…. 헉!! 아래와 같은 메시지가 나오면서 에러가 뜨더군요.

 

0 [main] octave-3.6.4 4852 child_info_fork::abort: ……………. 어쩌구 저쩌구… 블라 블라~


 

그래서 32 비트에서도 해보니 아래와 같이 잘 나오더군요.

 

64 비트에서는 안 되는게 이상해서 구글링을 해보니 아래 글의 중간 정도에 해결 방법이 있었습니다.

 

http://octave.1599824.n4.nabble.com/Octave-3-6-x-for-windows-td4649424.html

 

아래 첨부한 rebaseall_example.bat 파일을 C:\cygwin64 폴더에 다운로드 한 후에~ 아래 그림처럼 관리자 권한으로 실행해 줍니다.


rebaseall_example.bat


 

 

rebaseall_example.bat 파일 내용 >

@echo off

 

cd bin

 

dash -l -i -c "echo ' !! Starting rebasing. Be patient !! \n' ; rebaseall "

 

echo .

echo !! No rebaseall errors ? Than done and fine, !!

echo !! otherwise you have others cygwin process running !!

echo .

 

pause

 

조금 기달렸다가~ 아래와 같은 화면이 나오면 해당 화면을 닫아 주시면 문제가 해결됩니다.

 

이제 Octave 를 다시 실행 시키고 그래프를 그려 볼까요?

 

이제 아래 그림처럼 촤라락~~ 하고 그래프가 나오는 것을 확인 할 수 있습니다.

 

물론 예쁜 그림은 아니지만~


Cygwin 을 깔면~ 윈도우에서 리눅스 관련 명령어들을 이용할 수 있습니다.

 

아예 Virtual box 등을 통해 윈도우 내에 리눅스를 깔아서 사용하는 방법도 있지만 간단한 작업을 할 때는 Cygwin 정도가 제격이라는 생각이 들더군요~

 

공식 홈페이지는 아래와 같구~

http://www.cygwin.com/

 

아래 페이지에서 setup.exe 를 클릭하면 설치 파일이 다운로드 됩니다.

http://cygwin.com/install.html

 

설치 파일을 실행해서~ 다음 다음~ 누르다 보면 설치가 진행되는데~

 

설치 과정중에 아래와 같이 packages를 설정하는 부분에서 아래와 같이 gcc 로 찾기하면 아래와 같이 나옵니다.

 

devel 폴더가 개발과 관련한 설치 파일들이 있는 폴더 입니다.

 

여기서 설치하고자 하는 package 들을 선택합니다. Skip 이라고 된 부분을 클릭하면 버전이 바뀝니다. 전 첨에 이 간단한 걸 몰라서 어디 클릭해야 하는 건가 한참 찾음 ㅡㅡ;

 

아래와 같이 gcc 관련 package 들을 선택해주고

 

아래 그림처럼~ editor 로 사용할 vi 관련 package 들을 선택해 줍니다.

 

 

그리고 다음 ~ 다음~ 을 눌러서 Cygwin 설치를 마무리 합니다. 설치에 시간이 좀 걸리니깐~ 느긋이 커피 한잔 하면서 기다리시면 됩니다.

 

이제~ Cygwin 환경에서 간단하게 C 코딩을 해 보죠~

 

Cygwin 을 실행 시키고 일단 현재 폴더가 어딘지를 보려면~

 

다음과 같이 pwd 명령을 치면 됩니다.

 

위 그림의 \home\Administrator 폴더는 사실 윈도우의 C:\cygwin\home\Administrator폴더를 의미합니다.

 

즉~ C:\cygwin\home\Administrator 폴더가 cygwin 에서는 \home\Administrator 폴더로 마운트 되었다는 의미입니다.

 

그리고 위 그림처럼 gcc –version 이라는 명령어를 쳐서 gcc 가 제대로 깔렸는지 확인합니다.

 

이제 C 코딩을 해보죠~

 

아래 그림처럼 vim hello.c 라는 명령을 쳐서~ 다음과 같이 코딩합니다. ㅋㅋ 맞습니다. hello world입니다. ㅋㅋ

 

#include <stdio.h>

int main(void) {

printf("Hello world!!\n");

return 0;

}

 

아!! Vim 사용방법을 모르시는 분들은 그냥 메모장에다 위 코드 써서 C:\cygwin\home\Administrator\hello.c 로 저장해도 됩니다.

 

이제 다음과 같이 ~~

 

gcc 로 빌드해서 hello.exe 라는 실행 파일을 만들어주고~

 

gcc hello.c -o hello

 

아래 명령어로 실행을 시키면~

 

./hello.exe

 

Hellow world!! 가 실행 됩니다~

+ Recent posts