리눅스 기초

chaeyoung·2022년 5월 2일
0

리눅스(CentOS)

목록 보기
1/13
post-thumbnail

리눅스 CentOS

(유닉스 기반의 OS CLI 환경)
Tip: terminal을 여러개 띄워서 설명을 보면서 작업을 할 수 있다.

참고 자료

  • 구름 쿠버네티스 리눅스 강의
  • 리눅스 -구름 배포 자료
  • 생활코딩 리눅스

리눅스 배포판

  • Red Hat 계열
    Red Hat(무료), Red Hat Enterprise Linux(RHEL), Fedora(유료), CentOS, RockyLinux
    (CentOS 정책이 변경 ==> RokyLinux가 역할을 대체함)
  • Debian 계열
    Debian, Ubuntu, Kali

[root@localhost ~]#

root : 사용자
localhost : hostName
~ : 작업 디렉터리
# : 쉘 프롬프트

1. unix OS 핵심 구성요소

Kernel

  • 운영체제의 핵심 구성요소
  • 하드웨어를 직접 제어

Shell

  • Kernel과 User를 연결하는 인터페이스
  • 사용자 명령을 커널이 이해할 수 있는 명령어로 해석 & 전달
  • Bourne Shell, Bash Shell(리눅스 기본 쉘), C Shell, Korn Shell, Z Shell

Directory

파일을 포함하는 특수한 파일

  • 홈 디렉토리

    • 사용자가 파일 생성, 수정, 삭제 등을 하는 디렉토리
  • 작업 디렉터리

    • 사용자가 명령어를 실행할 때 기준이 되는 디렉토리
    • 사용자 로그인 후 기본 작업 디렉토리는 홈 디렉토리

2. 명령어 & 환경

기본 구조

Command [Option]... [argument]...

  • Command: 명령어
  • Option: 명령어 출력 값 조정
  • Argument: 명령어 실행시 적용되는 대상
  • [Option or argument]... 해당 부분에 1개 이상의 항목이 올 수 있다.
  • ~ : (tilde 기호): 사용자의 현재 작업 디렉토리
  • # : 쉘 프롬프트라고 한다!

명령어 사용 확인

  • --help: 명령어의 간략한 사용법(옵션 위주)
  • man: 메뉴얼 페이지, 명령어에 대한 자세한 설명
    • /Keyword : 해당 키워드가 있는 페이지를 빨리 찾을 수 있다.
      • n : 다음 keyword
      • N : 이전 Keyword

CLI & GUI 환경 Console

  • GUI 환경 Console: Ctrl + Alt + F1
  • CLI 환경 Console: Ctrl + Alt + F2~F6

기초 명령어 훈련

(man 명령어 활용)

ls : 현재 디렉토리 파일 목록을 출력

  • ls -l : 세부내용 출력
  • ls -a : 숨겨진 파일을 포함하여 모든 파일 출력
  • ls -A : . , .. 을 제외한 숨견진 파일을 포함하여 모든 파일 출력
  • ls -F : 파일 목록과 종류를 함께 출력
  • ls -R : 해당 파일의 하위 목록들을 모두 볼 수 있다.

pwd : 현재 위치하는 디렉토리를 출력

mkdir : 새로운 디렉토리 생성

touch : empty file 생성

uname: 시스템 정보 출력

  • uname -a : 모든 시스템 정보 출력
  • uname -s : 커널 이름 출력
  • uname -r : 커널 버전 출력

su - root : 사용자 계정 변경

cal : 달력 표시

  • cal -3 : 이전 달, 이번 달, 다음 달 출력
  • cal -j : 이번 달을 julian date로 출력
  • cal -y : 올해 12달 출력

$ COMMAND1 ; COMMAND2 ; COMMAND3 : 다수의 명령을 순서대로 실행

3. Section별 메뉴얼 페이지

SectionDescription
1일반 명령어
2System Call
3C Library
4Special File(Device File) 및 드라이버
5File Format : 파일 형식
6Game/ScreenSaver 등
7기타(Misc)
8시스템 관리 명령어 및 데몬

man -s SECTION COMMAND

  • man -s 1 passwd : passwd 일반 명령어 메뉴얼 페이지
  • man -s 5 passwd : passwd 파일 형식 메뉴얼 페이지

man -k keyword

해당 keyword가 발견되는 모든 메뉴얼의 내용 출력

  • man -k passwd : passwd 키워드가 발견되는 모든 메뉴얼 내용 출력

man -f keyword

제목에 해당 keyword가 일치되는 메뉴얼 페이지에 대한 정보를 출력

  • man -f passwd : 제목에 passwd가 일치되는 메뉴얼 페이지들을 출력

4. 커서 조작

  • Ctrl + a : 맨 앞으로 이동
  • Ctrl + e : 맨 뒤로 이동
  • Ctrl + u : 커서 앞 전체 삭제
  • Ctrl + k : 커서 뒤 전체 삭제
  • clear (Ctrl + l) : 전체 지우기

5. 상대경로와 절대 경로

절대 경로

  • 최상위 디렉토리 / 부터 시작
  • 경로가 절대 변하지 않음

상대 경로

  • 작업 디렉토리로 부터 대상 파일의 상대적인 경로
  • 현재 작업 디렉터리 위치에 따라 경로가 변경됨

!!! 매우 중요 !!!

[ . ] : 현재 디렉터리
[ .. ] : 1단계 상위 디렉터리

4. 파일 시스템 계층 구조

기본 계층 구조

주요 디렉터리

DirectoryDiscriptions
bin시스템의 명령어가 위치
boot부팅 관련
dev시스템 하드웨어 장치 파일
etc시스템 구성 파일
home일반 사용자의 홈 디렉터리가 위치
rootroot 사용자의 홈 디렉터리
run시스템 런타임 데이터
sbin시스템 관리 명령어 위치
tmp임시파일 저장 경로, 누구나 사용 가능
usr설치된 software files 및 라이브러리 파일 위치
var시스템 가변 데이터 저장

6. 파일 내용 확인

  • File
    • 데이터를 가지고 있는 객체
    • 저장장치에 저장된 객체
  • Directory : 파일을 포함할 수 있는 특수한 파일
lrwxrwxrwx. 1 root root 7 Sep 12 2021 bin -> usr/bin
lrwxrwxrwx.1rootroot7Sep 12 2021bin -> usr/bin
파일 종류 및 퍼미션Hard link 개수소유자소유 그룹File 크기마지막 수정 일시파일 이름

ls -ld

디렉토리 자체에 대한 정보를 확인할 수 있다.

cat file : 한번에 text file 내용 출력

more file : 파일의 내용을 페이지(%) 단위로 출력

  • 페이지를 전부 넘기면 자동 종료

less file : 파일의 내용을 페이지 단위로 출력

  • 페이지를 전부 넘겨도 종료되지 않음

head file : 파일의 첫 내용을 보여주는 명령어 (default 10 lines)

  • head -n -15 File : 파일의 맨 앞부터 15행까지 출력

tail file : 파일의 뒤 내용을 보여주는 명령어 (default 10 lines)

  • tail -n 15 File : 파일의 맨 뒤부터 15개 행 출력

grep [OPTION] pattern [FILE] : 파일 내용 검색

  • grep -i : 대소문자 상관없이 검색
  • grep -n : 찾는 내용이 있는 행 번호를 같이 출력
  • grep -v : 특정 내용을 제외하고 검색
  • grep -c : 찾는 내용이 포함된 행의 갯수 출력
  • grep -w : 단어(word) 단위 검색

정규표현식 메타 문자

메타 문자설명
^행의 시작 지정
$행의 마지막 지정
.임의의 문자 1개 매칭
*0~무한대 갯수의 임의의 문자 매칭
[]패턴 내에서 1개 문자 매칭
[^]패턴을 제외한 1개 문자 매칭

grep 파일 내용 검색 및 정규 표현식 활용

  • $ grep 'root' /etc/passwd
  • $ grep -n 'root' /etc/passw
  • $ grep -v 'root' /etc/passwd
  • $ grep -c 'root' /etc/group
  • $ grep '^root' /etc/passwd
  • $ grep 'nologin$' /etc/passwd
  • $ grep 'p.....x' /etc/passwd
  • $ grep -w 'bash' /etc/passwd
  • $ grep 'root' /etc/passwd
  • $ grep '^root' /etc/passwd
  • $ grep 'nologin$' /etc/passwd
  • $ grep -w 'a..' /etc/passwd
  • $ grep -w 'g..' /etc/passwd
  • $ grep 'o*t' /etc/passwd
  • $ grep 'a[abcde][a-z]' /etc/passwd
  • $ grep 'a[^a-d][a-z]' /etc/passwd
  • $ grep 'a[^a-l][a-z]' /etc/passwd

디렉토리 및 파일 생성, 삭제, 이동, 복사

mkdir : directory 생성

rmdir : directory 삭제

touch : 빈 파일 생성

mv : 파일 및 디렉토리 이동

  • mv [원본 file]... [대상 dir] : (다중) 원본 파일 이동
  • mv [원본 dir]... [대상 dir] : (다중) 디렉터리 이동

cp : 파일 및 디렉토리 복사

  • cp [원본 file] [대상 file] : 원본 파일 복사
  • cp [원본 file]... [대상 dir] : (다중)원본 파일 복사
  • cp -R [원본 dir]... [대상 dir] : (다중) 디렉터리 복사

rm : 파일 및 디렉토리 삭제

  • $ rm [dir] : 파일 삭제
  • $ rm -r [dir] : 디렉토리 삭제
  • $ rm -rf [dir] : 확인 없이 디렉토리 삭제
  • 사용자에 따라 cp, mv, rm 명령어는 덮어쓰거나 삭제 시 메세지 출력 여부 다름
  • 필요시 -i / -f 옵션으로 출력 제어
  • 복사 및 삭제시 대상이 디렉토리라면 -r 필수
profile
안녕하세요! 풀스택 개발자가 되고싶은 윤채영입니다. 제 블로그에 방문해주셔서 감사합니다!~~

0개의 댓글