Post

오토에버 클라우드 2기 13일차

오토에버 클라우드 2기 13일차

우분투, 리눅스에서 주로 사용하는 명령어

파일 권한 (File Permissions)

  • ls -l 현재 디렉토리의 파일/디렉토리 권한을 확인
1
2
3
ls -l
drwxr-xr-x 2 user group 4096 May 19 10:00 mydir
-rw-r--r-- 1 user group  128 May 19 10:01 file.txt
  • 첫 글자: d(디렉토리), -(파일)
  • 이후 9자리: 사용자(u), 그룹(g), 기타(o)의 읽기(r), 쓰기(w), 실행(x)

 

chmod 권한 변경

  • 심볼릭 모드는 r, w, x 등의 문자와 +, -, = 기호를 사용하여 파일 권한을 설정하는 방식 기본 기호

    • u : 사용자(owner)

    • g : 그룹(group)

    • o : 기타 사용자(others)

    • a : 모든 사용자(all)

    • r : 읽기(read)

    • w : 쓰기(write)

    • x : 실행(execute)
    • +: 권한 추가
    • -: 권한 제거
    • = : 권한을 특정 값으로 설정
1
2
3
4
5
chmod u+r file.txt  # 현재 사용자에게 읽기 권한 추가
chmod g-w file.txt  # 그룹의 쓰기 권한 제거
chmod o+x script.sh  # 기타 사용자에게 실행 권한 추가
chmod a=r report.txt  # 모든 사용자에게 읽기 권한만 부여
chmod u+x,g+r,o-r file.txt  # 사용자에게 실행, 그룹에게 읽기, 기타 사용자에게 읽기 제거
  • 숫자 모드는 8진수(Octal) 값을 사용하여 파일 권한을 설정하는 방식

    • r (읽기) = 4

    • w (쓰기) = 2

    • x (실행) = 1 각 사용자(u, g, o)의 권한을 더해서 설정합니다.

1
2
3
4
chmod 755 script.sh  # 사용자(7), 그룹(5), 기타(5) 권한 설정
chmod 644 document.txt  # 사용자(6), 그룹(4), 기타(4) 권한 설정
chmod 700 private.txt  # 사용자에게만 모든 권한(읽기, 쓰기, 실행) 부여
chmod 777 public.sh  # 모든 사용자에게 모든 권한 부여 (주의!)

 

폴더 삭제 (Remove Directory)

  • rmdir 빈 디렉토리만 삭제
1
rmdir empty_dir
  • rm -r 디렉토리와 내부 모든 파일/서브디렉토리 삭제
1
rm -r project_dir
  • rm -rf -f : 확인 없이(force) 삭제
1
rm -rf old_backup

파일 삭제 (Remove File)

  • rm 파일 삭제
1
rm file1.txt file2.log
  • 옵션

-i 삭제 전 확인

1
rm -i secret.txt

-f 강제 삭제

1
rm -f temp.txt

 

복사 (Copy)

  • cp 파일/디렉토리 복사
1
2
3
4
5
6
# 단일 파일 복사
cp source.txt dest.txt

# 디렉토리 재귀 복사
cp -r src_folder/ dst_folder/

  • 주요 옵션
    • r 또는 -R: 디렉토리 내부까지 복사
    • -i : 덮어쓰기 전 확인
    • -u : 대상 파일이 없거나 더 오래된 경우에만 복사
    • -v : 진행 상황 출력

 

폴더 및 파일 이동 (Move)

  • mv 파일/디렉토리 이동 및 이름 변경
1
2
3
4
5
6
7
8
# 디렉토리 이동
mv folder1/ /backup/

# 파일 이동
mv report.pdf ~/Documents/

# 여러 파일 이동
mv *.log logs/
  • 옵션
    • -i : 덮어쓰기 전 확인
    • -v : 진행 상황 출력
1
2
mv -iv oldname.txt newname.txt
# 이름 변경

 

구분하드 링크 (Hard Link)심볼릭 링크 (Symbolic Link)
포인터 대상같은 inode(실제 데이터) 참조다른 파일의 경로(path) 참조
원본 파일 삭제 시링크된 파일 여전히 접근 가능대상이 사라지면 깨진 링크(broken) 됨
다른 파일 시스템동일 파일시스템에서만 가능서로 다른 파일시스템도 가능
디렉토리에 대한 링크보통 금지허용(일부 시스템 제한 있을 수 있음)

 

1
2
3
ln 원본_파일 하드링크_이름
# 예시
ln report.txt report_backup.txt

report.txt와 report_backup.txt가 동일 inode를 가짐

둘 중 하나를 수정하면 동일 내용 변경

 

1
2
3
ln -s 원본_경로 링크_이름
# 예시
ln -s /var/log/syslog ~/syslog_link

-s 옵션으로 심볼릭 링크 생성

ls -l 시 -> 로 링크 대상 표시

대상이 없어도 링크는 생성되지만 접근 시 오류

1
2
ls -l ~/syslog_link
lrwxrwxrwx 1 user group 15 May 19 11:00 syslog_link -> /var/log/syslog

 

grep (파일 내 문자열 검색)

grep 명령어는 파일 내에서 특정 문자열을 검색하는 데 사용

  • 옵션

    • -i : 대소문자를 구분하지 않고 검색

    • -v : 검색한 문자열을 포함하지 않는 라인 출력

    • -n : 라인 번호 출력

    • -r : 하위 디렉토리까지 재귀적으로 검색

    • -w: 전체 단어로 검색

    • --color=auto : 검색된 문자열을 색상으로 강조

1
2
3
4
5
6
#예시
grep "hello" example.txt  # example.txt 파일에서 "hello" 포함된 라인 검색
grep -i "linux" example.txt  # "linux"를 대소문자 구분 없이 검색
grep -n "error" logs.txt  # logs.txt에서 "error" 포함된 라인의 번호 출력
grep -r "config" /etc/  # /etc 디렉토리 내 모든 파일에서 "config" 검색
grep -v "warning" logs.txt  # logs.txt에서 "warning"을 포함하지 않은 라인 출력

 

find (파일 및 디렉토리 검색)

find 명령어는 특정 조건에 맞는 파일이나 디렉토리를 검색하는 데 사용

  • 옵션

    • -name : 특정 이름을 가진 파일 검색

    • -type : 파일 유형 지정 (f=파일, d=디렉토리)

    • -size : 특정 크기 이상의 파일 검색 (+10M = 10MB 이상)

    • -mtime : 마지막 수정 날짜 기준 검색 (-7 = 7일 이내 수정된 파일)

    • -exec : 검색된 파일에 특정 명령어 실행

    • -user : 특정 사용자가 소유한 파일 검색

1
2
3
4
5
6
find /home -name "*.txt"  # /home 디렉토리에서 .txt 파일 검색
find /var/log -type f -size +10M  # /var/log에서 10MB 이상 파일 검색
find /etc -type d -name "config"  # /etc에서 이름이 "config"인 디렉토리 검색
find /home/user -mtime -7  # 최근 7일 이내 수정된 파일 검색
find /tmp -type f -exec rm {} \;  # /tmp에서 모든 파일 삭제
find /home -user username  # 특정 사용자가 소유한 파일 검색
This post is licensed under CC BY 4.0 by the author.