레이블이 리눅스인 게시물을 표시합니다. 모든 게시물 표시
레이블이 리눅스인 게시물을 표시합니다. 모든 게시물 표시

2015년 11월 10일 화요일

초소형 리눅스 보드 nanopi / nanopi2

 요즘에는 저가의 초소형 리눅스 보드들이 많이 출시되고 있는데 nanopi 도 그 중 하나이다.
스펙은 라즈베리파이1에 비해서도 낮은 성능이지만 그 절반 크기에 와이파이와 블루투스 모듈이 내장되어 있다. 가격은 최소가 기준으로 $25 이다.

 업그레이드 버젼도 있는데 nanopi2 이다. 유사한 폼펙터에 1.4GHz, 램1G 으로 라즈베리파이2보다도 높은 성능을 가진다. 가격은 $32 이다.
이 보드들의 장점은 작은 사이즈(라즈베리파이의 절반 크기), 와이파이와 블루투스 모듈을 내장했음에도 가격은 다소 더 저렴하다는 것이다.


2015년 10월 4일 일요일

초소형 리눅스 보드들

 라즈베리파이 이후에 저가이면서도 초소형인 리눅스 보드들이 몇몇 출시되었는데 그중 OpenWRT 리눅스를 사용하는 것들도 있다. 출시 준비 중인 것들을 포함해서 소개해 보고자 한다.

C.H.I.P

 라즈베리파이1 정도의 성능에 4G 플래시 메모리 와이파이, 블루투스 모듈까지 포함되었으면서도 가격이 $9에 불과해 큰 화제를 낳은 리늑스 보드이다. 킥스타터에서 성공적으로 펀딩이 된 후 출시 준비 중이다.

ONION OMEGA

 400MHz processor를 사용하고 OpenWRT 리눅스가 구동된다. 와이파이모듈이 포함되었으며 모듈가격은 $19이다.

Domino PI

onion omega와 비슷한 스펙이다. 코어 모듈의 가격은 $14이다.

VoCore

onion omega와 비슷한 스펙이다. 코어 모듈의 가격은 $19.99이다.

Arietta G25

Atmel AT91SAM9G25 SoC (ARM9 @ 400MHz) 을 사용한 OpenWRT 리눅스보드이다. 와이파이는 외부 모듈로 별도 올리게 되어있다. 가격은 $30.


WRTNode

seeed studio 의 제품이다. 가격은 $29.


2015년 6월 2일 화요일

리눅스의 nano 편집기 사용법

 GUI환경에서는 gedit 와 같은 편리한 텍스트 에디터들이 있으므로 텍스트 파일을 만들거나 편집할 경우에 이런 툴을 이용할 수 있다. 그리고 프로그래밍할 때는 IDE를 이용하면 된다. 하지만 쉘 기반의 텍스트 에디터를 사용할 수밖에 없는 경우도 발생하게 되는데 예를 들어서 원격으로 접속한 경우이다. 이런 경우 리눅스에는 vi (혹은 vim) 라는 텍스트 편집기가 많이 사용되지만 처음에는 그 사용법을 익히기가 어려운 편이다.

 간단한 작업을 할 경우에는  nano를 사용하면 CLI 환경에서 더욱 간단하게 텍스트 파일이나 프로그램 파일을 작성하고 편집할 수 있다. 기본적으로 설치되어 있으므로 터미널에서 nano라고 입력하거나 nano filename 을 입력하면 실행된다.

[표 1] nano 실행 명령어 예제들
실행 명령
동작
nano memo.txt
memo.txt를 편집하기 위해 open한다.
nano -B memo.txt
save 직전에 이전 파일을 ~.filename으로 백업한다.
nano -m memo.txt
cursor 이동을 위해 mouse를 사용한다. (지원시)
nano +83 memo.txt
83 번째 줄부터 편집한다.

나노가 실행되면 바로 편집할 수 있는 상태로 진입하게 된다.

[그림 1] 터미널에서 nano의 실행 화면

편집 모드에서는 기본적으로 상하좌우 방향키로 caret을 이동시킬 수 있으며, del, backspace, enter 키 사용이 가능하다. ctrl+g를 눌러 도움말을 볼 수 있다.

다음은 단축키 목록이다. 이 중 잘라내기/복사/붙이기 키는 잘 알아두어야 편집할 때 매우 유용하다.

[표 2] 기본 명령(단축키)들
단축키
동작
ctrl+g (F1)
도움말 표시
ctrl+x (F2)
nano 종료 (혹은 현재의 file buffer를 닫음)
ctrl+o (F3)
현재 편집 중인 파일 저장
ctrl+j (F4)
문단을 justify(행의 끝을 나란히 맞추다)한다. 즉, 한 문단을 한 줄로 붙인다.
ctrl+r (F5)
현재 file에 다른 file의 내용을 추가한다.
ctrl+w (F6)
text 검색
ctrl+c (F11)
현재의 cursor 위치 표시하기
ctrl+t (F12)
spell check 시작
ctrl+\
search and replace

다음 표는 편집에 관련된 단축키들이다.

[표 3] 잘라내기/복사/붙여넣기에 관련된 단축키들
단축키
동장
ctrl+k (F9)
현재의 line 혹은 선택된 text 삭제(그리고 저장(copy))
ctrl+u (F10)
붙여넣기 (paste)
ctrl+6
현재 cursor 위치부터 text 선택 시작. 이후 alt+6로 복사 후 선택 종료. 아니면 다시 ctrl+6를 입력하면 (복사 없이)단순 종료.
alt+6
선택 구간 복사. 선택 구간이 없다면 현재 caret 이 있는 한 줄을 복사. 이후 ctrl+u 로 붙여넣기 할 수 있음,

다음 표는 화면 이동과 관련된 키들이다. 선택 모드일 경우 이동한 만큼 선택이 추가/삭제된다.

[표 4] 화면 이동과 관련된 단축키들
단축키
동작
PageUP 또는 ctrl+y (F7)
PageDown 또는 ctrl+v (F8)
이전 화면
다음 화면
alt+(
alt+)
현재 문단의 시작으로
현재 문단의 끝으로
alt+=
alt+-
한 줄 밑으로 스크롤
한 줄 위로 스크롤
ctrl+space
alt+space
한 단어 앞으로
한 단어 뒤로 (GUI모드가 아닐 경우)
alt+\
alt+/
file의 첫 line으로
file의 마지막 line으로
alt+]
현재 괄호에 match되는 괄호 찾기
ctrl+-
줄 번호와  열을 입력한 후 그곳으로 이동


리눅스의 입출력 재지정(redirection)

 기본적으로 리눅스의 표준 입력(standard input)은 키보드이고 표준 출력 (standard output)은 모니터 혹은 터미널윈도이다. 하지만 리눅스는 매우 유연한 운영 체제이므로 이러한 표준 입출력을 변경할 수 있다. 예를 들어 표준 출력을 모니터가 아니라 프린터로 바꿀 수 있다.

>과 |를 이용한 출력 재지정

 출력 재지정(output redirection)을 이용하면 명령어의 표준 출력 내용을 모니터에 출력하는 대신에 파일에 저장하거나 다른 명령어의 입력으로 인가할 수 있다. 이때 사용되는 기호가 >와 | 이다.

명령어 > 파일명

만약 파일이 있다면 덮어쓰게 되고 없다면 새로 생성한다. 예를 들어 다음 명령은 ls 의 결과를 모니터에 출력하지 않고 모두 파일 list.txt에 저장한다.

ls > list.txt

출력 재지정은 앞에서 cat 명령이나 echo 명령에서 사용한 바 있다. 만약  >을 이용하여 두 개의 파일을 연결하여 하나의 새로운 파일을 만들 수 있다.

cat file1 file2 > file3

이렇게 하면 file1 과 file2의 내용이 합해져서 file3 에 저장된다.

 덮어쓰기(overwrite)는 바람직하지 않으므로 만약 실수로 중요한 파일을 덮어쓰는 것을 방지하려면 .bashrc 파일에 set -o noclobber 라는 명령을 추가시켜주는 것이 좋다.

 만약 다음과 같이 ‘아무 것도 아닌 것을’ 존재하는 파일에 재지정하면 그 파일은 빈 파일이 되어버린다.

> list

list라는 파일의 크기는 0인 것을 확인할 수 있을 것이다. (이것을 truncating 이라고 한다.) 또는 존재하지 않는 파일에 같은 일을 하면 빈 파일이 새로 생성된다. touch 명령어와 동일한 동작을 수행한다.

 기호 | 는 좌측의 출력을 우측의 입력으로 인가한다. 만약 긴 리스트를 한 페이지씩 보고 싶다면 다음과 같이 한다.

ls -al | less

만약 파일명에 특정 문자열이 들어간 것만 보고 싶다면 다음과 같이 grep 명령과 조합하여 사용하면 된다.

ls -al | grep part_of_file_name

입력 재지정 (input redirection)

 입력 재지정을 이용하면 명령어의 표준 입력을 키보드 대신 파일에서 받을 수 있다. 이 때 < 연산자가 이용된다.

명령어 < 파일

예를 들어 wc (줄바꿈문자수, 단어수, 바이트수를 표시하는 명령)의 입력을 파일에서 받고 싶다면 다음과 같이 입력한다.

wc < list1.txt

입력과 출력 재지정을 조합해서 사용할 수도 있다

wc < list1.txt > result

이 명령은 list1.txt파일의 워드카운트 결과를 result 파일에 기록한다.

출력 추가(append)

 기호 >> 를 이용하면 명령어의 표준 출력을 기존 파일에 추가할 수 있다.

명령어 >> 파일

예를 들어 현재 로그인한 사용자들의 리스트를 list.txt에 추가하려면 다음과 같이 하면 된다.

who >> list.txt

만약 파일이 없다면 생성한 후 기록하게 된다.


리눅스의 쉘 명령어들 : 기타

 아래 표에 기타 명령어들을 나열하였다.

[표 1] 기타 명령어들
명령어
기능
date
현재 날짜 및 시간을 확인한다.
hostname
현재 사용하고 있는 호스트 이름을 확인한다.
uname
현재 사용하고 있는 운영체제.
who
현재 접속 중인 사용자들의 리스트
clear
화면을 초기화함. ( [ctrl]+L 과 동일함)
passwd
비밀번호를 바꾼다.
touch filename
빈 파일을 생성한다.
history
이전에 내린 명령들을 보여준다.
echo "content" >> file
file 이라는 파일에 content 라는 내용을 기록한다.(file이 없다면 생성한 후 기록)
poweroff
halt
shutdown -h now
시스템 종료


리눅스의 쉘 명령어 : alias/unalias

 긴 명령어를 짧게 다시 정의하는 명령어로 alias 가 있다. 아무런 옵션 없이 그냥 alias라고 입력하면 현재 정의되어 있는 별칭의 목록을 보여준다.


만약 ‘ls -alh’를 ll로 새로 정의하고 싶다면 다음과 같이 하면 된다.

alias ll = ’ls -alh’

이후에는 ‘ll’ 이라고 입력할 때마다 자동으로 ‘ls -alh’가 실행되므로 편리하게 사용할 수 있다. 다른 예를 들어보면

alias rm = ‘rm -i’

이후로는 rm 명령이 실행될 때마다 ‘rm -i’ 가 실행되어 확인 과정을 거치게 된다.

alias lsd = ‘ls -al | grep “^d”’

이후에는 ‘lsd’ 명령을 입력하면 디렉토리의 리스트만 보여준다.

 정의된 별칭을 제가하려면 unalias 몀령을 이용하면 된다.

unalias ll

사용자 홈디렉토리에 보면 .bashrc 라는 숨김 파일이 있는데 (리눅스에서는 점으로 시작하는 파일은 숨김파일이다) 이 파일 안에 사용자의 alias가 설정되어 있다. 이 파일에 사용자가 alias를 더 설정해 놓으면 터미널을 실행시킬 때 로드되므로  일일이 다시 재정의할 필요가 없게 된다.