※ 요약

리눅스 명령어 chvt는 가상 터미널 간 이동을 할 때 사용하는 명령어다. 참고로 가상 터미널 생성은 openvt로 하고 제거는 deallocvt하며, 이동은 chvt로 한다. 다른 일반적인 명령어들과 다르게 쉘 스크립트에서도 쓰임새가 많다.


※ 경로

/bin/chvt


※ 사용법

chvt Number



※ 사용예

아래는 openvt로 현재 가상 터미널을 확인한뒤 chvt로 가상 터미널 간 이동을 해 본 모습이다. 이상한 점은 18번으로 이동한다고 했는데, 23번으로 이동된 것인데, 아마 내부적으로 따로 인덱스나 번호가 있나보다. 




※ 요약

리눅스 명령어 deallocvt는 openvt 명령어와 다르게 가상 터미널을 제거하는 명령어다. 옵션 없이 사용하면 사용하지 않는 모든 가상 터미널의 커널 메모리와 데이터 구조를 제거하며, 하나 이상의 인자(N)를 지정하면 정확히 일치하는 /dev/ttyN이 제거된다.


※ 경로

/usr/bin/deallocvt


※ 사용법

deallocvt [Number]...



※ 사용예

아래는 openvt 명령어로 가상 터미널을 생성하고 제거하는 예제다. 참고로 가상 터미널 간 이동은 단축키(ctrl+alt+F1~F12)나 chvt 명령어로 하면 된다.




※ 요약

리눅스는 X윈도우 데스크톱 환경에서 다중의 가상 터미널을 제공하며 openvt 명령어는 가상 터미널을 추가할 때 사용하는 명령어다. deallocvt(가상 터미널 제거), chvt(가상 터미널 간 이동)와 함께 사용하는데, 기록을 보니 1980년대 부터 가상 터미널의 개념이 있었던 걸로 보인다.


※ 경로

/bin/openvt


※ 사용법

openvt [-c vt_number] [-s] [-u] [-l] [-v] [...] command command_option



※ 옵션

 옵션

 설명

 -c vt_number

 주어진 숫자(vt_number)로 번호를 할당하여 새로운 가상 터미널을 생성, 이때 반드시 시스템에서 할당할 수 있는 범위의 VT로 번호를 할당해야함

 -f

 사용하고 있는지 확인하지 않고 강제적으로 vt를 오픈

 -e

 포크 없이 직접 주어진 명령어를 실행. 이 옵션은 /etc/inittab 파일을 참조하여 init명령에서 사용함

 -s

 명령어를 실행할 때 새로운 vt 화면으로 전환

 -u

 현재의 vt 사용자를 설정하고 지정한 사용자로 로그인함. init 명령에서 쓰는 옵션으로써, -c, -l 옵션과 함께 사용하면 안 됨

 -l

 명령어 로그인쉘을 생성

 -v

 상세 정보를 출력

 -w

 명령어가 완료될 때까지 대기. -w와 -s 옵션과 같이 사용하면 명령이 완료되기 전에 터미널을 제어할 수 있는 화면으로 전환함



※ 사용예

먼저 할당 가능한 범위를 알기 위해 터미널에 ls /dev/tty* 라고 입력하여 번호를 확인한다. 필자의 시스템은 최대 번호가 0번부터 63번까지 있는걸로 보아 63번까지 할당 가능하며, 실제 64번으로 생성을 시도할 경우 illegal vt number라고 메시지를 띄우며 생성할 수가 없었다.



가상 터미널 간 이동은 chvt number 명령어로도 가능하지만 단축키 ctrl+alt+F1~F12로도 가능한데, 아래는 ctrl+alt+F2로 tty4번 가상 터미널로 이동한 화면이다. 


아래는 단축키 ctrl+alt+F3으로 tty2 터미널로 이동한 화면이다.


아래는 chvt 20으로 이동하려고 하였으나 번호 20은 할당이 안되어 있는지 커서만 깜빡였다. 그래서 openvt -c20 -f으로 할당한 후 chvt 20으로 시도하니 잘 되었다.





※ 요약

리눅스 명령어 ldd는 지정한 프로그램의 라이브러리 의존성을 확인할 때 사용하는 명령어다.


※ 경로

/usr/bin/ldd


※ 사용법

ldd [옵션] 파일명


※ 옵션

 옵션

 Long옵션

 설명

 -d

 --data-relocs

 존재해야 할 곳에 없는 오브젝트의 위치를 다시 배치하고, 그 결과를 출력

 -r

 --function-relocs

 데이터 오브젝트와 함수를 재배치하고 오브젝트나 함수 중에 찾지 못한 결과를 출력

 -v

 --verbose

 상세 정보를 출력

 

 --help

 ldd 명령어의 사용법 출력

 

 --version

 ldd 명령어의 버전 정보를 출력



※ 사용예

아래는 ldd 명령어로 vpnserver이라는 프로그램을 확인해보는 화면이다. 보면 libc.so.6이라는 공유 라이브러리가 보이는데, 이 공유 라이브러리는 거의 모든 프로그램에서 사용하는 것 중에 하나인 라이브러리다. 그 외에 pthread도 보인다.


아래는 ls 명령어를 확인하는 예다.




※ 요약

리눅스 명령어 head는 파일의 앞부분을 보여주는 명령어로써, 주로 대용량의 로그 파일이나 문서 파일을 볼 때 사용하며 행 수나 용량을 지정할 수 있어 보고 싶은 분량을 지정할 수 있다. tail 명령어와 짝을 이뤄 자주 사용하는 명령어 중에 하나다.


※ 경로

/usr/bin/head


※ 사용법

head [옵션]... 파일명


※ 옵션

 옵션

 Long옵션

 설명

 -숫자

 

 출력을 원하는 줄 수를 지정. 디폴트 값은 10이며, 10일 경우 첫 번째 줄 부터 열 번째 줄까지 출력됨

 -c

 --bytes=SIZE

 출력을 원하는 용량(SIZE)를 지정. 사이즈를 지정할때는 b(block=512bytes), k(kilobytes), m(megabytes)와 같이 단위를 지정하며 단위를 지정하지 않을 경우에는 바이트 단위로 출력됨

 -n

 --lines=N

 출력을 원하는 줄 수를 지정

 -q

 --quiet, --silent

 출력할 때 파일명을 출력 안 함

 -v

 --verbose

 출력하는 파일명을 출력

 

 --help

 head 명령어의 사용법을 출력

 

 --version

 head 명령어의 버전 정보를 출력



※ 사용예

아래는 카페24 가상 서버 일반형에서 돌고 vpn 서버의 로그 중 일부다. head -3 파일명 이라는 명령어를 통해 vpn 서버 로그의 3줄을 보는 모습이다.





※ 요약

리눅스 명령어 kbd_mode는 키보드 모드를 확인하고 설정할때 사용하는 명령어다. 


※ 경로

/bin/kbd_mode


※ 사용법

kbd_mode [옵션]


※ 옵션

 옵션

 Long옵션

 설명

 -s

 

 scancode 모드로 지정 (RAW)

 -k

 

 keycode 모드로 지정 (MEDIUMRAW)

 -a

 

 ASCII 모드로 지정 (XLATE)

 -u

 

 UTF-8 모드로 지정 (UNICODE)

 -h

 --help

 사용법을 출력

 -V

 --version

 버전 정보를 출력



※ 사용예

필자가 운영 중인 서버의 키보드 모드를 확인하고자 kbd_mode 명령어를 실행해봤다. 결과는 UTF-8 모드라고 나오는 걸 확인할 수 있었는데, 이를 ASCII 모드로 바꾸고 싶다면 kbd_mode -a 라고 입력하면 될 것이다.



※ 요약

리눅스 명령어 mesg는 타인이 본인의 터미널에 접근하는 권하는 제어할때 사용하는 명령어다. 보통 쓰기 권한을 허용 또는 제한할 수 있으며 쓰기 권한을 허용할 경우 talk나 write 명령어로 다른 사용자에게 메시지를 보낼 수 있다. 이 명령어로 쓰기 권한을 줄 경우 보안 위험성이 높아지므로 주의하여야 한다.


※ 경로

/usr/bin/mesg


※ 사용법

mesg [옵션]


※ 옵션

아래 옵션을 지정하지 않고 mesg만 사용할 경우 현재 상태를 출력한다.

 옵션

 설명

 -y

 터미널 쓰기 접근을 허용

 -n

 터미널 쓰기 접근을 허용하지 않음



※ 사용예

먼저 옵션없이 mesg 명령어만 실행하여 보았다. is y가 나온걸로 보아 기본값은 y다.


mesg n을 통해 접근 허용을 제한하여 봤고, mesg 명령어로 상태를 확인해 보니 is n이 나온걸 볼 수 있다.



※ 요약

리눅스 명령어 kbdrate는 키보드의 입력 속도를 조절하는 명령어다.


※ 경로

/sbin/kbdrate


※ 사용법

kbdrate [옵션]


※ 옵션

 옵션

 설명

 -V

 버전 정보를 출력

 -s

 메시지 출력 없이 실행

 -r rate

 키보드의 비율(rate) 값 변경, 비율은 1초 동안 입력할 수 있는 타자수를 의미

 rate 범위 : 2.0~30.0

 -d delay

 키보드의 딜레이(delay) 시간. 딜레이 시간은 하나의 키를 누르고 있을 때 연속적인 입력 여부를 구분

 delay 범위 : 250ms~1000ms(ms는 millisecond의 약어로써, 1/1000초. 즉 1000분의 1초를 의미함. 고로 1000ms는 1초이며 250ms는 0.25초다.)



※ 사용예

아무 옵션없이 kbdrate를 입력하면 현재 설정된 값이 나온다. 10.9cps라고 나오는데, cps는 Character Per Second의 약자로써 초당 10.9개의 글자를 입력할 수 있다는 의미다. 딜레이는 250ms로 설정되어 있는 걸로 볼 수 있는데 하나의 키를 250ms 동안 누르고 있으면 연속된 키 입력으로 인식하겠다는 뜻이다.




※ 요약

리눅스 명령어 mkfifo는 FIFO를 생성하는 명령어다. FIFO는 프로세스 간 통신을 위해 사용된다.


※ 경로

/usr/bin/mkfifo


※ 사용법

mkfifo [옵션]... 파일명


※ 옵션

 옵션

 Long옵션

 설명

 -m

 --mode mode

 permission 비트를 지정한 모드로 설정

 -Z

 --context=CTX

 각각의 SELinux 보안 컨텍스트 이름을 CTX로 설정

 --help

 

 사용법 출력

 --version

 

 버정 정보 출력



※ 사용예

mkfifo 명령어는 주어진 이름으로 하나의 FIFO를 만든다. 아래는 testfifo로 만들어 봤는데, 초기값으로 만들어지는 FIFO의 모드는 0666이다.



※ 요약

리눅스 명령어 iconv는 주어진 파일의 인코딩 방식을 변경할때 사용하는 명령어다. 


※ 경로

/usr/bin/iconv


※ 사용법

iconv -f [변경전 인코딩] -t [변경할인코딩]


※ 옵션

 옵션

 설명

 --from-code, -f encoding

 원본 파일의 변경 전 문자 인코딩을 지정

 --to-code, -t encoding

 변경하려는 대상의 문자 인코딩을 지정

 --list, -l

 지원하는 인코딩 목록들을 출력

 --output, -o file

 출력 내용을 표준출력 대신 지정한 파일에 저장

 --silent, -s

 경고 메시지를 출력하지 않음

 --verbose

 상태의 자세한 정보를 출력



※ 사용예

먼저 지원하는 인코딩 목록부터 보기 위해 iconv -l 명령어를 실행해 보자. 지원하는 목록들을 보니 엄청 많은데, 아마 대부분의 인코딩 방식이 있을것 같다.


아래는 EUC-KR방식인 test.txt라는 파일을 UTF-8로 변환하면서 test_UTF.txt로 내보내는 사용예다.


+ Recent posts