터미널

From Hidden Wiki
Jump to navigation Jump to search

개요

[[파일:bash screenshot.png|thumb|300px|배시 세션의 스크린샷 - 젠투 리눅스에서.]]

명령-줄 인터페이스(CLI, Command-line interface) 또는 명령어 인터페이스텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다. 흔히 터미널이라고 부른다. 즉, 작업 명령은 사용자가 컴퓨터 키보드 등을 통해 문자열의 형태로 입력하며, 컴퓨터로부터의 출력 역시 문자열의 형태로 주어진다. 명령 줄 인터페이스는 1950년대 텔레타이프라이터가 컴퓨터에 연결되어 사용된 때부터 유래된다. 즉각적인 상호 작용과 피드백을 할 수 있었기 때문에 천공 카드에 비해 진보한 방식으로 여겨졌다.

브라운관이 인터페이스 장비로 쓰이면서 명령 줄 인터페이스는 마이크로소프트 윈도, 맥 OS, X 윈도 시스템과 같은 그래픽 사용자 인터페이스로 발전하기 시작했으며, 특히 1984년 애플사의 매킨토시 OS 출시에 뒤이은 이듬해, 마이크로소프트사의 윈도 출시 이래로 그래픽 사용자 인터페이스가 명령 줄 인터페이스를 상당 부분 대체했다. 그러나 일부 사용자들은 아직도 명령 줄 인터페이스가 더 나은 생산성을 제공한다며 선호하고 있다.

명령 줄 인터페이스는 프로그래머, (특히 유닉스 기반 운영 체제의) 시스템 관리자, 공학 및 과학 분야 종사자, 일부 고급 개인 사용자들이 주로 사용하고 있다. 시각 장애를 가진 일부 사용자들도 명령 줄 인터페이스를 사용한다.

가장 간단한 형태의 명령 줄 인터페이스는 명령 프롬프트를 표시해 사용자의 명령어 입력을 기다리며, 사용자의 명령어 입력이 완료(보통 엔터키를 누름)되면 해당 명령어를 실행하고, 결과를 문자열 형태로 출력한다.

그래픽 사용자 인터페이스의 단추 또는 메뉴와는 달리, 명령 줄은 그 자체로 사용자가 원하는 작업을 정확히 표현할 수 있다. 또한, 명령 줄은 다른 결과를 원할 경우 바꿔서 사용할 수 있는 기본값들을 포함하고 있다. 명령 줄은 개별 명령 또는 여러 개의 명령을 순차적으로 묶어서 추후에 사용할 수 있도록 특정 문자 열이나 별명에 지정할 수 있다.

이 같은 인터페이스를 제공하는 프로그램을 명령 줄 해석기(command line interpreter) 또는 (shell)이라고 부른다. 이를테면, 유닉스 셸(sh, ksh, csh, tcsh, bash 등)과 CP/M, 도스command.com("명령 프롬프트") 등이 있다. 이 중 CP/M과 command.com은 DEC사의 RSXRSTS를 기반으로 하고 있다. 2006년 후반에, 마이크로소프트는 전통적인 유닉스 셸과 자사의 객체 지향적 .NET 프레임워크의 기능을 조합한 윈도 파워셸(개발명 "모나드 Monad")을 출시했다. 윈도에서 현재 쓰이는 명령 줄 인터페이스 프로그램인 도스윈도 스크립트 호스트는 일반적으로 그 기능이 충분치 않거나 불안정하다고 여겨지고 있다. 윈도에서 유닉스 명령 줄 인터페이스를 사용할 수 있는 소프트웨어에는 MinGW 등이 있다.

오토캐드와 같은 일부의 프로그램들은 명령 줄 인터페이스와 그래픽 사용자 인터페이스를 동시에 지원하기도 한다. 공학/과학 수치 계산 패키지인 매틀랩은 일부 계산 작업에 대해 그래픽 사용자 인터페이스를 제공하지 않지만, 명령 줄 인터페이스를 사용하면 모든 계산 작업을 수행할 수 있다.

명령 줄 인터페이스에서 사용되는 명령어는 보통 다음과 같은 구조로 되어 있다. <blockquote style="background:white; padding:1em; border:1px solid #999;"> [할 일] [작업 방법] [대상 파일들] </blockquote> 또는 <blockquote style="background:white; padding:1em; border:1px solid #999;"> [할 일] [작업 방법] < [입력 파일] > [출력 파일] </blockquote> "할 일"은 작업의 큰 목적을 제시하며 "작업 방법"은 작업을 수행하는 세부 방법을 지정한다. "대상 파일들"은 작업을 수행할 대상 파일들을 지정한다. 두 번째 형태에서 '>' 및 '<'(꺾은 괄호), '|'(세로 막대)는 리디렉션 문자로, 입출력을 화면이 아닌 다른 장비(명령 문자열이 기록된 파일, 모뎀, 프린터 등)를 통해 수행할 것을 지정하거나 입출력을 연결시키는 역할을 한다.

리눅스에서 딮 웹 사용하기

리눅스의 경우 터미널

./truecrypt-7.0a-setup-x64 

와 같은 명령어를 입력해서 트루크맆트를 설치 후 터미널에

truecrypt 

를 입력하면 트루크맆트가 실행된다. 우분투의 경우 실행 후 런처에 고정시켜 놓고 사용하고, 리눅스 민트의 경우 "메뉴 -> 보조 프로그램 -> TrueCrypt"에 있다. 우분투의 유니티(Unity) 환경은 태블릿 위주로 만들어져서 윈도우즈와 매우 다르므로 윈도우즈만 사용해본 사람들은 윈도우즈와 비슷한 그놈(GNOME)을 사용하는 리눅스 민트를 쓰는 게 더 적응하기 쉬울 것이다.

cd tor-browser_ko/
./start-tor-browser
./i2prouter start
cd iMule-2.3.2.3/
cd bin/
./imule 

http://127.0.0.1:7657/i2psnark/

python torchat.py

명령어와 터미널

명령어(Command)는 터미널(terminal)에서 다음과 같이 사용한다.


ls

현재 디렉터리에 있는 파일과 폴더 목록을 보여준다.


cd folder_name

folder_name 폴더로 이동한다.


/home/user_name/folder1/program1

folder1에 있는 program1을 실행시킨다. 간단히

~/folder1/program1

으로 입력해도 되고, cd 명령어로 folder1으로 이동한 후

./program1

이라고 입력해도 된다.


리눅스에서 HDD에 남은 용량 확인은 터미널에서

df -h

로 한다.

한/영 전환

우분투에서는 "<span style="color: green;">한/영</span>" 전환 키가 안 먹히면 그냥 "<span style="color: green;">Shift + space bar</span>"를 써서 전환해도 된다.

리눅스 민트에서는 "메뉴 -> 기본 설정 -> 언어 -> 언어 입력기"에서 "UIM"을 설치한 후 한글 입력기를 UIM으로 설정하면 된다. 입력기를 적용해도 한글 입력이 안 되면 로그아웃했다가 다시 로그인하면 된다. 그래도 안 되면 컴퓨터를 재부팅하면 된다. 화면 맨 아래의 작업 표시줄 맨 오른쪽에 한글 입력기가 떠 있는 게 보일 것이다. UIM 설치 및 기본 입력기로 UIM을 설정한 후 컴퓨터를 재부팅하면 입력기가 "벼루"로 바뀌면서 Shift + space bar로 한영 변환하는 게 기본 설정으로 바뀐다. 한글 입력기에 따라 Ctrl + space bar로 한영 전환하는 것도 있다. 어떤 키나 키 조합을 한영 전환 키로 사용할지는 각 입력기의 설정에서 바꿀 수 있다.

한자 키

"<span style="color: violet;">한자</span>" 키가 안 될 경우에는 "<span style="color: violet;">F9</span>" 키를 한자 키 대신에 사용할 수 있다.

웹 브라우저에서 갑자기 한글 입력이 안 될 때

보조 프로그램의 텍스트 편집기(gedit)에 한글 입력 후 웹 브라우저에 복사&붙여넣기 한다.

윈도우즈와 듀얼 부팅 하기

리눅스에서는 HDD와 파티션을 sdb3과 같은 식으로 표기한다. b는 두번째 HDD라는 의미이며 3은 세번째 "주 파티션"이라는 의미이다. "논리 파티션"은 5번부터 번호가 매겨진다. 주 파티션은 4개까지 만들 수 있는데 주 파티션이 4개이면 논리 파티션을 만들 수 없으므로 주 파티션은 3개까지만 만들고 나머지 파티션은 모두 논리 파티션으로 만든다.


윈도우즈와 듀얼 부팅하려면 우선 윈도우즈를 설치해야 한다. 윈도우즈는 일단 운영 체제가 설치되는 C 드라이브만 설정한 후 설치한다. 그 후 리눅스 민트를 설치할 때 7단계 중 4단계인 "설치 형식"에서 "기타"를 선택해서 보면 /dev/sda1에 104MB의 시스템 예약 공간이 보이고, /dev/sda2에 C 드라이브가 보일 것이다. 그럼 그 밑의 "남은 공간"을 클릭한 후 "+" 버튼을 눌러서 /boot 파티션을 추가해준다. 크기는 500~1,000MB에 파티션 종류는 "주 파티션"을 선택하고, 용도는 ext4(확장 파일 시스템 4), 마운트 위치는 /boot로 선택하면 된다. 그럼 /boot 가 /dev/sda3에 생성될 것이다. 그 후 그 아래에 또 + 버튼을 눌러서 윈도우즈의 D 드라이브로 사용할 공간을 추가해준다. 파티션 종류는 "논리 파티션"을 선택해주면 되고, "용도"는 "FAT32 파일 시스템"을, 마운트 위치는 /windows를 선택하면 된다. 그럼 /dev/sda5가 생성될 것이다. 그 후 그 아래에 암호화할 파티션을 추가해준다. 역시 "논리 파티션"에 "용도"는 "암호화할 물리 볼륨"을 선택하면 된다. 그 후 새로 생성된 /dev/mapper/sda6_crypt를 누른 후 Change...를 클릭하여 마운트 위치를 / 로 바꿔준다. 그 후 "지금 설치"를 누르면 스왑 파티션을 설정하지 않았다고 뜬다. 스왑 파티션은 윈도우즈의 가상 메모리같은 건데 요즘엔 메모리 용량이 커서 없어도 별로 상관은 없다. 나중에 필요하면 스왑 파일을 만들어서 사용해도 되니 신경 쓸 필요없다. 만약 스왑 파티션을 사용하려면 스왑 파티션에 써진 임시 파일들에서 정보가 유출될 수 있으므로 스왑 파티션도 암호화해야 한다.


7단계는 계정 설정 단계로 sda6를 통채로 암호화했기 때문에 "개인 폴더 암호화"를 선택할 필요는 없다.


그 후 윈도우즈를 부팅하여 sda5 파티션을 NTFS(신기술 파일 시스템)로 포맷해도 되고, 그냥 FAT32(파일 할당 테이블, 4GB 이하의 파일만 사용 가능)로 써도 된다.

리눅스에서 HDD 암호화를 위해 Cryptsetup 사용

리눅스의 경우 Cryptsetup 패키지를 설치하여 컴퓨터를 전체 암호화해서 사용한다. 우분투의 경우 Cryptsetup 패키지가 이미 설치되어 있다. Cryptsetup은 터미널에서

$ apt-get install cryptsetup 

을 입력하여 설치할 수 있다.

만약 LVM(Logical Volumn Management)이 설치되어있지 않을 경우

$ apt-get install lvm2

를 입력하여 LVM도 설치해준다.

  • [데비안] 리눅스 디스크/파티션 LUKS로 암호화하기

데이터가 너무나도 중요해서 물리적으로 디스크를 분실해도 해독이 불가능하도록 디스크 자체에 암호화를 걸어야 될 때가 있다.<br>Windows에서는 한때 유명했던 TrueCrypt 프로그램(구조적인 문제 때문인지 현재는 개발이 중단되었다)이나 MS의 BitLocker를 사용하면 된다.<br>리눅스에서는 디스크를 암호화 시킬 수 있는 프로그램이 여러 가지다. (https://wiki.archlinux.org/index.php/disk_encryption)<br>여기서는 DM-Crypt를 기반으로 암호화 시켜주는 LUKS를 사용 할 것이며, 프로그램은 CryptSetup를 사용 할 것이다.

  • DM은 Device Mapper로 리눅스 커널 2.6과 3.x 버전에 포함되어 있는 프레임워크로, 물리적인 디스크를 가상의 디스크로 인식하도록 돕는 시스템으로, 여러개의 물리적인 디스크를 하나의 디스크처럼 쓸 수 있도록 도와주는 역할을 한다고 생각하면 된다. (가상의 레이드 시스템으로 보면 된다.)<br>DM-Crypt는 DM의 서브시스템으로 보면 된다. 즉, 리눅스 커널에 있는 DM을 기반으로 커널의 crypto-API를 사용해 디스크를 암호화 시키는 시스템이라고 보면 된다.
  • 우분투 VPS 에서 DM-Crypt를 이용하여 암호화 볼륨 생성하기

"TrueCrypt" 프로젝트가 중단되면서 이를 대체할 암호화 모듈이 필요했습니다. 특히 파일 단위 암호화가 가능한 모듈이 필요했는데 - 파티션 단위나 디스크 단위는 너무 부담스럽잖아요 - 적당한 모듈을 검색하던 중 "DM-Crypt"를 이용하여 파일 단위 암호화 볼륨을 생성하고 사용하는 것에 대한 웹페이지를 찾게 되었습니다. http://hodol.kr/xe/note/9185

리눅스에서 암호화 암호 변경

우분투 설치시에 전체 암호화를 선택했다면 사용자 폴더를 별도로 암호화할 필요는 없다. 아무 설정도 안 건드리고 설치했다면 sda5가 암호화됐을 것이다. 다른 파티션이 암호화됐다면 처음에 부팅할 때 암호 해제할 때 sdx#이라고 나온다. 거기서 x# 부분을 봐두면 된다. x는 알파벹이고, #은 숫자이다.

암호 변경은 터미널을 열고 다음 명령어를 입력하여 한다.

sudo cryptsetup luksChangeKey /dev/sda5

암호화된 파티션이 sda5가 아닌 경우 그 파티션을 써준다.

위 명령어를 입력하면 여러분 계정의 비밀번호를 입력하라고 한다. 계정 비밀번호 입력 후 암호화에 사용된 패스프레이즈(passphrase, 암호 통과(pass)에 단어(word)보다 긴 구(phrase)를 사용할 때 쓰는 말)를 입력하라고 한다. 암호화 해제에 사용하는 비밀번호를 입력해주면 된다. 그 후 새로 사용할 패스프레이즈를 입력하라고 하는데 확인 과정없이 단 한 번의 입력만으로 패스프레이즈를 변경하므로 오타 하나 나면 모든 자료가 복구 불가능이 된다. 따라서 패스프레이즈 변경 전에 모든 자료를 뱈업(backup)해놓고 변경해야 한다.

아래는 참고 사이트들이다.

http://www.lampnode.com/linux/howto-manage-encrypted-disks-with-luks-on-linux/

https://help.ubuntu.com/community/EncryptedFilesystemHowto5

https://help.ubuntu.com/community/ResizeEncryptedPartitions

리눅스 업데이트시 /boot 여유 공간이 부족할 때

우분투데비안 계열 리눅스 업데이트를 하려는데 디스크 여유 공간이 충분하지 않다고 뜨면서 업데이트를 하려면 /boot 파티션에 몇 MB의 공간이 필요하다고 경고가 뜰 때는 다음과 같이 해주면 된다.

$ df -h /boot

위 명령어로 /boot에 남은 공간을 확인한다. 리눅스에서는 마우스로 긁으면 자동으로 복사되고, 터미널에서 휠을 누르면 자동으로 붙여넣기가 되니 그 기능을 사용하면 편하다. 또한 웬만한 파일 이름이나 디렠터리는 앞 글자만 치고 Tab 키를 누르면 다른 파일 이름과 겹치지 않는 부분까지는 자동 완성을 지원한다. 또한 터미널상에서 df나 apt-get 등 각 명령어의 추가 명령어(commands)와 옵션(options) 및 그들에 대한 설명을 보려면 df --help나 apt-get --help 이런식으로 입력하면 된다.

$ uname -r

현재 설치된 커널 정보를 확인한다.

$ dpkg -S vmlinuz

설치되어있는 vmlinuz 커널 목록을 뽑아본다.

$ dpkg -l "*3.13.0-15*" | grep ^ii

커널과 함께 설치된 패키지 목록을 뽑는다. 여기서는 3.13.0-15 기준이지만 여러분의 컴퓨터는 숫자가 다를 것이다. 가장 오래된 패키지부터 지우면 된다.

$ sudo apt-get purge linux-headers-3.13.0-44 linux-headers-3.13.0-44-generic linux-image-3.13.0-44-generic linux-image-extra-3.13.0-44-generic

위에서 나온 패키지 목록을 purge 명령어 뒤에 나열하여 모두 삭제한다. 세부적인 패키지들은 컴퓨터마다 다를 것이다.

$ df -h /boot

/boot에 확보된 공간이 업데이트를 설치하기에 충분한지 확인한다. 만약 충분하지 않으면 커널 및 그에 부속된 패키지들을 하나 더 삭제한다.


만약 패키지의 의존성 문제 때문에 기존 패키지가 삭제가 되지 않으면 아래와 같이 입력하여 의존성 문제를 해결한다.

$ sudo apt-get -f install
  • [Ubuntu] boot 용량 부족으로 업데이트가 안될 때

http://inia30.tistory.com/9

숨김 파일 및 폴더 보기

Ctrl + h 를 누르면 된다. 한 번 더 누르면 원래대로 돌아간다. 숨김 파일 및 폴더는 이름 앞에 점(.)이 붙어있다.

같이 보기

바깥 고리

Template:운영 체제