Linux

22.02.15

가로선 2022. 2. 15. 18:24

 

   목차   

 

1. Linux란

 - 탄생

 - 배포판 종류

2. Linux 루트(/) 디렉터리

3. Linux 기본 명령어

 - 프롬프트

 - 사용명

 - ls

 - mkdir

 - rmdir

 - 파일만들기

 - rm

 - cd

 - cp

 - mv

4. 링크(link)

 - HardLink

 - SoftLink

 - HardLink, SoftLink 정리

 - inode 삭제 방법

 - 문제풀이


 

   Linux   

 

   탄생   

 - 1990년 핀란드 헬싱키 대학의 리누즈 토발즈 개발

 - Unix 교육용 운영체제 Minix를 x86시스템에서 구동 불가

 => Linux : Minix를 x86 cpu가 장착된 컴퓨터에서 사용가능하게 만든 버전

 

   배포판 종류   

 - Kernel은 동일, 단 Application의 종류가 틀리다 : kernel.org에서 다운로드 가능

 - Debian 계열(스마트폰과 관련)

    - Debian : Debian.org

                      : Ubuntu.com

 - Slackware 계열

    - Slackware : slackware.com

                            : suse.com

 - Redhat 계열

    - Redhat : redhat.com

    - Fedora : getfedora.org

    - CentOS : wiki.centos.org

    - Rockylinux : rockylinux.org (CentOS의 대안으로 각광)

 

 

   Root(/) Directory   

 

root 디렉터리 내부

 

 - boot : 부트
 - bin : 명령어들의 모임
 - sbin : 관리시스템 관련 명령어 모음
 - etc : 리눅스 중요 설정파일
 - home : 사용자의 홈 디렉터리
 - var : 가변 디렉터리 / 시스템의 중요 로그파일
 - tmp : 임시 디렉터리 / 파일 압축 해제할 때 임시로 풀어지는 파일들
 - lib(64) : 함수의 모음(주로 링크해서 사용)
 - root : 리눅스의 최고 관리자는 root디렉터리에 있게된다
 - usr : 사용자가 새로 설치되는 프로그램 저장
 - proc : 리눅스 커널의 메모리에 올라간 상태 정보 확인/ 메모리 정보 확인 가능    
 - dev : 리눅스에 필요한 각종 장치들
 - mnt / opt : 외부장비 마운트, 광학 파일 / 보통은 비어있음
 - media : 미디어 파일

 

 

   Linux 기본 명령어   

 

   프롬프트   

 

prompt 창 확인

 -  [root             @     centos7-1                                  ~]                          #
  로그인사용자     컴퓨터이름(hostname)     현재디렉터리     관리자($면 일반 사용자)

 

   사용명   

 - # 명령어 --help  롱옵션 : 옵션의 fullname

 - # 명령어 -a       숏옵션 : 옵션 축약명

 

   ls   

 - ls(list) : 디렉터리 내용 출력

 

ls 명령어로 ~(home) 디렉터리에 있는 내용 출력

 - ls -a(all) : 모든(숨김) 파일 및 디렉터리 출력 / 공통 옵션

 

-a 옵션을 통해 ~ 안에 있는 파일, 디렉터리 모두 출력

    - 리눅스는 파일앞에 .을 붙히면 숨김파일이 된다

 

 - ls -l : 파일 및 디렉터리의 속성정보(메타 데이터 정보) 출력

 

-l 옵션을 통해 ~안에 있는 파일에 대한 속성 정보 출력

 

 - ls -h : 파일이나 디렉터리의 사이즈를 가독성 좋게 변경해서 출력 / 공통 옵션

 

-h 옵션을 통해 용량을 가독성 좋게 출력

    - ls -lh같이 옵션을 같이 조합해서 사용할 수도 있다

 

 - ls -i : 파일이나 디렉터리의 inode number 출력

 

-i 옵션을 통해 inode number 출력

    - inode number : 리눅스에서 파일이나 디렉터리를 관리하는 고유번호

 

- ls -R : 디렉터리의 하위 디렉터리 및 파일 목록 나열

 

~ 하위 디렉터리인 a 디렉터리의 목록도 나열

    - 예제를 위해 a 디렉터리와 b 디렉터리를 생성하였음

 

   mkdir   

 - mkdir(make directory) : 디렉터리 생성

 

mkdir a를 사용하여 a라는 디렉터리 생성

 

mkdir로 한꺼번에 원하는 디렉터리 생성

 

옵션을 쓰지 않아 하위 디렉터리까지 생성이 불가

 

-p 옵션을 통하여 하위 디렉터리까지 생성이 가능

 

   rmdir   

 - rmdir(remove directory) : 디렉터리 삭제

 

rmdir a를 통하여 a 디렉터리 삭제

 

디렉터리에 다른 디렉터리나 파일이 없어야 삭제가 가능

 

한꺼번에 삭제도 가능

 

옵션을 사용하지 않고 지우게 되면 하위 디렉터리 3만 삭제되게 된다

 

-p 옵션을 통해 상위 디렉터리까지 전부 삭제 가능

    - p 옵션을 사용할 때 해당 경로에 파일이 존재하면 파일이 존재하는 디렉터리의 하위디렉터리까지만 삭제

 

   파일 만들기   

 - touch : 파일이나 디렉터리의 시간정보 변경 / 0 byte짜리 파일 생성

 

touch 명령어를 사용하여 test.txt 파일 생성

    - touch - t : 파일의 시간 정보 변경

        - # touch -t 시간정보 파일명 / touch -t 202202151100.00 파일명

    - touch -c : 파일 생성하는 건 동일하나 파일이 없는 경우에는 생성x

 - cat  > : cat은 파일의 내용을 출력하는 명령어이지만

                 redirection(>)를 추가하여 표준 출력 방향을 변경

    - 컴퓨터 시스템의 표준 출력은 모니터이다

 

cat를 사용하여 ttest.txt 생성

    - cat > 사용 후, 내용을 작성이 끝나면 enter를 친 후 ctrl+d로 저장 

 

cat를 사용하여 내용 추가

    - cat >> 를 통해 내용을 추가할 수 있다

 

스크립트 사용시 많이 쓰이는 형식

    - cat >> 파일 이름 << END

        - 스크립스 사용시에는 ctrl+d를 사용할 수 있는 방법이 없으므로

 

 - vi 편집기 : vi 편집기를 통해 파일을 만들 수 있다

 

vi 편집기를 통해 파일 생성

 

   rm   

 - rm : 파일 삭제 명령어

 

rm 명령어를 통한 삭제

 

-f 옵션을 통한 삭제

 - rm -f(force) : 강제로 삭제 / 공통 옵션

 

-r 옵션을 통한 삭제

 - rm -r : 디렉터리까지 삭제(하위 디렉터리 포함)

 - rm -rf로 결합해서 사용 가능(쓸 때는 항상 조심)

 

   cd   

 - cd(change directory) : 디렉터리 이동

 

절대 경로를 이용한 디렉터리 이동

 - 절대경로 : 최상위 디렉터리(/)부터 경로 지정, 사용자가 어느 디렉터리에 있던지 경로가 동일

 

상대 경로를 이용한 디렉터리 이동

 - 상대경로 : 사용자가 위치하는 디렉터리에 따라 경로 지정

                      ( . 는 현재 디렉터리  ..는 바로 위 상위 디렉터리로 이동)

 - cd - : 바로 직전 작업 디렉터리 경로로 감

 - cd ~ : login 한 사용자의 홈 디렉터리로 간다

 

   cp   

 - cp(copy) : 파일 복사

 

cp 명령어를 통한 a 디렉터리로 test.txt 복사

 

-a 옵션을 통해 속성 정보가 동일하게 복사

- cp -a : 파일 속성(메타 데이터) 정보까지 복사

 

-r 옵션을 통해 디렉터리 복사

 - cp -r : 디렉터리 복사

    - 복사본의 이름을 지정할 경우 복사본은 이름이 변경되고, 원본 파일 및 디렉터리는 보존 된다.

 

   mv   

 - mv(move) : 파일 및 디렉터리 이동

 

파일 및 디렉터리 이름 바꾸는 용도로 많이 사용

 

 

   링크   

 - ln(link) : inode number가 동일한 완벽하게 같은 파일 생성

 

   HardLink   

 - inode number까지 동일

 

하드 링크를 통해 inode number까지 동일

 

사본을 수정하였을 때 원본도 똑같이 수정이 됨

 - 사용 이유 : 리눅스 라이브러리 쓸 때 사용(애플리케이션 사이즈를 줄일 수 있다)

 - 위험한 점 : 원본이건 사본이건 둘 다 수정이 된다

 

   SymbolicLink(SoftLink)   

 - 바로가기

 - inode number가 다르다

 

심볼릭 링크를 통해 링크시킴

 

원본파일이 없어지니 소프트링크 한 것이 깨짐

    - 원본파일을 지우면 링크가 끊긴다

    - 같은 이름의 파일을 또 만들면 살아난다

    - 심볼릭 링크 시 사본 위치(뒤에 적는 위치)를 기준으로 원본 위치를 맞춰야 한다

 

   하드링크, 심볼릭 링크 정리   

 

 - 리눅스엔 3가지 영역이 존재(Name, Inode, Data)

 ex) 하드링크시,

      name = a.txt / inode = 1 / data = a

      name = aa.txt / inode = 1(공유) / data = a

      -> a.txt를 지웠다고 aa.txt에 영향을 주지는 않는다. name만 지우는 것

 - 심볼릭 링크는 원본파일과 inode도 다르므로 심볼릭 링크 한 것은

     원본 파일의 포인터(주소)를 바라보는 것

    - 주소를 가져오므로 원본파일이 깨지면 사용이 안되는 것

 

   inode 삭제 하는 법   

 - 살짝 알아만 두자!

 - 링크된 inode를 찾고

    # find /1/2/3 -inum 356
    # find /1/2/3 -inum 356 -exec rm {} \;

 

   링크 문제 풀이   

 1. /a/b/c/d/e 디렉터리 생성
    현재 여러분은 /a/b 디렉터리에 있습니다.
    /a/b/c/test.txt 파일 생성합니다.
    심볼릭링크 작성 합니다.
    /a/b/c/test.txt   파일을 /a/test1.txt 로 단 절대경로 사용금지, 상대경로로만 작성하세요.

 

문제풀이 1

 

 2. /1/2/3/4/5 디렉터리 생성
    여러분은 /1/2/3디렉터리에 있습니다.
    /1/2/3/4/a.txt 파일 생성
    심볼릭 링크 생성 /1/b.txt 단 상대 경로로만 작성을 합니다.

 

문제풀이 2

 

 3. /aa/bb/cc/dd/ee 디렉터리 생성
    여러분은 /aa/bb/cc 디렉터리에 위치하고 있습니다.
    /aa/bb/cc/dd/ee/1.txt 파일 생성
    심볼릭 링크 작성 /aa/2.txt 로 단 상대 경로만 사용합니다.

 

문제풀이 3

 

 4. a/b/c/d/e 디렉터리를 한번에 생성

    여러분은 c 디렉터리에 위치합니다

    a/b 디렉터리에 a.txt를 생성합니다

    심볼릭 링크로 사본파일은 a/b/c/d/b.txt로 생성합니다

 

문제풀이 4

'Linux' 카테고리의 다른 글

22.02.18  (0) 2022.02.18
22.02.17  (0) 2022.02.17
22.02.16  (0) 2022.02.16
22.02.11  (0) 2022.02.11
22.02.10  (0) 2022.02.10