공개SW 기술팁



itworld

글: Alex Campbell | PCWorld / 2016-11-09



필자는 애니메이션 신세기 에반게리온의 열렬한 팬이다. 이 애니메이션에 나오는 대사 중에서 "인간은 어둠을 두려워하여 그 가장자리에서 불로 어둠을 깎아낸다"는 대사가 기억에 남는다. 리눅스 세계에 처음 입문하는 초보자에게 터미널의 검은 화면은 깊고 불길한 어둠처럼 느껴질 수 있고, 그래서인지 가능하기만 하면 부리나케 GUI로 그 화면을 대체한다. 하지만 터미널 화면은 그렇게 무서운 것이 아니다.

그래픽 사용자 인터페이스는 현대의 컴퓨팅을 더 즐겁게, 더 사용하기 쉽게 해준다. 사실 터미널의 텍스트 모드 브라우저에서 아마존에 접속해 물건을 주문한다는 것은 열정이 지나쳐 자학이라고 할 만하다. 사람들은 GUI와 그래픽 브라우저를 좋아하지만 때로는 명령줄의 세계에 들어갈 필요도 있다. 새로운 도구가 모두 그렇듯이 기본 사항 몇 가지만 알면 문제가 발생해 GUI가 시작되지 않을 때, 또는 유지 보수 작업을 해야 할 때도 당황하지 않고 침착함을 유지할 수 있다.

리눅스 사용자로서 가장 먼저 익혀야 할 5가지 명령을 보자.

1. sudo
확신과 존중, 두 가지 마음가짐을 갖고 사용해야 할 명령을 하나 꼽자면 sudo다. sudo의 기능은 간단하다. 뒤따르는 모든 명령을 슈퍼유저(또는 루트) 권한으로 실행한다. 예를 들어 시스템 업데이트 도는 구성 파일 변경과 같은 작업을 할 때 sudo를 사용해 명령을 실행해야 한다.


/mnt는 루트 소유이므로 /mnt에 디렉토리를 만들려면 sudo를 사용해야 한다.

또한 sudo는 시스템을 파괴하거나 다른 사용자의 개인 정보를 침해할 수 있는 힘도 부여한다. 그래서 시스템에서 처음 sudo를 사용할 때, 다음과 같은 일종의 설교가 화면에 표시되는 것이다.

로컬 시스템 관리자에게서 이미 설교를 들었을 것입니다. 보통 그 내용은 다음과 같은 세 가지로 요약할 수 있습니다.

1) 다른 사용자의 프라이버시를 존중하십시오.
2) 입력하기 전에 생각하십시오.
3) 큰 힘에는 큰 책임이 따릅니다.


사용자 자신의 home 디렉토리를 벗어나서 파일을 편집하거나 수정해야 하는 경우 대부분은 sudo를 사용해야 한다. sudo를 사용하려면 사용자가 sudoers 파일에 있거나 슈퍼유저 그룹(보통 "wheel" 또는 "sudo")에 속해야 한다. 우분투는 sudoers 파일에 대한 유용한 가이드를 제공한다. 


일반적인 sudoers 파일로, 루트 접근이 허용되는 그룹이 지정돼 있다. 암호 없이 사용자나 그룹에게 sudo 접근을 허용하는 것은 매우 현명치 못한 처사다.

sudo는 그 힘이 큰 만큼 명령의 기능을 모르는 상태에서 명령 앞에 함부로 sudo를 사용해서는 안 된다. 온라인에는 초보자에게 sudo rm –R /을 입력하라고 장난치는 사람들이 있다(하지 말 것). 이 명령은 시스템의 모든 파일을 재귀적으로 삭제하는데, 추가 확인 절차도 없이 그 즉시 삭제를 실행한다. 설교 파일에도 나오지만 sudo를 사용할 때는 "입력하기 전에 생각해야 한다".


2. 패키지 관리자 도구(yum, apt, 또는 pacman)
sudo를 사용하는 가장 흔한 이유는 패키지 관리자를 통해 PC에서 프로그램을 추가 또는 제거하기 위해서다. 여기서 언급하는 세 가지 주요 패키지 관리자는 각각 명령 인수와 구문 측면에서 상이하지만 세 가지 기본적인 동작을 수행한다는 면에서는 동일하다. 즉, 패키지 설치, 패키지 제거, 시스템의 모든 패키지 업그레이드다. (참고: 루트로 로그인하지 않은 경우 이러한 명령 앞에 sudo를 사용해야 한다.)


아치(Arch) 리눅스에서 pacman을 사용한 시스템 업그레이드. pacman 명령 앞에 sudo를 사용했음을 볼 수 있다.

yum(레드햇/페도라/센트OS)
패키지 설치: yum install <패키지>
패키지 제거: yum remove <패키지>
시스템 업그레이드: yum update

apt(데비안/우분투/민트)
패키지 설치: apt install <패키지>
패키지 제거: apt remove <패키지>
시스템 업그레이드: apt update 또는 apt upgrade

pacman(아치/만자로)
패키지 설치: pacman -S <패키지>
패키지 제거: pacman -R <패키지>
시스템 업그레이드: pacman -Syu

각 패키지 관리자에는 여기 나열한 것보다 훨씬 더 많은 기능이 있지만 이 세 가지가 가장 많이 사용되는 기능이다. 어느 리눅스 배포판을 선택하든 패키지 관리자를 익히고 관련 문서의 위치도 알아두어야 한다.


3. systemctl(Systemd)
아주 오랫동안 데몬(daemon)이라는 백그라운드 프로그램은 initscript라는 일련의 스크립트를 사용해 시작됐다. 그러나 초보자에게 initscript는 읽고 해석하기도, 변경하기도 어려웠다. 비교적 최근 Systemd라는 서비스 관리 애플리케이션이 initscript를 대체했다. 최신 리눅스 배포판을 사용한다면 필요한 서비스를 시작하는 역할은 Systemd가 맡고 있을 가능성이 높다.


NetworkManager 서비스 비활성화와 부팅 시 실행되도록 재활성화

Systemd에 대한 가장 큰 불만 중 하나는 할 수 있는 일이 너무 많다는 것이다. (유닉스 프로그램은 보통 한 가지 일을 하되, 아주 잘 하는 것을 목표로 만들어진다.) 어쨌든 systemd에서 기억해야 할 키워드는 5가지다.

서비스를 시작하려면 start 키워드를 사용하면 된다.

systemctl start <서비스 이름>

서비스가 실패하거나 구성이 변경된 경우 재시작하는 방법도 비슷하다.

systemctl restart <서비스 이름>

서비스를 중지하려면 stop을 사용한다.

systemctl stop <서비스 이름>

부팅 시 서비스를 활성화하려면 enable 키워드를 사용하면 된다.

systemctl enable <서비스 이름>

마지막으로, 서비스를 비활성화해서 부팅 시 시작되지 않도록 할 수 있다.

systemctl disable <서비스 이름>

원문보기: 
http://www.itworld.co.kr/news/101988?page=0,1#csidx1a4f9d4a9cc7dc495a3f096a52e8c64 


4. Is
Is 명령은 단순명료하지만 생각보다 유용한 명령이다. Is 명령은 지정한 경로의 파일과 폴더를 나열한다. 기본적으로 현재 작업 디렉토리(보통 사용자의 home 디렉토리)의 파일과 폴더를 나열하지만 주어진 경로의 내용도 찾아볼 수 있다.


Is에는 여러 가지 옵션이 있지만 가장 자주 사용되는 옵션은 파일 권한과 소유권을 보여주는 -l이다.

윈도우 dir 명령의 리눅스 버전이라고 할 수 있는 이 명령의 어떤 점이 그렇게 유용할까? 일단 하위 디렉토리에서 구성 파일을 찾을 수 있다. GUI가 없는 환경에서 파일 이름을 검색할 때도 유용하다. 리눅스 파일 이름과 명령은 대/소문자를 구분하므로 정확한 철자를 알 수 있다면 여러 가지로 도움이 된다. 간단히 말해 시스템 여기저기를 살펴보는 데 사용할 수 있는 정찰대라고 생각하면 된다.


5. man
가끔은 도움이 필요하다. 그리고 인터넷에 연결되지 않은 상태에서 도움이 필요한 경우도 있다. man은 이렇게 암울한 상황에서 도움이 되는 명령이다.

man 명령은 manual(매뉴얼)의 줄임말이며 컴퓨터에 저장된 온라인 명령 문서에 접근할 수 있게 해준다. chmod 명령의 기능이 생각이 나지 않을 때 터미널에 man chmod를 입력하면 명령에 대한 정보가 표시된다. 화살표 키 또는 PgUp/PgDn 키를 사용해서 man 페이지를 위아래로 스크롤할 수 있다. 다 읽고 나면 Q를 눌러 나오면 된다.


Is의 매뉴얼 페이지

man은 인터넷에 연결할 수 없을 때 도움이 될 수 있지만 실제 온라인 환경에서는 구글이 훨씬 더 좋은 리소스가 된다. chmod와 같은 명령을 구글에서 검색할 때 얻는 처음 몇 개의 결과는 man 페이지의 웹 버전이라고 보면 된다.

정리
배워야 할 명령은 이것 외에도 아주 많지만 일단 이정도로 텍스트 모드 명령의 세계에 살짝 발을 들여놓기만 해도 시스템 이해도를 높이고 두려움도 줄일 수 있다. 그래픽 데스크톱에서도 이런저런 작업을 할 수 있는 방법이 아주 많지만 시스템을 업데이트하는 가장 빠른 방법은 여전히 콘솔 명령이다.

또한 콘솔 명령은 뭔가 잘못될 때 오류를 표시한다는 부가적인 이점도 있다. 예를 들어 업데이트가 실패할 경우 패키지에 문제가 있는지 아니면 단순히 인터넷 연결이 끊어진 것인지 등을 간단히 알 수 있다.

약간만 연습하면 누구나 자신감을 갖고 터미널 명령을 다루고 sudo 명령도 능숙하게 활용할 수 있게 된다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.itworld.co.kr/news/101988]

조회 수 :
3056
등록일 :
2016.11.10
14:47:01 (*.162.249.76)
List of Articles
번호 제목
자료년도
날짜 조회 수
7 리눅스에서 SD 카드를 포맷하는 방법 2017  2017-03-03 2919
» [리눅스] 모든 리눅스 초보자가 알아야 할 5가지 터미널 명령 2016  2016-11-10 3056
5 [우분투] 모바일과의 연계를 생각한 우분투 13.04 2013  2013-07-19 10120
4 [우분투] 우분투 13.04는 어떻게 달라졌나? 2013  2013-07-19 11562
3 [커널] 알아봅시다, `커널(Kernel)` 2013  2013-05-17 10687
2 [리눅스] 리눅스 애플리케이션 활용, 우분투 최대한 활용하기 2009  2013-01-24 12306
1 [리눅스 임베디드보드에서 영어학습기 구현방법] (1) 임베디드보드 구조 2009  2012-08-24 21348


사이트하단 로고, 하단메뉴, 트위터 바로가기

퀵메뉴모음
퀵메뉴열기
퀵메뉴닫기