반응형


OS: Ubuntu 12.04 LTS (64-bit)

VIM에서 taglist 플러그인을 이용하고자 하면 우선 ctags를 설치해야 한다.
$ sudo apt-get install exuberant-ctags

ctags와 vim만 연동해서 쓸 수도 있는데, 이것은 이전 포스트를 참고해서 활용할 수 있다.

Taglist는 플러그인 파일을 다운로드 받아서 vim이 설치된 디렉토리에 복사하는 방식으로 설치된다.

다운로드 받고 압축을 풀면 plugin과 doc 디렉토리가 있다.
plugin 안에 있는 taglist.vim 파일은 /usr/share/vim/vim73/plugin/ 에 복사하고,
doc 안에 있는 taglist.txt 파일은 /usr/share/vim/vim73/doc/ 에 복사한다.


우분투를 설치하고 나면 기본적으로 vim-tiny가 설치되어 있다. 그런데 이 tiny 버전에서는 Taglist plugin을 설정해도 실행이 되지 않는다. 정상적으로 Taglist 플러그인을 사용하려면 기존에 깔려 있던 vim-tiny를 삭제하고 풀 버전의 vim을 새로 설치해야 한다.

$ sudo apt-get remove vim-tiny
$ sudo apt-get remove vim-common
$ sudo apt-get install vim



이제 vi 또는 vim 명령으로 VIM을 실행하고 나서, :Tlist를 입력하면 왼편에 분할된 화면으로 taglist가 나타날 것이다.


반응형
블로그 이미지

Bryan_

,
반응형

ctags는 프로그래밍 소스코드를 검색하거나 정의된 위치로 이동할 수 있는 태그 정보를 만들고 검색 기능을 제공한다. 이름에 C가 있다고 C언어만 되는 것은 아니고, 의외로 다양한 언어를 지원한다. (ctags --list-languages 명령으로 확인 가능)


데비안 계열 Ubuntu를 비롯한 여러 배포판에서 패키지로 exuberant-ctags를 제공하며, apt-get install로 설치할 수 있다.

$ sudo apt-get install exuberant-ctags


소스코드가 있는 위치에서 ctags -R 을 입력하면 하위 디렉토리까지 검색해서 태그 파일(tags)을 생성한다. 참고로 우분투에서 /usr/src/linux-headers-3.2.0.54/ 에서 생성된 태그 파일의 크기는 41MB 정도 되었다.

$ ctags -R    (커널 소스 등 위치에 따라서 루트 권한 필요)



vi에서는 -t 옵션을 통해서 ctags에서 만든 태그를 탐색할 수 있다.

아래 명령을 내리면 탐색할 태그 검색어가 있는 위치(첫번째 검색 결과)에서 vi를 시작한다.

$ vi -t 탐색할_태그


vi를 실행하고 나서도 원하는 태그가 있는 소스코드로 이동할 수 있다.

:ta 탐색할_태그     (입력한 태그와 정확히 일치하는 태그를 모두 검색)

:ta /탐색할_태그     (입력한 태그를 포함하는 문자열 태그를 모두 검색)


만약 검색된 태그가 현재 열려 있는 파일이 아닌 다른 파일에 있을 경우 이동할지 물어볼 것이다. 엔터를 쳐서 이동한다. 그리고 검색된 태그가 여러 개가 있을 때 두번째 이후로 검색된 위치로 이동하려면 아래와 같이 그 다음 태그로 이동하는 명령을 이용한다.

:tn



또한 vi에 열려 있는 소스코드에서 커서가 있는 곳의 키워드(구조체 이름, 매크로, 함수 이름 등)의 코드가 정의된 위치로 이동하고 싶으면 Ctrl + ] 단축키를 입력하면 해당 위치로 점프한다. Microsoft Visual Studio에서 F12 단축키, Eclipse에서 F3 단축키를 쓰는 것과 같다.


Ctrl + ] 단축키 또는 :tn 명령으로 이동하고 나서 이전 위치로 다시 돌아가려면 Ctrl + T 단축키를 입력하면 된다.




반응형
블로그 이미지

Bryan_

,
반응형


* 여러 파일을 포함하는 디렉토리 전체를 원격 컴퓨터에 전송하기

"-r" 옵션을 주면 디렉토리를 전송할 수 있다.

$ scp -r [디렉토리_이름] [원격지_아이디]@[원격지_주소]:[경로]


예제:

$ scp -r /home/usera/test/ cdsn@192.168.2.8:/home/remoteuser/exp/

이렇게 하면 원격지 컴퓨터의 exp 디렉토리 안에 test 디렉토리가 복사된다.




* 원격 컴퓨터로부터 여러 파일을 포함하는 디렉토리 전체를 받기

$ scp -r [원격지_아이디]@[원격지_주소]:[보내는_디렉토리_경로] [경로]


예제:

$ scp -r remoteuser@192.168.2.8:/home/remoteuser/exp/ /home/usera/

이렇게 하면 로컬 컴퓨터의 usera 디렉토리 안에 exp 디렉토리가 복사된다.




* 여러 개의 파일을 원격 컴퓨터로 보내기

여러 개의 파일을 보낼 때는 그냥 띄어쓰기로 구분해서 파일 이름을 나열하면 모두 전송된다. 만약 공백이 있는 파일 여러개를 보내고 싶다면 파일 하나씩 쌍따옴표(")로 둘러싸면 된다.

$ scp [파일명1] [파일명2] [원격지_아이디]@[원격지_주소]:[받는_위치]


예제:

$ scp /home/usera/111.txt /home/usera/222.txt  remoteuser@192.168.2.8:/home/remoteuser/exp/

이렇게 하면 원격지 컴퓨터의 exp 디렉토리 안에 111.txt와 222.txt가 복사된다.


$ scp "tcp 1111.txt" "tcp 9999.txt" remoteuser@192.168.2.8:/home/remoteuser/exp/

이렇게 하면 띄어쓰기가 포함된 두 개의 파일(tcp 1111.txt, tcp 9999.txt)이 원격지 컴퓨터의 exp 디렉토리 안에 복사된다.




* 원격 컴퓨터에 있는 여러 개의 파일을 로컬 컴퓨터에 받기

하나의 원격지 컴퓨터에 있는 여러 개의 파일을 받을 때는 원격지 주소까지 쓰고 나서 콜론(:) 뒤에 쌍따옴표(")로 둘러싼 영역 안에 여러 개의 파일명을 써주면 된다. 만약 보내는 파일명이 공백을 포함하는 경우에는 그냥 따옴표(')로 해당 파일명을 둘러싸도록 한다.

$ scp [원격지_아이디]@[원격지_주소]:"[파일명1] [파일명2] [파일명3]" [받는 위치]


예제:

$ scp remoteuser@192.168.2.8:"/home/remoteuser/111.txt /home/remoteuser/222.txt" /home/usera/

이렇게 하면 원격지에 있는 111.txt, 222.txt 파일들이 usera 디렉토리 안에 복사된다.


$ scp remoteuser@192.168.2.8:"'/home/remoteuser/tcp 1111.txt' '/home/remoteuser/tcp 9999.txt'" /home/usera/

이렇게 일반 따옴표를 써서 공백이 있는 파일 두 개를 받을 수 있다.




* 아직 되는지 알 수 없는 부분

한 개의 파일을 받을 때 받는 쪽에서 파일이름을 바꿔서 지정할 수는 있지만, 여러 개의 파일을 받을 때 파일 이름을 각각 바꿀 수 있는 방법은 찾지 못했다. 즉, 명령어 한 줄로 여러 개의 파일을 보낼 수는 있지만, 받는 쪽에서 그 여러 개의 파일 이름을 고치고 싶은데 어떻게 해야할 지 아직 모르겠다.

아무래도 scp 명령을 통해서 일단 파일들을 모두 받은 이후에 mv 명령으로 수정하는 방법이 현실적이라고 생각된다.




반응형
블로그 이미지

Bryan_

,
반응형

리눅스 콘솔에서 아래 명령을 통해서, 리눅스의 architecture를 확인할 수 있다.

$ uname -m


위의 명령을 쳤을 때,

i686 이 출력되면 32-bit,

x86_64 가 출력되면 64-bit 시스템이다.



반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 12.04 LTS (desktop)


PC에 멀티부팅을 위해서 윈도우와 우분투를 같이 설치하면, GRUB 부트 로더가 운영체제 선택을 할 수 있는 메뉴를 보여준다. 그런데 기본적으로는 맨 위의 첫번째 항목에 Ubuntu 운영체제가 있고, 그 항목이 선택되어 있다. 만약 제한시간(기본적으로 10초) 내에 키보드로 선택을 바꾸지 않으면 기본 선택된 운영체제로 자동으로 부팅을 진행한다. 그러나 평소에 윈도우를 더 많이 쓰는 경우에는 부팅할 때마다 매번 키보드로 선택을 바꿔 줘야 해서 불편한 경우도 있다.


이를 해결하기 위한 설정 변경 옵션을 GRUB에서 제공하고 있다. 이 글에서는 기본 부팅되는 운영체제 선택을 변경하는 2가지 방법을 설명한다. 첫번째설정파일 편집과 콘솔 명령을 이용하는 방법이고, 두번째는 Ubuntu가 GUI (Graphic User Interface) 환경일 경우 grub-customizer 프로그램 통해서 마우스 클릭 몇번으로 설정할 수 있는 쉬운 방법이다.



(1) 설정 파일 수정 및 콘솔 명령을 통한 방법

우선 GRUB 메뉴상에서 윈도우가 몇번째 항목인지 알고 있어야 한다. 부팅할 때 GRUB 화면을 보고 몇번째인지 기억해 둔다. 필자의 경우 6번째 항목이 윈도우7이었다.


만약 재부팅해서 확인하기 귀찮다면, /boot/grub/grub.cfg 파일에서 몇번째에 있는지 확인할 수 있다.

vi든 gedit든 아무 텍스트 편집기를 써서 /boot/grub/grub.cfg 를 연다.

그리고 "menuentry"로 검색해 보면 운영체제 이름과 함께 여러 개가 검색될 것이다. 

여기서 윈도우 운영체제 이름이 적힌 menuentry가 몇번째인지 확인하면 된다. 


주의할 점은, 중간에 submenu "Previous Linux versions" { 로 시작해서 menuentry가 몇개 나오고 그 다음에 다시 중괄호( } )가 닫히는데, 이 부분은 하나로 계산해야 한다. 즉, submenu 안에 있는 운영체제 개수는 여러개가 있어도 1개로 간주해야 한다. 

일반적으로 아래와 같은 구조로 되어 있다.

menuentry 'Ubuntu, ......' {

    각종 옵션들

}

menuentry 'Ubuntu, ...... (recovery mode)' {

    각종 옵션들

submenu "Previous Linux versions" {

menuentry 'Ubuntu, ......' {

    각종 옵션들

}

menuentry 'Ubuntu, ......' {

    각종 옵션들

} 

}

menuentry "Memory test (memtest86+)" {

    각종 옵션들

menuentry "Memory test (memtest86+, serial console 115200)" {

    각종 옵션들

menuentry "Windows 7 (loader) (on /dev/sda1)" {

    각종 옵션들

}


위와 같은 경우, 윈도우는 6번째 항목이다.


이제 설정 파일에서 기본 선택 위치를 바꿔 보자. 루트 권한을 가지고 /etc/default/grub 파일을 연다.

vi 를 쓰는 경우:

$ sudo vi /etc/default/grub

gedit 를 쓰는 경우:

$ sudo gedit /etc/default/grub


GRUB_DEFAULT="0" 이라고 적힌 줄이 있을 것이다. 이 부분을 메뉴상에서 윈도우가 있는 메뉴 숫자로 바꿔 주어야 한다. 앞의 확인 과정에서 윈도우가 6번째라면, 변경된 값은 5가 된다. 왜냐하면 첫번째 항목이 0부터 시작하기 때문이다.

GRUB_DEFAULT="5"   #윈도우가 메뉴상에서 6번째 항목일 경우


만약 GRUB가 자동 부팅까지 기다리는 시간을 조정하고 싶다면 GRUB_TIMEOUT="10" 에서 따옴표 안의 숫자를 원하는 숫자(초 단위)로 바꾸면 된다.


설정 파일을 고쳤다면 아래 명령을 통해서 설정을 변경한다.

$ sudo update-grub




(2) grub-customizer 프로그램을 이용한 방법


이 방법은 우분투가 GUI 환경을 지원한다는 가정 하에 이용 가능하다.

아래와 같이 콘솔에 명령어를 입력하여 grub-customizer를 설치한다.

$ sudo add-apt-repository ppa:danielrichter2007/grub-customizer

$ sudo apt-get update

$ sudo apt-get install grub-customizer


간중간 계속 진행할 것인지 물어볼 것이다. 모두 yes로 선택(y 입력후 엔터 또는 그냥 엔터)한다.

콘솔에서 아래 명령을 통해서 grub-customizer를 실행한다.

$ gksu grub-customizer


기본 화면은 아래와 같다.


General settings 탭을 누른다.


default entry에서 predefined 항목을 누르면 선택할 수 있는 운영체제 목록이 나온다.

윈도우 운영체제에 해당되는 Entry를 선택한다. 윈도우 운영체제 이름 또는 Entry 번호 중에서 아무거나 선택할 수 있다.


참고로, 아래에 있는 Boot default entry after [   ] Seconds 에 있는 숫자를 조정하면 GRUB가 기다리는 시간을 조정할 수 있다. 위의 그림의 경우, 7초 동안 기다렸다가 자동으로 Windows 7으로 부팅하겠다는 설정이다.


원하는 대로 설정이 되었다면 반드시 Save 버튼을 눌러서 설정을 저장하도록 한다.



이제 컴퓨터를 재부팅해 보면 기본 선택이 윈도우로 바뀌어 있을 것이다.



반응형
블로그 이미지

Bryan_

,