리눅스 기초 파일 조작

LinuxBeginner
지금 연습하기

소개

첫 번째 리눅스 실습에 오신 것을 환영합니다! 이 입문 과정은 리눅스를 한 번도 사용해 본 적이 없는 완전 초보자를 위해 설계되었습니다. 리눅스는 스마트폰부터 슈퍼컴퓨터에 이르기까지 모든 기기를 구동하는 무료 오픈 소스 운영 체제입니다. 윈도우나 macOS 와 달리, 리눅스는 사용자가 커맨드라인 인터페이스를 통해 시스템과 직접 상호작용할 수 있게 해주어 더 높은 제어권과 유연성을 제공합니다.

이 실습에서는 터미널이라고 불리는 커맨드라인 인터페이스를 통해 리눅스 사용의 기초를 배우게 됩니다. 생소한 용어에 겁먹을 필요 없습니다. 각 단계를 차근차근 안내하며, 무엇을 하고 있는지와 그것이 왜 중요한지 설명해 드릴 것입니다.

이 과정은 학습과 연습을 돕기 위해 단계별 지침을 제공하는 가이드형 실습입니다. 각 단계를 완료하고 실무 경험을 쌓으려면 지침을 주의 깊게 따르세요. 통계에 따르면 이 실습은 중급 난이도이며, 완수율은 78%입니다. 학습자들로부터 99%의 긍정적인 평가를 받았습니다.

터미널 이해 및 실행하기

커맨드라인 또는 쉘이라고도 불리는 터미널은 컴퓨터와 상호작용하기 위한 텍스트 기반 인터페이스입니다. 아이콘이나 메뉴를 클릭하는 대신, 명령어를 입력하여 파일 생성, 디렉토리 이동, 프로그램 실행과 같은 작업을 수행합니다.

Terminal interface screenshot

이제 터미널을 열어보겠습니다:

  1. 바탕화면에서 "Terminal" 또는 "XFCE Terminal"이라고 적힌 아이콘을 찾으세요. 작은 검은색 화면 모양일 것입니다.
  2. 이 아이콘을 더블 클릭하여 터미널을 엽니다.

이 창의 마지막 줄은 "프롬프트 (prompt)"라고 불립니다. 보통 $ 기호로 끝나며, 바로 이곳에 명령어를 입력하게 됩니다.

LabEx 에서 터미널을 여는 또 다른 방법은 상단 메뉴 바에서 Terminal 탭을 선택하는 것입니다.

Terminal tab in menu

바탕화면의 터미널 아이콘과 메뉴의 터미널 탭 모두 동일한 실습 환경에 접속합니다. 본인에게 더 편한 방법을 선택하세요.

파일 시스템 탐색하기

개인용 컴퓨터에 폴더와 파일이 있는 것처럼, 리눅스도 비슷한 방식으로 정보를 조직합니다. 리눅스에서는 폴더를 "디렉토리"라고 부릅니다. 터미널을 사용하여 이러한 디렉토리 사이를 이동하는 방법을 배워봅시다.

  1. 먼저, 현재 위치가 어디인지 확인해 보겠습니다. 다음 명령어를 입력하고 Enter 를 누르세요:
pwd

pwd는 "print working directory"의 약자로, 현재 머물고 있는 디렉토리를 알려줍니다.

Terminal showing current directory

/home/labex/project와 같은 경로가 보일 것입니다. 이것이 파일 시스템 내에서의 현재 위치입니다.

팁: 중복을 피하기 위해 이후 단계부터는 실행 화면 스크린샷이 제공되지 않습니다. 지침에 따라 실습을 진행해 주세요.

  1. 이제 홈 디렉토리로 이동해 보겠습니다. 다음과 같이 입력하세요:
cd ~

cd는 "change directory"를 의미하며, ~는 항상 홈 디렉토리를 나타내는 약어입니다.

참고: 특정 국가의 키보드 레이아웃 차이로 인해 바탕화면 터미널에서 ~ 기호를 입력할 수 없는 경우, 가상 머신 인터페이스 왼쪽 상단에 있는 독립형 Terminal 탭으로 전환하여 시도해 보세요.

  1. 위치를 다시 확인해 봅시다:
pwd

이제 /home/labex가 보일 것입니다. 이곳이 바로 여러분의 홈 디렉토리입니다!

  1. 다시 프로젝트 디렉토리로 돌아가려면 다음과 같이 입력하세요:
cd project
  1. 이제 이 디렉토리에 무엇이 들어있는지 확인해 봅시다:
ls

ls는 "list"의 약자로, 현재 위치에 있는 모든 파일과 디렉토리를 보여줍니다.

리눅스에서 기억해야 할 점:

  • /는 파일 시스템의 최상위 루트입니다 (윈도우의 C: 드라이브와 유사).
  • 디렉토리는 \가 아닌 /로 구분합니다.
  • 파일과 디렉토리 이름은 대소문자를 구분합니다 (윈도우와 다른 점).

파일 및 디렉토리 생성하기

이제 이동하는 법을 익혔으니, 새로운 파일과 디렉토리를 만드는 법을 배워보겠습니다.

진행하기 전에 현재 위치가 /home/labex/project 디렉토리인지 확인하세요. 아니라면 cd 명령어를 사용하여 해당 디렉토리로 이동하세요.

  1. 먼저 linux_practice라는 이름의 새 디렉토리를 만듭니다:
mkdir linux_practice

mkdir은 "make directory"의 약자로, 새 폴더를 생성하는 명령어입니다.

  1. 새로 만든 디렉토리로 이동합니다:
cd linux_practice
  1. 이제 hello.txt라는 빈 파일을 만들어 보겠습니다:
touch hello.txt

touch는 파일이 존재하지 않으면 빈 파일을 생성하고, 이미 존재하면 파일의 수정 시간을 업데이트하는 명령어입니다.

  1. 파일이 잘 생성되었는지 확인해 봅시다:
ls

목록에 hello.txt가 나타나야 합니다.

  1. 이제 파일에 텍스트를 추가해 보겠습니다:
echo "Hello, Linux" > hello.txt

👆 LabEx 팁: 코드 블록 오른쪽 하단의 "Explain Code"를 클릭하면 Labby AI 와 대화하며 코드에 대한 설명을 들을 수 있습니다.

echo는 다른 언어의 "print"와 비슷합니다. > 기호는 리눅스에게 출력 내용을 화면에 보여주는 대신 파일에 저장하라고 지시합니다.

  1. 파일의 내용을 확인하려면 다음과 같이 입력하세요:
cat hello.txt

cat은 "concatenate"의 줄임말이지만, 주로 파일 내용을 화면에 출력할 때 사용됩니다.

이러한 명령어들은 리눅스가 작고 특화된 도구들을 조합하여 복잡한 작업을 수행하는 방식을 잘 보여줍니다.

와일드카드 사용하기

와일드카드는 여러 파일을 한 번에 다룰 때 유용한 특수 문자입니다. 파일 이름을 찾는 검색 패턴과 같습니다. 연습해 봅시다.

진행하기 전에 현재 위치가 /home/labex/project/linux_practice 디렉토리인지 확인하세요.

  1. 먼저 몇 개의 파일을 더 만들어 보겠습니다:
touch file1.txt file2.txt file3.txt

명령어 하나로 세 개의 빈 파일을 동시에 만들었습니다!

  1. 이제 .txt로 끝나는 모든 파일을 나열해 봅시다:
ls *.txt

*는 글자 수에 상관없이 모든 문자와 일치하는 와일드카드입니다. 따라서 *.txt는 ".txt 로 끝나는 모든 파일 이름"을 의미합니다.

  1. 범위를 지정하여 번호가 매겨진 파일들을 만들 수도 있습니다:
touch note_{1..5}.txt

이 명령은 note_1.txt 부터 note_5.txt 까지 5 개의 파일을 한 번에 생성합니다!

  1. "note"로 시작하는 파일들을 나열해 봅시다:
ls note*

방금 만든 5 개의 note 파일이 모두 보여야 합니다.

와일드카드는 파일 그룹을 작업할 때 매우 강력한 도구입니다. 가장 자주 쓰이는 와일드카드는 다음과 같습니다:

  • *: 글자 수 상관없이 모든 문자와 일치
  • ?: 딱 한 글자와 일치
  • [abc]: 괄호 안에 나열된 문자 중 하나와 일치

기초 파일 조작

이제 다룰 파일들이 생겼으니, 파일을 복사하고 이동하고 삭제하는 방법을 배워보겠습니다.

진행하기 전에 현재 위치가 /home/labex/project/linux_practice 디렉토리인지 확인하세요.

  1. hello.txthello_copy.txt라는 새 파일로 복사해 봅시다:
cp hello.txt hello_copy.txt

cp는 "copy"의 약자입니다. 첫 번째 인자는 원본 파일, 두 번째 인자는 대상 파일입니다.

  1. 이제 hello_copy.txt를 상위 디렉토리로 이동시켜 보겠습니다:
mv hello_copy.txt ..

mv는 "move"의 약자입니다. ..은 상위 디렉토리 (한 단계 위) 를 나타냅니다.

  1. file1.txt를 삭제해 봅시다:
rm file1.txt

rm은 "remove"의 약자입니다. 이 명령어를 사용할 때는 주의하세요. 리눅스에서 삭제된 파일은 휴지통으로 가지 않고 즉시 삭제됩니다!

  1. 현재 디렉토리의 내용을 확인하여 변경 사항을 봅니다:
ls
  1. 이제 상위 디렉토리의 내용을 확인하여 이동된 파일을 확인합니다:
ls ..

cp, mv, rm 명령어는 일상적인 리눅스 작업에서 가장 빈번하게 사용되는 도구들입니다.

커맨드라인 단축키 활용하기

리눅스는 커맨드라인 작업을 더 효율적으로 만들어주는 여러 유용한 단축키를 제공합니다. 몇 가지 시도해 봅시다:

  1. 위쪽 화살표 키 (↑) 를 사용하여 이전에 입력했던 명령어를 불러오세요. 지금 눌러보면 방금 실행했던 명령어가 다시 나타날 것입니다!

  2. 탭 (Tab) 자동 완성 사용하기:
    cat h까지 입력한 다음 Tab 키를 눌러보세요. 자동으로 cat hello.txt로 완성될 것입니다.
    이 기능은 타이핑 시간을 줄여주고 오타를 방지하는 데 매우 유용합니다.

  3. Ctrl+C 를 사용하여 실행 중인 명령어 중단하기:
    다음 명령어를 입력하고 Enter 를 누르세요:

    tail -f /dev/null

    이 명령어는 입력을 무한히 기다립니다. 이제 Ctrl+C 를 눌러 중단하세요. 명령어가 너무 오래 걸리거나 연속적인 출력을 멈추고 싶을 때 유용합니다.

  4. Ctrl+L 을 사용하여 화면 정리하기:
    터미널 화면이 복잡해졌을 때 Ctrl+L 을 누르면 화면이 깨끗하게 지워져 새로운 마음으로 작업을 이어갈 수 있습니다.

이러한 단축키들에 익숙해지면 리눅스 사용 경험이 훨씬 매끄러워질 것입니다.

도움말 얻기

리눅스의 가장 큰 장점 중 하나는 방대한 내장 도움말 시스템입니다. 사용법을 배워봅시다:

  1. 명령어와 옵션에 대한 빠른 요약을 보려면 --help 옵션을 사용하세요. ls 명령어로 시도해 봅시다:
ls --help

ls에 대한 간략한 설명과 가장 자주 쓰이는 옵션들이 표시됩니다.

  1. 더 자세한 정보가 필요할 때는 man 명령어 ("manual"의 약자) 를 사용하세요:
man ls

ls에 대한 전체 매뉴얼 페이지가 열립니다. 화살표 키로 스크롤하고, 'q'를 눌러 종료할 수 있습니다.

  1. cp와 같은 다른 명령어의 도움말도 확인해 보세요:
man cp

man 페이지는 리눅스의 거의 모든 명령어에 대한 종합 가이드입니다. 명령어 사용법이 헷갈리거나 어떤 옵션이 있는지 궁금할 때 man 페이지는 가장 좋은 리소스가 됩니다.

요약

축하합니다! 리눅스 입문 과정을 모두 마치셨습니다. 지금까지 배운 내용을 정리해 봅시다:

  1. 리눅스와 상호작용하는 강력한 텍스트 기반 인터페이스인 터미널을 사용해 보았습니다.
  2. cd, pwd, ls 명령어를 사용하여 파일 시스템을 탐색했습니다.
  3. touchmkdir로 파일과 디렉토리를 생성했습니다.
  4. 와일드카드를 사용하여 여러 파일을 동시에 다루는 법을 익혔습니다.
  5. 복사, 이동, 삭제와 같은 기초적인 파일 조작을 수행했습니다.
  6. 효율성을 높여주는 유용한 커맨드라인 단축키를 배웠습니다.
  7. --helpman을 통해 리눅스 내장 도움말 시스템을 활용하는 법을 배웠습니다.

이러한 기술들은 리눅스 시스템을 다루는 데 있어 가장 핵심적인 토대가 됩니다. 앞으로의 여정에서 이 기초를 바탕으로 리눅스 관리 및 활용 능력을 더욱 키워나가게 될 것입니다.

리눅스에 익숙해지는 데는 연습이 최고라는 점을 기억하세요. 리눅스 환경에서 더 많이 실험하고 탐색하는 것을 두려워하지 마세요. 실수는 곧 배움의 기회입니다! 계속해서 탐구하다 보면 곧 자신감 있게 리눅스를 다루는 자신을 발견하게 될 것입니다.