리눅스
● 컴퓨터 구성요소: CPU / 메모리 / 하드디스크 / I/O
● 운영체제: 사용자와 시스템 사이에서 편리한 인터페이스를 제공 / 커널을 통해 시스템의 각종 네트워크 장치, 하드웨어를 관리 및 제어
● 리눅스 역사
○ MIT, AT&T 벨연구소, General Electric 개발자들이 모여 멀티태스킹을 지원하는 멀틱스 OS 개발 시작했지만 실패
○ 멀틱스를 이어받아 하나의 작업이라도 제대로 하는 유닉스라는 운영체제를 기계어로 만들고 C언어로 개발한뒤 유닉스의 소스코드를 유료로 대학기관이나 연구소에 배포
○ 유료인 유닉스에 반발해 무료로 배포하려닌 기관들이 등장 (GNU)
○ 리누스 토발즈라는 대학생이 GNU 시스템에 적합한 커널을 개발하고 comp.os.minix에 포스팅
○ 계속된 발전으로 여러 리눅스 종류들이 개발 / CentOS(RedHat계열) / Ubuntu(Debian 계열)
● 리눅스 특징: C언어 기반으로 높은 이식성과 확장성 / 오픈되어 개발해 문제점에 대한 대처가 빠름으로 인한 안전성과 신뢰성 / 최상위 디렉토리가 존재하고 모든게 하부 디렉토리에 존재하는 계층적 파일 시스템
● 리눅스 구성 요소: 명령어 > 쉘 > 커널 > H/W
● 리눅스 프롬프트: [현재로그인한사용자@~ 현재작업디렉토리]에 대한 정보를 표시
○ CLI: 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
○ 명령어 구조
- 명령어: 시스템에서 특정 작업을 하기 위해 실행하는 실행파일 및 프로그램
- 옵션: 명령어를 어떻게 실행할건지 / -[옵션]로 지정
- argument: 명령어에 의해 영향을 받는 파일 및 디렉토리
리눅스 명렁어 1
● 디렉토리
○ 현재 작업 디렉토리 확인: pwd
○ 디렉토리 이동
- cd [이동할 경로]
- cd -: 이전 디렉토리로 이동
- cd ..: 한단계 상위 디렉토리로 이동
- cd /(1)/(2): 절대 경로로 이동
○ 디렉토리 내용 확인
- ls [옵션]
- -a: 숨겨진 파일 표시
- -l: 자세히 표시
- ll: 자세히보기 숏컷
- 자세히 표시시 앞자리 d(폴더) or -(파일)|사용자(rwx)|그룹(rwx)|그외(rwx)
○ 디렉토리 복사
- cp [옵션] [원본 경로] [사본경로]
- -r: 폴더까지 복사
○ 디렉토리 이동: mv [원본 경로] [이동할 경로]
○ 디렉토리 이름 변경: mv [원본 경로] [바꿀 경로]
○ 디렉토리 생성: mkdir [생성할 디렉토리 이름]
○ 디렉토리 제거
- rm [삭제할 파일 or 디렉토리 경로]
- -rf: 삭제할 대상이 비어있지 않아도 편한방법 / 중요파일 삭제 조심 / rm -rf /* -> (x)
● 파일 명령어
○ 파일 내용 확인: cat [조회할 파일 경로]
○ 파일 복사: cp [옵션] [원본 경로] [사본 경로]
○ 파일 이동: mv [원본 경로] [이동할 경로]
○ 파일 이름 변경: mv [원본 경로] [바꿀 경로]
○ 빈 파일 생성: touch [생성할 파일 이름]
○ 파일 or 디렉토리 검색: find [경로] -name [이름]
●작업 관리자
○ ps -ef
○ PID: 컴퓨터가 실행된 프로그램을 구분하는 매번 다른 번호
○ 프로세스 종료: kill -9 [PID]
● 압축
○ 아카이브 파일 생성: tar cvf [아카이브 파일 이름] [압축할파일1] ... [압축할파일n]
○ 아카이브 해제: tar xvf [아카이브 파일이름]
○ 압축: gzip [압축할 파일 이름]
○ 압축 해제: gun zip [압축 파일 이름]
○ 압축 및 아카이브 한번에 해제: tar zxvf [압축 및 아카이브 파일 이름]
VI 명령어 모음
● 명령 모드(command mode)
○ 처음 vi 명령어로 vi를 시작하게 되면 들어감 방향키로 커서를 이동할 수 있음
○ 입력모드에서 esc를 입력해 전환
○ 파일 처음: gg
○ 파일 끝: G
○ 맨왼쪽: 0
○ 맨오른쪽: $
○ 삭제: d[커서이동]
○ 커서 기준 글자 삭제: x
○ 커서 기준 한줄 삭제: dd / N행삭제-> Ndd
○ 복사: y[커서이동]
○ 커서 기준 한줄 복사: yy / N행복사 -> Nyy
○ undo: u
○ redo: ctrl + R
○ 붙여넣기: p
● 마지막 행 모드(Last line mode)
○ 명령모드에서 :을 입력하면 화면 맨 밑단에 :____ 하며 입력을 할수 있는 공간 저장이나 종료 수행
○ set nu: 라인넘버표시
○ set nonu: 라인넘버표시끄기
○ w: 현재 파일명을 파일 저장, 종료X
○ w [파일명]: 입력한 파일명으로 파일 저장, 종료X
○ q: vi 종료, 저장X
○ q!: vi 강제 종료
○ wq: 저장 후 종료
○ wq!: 강제 저장후 종료
○ /[string]: 현재 커서 위치에서 부터 파일 앞쪽으로 문자열 탐색
○ ?[string]: 현재 커서 위치에서 부터 파일 뒤쪽으로 문자열 탐색
○ :%s/old/new: 각 행의 처음 나오는 old를 찾아 new로 바꿈
○ :%s/old/new/g: 모든 old를 찾아 new로 바꿈
● 입력 모드(insert mode)
○ 명령모드에서 i, a 명령을 통해서 입력 모드로 넘어 갈 수 있고, 코드나 글 작성 가능 - 명령어 모드 - lastline 모드 :
CENT OS IP 주소 설정
● yum install net-toools
● vi /etc/sysconfig/network-scripts/ifcfg-ens160
○ BOOTPROTO=static
○ ONBOOT=yes
○ IPADDR=[가상의 공유기(virtual network editor, vmnet8]
○ NETMASK=[가상 공유기 서브넷 마스크 주소]
○ GATEWAY=[가상 공유기 주소]
○ DNS1=8.8.8.8
● VMnet8(가상공유기)을 기준으로 설정파일을 수정
● 시스템 재부팅
● net-tools ifconfig 명령어로 바뀐 IP 확인
nginx 깔고 외부랑 포트포워딩하기
● yum install nginx
● systemctl start nginx
● 현재 환경
○ 현재 호스트 IP: 192.168.0.240
○ 현재 공유기 IP: 192.168.0.1
○ 현재 공유기 서브넷 마스크: 255.255.255.0
○ 가상머신의 가상공유기: 192.168.73.0
○ 가상머신의 가상공유기 서브넷 마스크: 255.255.255.0
● 가상 공유기 포트 포워딩 설정: 외부에서 가상화 머신에 접속시 192.168.0.240:9876 입력 수행하면 포트포워딩 성공
리눅스 명렁어 2
● yum install [프로그램 이름]: 프로그램 설치 명령어
● ifconfig, ip addr: 자신의 IP 주소 확인
● 실행 중인 포트 확인 방법: netstat -anlp | grep ?
● 방화벽 끄기: setenforce 0 && systemctl stop firewalld
● host name 변경: vi /etc/hostnames -> 다 지우고 원하는 이름 입력
● 원격 파일 전송(로컬->원격): scp [목적파일명(경로)] [유저명]@[IP주소]:[목적디렉토리]
● 원격 파일 전송(원격->로컬): scp [유저명]@[IP주소]:[파일디렉토리] [유저명]@[IP주소]:[파일디렉토리]