리눅스 서버를 구축하는 데 알아야 할 필수 개념과 명령어

메론보이·2024년 5월 20일

리눅스

목록 보기
2/17
post-thumbnail

파일다루기

파일만들기

touch 파일이름

파일이동 및 이름변경

mv a b

a를 b로 이동, a를 b로 이름 변경

파일삭제

rm 파일

파일내의 키워드 찾기

grep 찾으려는키워드 파일

파일내의 위치 찾기

find -name 파일이름

파일내 텍스트 전체보기

cat 파일이름

파일내 일부보기(head,tail)

head 파일이름

tail 파일이름

3줄만보기
head -n 3 파일이름

디렉토리 다루기

디렉토리생성

mkdir 폴더이름

디렉토리 삭제(안에파일없음)

rmdir 폴더이름

디렉토리 삭제(안에파일있음)

rm -rf 폴더이름

폴더 이름수정 및 이동은 mv

아이노드,하드 링크,소프트 링크

개요

아이노드: 파일 시스템에서 파일을 가리키는 포인터 또는 번호입니다.
하드 링크: 원본 파일이 삭제되더라도 링크가 유지됩니다.
소프트 링크: 원본 파일이 삭제되거나 이름이 변경되면 링크가 깨집니다.

bash

ln <target> <link_name>  # 하드 링크 생성
ln -s <target> <link_name>  # 소프트 링크 생성

이와 같은 내용을 바탕으로 리눅스 시스템과 파일 시스템의 기본 개념을 이해하고 다양한 명령어를 통해 파일과 디렉터리를 효과적으로 관리할 수 있습니다.

하드링크

하드링크는 원본 파일의 inode의 위치를 가르킨다. 파일명만 다르지 사실상 하드링크, 원본파일을 구분할 수 없다.

(원본과 복사본의 차이가 없다), inode를 공유하기때문에 파일의 위치가 어디에있든 상관이없다.

왜냐하면 파일 시스템에 있는 데이터를 복사한 것이 아니라, inode 번호만 복사했기 때문이다. 따라서 실제 파일은 1개만 존재하는 셈이 된다.

하드링크 생성

ln 파일이름 하드링크파일이름

예제

이렇게 하드링크를 생성하면 복제된 파일의 내용도 똑같아짐

아이노드 확인

ls -ali

shin 왼쪽에 있는 숫자는 링크의 숫자, 즉 하드링크처럼 연관된 파일이 몇개인지 표시해주는 역활을함

파일 상세확인

stat 파일이름

소프트링크

[소프트링크]

윈도우 시스템에서 제공하는 바로가기 기능과 매우 유사.

원본 파일에 대한 정보가 포함되어 있지 않고, 원본 파일 위치에 대한 포인터만 포함한다. 즉 새로운 inode를 가진 링크파일이 생성된다. , 위치를 지정한다고 생각하면 될듯

소프트링크 파일 생성

ln -s 파일이름 생성하는 파일이름

소프트링크는 원본파일을 가르키기때문에 같은 위치에 있어야함

만약 원본파일이나 혹은 소프트파일의 위치를 바꾸면 작동이안됨(원본파일삭제해도안됨)

절대경로로 소프트파일생성

만약 대상이되는 파일과 다른 디렉토리에서 대상이되는 파일을 절대경로로 설정해서 소프트링크를 만들면
소프트링크를 만드는 디렉토리에서 대상이되는 파일과 같은이름의 소프트링크 파일을 만들수있음
참고로 이렇게만든 소프트링크파일은 디렉토리를 다른곳으로 옮겨도 괜찮음. 왜냐하면 대상이되는 소프트링크 파일의 원본의 위치가 절대경로이기때문에 위치와는 상관없이 옮겨도됨

절대경로로했을경우는 원본파일의 위치를 제대로 가르킬수있기때문에 에러가 나지않음

사용자 추가 및 삭제

사용자추가

sudo adduser 사용자이름

사용자제거

sudo deluser 사용자이름 --remove-home

사용자 바꾸기

su - 바꾸려는사용자이름

사용자들 정보

cat /etc/passwd

테스트 사용자 및 그룹 생성

그룹추가

sudo addgroup 그룹이름

그룹안에 user추가

sudo adduser user이름 --ingroup 그룹이름

만약 animal그룹에 pig,dog이라는 유저가 있다고 가정하자

이때 pig라는 유저에 haha라는 파일을 만든다.

그리고 위와같은 내용을 파일에 작성한다.

그다음 dog유저에서 pig에있는 haha의 글을 수정하려하면

위와같이 불가하다고 나온다

이때 같은 그룹내에있는 유저에게는 특정 파일의 수정권한을 주는 방법이

8진수 표기법과 의미표기법 2가지 방법이있다

만약 8진수 표기법으로 파일 수정권한을 준다하면

chmod 664 파일이름

이렇게 할수있고 의미표기법으로 준다하면

chmod g+w 파일이름

이렇게 하면된다.

의미표기법으로 파일수정 권한을 줘서 아래처럼 수정이 가능하다

그룹안에 유저넣기(usermod)

usermod -G 그룹이름 유저이름

usermod -g vs usermod -G

Linux의 usermod 명령은 사용자 계정 속성을 수정하는 데 사용됩니다. 그룹 구성원을 변경하는 경우 -g-G의 두 가지 옵션이 있습니다.

  1. usermod -g: 이 옵션은 사용자의 기본 그룹을 변경하는 데 사용됩니다.

    기본 그룹은 /etc/passwd 파일에 지정되며 사용자의 새 파일 및 디렉토리에 대한 기본 그룹을 나타냅니다. usermod -g를 사용하면 사용자에 대한 새 기본 그룹을 지정하고 기존 기본 그룹을 대체합니다.

예를 들어:

bash

usermod -g fami kyle

이 명령은 사용자 "kyle"의 기본 그룹을 "fami"로 변경합니다.

  1. usermod -G: 이 옵션은 사용자의 추가 또는 추가 그룹을 수정하는 데 사용됩니다.
    보조 그룹은 기본 그룹과 별도로 사용자가 속할 수 있는 추가 그룹입니다.
    usermod -G를 사용하여 하나 이상의 보조 그룹에서 사용자를 추가하거나 제거할 수 있습니다.
    예를 들어:
    
    ```bash
    
    usermod -G fami,group1,group2 kyle
    ```
    
    이 명령은 사용자 "kyle"을 보조 그룹 "fami", "group1" 및 "group2"에 추가합니다. `-G`를 사용하는 경우 사용자를 추가하려는 모든 그룹을 쉼표로 구분하여 지정해야 합니다.

요약하면 usermod -g는 사용자의 기본 그룹을 변경하는 데 사용되고 usermod -G는 사용자가 속한 보조 그룹을 수정하는 데 사용됩니다.

사용자가 속한 그룹보는법(groups)

groups 그룹에속한 유저

참고

[리눅스] 하드링크 vs 소프트링크

0개의 댓글