출처: http://www.ulug.or.kr/  대학 연합 리눅스 유저그룹 


[리눅스 초심자 스터디] 리눅스 기본 명령어 1




배경

대부분의 리눅스 강의는 GUI환경이 아닌 CLI환경에서 이루어집니다. 고로 기본적인 리눅스 명령어는 알고 있어야 이런 강의를 따라할 수 있습니다. 본격적으로 리눅스 명령어를 배우기 앞서 기본적인 배경을 알고 들어가겠습니다.

쉘 (Shell)

쉘(Shell)은 간단히 말해 운영체제(컴퓨터)와 사용자가 대화하는 방법입니다. 크게 CLI쉘과 GUI쉘이 있습니다.

  • CLI (Command Line Interface): bash, csh, ksh, zsh, cmd.exe(Windows 운영체제)
  • GUI (Graphic User Interface): X Window, Wayland, explorer.exe(Windows 운영체제)

CLI 쉘

대부분의 강의가 CLI로 설명되어 있는 이유는 리눅스를 CLI로 많이 사용하고 CLI쉘이 매우 강력하기 때문입니다. CLI 쉘의 장점을 살펴보면 숙련되었을때 매우 빠른 일처리를 할 수 있고, 대량의 명령을 내리기 편하며, 원격 접속등 다양한 환경에서도 무리 없을 정도의 가벼움, 많은 기능 등이 있습니다.

GNU Bash

많은 CLI 쉘이 있지만 가장 대중적으로 사용되는 CLI 쉘은 GNU Bash 입니다. GNU Bash는 이름에서도 알 수 있듯이 GNU Software이고 1989년 Brian Fox가 만들었습니다. 현재 대부분의 리눅스의 가장 기본적인 쉘입니다.

기본 명령어

터미널 접속

저번 스터디에서 Ubuntu 14.04 LTS 를 설치하셨다면 왼쪽 위 우분투로고를 클릭 -> Terminal 검색 -> 검은 창 아이콘 클릭 하시면 터미널 창이 뜹니다.

다음과 비슷하게 나타나면 성공한 것입니다.

터미널을 처음 시작하시면 사용자의 위치가 “홈폴더”에 있습니다. 홈폴더는 자신의 개인적인 파일들이 모두 모여져 있는 폴더라 생각하시면 됩니다.ㅣㄴ 

ls(list) 명령어

그러면 이제 파일과 폴더 목록을 출력하는 ls명령어를 입력해 봅니다.

폴더와 파일을 색깔로 구분해 주기도 합니다. 이제 숨겨진 파일까지 모두 출력해주는 ls -a (all)명령어를 입력해 봅니다.

파일과 폴더명 앞에 .이 있는 파일과 폴더들이 숨겨진 파일입니다.

여기서 주목할 폴더는 . 폴더와 .. 폴더입니다. .폴더는 현재 디렉토리 즉 현재 사용자가 머물고 있는 폴더를 가리키고, .. 폴더는 현재 사용자가 있는 디렉토리의 상위 디렉토리를 의미합니다. (현재 사용자 폴더가 들어있는 폴더)

그러면 이제 ls -l (long) 명령어를 입력해 봅니다.

파일과 폴더들의 상세 정보들이 출력됩니다. 첫번째 열은 권한, 두번째 열은 하드링크수, 세번째 열은 소유자, 네번째 열은 소유그룹, 다섯번째 열은 파일 크기, 여섯번째 열은 수정 시간, 마지막 열은 파일 이름을 나타냅니다. 이제 ls -al 명령어를 입력해 봅니다.

ls -al 명령어는 ls -a 명령어와 ls -l 명령어가 합해진 명령어입니다. 숨겨진 파일을 포함해서 폴더와 파일들의 상세 정보를 나타냅니다.

ls 명령어의 기능은 더 많이 있지만 이 정도만 가장 많이 사용됩니다.

cd (Change Directory)명령어

ls 명령어로 확인안 폴더 안으로 들어가 보겠습니다. cd (폴더이름) 하시면 됩니다.

다음과 같이 ulug@ULUG-Ubuntu: 뒤에 현재 디렉토리가 변경된 것을 확인하실 수 있습니다. 이제 cd ..명령어를 입력해 봅니다.

Desktop폴더의 상위디렉토리(..)로 빠져나오신 것을 확인 할 수 있습니다. 다음에는 cd / 명령어를 입력해 봅니다.

다음과 같이 모든 폴더와 파일들의 최상이 디렉토리인 (root)로 오신것을 확인할 수 있습니다. ls명령어를 이용해 어떤 폴더와 파일들이 있는지 확인하십시오.

이제 cd 명령어만 입력해 봅니다.

cd 명령어만 입력하시면 현재 사용자의 홈 폴더로 이동할 수 있습니다. 그 밖에 cd -를 입력하시면 방금 전까지 머물렀던 폴더로 이동할 수 있습니다.

루트 폴더로 되돌아 왔습니다. 참고로 ~ 표시는 홈폴더를 의미합니다. cd ~을 입력하셔도 홈 폴더로 되돌아 올 수 있습니다.

pwd ( print working directory) 명령어

작업을 하다보면 현재 작업 경로가 어디인지 헷갈릴 때가 있습니다 이럴 때 pwd 명령어를 입력하시면 현재 작업 경로를 쉽게 확인할 수 있습니다.

현재 작업 경로는 ulug계정의 홈폴더 입니다. (/home/ulug)

mkdir (make directory) 명령어

mkdir은 폴더를 생성하는 명령어입니다. mkdir Test 명령어를 입력해 봅니다.

Test 폴더가 생성된 것을 확인할 수 있습니다.

rm (remove) 명령어

rm 명령어는 파일이나 폴더를 제거하는 명령어입니다. rm Test 명령어를 입력해 봅니다.

rm 명령어는 옵션 없이 폴더를 지울 수 없고 파일만 지울 수 있습니다. rm -r Test (recursive) 명령어를 입력합니다. 폴더와 폴더 안의 모든 폴더와 파일을 제거합니다.

Test 폴더가 삭제됬음을 알 수 있습니다. 간혹 폴더나 파일을 삭제할 때 지울지 물어보는 경우가 있는데 이 때 -f (force) 옵션을 추가해 주면 묻지 않고 삭제합니다. -r 옵셥과 같이 사용하면 사용자에게 묻지 않고 삭제하는 폴더와 그 안의 모든 내용을 삭제합니다.

cp (copy) 명령어

cp 명령어는 파일이나 폴더를 복사하는 명령어입니다. rm 명령어와 같이 -r 과 -f 옵션을 추가할 수 있습니다. 기능은 rm에서와 같이 recursive와 force를 의미합니다. 다음 명령어를 따라해 cp 명령어를 익혀봅니다. 뒤에 경로를 추가하면 그 경로에 복사하게 됩니다.

mv (move) 명령어

mv 명령어는 파일이나 폴더를 옮기는 명령어입니다. 파일이 옮겨지면 원래 있던 폴더나 파일이 원래 위치에서 사라진 다는 점만 제외하면cp명령어와 같습니다. 단, mv명령어에는 -r옵션이 없고 폴더를 옮길 때에도 추가적인 옵션 없이 옮길 수 있습니다.

cat (concatenate)

cat 명령어는 다양하게 활용되는데 여기서는 간단하게 키보드의 입력을 파일로 만드는 정도만 하도록 하겠습니다. cat > a.txt라 입력하고 입력하신 내용을 모두 입력하신 뒤 Ctrl + C를 입력합니다.

a.txt 파일이 생성된 것을 확인할 수 있습니다. 이 파일의 내용을 확인하기 위해서는 cat < a.txt 명령을 입력합니다. 이때, <는 생략할 수 있습니다.

그 밖에 cat명령어는 파일과 파일을 잇는 용도, 파일을 분석하는 용도 등 다양한 용도가 있지만 여기서는 생략하도록 하겠습니다.

clear 명령어

지금까지 작업했던 내용으로 화면지 지저분할 때 스크롤을 내려 화면을 깨끗이 하는 명령어입니다. clear명령을 입력해 봅니다.

nano 편집기

cat명령어로 파일을 생성할 수 있지만 매우 불편합니다. 그래서 보통 파일을 만들거나 편집할 때는 텍스트 편집기를 이용합니다. vi 편집기 emacs 편집기 등 다양한 편집기가 있지만 여기서는 가장 쉽다는 nano 편집기를 사용하도록 하겠습니다. nano a.txt라 입력해 봅니다.

다음과 같은 화면이 나타납니다. nano 편집기는 처음 사용하는 사람도 쉽게 사용할 수 있도록 구성되어 있습니다. 하단의 nano 편집기에서 사용할 수 있는 기능들이 나타나 있는데 이주 ^표시는 Ctrl과 함께 눌르라는 설명입니다. 사용하기 너무 쉽기 때문에 설명은 생략하도록 하겠습니다.linux-basic-command-01

nano 편집기를 이용해 C언어 코드를 작성할 수도 있습니다. nano 편집기를 이용해 다음과 같은 코드를 입력해 보십시오.

확장자를 .c로 하면 nano 편집기에서 자동으로 C언어 코드라는 것을 인식하고 그에 맞는 문법 강조를 해줍니다.linux-basic-command-02

편집을 끝내면 저장하고 nano 편집기를 종료하십시오.

gcc 컴파일러

방금 작성한 코드를 컴파일 하여 실제로 실행 가능하게 해보도록 하겠습니다. 대부분의 리눅스 배포판들은 gcc 컴파일러를 기본적으로 제공하며 만약 설치되어 있지 않다면 각자 배포판에 맞는 방법으로 설치하셔야 합니다. gcc test.c 명령어를 입력하여 코드를 컴파일 해봅니다.

a.out 프로그램이 생성된 것을 확인할 수 있습니다. 이를 실행하려면 ./a.out을 입력하시면 됩니다. (.는 현재 디렉토리를 의미하므로 현재 디렉토리의 a,out 프로그램을 실행한다는 의미입니다.)

프로그램이 잘 실행됬음을 알 수 있습니다. gcc를 이용해 컴파일 할 때 -o옵션과 파일 이름을 추가해 주면 원하는 파일 이름으로 컴파일 할 수 있습니다.

프로그램이 정상적으로 생성되고 실행되는 것을 확인 할 수 있습니다.

리눅스 환경에서는 실행 파일에 꼭 확장자를 붙일 필요는 없습니다. Winodws 환경의 경우 실행 파일의 경우 .exe확장자를 붙이지만 리눅스에서는 이 작업이 필요하지 않습니다.

apt-get install

우분투 리눅스의 경우 프로그램을 설치하고 삭제할 때 APT (Advanced Packaging Tool)을 사용합니다. 자세한 내용은 생략하고 여기서는 어떻게 프로그램을 추가하는지만 설명하겠습니다. apt-get install 명령을 이용하면 프로그램을 설치할 수 있습니다.

프로그램을 설치하는 작업은 시스템에 중대한 변경을 하므로 일반적인 사용자 권한으로는 할 수 없습니다. 그래서 일시적으로 사용자 권한을 root로 상승시켜주는 sudo명령어를 이용합니다.

종합해서 sudo apt-get install sl 명령어를 입력하면 sl이라는 프로그램을 설치할 수 있습니다.

sl고 같은 간단한 프로그램은 다른 프로그램이 필요하지 않지만 다른 프로그램들은 프로그램이 제대로 작동하려면 먼저 설치해야 할 프로그램들이 있습니다. apt-get install 명령은 그 프로그램들을 알아서 설치해 줍니다. 이 때는 sl과 달리 이 프로그램을 설치할 것인지 물어봅니다.

프로그램이 다 설치되었다면 sl 명령어를 이용해 프로그램을 실행시켜 봅니다.

다음과 같이 기차가 지나가면 제대로 설치되었습니다.linux-basic-command-03

man (manual 명령어)

프로그램을 처음 설치했을 때 그 프로그램이 어떤 기능을 하는지 정확히 모르는 경우가 있습니다. 이때 man (프로그램)은 그 프로그램의 설명서를 표시해 줍니다. man sl을 입력해 봅니다.

sl프로그램의 설명서 입니다. 만약 메뉴얼이 길다면 방향키나 Page Up/Down으로 위아래로 움직일 수 있습니다.linux-basic-command-04

메뉴얼을 보면 -a 옵션을 입력하면 사람들이 help라 외치고 -l 옵션은 작은 기차, -F 옵션은 기차가 날아가는 옵션입니다. -e 옵션은 Ctrl+C 로 취소할 수 있는 옵션입니다. 각 옵션을 테스트 해봅니다.

지금까지 배운 명령어들을 man명령어를 통해 메뉴얼을 살펴봅니다.


출처: http://www.ulug.or.kr/  대학 연합 리눅스 유저그룹 

Posted by Name_null