일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 코테준비
- 리눅스셸명령어
- javascript
- 제주코딩베이스캠프
- 코딩테스트
- 개발자
- 컴퓨터네트워크
- 백준1312
- 백준2587
- 네트워크기초
- 파일명령어
- 리눅스퍼미션
- 제주ICT
- 자료구조
- 리눅스기초
- 코테
- 링크명령어
- 파이썬
- 터미널명령어
- Python
- 위니브
- Linux
- 네트워크핵심정리
- 리눅스
- 네트워크정리
- 네트워크
- 네트워크면접
- 더오름
- 백준
- 디렉토리관리
- Today
- Total
hyei-devlog
[Linux] vi 편집기 사용법부터 파일 권한, 셸 명령어까지 총정리 본문
vi 편집기 사용법
리눅스에서 가장 많이 쓰이는 기본 편집기이다.
터미널 기반 텍스트 편집기이며, vim으로도 불린다.
vi 편집기 실행 및 종료
vi example.txt
종료 명령어
명령어 | 설명 |
:q! | 저장하지 않고 강제 종료 |
:wq | 저장 후 종료 |
:w filename | 다른 이름으로 저장 |
wq!는 권장되지 않는다. 권한 체크 없이 덮어쓰기 때문에 실수할 수 있다.
입력과 명령 모드
모드 전환 | 설명 |
i | 입력 모드로 전환 |
ESC | 명령 모드로 전환 |
: | 하단에 명령어 입력 가능 |
검색 및 치환
/hello # 'hello'라는 단어를 아래로 검색
?hello # 위 방향으로 검색
n / N # 다음 / 이전 결과로 이동
:%s/old/new/g # 전체 파일에서 old → new로 변경
:%s/old/new/gc # 변경 전 하나하나 확인 (confirm)
자주 쓰는 설정
:set nu # 줄 번호 표시
:set nonu # 줄 번호 제거
syntax on
set number
리눅스 퍼미션(권한) 이해하기
리눅스에서 모든 파일과 디렉토리는 "누가 무엇을 할 수 있는가"에 대한 권한(퍼미션)이 설정되어 있다.
퍼미션을 잘 이해하면, 보안뿐 아니라 시스템 사용도 훨씬 자유로워진다.
사용자 유형
유형 | 설명 |
root | 모든 권한 보유 (마스터키) |
시스템 사용자 | 서비스 운영용 (예: apache, mysql) |
일반 사용자 | 우리가 사용하는 사용자 (예: vagrant) |
su - vagrant # vagrant 사용자로 전환
exit # 다시 root로 복귀
현재 사용자 정보 확인
whoami # 현재 사용자 이름
id -u # UID (숫자)
id # 사용자, 그룹 정보 전체
파일 권한 구조 이해하기
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1234 Jun 25 20:00 /etc/passwd
위치 | 의미 |
- | 파일 종류 (-: 일반 파일, d: 디렉토리, l: 링크 등) |
rw- | 소유자(User)의 권한 |
r-- | 그룹(Group)의 권한 |
r-- | 기타 사용자(Other)의 권한 |
권한의 의미 (파일 vs 디렉토리)
권한 | 파일에서의 의미 | 디렉토리에서의 의미 |
r (read) | 파일 읽기 (cat, less) | 디렉토리 목록 보기 (ls) |
w (write) | 파일 수정 (vi, echo >) | 파일 생성/삭제/이동 |
x (execute) | 파일 실행 (./run.sh) | 디렉토리 진입 (cd) |
디렉토리에 접근할 수 있는 조건?
디렉토리는 단순히 r 권한만 있다고 해서 들어갈 수 있는 것이 아니다.
x(실행 권한)이 있어야 cd로 진입이 가능하다.
권한 | 의미 |
x | 디렉토리 진입 가능 (cd) |
r | 디렉토리 내 파일 목록 보기 가능 (ls) |
권한 조합 | cd 가능? | ls 가능? |
--x | ✅ | ❌ |
r-x | ✅ | ✅ |
r-- | ❌ | ✅ (파일 목록만 조회) |
ls -ld 디렉토리명으로 해당 디렉토리의 권한을 확인할 수 있다.
퍼미션 변경 명령어
chomod: 권한 변경
chmod 755 file.txt # rwxr-xr-x (소유자는 모두, 그룹/기타는 읽기+실행)
chmod o-rwx file.txt # 기타 사용자 권한 제거
권한 | 숫자값 |
r | 4 |
w | 2 |
x | 1 |
예시) chmod 754 → rwxr-xr--
chown: 소유자 변경
chown user:group file.txt # user가 소유자, group이 그룹으로 설정됨
주로 root 권한이 필요하다 (sudo chown)
기본 권한: 666(파일), 777(디렉토리)의 이유?
파일은 기본적으로 읽기/쓰기만 가능(666) 하도록 생성된다.
실행 권한은 보안상 자동으로 부여되지 않기 때문이다.
반면, 디렉토리는 내부에 접근(cd), 목록 확인(ls), 파일 생성/삭제 등의 기능을 위해 rwx 3가지 권한 모두 기본으로 설정된 상태(777)에서 umask로 제한한다.
항목 | 기본 권한 | 이유 |
파일 | 666 → rw-rw-rw- | 실행(x) 권한은 보안상 기본으로 주지 않음. 텍스트 파일 등은 읽기/쓰기만 필요하기 때문 |
디렉토리 | 777 → rwxrwxrwx | 디렉토리는 진입(cd), 읽기(ls), 생성/삭제 등의 작업에 x, r, w 모두 필요하므로 기본값을 777로 설정 |
umask란?
umask는 새로운 파일이나 디렉토리 생성 시 기본 권한을 제한하는 설정이다.
기본 권한에서 umask 값을 빼서 실제 권한을 결정한다.
예시: umask 022
항목 | 계산식 | 실제 권힌 |
파일 | 666 - 022 | 644 → rw-r--r-- |
디렉토리 | 777 - 022 | 755 → rwxr-xr-x |
umask 확인 및 설정
umask # 현재 설정값 확인
umask 0027 # 새로운 값 설정 (세션 한정)
영구적으로 적용하려면 ~/.bashrc 또는 ~/.bash_profile에 추가:
vi ~/.bashrc
umask 0022
마무리 요약
r, w, x | 각각 읽기, 쓰기, 실행 권한을 의미하며 파일/디렉토리에서 다르게 작용 |
파일 권한 구조 | -rwxr-xr-- 같은 형식은 파일 종류 + 권한 3조합 |
디렉토리 접근 조건 | x 있어야 진입 가능, r 있어야 목록 조회 가능 |
chmod / chown | 권한/소유자 변경 명령어 |
umask | 파일/디렉토리 생성 시 기본 권한을 제한하는 설정 값 |
셸 명령어 & 환경 이해하기
홈 디렉토리
echo $HOME
# /home/vagrant (사용자마다 다름)
~는 현재 사용자 홈 디렉토리를 의미한다.
PATH: 명령어 찾는 경로
echo $PATH
which ls
which pwcat # 존재하지 않는 명령어일 경우 not found
→ $PATH에 정의된 경로 내에서 명령어를 찾지 못하면 실행할 수 없다.
리다이렉션
echo "hello" > hello.txt # 덮어쓰기
echo "world" >> hello.txt # 이어쓰기
>는 기존 파일 내용을 지워버리므로 주의!
중요한 설정은 꼭 편집기로 열어서 수정하세요~! (vi, nano 등)
명령어 이력 확인 & 재사용
history # 명령어 이력 출력
!23 # 23번째 명령어 실행
!cat # 최근 실행된 cat 명령어 재실행
alias (별칭)
alias ll='ls -alF'
alias gs='git status'
자주 쓰는 명령어에 별칭을 붙여 빠르게 사용할 수 있다.
전체 요약
vi 편집기 | 입력/명령 모드, 저장/종료, 검색/치환 |
퍼미션 | 사용자, 권한(rwx), 디렉토리 접근 조건 |
셸 명령어 | 환경 변수(PATH), 리다이렉션, history, alias |
'Infra & Cloud > Linux' 카테고리의 다른 글
[Linux] grep, find로 텍스트 & 파일 검색하기 (0) | 2025.06.25 |
---|---|
[Linux] 리눅스 디렉토리 구조 & 기초 파일·링크 명령어 총정리 (0) | 2025.06.25 |
[Linux] 리눅스란 무엇인가? 개념 · 특징 · 역사 (0) | 2025.06.24 |