Section 1.4: 기본적인 리눅스의 유틸리티들

Linux 는 다양한 작업을 수행할 수 있는 많은 명령어들을 제공하고 있으며, 대부분의 명령어들은 직관적이고 이해하기 쉽게 구성되어 있다.

Linux 에서 도움 얻기

명령어 사용 용도
man <name> <name> 에 대한 사용자 설명서를 확인한다.
man <section> <name> <name> 에 대한 사용자 설명서 중 주어진 section 에 대한 부분을 확인한다.
man -k <editor> 사용자 설명서 내용 중 <editor> 키워드를 포함하는 모든 소프트웨어의 목록을 출력한다.
man -K <keyword> <keyword> 를 포함하는 사용자 설명서 페이지들의 목록을 출력한다.
apropos <editor> 모든 어플리케이션들 중에서 한줄 설명이 editor와 매치되는 항목을 출력한다. 특정 어플리케이션의 이름이 잘 기억나지 않을 때, 이 명령어를 이용할 수 있다.
help Bash 쉘 상에서 입력 시, 사용 가능한 모든 bash 명령어를 표시해 줄 것이다.
help <name> Bash 쉘 상에서 입력 시, <name> 에 해당하는 bash 명령어에 대한 정보를 표시해 줄 것이다.
info <name> <name> 에 해당하는 모든 정보를 확인한다.
dpkg -l Debian 기반의 시스템인 경우, 설치된 모든 패키지들의 목록을 출력한다.
dpkg -L packageName Debian 기반의 시스템인 경우, 주어진 패키지에 대해 설치된 파일들을 나열하고 상세 경로 정보를 출력한다.
dpkg -l | grep -i <edit> 대소문자를 가리지 않고 <edit> 문자열을 포함하는 모든 설치된 .deb 패키지들을 반환한다.
less /var/lib/dpkg/available 사용 가능한 (available) 모든 패키지들의 설명을 반환한다.
whatis vim vim 에 대한 한 줄 설명을 출력한다.
<command-name> --help <command-name> 에 대한 사용법 정보를 표시한다. 때때로는 command -h 명령어로도 동작시킬 수 있지만, 모든 명령어가 이를 지원하는 것은 아니다.

역주: 위 테이블 내용은 원문 그대로 번역을 하였으나, man 명령어 설명서에는 -kapropos 와 동일하다고 나와 있습니다. https://www.man7.org/linux/man-pages/man1/man.1.html

Linux 환경에서의 사용자 신원 확인 및 사용자 정보 관련

명령어 사용 용도
hostname 시스템의 hostname 을 표시한다.
hostname -f 시스템의 Fully Qualified Domain Name (FQDN) 을 표시한다.
passwd 현재 사용자의 암호를 변경한다.
whoami 터미널에 로그인한 사용자 이름을 출력한다.
who 현재 로그인한 상태인 사용자들의 목록을 나열한다.
w 현재 시스템의 시간, 가동 기간, 시스템에 로그인한 사용자들의 목록과 기타 사용자 정보들을 출력하여 준다.
last 가장 마지막으로 시스템을 사용한 사용자를 표시한다.
last root 가장 마지막으로 root 사용자가 로그인했던 시간을 출력한다.
lastb 시스템으로의 정상적이지 않은 모든 로그인 시도를 출력한다.
chmod 파일이나 디렉토리의 읽기 / 쓰기 /실행 권한을 변경한다.

프로세스 관련 정보

명령어 사용 용도
top 모든 프로세스들을 시스템 자원 사용량 순으로 정렬하여 나열하며, 일정 간격으로 프로세스들 정보를 업데이트하여 출력해 준다 (기본적으로 3 초 간격). q 키를 입력하여 top 을 종료할 수 있다.
ps 현재 쉘 세션에서 실행 중인 프로세스들을 나열한다.
ps -u root root 가 실행중인 모든 프로세스들과 명령어들을 나열한다.
ps aux 현재 시스템의 모든 사용자들의 프로세스들의 전체 목록을 출력한다.
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 1.3: Hello World 출력하기

터미널에 다음과 같은 코드를 타이핑한 후 엔터키를 입력한다 :

echo "Hello World"

위 명령어는 다음과 같은 결과를 출력해 줄 것이다:

Hello World
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 1.2: 파일 관리 명령어들

Linux 는 현재 디렉토리와 부모 디렉토리를 나타내기 위한 위한 몇가지의 관례가 있는데, 이는 초보자에게는 조금 혼란스러울 수 있다.

어떤 상황이건 Linux 에서 터미널을 사용중이라면, "현재 작업 디렉토리 (current working directory)" 라는 곳에 위치한 상태일 것이다.

많은 경우 사용자의 커맨드 프롬프트는 작업 디렉토리 전체 혹은 마지막 일부를 표시해 줄 것이다. 사용자의 프롬프트가 표시되는 방식은 다음 몇가지 중에 하나와 유사할 수 있다:

user@host ~/somedir $ user@host somedir $ user@host /home/user/somedir $

위 예제에서는 사용자의 작업 디렉토리가 /home/user/somedir 임을 나타내고 있다.

Linux 에서 .. 는 부모 디렉토리를 나타내며, . 는 현재 디렉토리를 나타낸다.

따라서, 현재 다렉토리가 /home/user/somedir 인 상태라고 한다면, cd ../somedir 명령어는 작업 디렉토리의 변경을 야기하지 않을 것이다.

아래의 테이블에는 파일 관리에 자주 사용되는 명령어들의 목록이 소개되어 있다.

디렉토리 이동 관련 명령어 용도
pwd 현재 작업 디렉토리의 전체 경로 (path) 를 얻어온다.
cd - 가장 마지막으로 작업중이던 디렉토리로 되돌아간다.
cd ~ 또는 cd 사용자의 home 디렉토리로 이동한다.
cd .. 현재 디렉토리의 부모 디렉토리로 이동한다 (cd.. 사이에 공백이 있음에 유의하라)

디렉토리 내의 파일 표시 관련 명령어 용도
ls -l 현재 디렉토리 내의 파일들과 디렉토리들의 목록을 긴 (테이블) 형식으로 출력한다 (ls 사용시에는 가독성을 위해 -l 옵션을 이용하는 것을 추천한다).
ls -ld dir-name dir-name 이라는 이름의 디렉토리에 대해 해당 디렉토리 내의 내용물이 아닌 디렉토리 자체에 대한 정보를 출력한다.
ls -a 숨겨진 파일를 포함한 모든 파일들의 목록을 나열한다 (. 로 시작하는 이름의 파일들은 Linux 에서 숨겨진 파일로 인식된다).
ls -F 파일 이름 마지막에 각 파일의 종류에 따라 기호 (symbol) 를 덧붙인다. (* 는 실행 파일을, / 는 디렉토리를, @ 는 심볼릭 링크를, = 는 소켓을, | 는 named pipe 를, > 는 door 를 나타낸다).
ls -lt 파일들을 마지막 수정된 시간 기준으로 정렬하여 가장 최근 수정된 파일을 가장 위에 보여주는 순서로 출력한다 (-l 옵션은 가독성이 더 뛰어난 긴 형식의 출력을 지원함을 기억하라).
ls -lh 파일들의 크기를 사람들이 파악하기 쉬운 형태로 출력한다.
ls -lR 모든 서브디렉토리의 내용까지 재귀적으로 출력한다.
tree 현재 디렉토리부터 시작하는 파일 시스템상의 tree 정보를 생성하여 출력한다.

파일과 디렉토리에 대한 생석, 복사 및 삭제 명령어 용도
cp -p source destination 파일을 source 로부터 destination 으로 복사한다. -p 는 보존 (preservation) 옵션임을 나타낸다. 해당 옵션은 파일 복사시에 원본 파일의 소유자, timestamp, 그룹, 권한 등의 속성을 유지할 수 있도록 한다.
cp -R source_dir destination_dir source 디렉토리를 지정된 destination 에 재귀적으로 복사한다.
mv file1 file2 Linux 에서는 rename 에 해당하는 명령어가 존재하지 않는다. 따라서 mv 를 통해 file1 을 file2 로 이동시키거나 이름을 변경할 수 있다.
rm -i filename 모든 파일들에 대해 삭제 전 사용자 확인을 요청한다. Linux 커맨드라인 사용에 익숙치 않은 사용자라면 항상 rm -i 를 사용하는 것이 좋을 것이다. 여러 개의 파일에 대해서도 동작한다.
rm -R dir-name dir-name 디렉토리를 재귀적으로 삭제한다.
rm -rf dir-name dir-name 디렉토리를 재귀적으로 삭제하되, 존재하지 않는 파일에 대한 에러럴 무시하고 어떠한 확인 프롬프트도 띄우지 않는다. 이 명령어를 사용할 시에는 주의가 필요하다! 명령 대상으로 복수 개의 디렉토리를 지정할 수도 있다.
rmdir dir-name dir-name 디렉토리를 삭제한다. 이 명령어는 비어있는 디렉토리에 대해서만 동작한다.
mkdir dir-name dir-name 라는 이름의 디렉토리를 생성한다.
mkdir -p dir-name/dir-name 디렉토리를 계층 구조대로 생성한다. 생성하고자 하는 디렉토리의 부모 디렉토리가 존재하지 않을 경우 부모 디렉토리까지 같이 생성한다. 명령 대상으로 복수 개의 디렉토리를 지정할 수도 있다.
touch filename filename 이라는 이름의 파일이 존재하지 않는 경우 파일을 새로 생성한다. 만약 이미 존재하는 파일이라면 해당 파일의 timestamp 를 현재 시간으로 변경한다.

파일/디렉토리 권한 및 그룹 설정 관련 명령어 용도
chmod <specification> filename 파일 권한을 변경한다. 명세 (specification) = u 사용자, g 그룹, o 기타, + 권한 추가, - 제거, r 읽기, w 쓰기,x 실행.
chmod -R <specification> dir-name 디렉토리의 권한을 재귀적으로 변경한다. 특정 디렉토리와 그 디렉토리 내의 모든 파일 및 디렉토리들의 권한을 변경하고자 한다면, 이 명령어를 사용한다.
chmod go=+r myfile 파일 소유자와 그룹에 대해 읽기 권한을 추가한다.
chmod a +rwx myfile 모든 사용자들에게 myfile 에 대한 읽기, 쓰기 및 실행 권한을 부여한다.
chmod go -r myfile 그룹과 기타 사용자들에게서 읽기 권한을 제거한다.
chown owner1 filename 파일의 소유권을 owner1 에게 이양한다.
chgrp grp_owner filename filename 파일에 대한 그룹 소유권을 grp_owner 에게 이양한다.
chgrp -R grp_owner dir-name dir-name 디렉토리에 대한 그룹 소유권을 grp_owner 에게 재귀적으포 이양한다. 특정 디렉토리와 그 디렉토리 내의 모든 파일 및 디렉토리들의 소유권을 이양하고자 한다면, 이 명령어를 사용한다.
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

Section 1.1: 유용한 단축키들

터미널 사용하기

이 문서에서 소개된 예제들은 사용자가 POSIX 호환의 쉘 (bash, sh, zsh, ksh 등과 같은) 을 사용중이라는 가정하에 설명하고 있다.

GNU/Linux 가 제공하는 기능 중의 상당 부분은 터미널을 통해 이용할 수 있다. Linux 대부분의 배포판들은 사용자들이 자신의 데스크탑 환경에서 쉘을 사용할 수 있게 하는 터미널 에뮬레이터를 포함하고 있다. 쉘이라고 함은, 사용자가 입력한 명령어를 실행하여 주는 커맨드 라인 해석 프로그램 (interpreter) 를 말한다. Bash (Bourne Again SHell) 는 많은 Linux 배포판에서 공통적으로 기본 쉘로 사용되며, macOS 에서 역시 기본 쉘로 선택되어 있다.

아래에 소개된 단축키들은 사용자의 Bash 가 emacs 형식의 키 조합 (keybinding) 을 사용하게 설정되어 있는 경우 (기본 설정에 해당한다) 정상 작동할 것이다:

새로운 터미널 열기

  • Ctrl + Alt + T 혹은 Super + T

커서 이동하기

  • Ctrl + A 현재 입력중인 라인의 시작 위치로 이동한다.
  • Ctrl + E 현재 입력중인 라인의 마지막 위치로 이동한다.
  • Ctrl + XX 현재 입력중인 위치와 라인의 시작 위치를 번갈아 이동한다.
  • Alt + F 현재 입력중인 라인에서 한 단어를 건너뛰어 이동한다.
  • Alt + B 현재 입력중인 라인에서 앞쪽으로 한 단어를 건너뛰어 이동한다.
  • Ctrl + F 현재 입력중인 라인에서 한 글자 앞으로 이동한다.
  • Ctrl + B 현재 입력중인 라인에서 한 글자 뒤로 이동한다.

텍스트 조작

  • Ctrl + U 현재 입력중인 라인의 현재 위치부터 라인의 처음까지를 잘라내어 클립보드에 저장한다. 만약 현재 위치가 라인의 마지막이라면, 전체 라인을 잘라내기한다.
  • Ctrl + K 현재 입력중인 라인의 현재 위치부터 라인의 끝까지를 잘라내어 클립보드에 저장한다. 만약 현재 위치가 라인의 처음이라면, 전체 라인을 잘라내기한다.
  • Ctrl + W 현재 커서 앞에 위치한 단어를 삭제하고, 클립보드에 추가한다.
  • Ctrl + Y 최근에 잘라내기를 수행한 클립보드의 가장 마지막 내용을 붙여넣기한다 (현재 커서 위치에서 수행한 마지막 삭제 작업을 되돌리기한다).
  • Alt + T 현 커서 앞의 마지막 두개의 단어를 바꾼다.
  • Alt + L 현재 커서에서 단어의 마지막까지를 소문자로 변경한다.
  • Alt + U 현재 커서에서 단어의 마지막까지를 대문자로 변경한다.
  • Alt + C 현재 단어의 첫 글자만을 대문자로 변경한 후 단어의 마지막으로 이동한다.
  • Alt + D 현재 커서로부터 단어의 마지막까지를 삭제한다 (커서가 단어 처음 위치에 있는 경우 전체 단어를 삭제한다).
  • Alt + . 이전 명령어에 사용된 마지막 단어를 출력한다.
  • Ctrl + T 커서 앞에 위치한 두 글자의 위치를 바꾼다.

히스토리 접근하기

  • Ctrl + R 이전에 사용했던 명령어들을 검색할 수 있게 해준다.
  • Ctrl + G 명령어 실행 없이 히스토리 검색 모드를 종료한다.
  • Ctrl + J 현재 검색된 명령어를 바로 실행하지 않고 커맨드라인에 복사하여 실제 실행 전에 수정을 할 수 있도록 한다.
  • Alt + R 히스토리에서 추출한 명령어에 수정을 가한 경우, 해당 수정을 되돌린다.
  • Ctrl + P 마지막으로 실행한 명령어를 표시한다. 달리 표현하면, 명령어 히스토리를 반대 방향으로 하나씩 탐색한다 (위 방향 화살표와 유사하다).
  • Ctrl + N 다음으로 실행한 명령어를 표시한다. 달리 표현하면, 명령어 히스토리를 정방향으로 하나씩 탐색한다 (아래 방향 화살표와 유사하다).

터미널 조작

  • Ctrl + L 화면 전체 내용을 지운다. clear 명령을 입력하는 것과 유사한 효과를 보인다.
  • Ctrl + S 화면상으로의 모든 출력을 중지시킨다. 이는 수많은 장문의 결과를 출력하는 명령어를 실행할 때에 유용하다. 그러나 이 명령이 실행된 명령어 자체를 중지시키지는 않는다.
  • Ctrl + Q Ctrl+S 를 통해 중지된 화면상으로의 출력을 재개한다.
  • Ctrl + C 현재 수행중인 작업을 종료시키고 프롬프트로 복귀한다.
  • Ctrl + D 현재 쉘 세션에서 로그아웃을 수행한다. 이는 exitlogout 명령어와 유사하다. 어떤 명령어 상에서는, 파일의 마지막에 도달했다는 것을 알리기 위해 End of File 신호 (signal) 로 동작한다.
  • Ctrl + Z 현재 수행중인 foreground 프로세스를 일시정지 (pause) 시키고, 쉴 프롬프트로 복귀한다. 그런 이후, bg 명령어를 사용하면 해당 프로세스를 background 에서 실행되도록 설정할 수 있다. 다시 foreground 로 프로세스를 가져오려면, fg 명령어를 사용한다. 모든 background 프로세스들의 목록을 확인하고 싶다면, jobs 명령어를 사용한다.
  • Tab 파일과 디렉토리 이름을 자동 완성시킨다.
  • Tab Tab 입력된 문자들이 특정 파일이나 디렉토리 이름과 단독으로 매칭되지 않은 경우, 모든 가능한 대상을 표시한다.

특수 문자들

  • Ctrl + H Backspace 와 동일하다.
  • Ctrl + J Return 문자와 동일하다 (Line Feed 에 해당한다).
  • Ctrl + M Return 문자와 동일하다 (Carriage Return 에 해당한다).
  • Ctrl + I Tab 과 동일하다.
  • Ctrl + G Bell 문자.
  • Ctrl + @ Null 문자.
  • Esc "Deadkey" 로서 Alt 변경자에 상응한다 .

터미널 종료하기

  • Ctrl + Shift + W 터미널 탭 (tab) 을 닫는다.
  • Ctrl + Shift + Q 터미널 전체를 닫는다.

다른 선택사항으로, set -o vi 명령을 이용하여 bash 에서 vi 키 조합을 사용하도록 변경할 수 있다. set -o emacs 를 사용하면 emacs 키 조합 환경으로 다시 돌아갈 수 있다.

본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

+ Recent posts