이번 포스팅에서는 앞선 포스팅([OS-Linux] WSL 소개와 설치하기)에서 설치한 WSL(Windows Subsystem for Linux)을 이용해 Ubuntu 환경에서 자주 사용되는 기본 명령어(Command)들에 대해 알아보겠습니다.
파일 및 디렉토리 관리, 파일 권한 설정, 파일 내용 보기 및 편집 등이 필수적으로 필요합니다.
이 포스팅에서는 이러한 작업을 수행하는 데 필요한 주요 명령어들을 정리해 보겠습니다.
파일 및 디렉토리 관리 명령어(Command)
파일과 디렉토리를 관리하는 기본 명령어들은 Linux 작업의 핵심입니다.
각 명령어는 간단하지만 매우 강력한 기능을 제공하며, 다양한 옵션과 함께 사용될 때 그 진가를 발휘합니다.
ls (list): 현재 디렉토리의 파일과 디렉토리 목록을 출력합니다.
ls ls -l # 상세 정보 포함 ls -a # 숨김 파일 포함
cd (change directory): 디렉토리 간 이동을 위한 명령어입니다.
cd /path/to/directory # 특정 디렉토리로 이동 cd .. # 상위 디렉토리로 이동 cd ~ # 홈 디렉토리로 이동
pwd (print working directory): 현재 작업 중인 디렉토리의 경로를 출력합니다.
pwd
cp (copy): 파일이나 디렉토리를 복사합니다.
cp source_file destination_file # 파일 복사 cp -r source_directory destination_directory # 디렉토리 복사
mv (move): 파일이나 디렉토리를 이동하거나 이름을 변경합니다.
mv old_name new_name # 이름 변경 mv file_name /path/to/directory/ # 파일 이동
rm (remove): 파일이나 디렉토리를 삭제합니다.
rm file_name # 파일 삭제 rm -r directory_name # 디렉토리와 그 안의 파일 모두 삭제
mkdir (make directory): 새로운 디렉토리를 생성합니다.
mkdir directory_name
rmdir (remove directory): 비어 있는 디렉토리를 삭제합니다.
rmdir directory_name
관리자 권한으로 명령어 실행하기: sudo
Ubuntu 및 다른 Linux 환경에서는 시스템 관리 작업을 수행할 때 관리자 권한이 필요합니다.
일반 사용자 권한으로는 실행할 수 없는 명령어들이 많습니다.
이때 sudo
명령어를 사용하여 일시적으로 슈퍼유저(관리자) 권한을 부여받아 명령을 실행할 수 있습니다.
sudo
명령어는 사용자가 시스템 관리자(root) 권한으로 명령을 실행할 수 있도록 합니다.
처음 사용할 때 비밀번호를 입력해야 하며, 이는 현재 사용자 계정의 비밀번호입니다.
sudo apt-get update # 시스템 패키지 목록 업데이트 sudo apt-get install package_name # 소프트웨어 패키지 설치
파일 권한 및 소유권 관리
리눅스 파일 시스템은 파일과 디렉토리의 권한과 소유권을 기반으로 동작합니다.
이를 적절히 설정하는 것은 시스템 보안을 유지하는 데 매우 중요합니다.
파일 권한 확인하기
파일이나 디렉토리의 권한을 확인하려면 ls -l
명령어를 사용합니다.
ls -l file_name -rwxr-xr-- 1 user group 1234 Aug 26 12:34 file_name # 결과
첫 번째 문자열은 파일의 권한을 나타냅니다. 여기서 -rwxr-xr--
는 각 사용자의 권한을 의미합니다.
r
: 읽기 권한 (read)w
: 쓰기 권한 (write)x
: 실행 권한 (execute)
첫 번째 문자 -
는 파일 유형을 나타내며, 일반 파일은 -
, 디렉토리는 d
로 표시됩니다.그 다음 세 자리씩 구분하여 소유자, 그룹, 다른 사용자에 대한 권한을 나타냅니다.
chmod (change mode): 파일이나 디렉토리의 권한을 변경합니다.
chmod 755 file_name # 소유자에게 모든 권한, 그룹과 다른 사용자에게 읽기 및 실행 권한 부여 chmod +x script.sh # 실행 권한 추가 chmod -w file_name # 쓰기 권한 제거
chown (change owner): 파일이나 디렉토리의 소유자를 변경합니다.
sudo chown user_name file_name # 소유자 변경 (sudo 필요) sudo chown user_name:group_name file_name # 소유자와 그룹 변경
chgrp (change group): 파일이나 디렉토리의 소유 그룹을 변경합니다.
sudo chgrp group_name file_name # 그룹 변경
파일 내용 보기 및 편집
파일의 내용을 확인하거나, 텍스트 파일을 편집할 때 사용하는 명령어들입니다.
cat (concatenate): 파일의 내용을 화면에 출력합니다.
cat file_name
less & more: 긴 파일을 한 페이지씩 볼 수 있도록 하는 명령어입니다.
less file_name # 위아래로 스크롤 가능 more file_name # 아래로만 스크롤 가능
nano: 간단한 텍스트 편집기입니다. 사용자 친화적인 인터페이스로 빠르게 텍스트 파일을 편집할 수 있습니다.
nano file_name
vi/vim: 강력한 기능을 갖춘 텍스트 편집기입니다. 초보자에게는 조금 복잡할 수 있지만, 익숙해지면 매우 효율적으로 텍스트 파일을 편집할 수 있습니다.
vi file_name # vi 실행 vim file_name # vim 실행
vi/vim 명령어
vi/vim 편집기는 크게 두 가지 모드로 나뉩니다:
명령 모드와 입력 모드입니다. 이 두 모드를 적절히 전환하면서 파일을 편집할 수 있습니다.
- 명령 모드 (Command Mode)
- i: 입력 모드로 전환 (insert)
- a: 현재 커서 위치 다음에 입력 (append)
- o: 새로운 줄을 추가하고 그 줄에서 입력 모드로 전환 (open)
- Esc: 입력 모드에서 명령 모드로 전환
- u: 마지막 명령 실행 취소 (undo)
- Ctrl + r: 실행 취소 복구 (redo)
- dd: 현재 줄 삭제
- yy: 현재 줄 복사 (yank)
- p: 커서 다음 줄에 복사한 내용 붙여넣기 (paste)
- : 파일 저장 (write)
- : vi/vim 종료 (quit)
- : 저장 후 종료
- !: 저장하지 않고 강제 종료
- 입력 모드 (Insert Mode)
- 입력 모드에서는 일반 텍스트 편집기처럼 글을 작성할 수 있습니다. 입력 모드에서 명령 모드로 전환하려면
Esc
키를 누릅니다.
- 입력 모드에서는 일반 텍스트 편집기처럼 글을 작성할 수 있습니다. 입력 모드에서 명령 모드로 전환하려면
명령 모드 내에서의 이동
- h, j, k, l: 각각 왼쪽, 아래, 위, 오른쪽으로 커서 이동
- 0: 현재 줄의 시작으로 이동
- $: 현재 줄의 끝으로 이동
- gg: 파일의 처음으로 이동
- G: 파일의 끝으로 이동
- w: 다음 단어의 시작으로 이동
- b: 이전 단어의 시작으로 이동
검색 및 치환
- /: 현재 파일에서 문자열 검색 (예:
/search_term
) - n: 검색한 문자열의 다음 항목으로 이동
- N: 검색한 문자열의 이전 항목으로 이동
- /old/new: 현재 줄에서
old
문자열을new
로 치환 - /old/new/g: 현재 줄에서
old
문자열을 모두new
로 치환 - :%s/old/new/g: 파일 전체에서
old
문자열을 모두new
로 치환
Vim만의 추가 기능
Vim은 Vi에 비해 몇 가지 유용한 기능이 추가되었습니다. 그 중 몇 가지를 소개합니다.
- Visual Mode (비주얼 모드)
- v: 비주얼 모드로 전환, 텍스트를 블록으로 선택
- V: 라인 단위로 텍스트 선택
- Ctrl + v: 비주얼 블록 모드로 전환, 블록 단위로 텍스트 선택
- Multi-level Undo/Redo
- Vi에서는 하나의 undo만 가능하지만, Vim에서는 여러 번의 undo/redo가 가능합니다.
- Syntax Highlighting
- Vim은 구문 강조를 지원하여 코드 편집 시 가독성을 높여줍니다. 구문 강조를 활성화하려면
:syntax on
명령어를 사용하면 됩니다.
- Vim은 구문 강조를 지원하여 코드 편집 시 가독성을 높여줍니다. 구문 강조를 활성화하려면
참고 링크
Linux Command Line Cheat Sheet: https://www.guru99.com/linux-commands-cheat-sheet.html
Vim 공식 사이트: https://www.vim.org/docs.php
chmod, chown, chgrp 명령어 사용법: https://linuxize.com/post/linux-file-permissions/
Vim Adventures: https://vim-adventures.com/