Categories
Linux

디스크 파티션을 자동으로 마운트하기 위한 /etc/fstab 파일 설정

파티션을 마운트하기 전에 시스템에 설치된 디스크 및 파티션 정보를 확인해 보아야 한다. 이때 사용하는 명령이 lsblk 이다.

lsblk

이 명령은 시스템에 설치된 블록 디스크에 관한 정보를 출력한다. 마운트된 파티션이 있으면 어느 디렉토리에 마운트됐는지도 알려준다. 파티션이 마운트된 디렉토리를 마운트 포인트라고 부른다.

/dev/sdb1 파티션을 /mnt/sdb1 디렉토리에 마운트하도록 해 보자.

디렉토리를 생성한다.

sudo mkdir /mnt/sdb1

파티션 마운트를 위한 설정 파일은 /etc/fstab 이다. 이 파일을 편집한다.

sudo vi /etc/fstab

파일의 맨끝에 아래와 같은 내용을 추가한다.

/dev/disk/by-uuid/686593dd-45a0-4108-a883-b4f3b871820d /mnt/sdb1 ext4 defaults 0 2

/dev/disk/by-uuid/686593dd-45a0-4108-a883-b4f3b871820d 는 해당 파티션의 UUID 이다. UUID는 다음 명령으로 확인할 수 있다.

lsblk -o name,uuid

/mnt/sdb1 은 파티션을 마운트할 디렉토리이다.

ext4 는 파티션의 파일 시스템 타입이다. 윈도우에서 NTFS 타입으로 포맷된 파티션을 사용할 경우에는 ntfs 를 적어주면 된다.

defaults 는 마운트할 때 디폴트 옵션값을 사용한다는 뜻이다.

옵션값이 defaults 일 때는 옵션값을 아래와 같이 지정한 것과 같다.

rw,suid,dev,exec,auto,nouser,async

rw 는 파일시스템을 읽기/쓰기용으로 마운트한다는 뜻이다.

suid 는 파일시스템에서 set-user-ID 와 set-group-ID 를 사용한다는 뜻이다.

dev 는 파일시스템에서 문자 디바이스 및 블록 디바이스를 사용한다는 뜻이다.

exec 는 파일시스템에서 바이너리 파일의 실행을 허용한다는 뜻이다.

auto 는 파일시스템이 mount 명령의 -a 옵션에 의해 자동으로 마운트된다는 것을 의미한다.

nouser 는 일반 사용자가 파일시스템을 마운트하지 못하도록 한다.

async 는 파일시스템의 입력 및 출력 처리가 비동기적으로 이루어짐을 의미한다.

0 은 파일 시스템을 덤프하지 않는다는 뜻이다.

2 는 부팅 시에 파일 시스템을 검사하는 순서를 의미한다. 루트 파일 시스템일 경우는 1 로 지정하고 다른 파일 시스템일 경우는 2 로 지정한다. 0 으로 지정하면 부팅 시에 파일 시스템 검사를 하지 않는다.

내용을 추가했으면 파일을 저장하고 편집기를 닫는다.

아래 명령을 실행하면 /etc/fstab 파일에 등록된 파티션이 마운트된다.

sudo mount -a

시스템을 부팅할 때마다 이 명령을 실행할 필요는 없다. /etc/fstab 파일에 등록된 파티션은 부팅 시에 자동으로 마운트되기 때문이다.

다시 lsblk 명령을 실행해 보자.

lsblk

/mnt/sdb1 파티션이 /mnt/sdb1 디렉토리에 마운트된 것을 확인할 수 있을 것이다.

Categories
Linux

screen: 리눅스용 터미널 에뮬레이터

우분투에서 screen 패키지를 설치해 보자.

sudo apt install screen

screen 명령으로 여러 개의 screen 세션을 생성할 수 있다. 그리고 하나의 screen 세션 안에 여러 개의 윈도우를 생성할 수 있다.

커맨드 라인에서 screen 명령을 내려보자.

screen

화면에 버전 정보, 저작권 정보 등이 출력될 것이다. 여기서 엔터 키를 친다. 그러면 명령 프롬프트가 나타난다. 새로운 세션이 생성된 것이다. 처음 세션이 생성됐을 때는 세션 안에 윈도우가 하나 밖에 없다. 필요에 따라 여러 개의 윈도우를 추가로 생성할 수 있다.

세션 내부에서 사용할 수 있는 명령 키들을 알아 보자.

‘Ctrl + a’, ?

‘Ctrl + a’ 키를 치고 나서 물음표 키를 쳐 보자. ‘Ctrl + a’ 키를 누른 상태에서 물음표 키를 치면 안 된다. ‘Ctrl + a’ 키를 누른 상태에서 손을 뗀 후에 물음표 키를 쳐야 한다. 화면에 명령 키의 리스트가 나타날 것이다. 명령 키가 생각나지 않을 때 이 리스트를 참고하면 된다.

‘Ctrl + a’, c

세션 안에 새로운 윈도우 하나를 추가한다.

‘Ctrl + a’, “

세션 안에 있는 윈도우들의 목록을 출력한다. 화살표 키를 이용해서 윈도우를 선택할 수 있다.

‘Ctrl + a’, k

현재 윈도우를 닫는다. 현재 윈도우에서 수행 중인 작업도 종료된다.

‘Ctrl + a’, \

모든 윈도우를 닫는다. 세션 안에 윈도우가 없는 상태가 되므로 세션도 종료된다.

‘Ctrl + a’, d

d는 detach의 머리글자이다. 현재 세션으로부터 떨어져 나온다는 뜻이다. 세션을 종료하지 않고 screen 명령을 실행했던 쉘로 복귀한다.

세션으로 돌아가는 방법을 알아보자. screen 명령을 실행했던 쉘에서 아래 명령을 입력한다.

screen -r

디태치 (detach) 되었던 세션으로 돌아갈 것이다.

여러 개의 세션이 실행 중일 때는 그중 하나를 선택해야 한다. screen 명령을 실행했던 쉘에서 아래 명령을 입력한다.

screen -ls

세션 아이디들이 출력될 것이다. 아래와 같이 원하는 세션 아이디를 지정한다.

screen -r 1623.pts-0.pc-1

세션 아이디는 이처럼 긴 문자열인 경우가 많다. 앞부분의 몇 글자만 입력하고 탭 키를 누르면 자동 완성되므로 전부 입력할 필요가 없다.

Categories
Linux

scp 명령으로 네트워크 상에서 파일 및 디렉토리 복사하기

scp 명령의 형식을 보자.

scp [옵션] [[사용자이름@]호스트이름:]원본파일경로 [[사용자이름@]호스트이름:]사본파일경로

대괄호 안에 있는 부분은 생략 가능하다.

다음은 원격 컴퓨터로부터 로컬 컴퓨터로 파일 하나를 복사하는 명령이다.

scp username@hostname.com:sample.txt .

username은 원격 컴퓨터의 사용자이름이고 hostname.com은 원격 컴퓨터의 호스트이름이다. 여기서는 경로를 지정하지 않고 sample.txt라는 파일 이름만 지정했다. 이처럼 경로가 생략되면 접속한 사용자의 홈디렉토리가 경로가 된다. 명령의 맨 끝에 있는 ‘.’은 이 명령을 수행한 컴퓨터의 현재 디렉토리를 의미한다.

사본 파일이 저장될 경로를 지정할 수도 있다.

scp username@hostname.com:sample.txt /xtmci/tmp

scp 명령을 내리면 암호를 입력하는 프롬프트가 출력된다. 암호를 입력하면 파일 전송이 시작된다.

다음은 로컬 컴퓨터로부터 원격 컴퓨터로 파일 하나를 복사하는 명령이다.

scp index.html root@hostname.com:/home/username/html

index.html 파일이 복사할 파일이다. 이 파일은 로컬 컴퓨터의 현재 디렉토리에 있다. 이 파일은 원격 컴퓨터의 /home/username/html 디렉토리로 복사될 것이다.

파일 이름을 바꾸어 복사할 수도 있다.

scp index.html root@hostname.com:/home/username/html/index-2.html

이렇게 하면 파일의 이름이 index-2.html 로 바뀌어 복사된다.

scp 명령에서 자주 사용되는 옵션은 -P 옵션과 -r 옵션이다.

SSH 포트 번호의 디폴트 값은 22번이다. SSH 포트 번호가 22번이 아닐 때 -P 옵션을 사용한다.

scp -P 2424 username@hostname.com:sample.txt /xtmci/tmp

-r 옵션은 디렉토리를 복사할 때 사용한다.

scp -r /xtmci/backup root@hostname.com:/home

이 명령은 로컬 컴퓨터의 /xtmci/backup 디렉토리를 원격 컴퓨터의 /home 디렉토리 밑에 복사한다.

Categories
Linux

우분투/데비안 리눅스의 패키지 관리 명령어: apt

우분투의 패키지 저장소로부터 패키지 정보를 다운로드한다. 이 작업을 해야 최신 버전의 패키지를 설치할 수 있다.

sudo apt update

새로운 패키지를 설치할 때는 install 명령을 사용한다. wget 패키지를 설치한다고 해 보자.

sudo apt install wget

패키지를 삭제할 때는 remove 명령을 사용한다.

sudo apt remove wget

remove 명령과 비슷한 명령으로 purge 명령이 있다. remove 명령은 패키지가 사용될 때 만들어지는 사용자 설정 파일은 삭제하지 않고 남겨둔다. 반면에 purge 명령은 이것들까지 삭제한다.

sudo apt purge wget

mp3와 관계가 있는 패키지를 찾고 싶다고 하자. 이럴 때는 search 명령을 사용한다.

apt search mp3

여기서 mp3는 패키지 이름이 아니라 단지 검색어일 뿐이다. 명령 결과로 mp3와 관계된 패키지의 리스트가 출력될 것이다. 이 리스트에는 해당 패키지에 대한 간단한 설명이 포함되어 있다.

show 명령은 패키지 정보를 보여주는 명령이다.

apt show wget

출력 결과를 보면 패키지 버전, 설치된 파일 용량, 의존성 정보, 다운로드 파일 용량, 패키지 소스의 URL, 패키지에 대한 설명 등을 확인할 수 있다.

search 명령은 특정한 패키지만 검색하여 출력하는 명령이다. 반면 list 명령은 사용가능한 모든 패키지를 출력한다.

apt list

grep 명령과 결합하여 사용하면 출력 결과를 필터링할 수 있다.

apt list | grep wget

현재 시스템에 설치된 패키지 목록만 출력하려면 –installed 옵션을 사용한다.

apt list –installed