본문 바로가기

🎧️ 강의듣기

Linux 설치 및 사용

시스템( OS, Platform )

        OS - Operation System

        Platform - 소프트웨어 구동 장치

 

OS

        1. 시스템 관리자 - 설치ㆍ유지보수 (SA) / 운영환경설정

            => 슈퍼컴퓨터

        2. 보안 관리자

            해킹

                시스템 해킹

                네트워크 해킹

            쉘 프로그래밍 ( C / C++ )

 

        3. 개발자

            개발을 위한 환경구성

            ( 웹서버, 데이터베이스 서버 설치, 튜닝 )

            기타 프로그래밍

 

        Unix

            정통 Unix

                → Mac OS (BSD)        →        iOS

            linux                            →        Android

        Window

            드라이브 - 폴더 - 파일

 

        

        레드햇 계열 - 기업용 (유료 AS해줌)

        데비안 계열 - 우분투 ( 개인용 ) 사용자가 AS해야함

 

GNU는 다음과 같은 네 가지 자유를 보장

- 프로그램을 어떠한 목적으로도 실행할 수 있는 자유

- 프로그램이 어떻게 동작하는지 학습하고, 자신의 필요에 맞게 개작할 수 있는 자유

  이를 위해서는 소스 코드 에 대한 접근이 전제되어야 한다.

- 이웃을 도울 수 있도록 복제물을 재배포할 수 있는 자유.

- 프로그램을 개선할 수 있는 자유와 개선된 이점을 공동체 전체가 누릴 수 있도록 발표할 자유. 이를 위해서도 역시 소스 코드에 대한 접근이 전제되어야 한다.

 

리눅스 특징

- 공개 소프트웨어이고, 무료로 사용가능

- 유닉스와 완벽한 호환성 유지

- 서버용 운영체제로 많이 사용됨

- 편리한 GUI환경 제공 (CUI를 많이씀)

 

리눅스 구조

- 커널: 리눅스의 핵심

프로세스 / 메모리 / 파일시스템 / 장치 관리와

모든 자원 초기화 및 제어 기능을 한다.

- 셸: 사용자 인터페이스(UI)

명령해석, 프로그래밍기능

리눅스 기본 셸: 배시 셸(리눅스 셸)

응용 프로그램: 각종 프로그래밍 개발도구 / 문서편집도구 / 네트워크 관련 도구

 

http://ftp.kaist.ac.kr/CentOS/8.4.2105/isos/x86_64/

 

Index of /CentOS/8.4.2105/isos/x86_64/

 

ftp.kaist.ac.kr

 

CentOS-8.4.2105-x86_64-dvd1.iso 다운로드 약9기가

 

https://www.vmware.com/kr/products/workstation-player.html

vmware 설치 16버전 설치함

 

Create a New Virtual Machine

언어는 한국어 파티션은 자동 소프트웨어 선택에서

워크스테이션에서 개발용 툴 / 인터넷 프로그램 선택후 완료

 

root 암호는 123456으로 설정

사용자 생성에서 master로 설정하고 암호는 123456으로 설정

 

+ 시간설정 ( 아시아 서울 선택 )

다음다음 위치끄고 계정연결 건너뛰기

 

시스템 업데이트방법

root로 접속해서 터미널에서 yum update 입력

y입력하고 엔터

 

쉘로 다중작업을 함

 

리눅스 명령어

   

# 2021. 06. 30. (수) 21:41:52 KST
date : 현재 날짜를 보여줌

cal : 달력 표시

# date명령어에 대한 도움말
date --help

# 날짜 포맷팅 2021-06-30
date "+%Y-%m-%d"

# date명령어의 메뉴얼
man date

# 터미널 지우기
clear

# 터미널 종료
exit

# 커널에서만 사용가능 ( 터미널에서는 사용불가 )
logout

# 리부트
reboot

# 암호변경 (동일한 새 암호 입력시 
# 잘못된 암호: 암호가 이전 암호와 동일함 출력
passwd

# 현재 경로
pwd

# 현재 디렉토리의 리스트
# (특정경로가 있다면 특정경로의 리스트 보여줌)
ls

# 히든파일도 보여줌
ls -a

# 히든파일(숨김파일)
.bash_history

# 히든파일과 파일의 정보를 보여줌
ls -al / ls -a -l

 

( 모든 것은 루트 디렉토리 밑에 있다 )

        Linux(Unix) : 루트 디렉토리가 제일 처음

            /(컴퓨터) : 루트 디렉토리

                - 디렉토리

                - 디렉토리

                - 디렉토리

                                추가 하드연결

                                dvc

절대경로

/home/master

 

파일과 디렉터리 이름 규칙
    파일과 디렉터리 이름에는/를 사용할 수 없고, /는 경로명에서 구분자로 사용하기 때문이다.
    파일과 디렉터리 이름에는 알파벳, 숫자, 붙임표(-), 밑줄(_), 점(.)만 사용한다.
    파일과 디렉터리 이름에는 공백 문자, *, |, “, ‘, @, #, $, %, ^, & 등을 사용하면 안 된다.
    파일과 디렉터리 이름의 영문자는 대문자와 소문자를 구별하여 다른 글자로 취급한다.
    파일과 디렉터리 이름이‘.’으로 시작하면 숨김 파일로 간주한다.
    

파일 이름 예
    좋은 이름: game.txt, hello.c, test, sample99
    나쁜 이름: &game, *dir, my home, game\
    사용할 수 없는 이름: myhome/, /test, bad/name

 

디렉토리 관련된 명령어
 
# make directory 디렉토리 생성
 mkdir 디렉토리 명
 
# remove directory 디렉토리 삭제
 rmdir 디렉토리 명


# ls -l로 리스트에 보면 d로 시작하면 디렉토리
 
# 여러 디렉토리 생성 (dir3 dir4 dir5 생성)
 mkdir dir3 dir4 dir5

# mkdir dir1/dir2/dir3/dir4로 디렉토리를 생성할 수 없음

# -p 옵션을 주면 생성할 수 있음
mkdir dir1/dir2/dir3/dir4 -p

# -p 옵션알아보기
# 존재하는 경우 오류 없음, 필요에 따라 상위 디렉토리 만들기
-p, --parents     no error if existing, make parent directories as needed

# cd ( change directory ) 디렉토리 경로변경
# cd 절대경로 / 상대경로
# 절대경로: /부터    cd /home/
# 상대경로: 현재부터 cd ../        부모 디렉토리로 이동

# 현재 로그인 디렉토리로 이동
cd ~

# 디렉토리안에 어떤 파일과 디렉토리가 있는지 보여줌
ls -R ./dir1/
./dir1/:
dir2

./dir1/dir2:
dir3

# 트리구조로 보여줌
tree
├── dir1
│   └── dir2
│       └── dir3
├── 공개
├── 다운로드
├── 문서
├── 바탕화면
├── 비디오
├── 사진
├── 서식
└── 음악

 

파일관련 명령어

# 파일생성
touch 파일명

# 파일구조	  소유자 그룹   용량 생성일자	  이름
# -rw-rw-r--. 1 master master 0  7월  1 00:25 test3.txt
# drwxr-xr-x. 2 master master 6  6월 30 20:20 공개

# 맨 앞에 아무것도 없으면 파일 / d가 있으면 디렉토리


# 복사하기
cp 복사할 파일경로 복사되어질 파일경로
cp ./test1.txt ./test4.txt
cp ./test1.txt ./dir1/

# 같은 디렉토리에서는 이름 바꾸기
# 다른 디렉토리에서는 잘라내기
mv

# 삭제하기
rm

# 폴더와 파일 다 지우기
rm -r dir1/
-r, -R, --recursive 디렉토리와 그 내용을 재귀 적으로 제거함


# 파일 내용보기
cat 경로 파일명

# 위에서 몇줄만 보고싶을때
head /etc/passwd

# 위에서 3줄만 보고싶을때
head -n 3 /etc/passwd

# 아래에서 몇줄만 보고싶을때
tail /etc/passwd

# 아래에서 3줄만 보고싶을때
tail -n 3 /etc/passwd

# 페이지 단위로 나워서 보고싶을때
cat /etc/passwd | more
# 엔터 한줄씩 읽기
# 스페이스 바 한 페이지씩 읽기


# 파일내용에 특정 문자를 찾을때
# passwd파일안에 sbin이라는 문자 찾아줌
grap sbin /etc/passwd

# 넘버라인도 추가해서 보여줌
grep -n sbin /etc/passwd

# 파일이나 디렉토리를 찾는 명령어
find /usr/ -name ls

 

바로가기
실제파일 ← 바로가기 파일
        링크
         하드링크  (X)
                소프트링크(심볼릭링크) = 바로가기

 

# 링크파일 만들기              
ln -s 경로 만들링크이름
ln -s /etc/passwd ./p
lrwxrwxrwx. 1 master master 11  7월  1 01:14 p -> /etc/passwd

# 링크삭제
rm ./p

/usr/bin/java -> /etc/alternatives/java 화살표로 되어있으면 심볼릭 링크이다.
lrwxrwxrwx. 1 root root 22  6월 30 20:14 /usr/bin/java -> /etc/alternatives/java


# 명령어 위치 찾기
[master@localhost ~]$ whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz

[master@localhost ~]$ which cp
/usr/bin/cp

# 파일 내용수정
gedit / vi

 

 

 

한국어 (Hangul)로 변경 후 쉬프트 + 스페이스 누르면 한글로 바뀜

다시 쉬프트 + 스페이스를 누르면 영어로 바뀜

 

ESC를 누르면 명령모드로

:q / :q!는 저장하지 않고 종료

:wq / :wq! 저장하고 종료

 

명령모드에서 dd를 누르면 커서가 위치한 행 지워짐

명령모드에서 o를 입력하면 커서가 위치한 다음 행에 입력됨

명령모드에서 O를 입력하면 커서가 위치한 앞 행에 입력됨

명령모드에서 x를누르면 커서가 위치한 문자가 지워짐 (delete와 비슷)

:set number를 입력하면 라인넘버가 보임

:set nonumber를 입력하면 라인넘버가 사라짐

 

jdk 설치

su - root

암호입력

[root@localhost ~]# ← root 인지 확인

yum install java-1.8.0-openjdk-devel

javac -version

버전이 출력된다.