인프런에서 리눅스 강의를 들으면서
우분투를 virtual box와 함께 설치하는데....
어제 밤부터 오늘 오후까지 뭔가가 안되서
강의를 계속 돌려보고 구글링하고 재설치하고
온갖 삽집을 다 해보다가 결국에는
설치를.... 완료했다!
액땜이라 생각하고.... 오늘부터 리눅스도
공부를 꾸준히 시작 해야겠다.
리눅스란?
- 1991년 리누스 토르발스에 의해 만들어짐
- 리눅스는 운영체제(OS)
- 다양한 배포판(distribution, distro) = Ununtu, Fedora, Centos 등등...
공통점
1. 리눅스 커널(Linux Kernel)
2. GNU software
차이점
1. 데스크탑 관리자(gnome, KDE, ...)
2. 패키지 매니저(apt, yum, rpm, ...)
3. 기본 파일 시스템 등등
운영체제(Operating System)
- 컴퓨터의 하드웨어와 소프트웨어 자원을 관리하는 시스템 소프트웨어
User
↕
Application
↕
Operating System
↕
Hardware(CPU, HDD, RAM, GPU)
운영체제의 주요 구성 요소
- 커널(Kernel) : 가장 핵심적인 역할 / 하나의 소프트웨어 / 하드웨어 관리 / 대부분 다임.
- 프로그램 실행과 멀티 테스킹
- 인터럽트 : H/W가 OS에게 신호를 주는 (메시지를 이용함)
- 메모리 관리 : 프로그램이 메모리에 저장되고 CPU가 이것을 읽기에 메모리 관리가 중요.
- 파일 시스템
- 디바이스 드라이버
- 네트워킹
- 사용자 인터페이스
패키지 관리 시스템(Package Management System)
리눅스에도 각각의 배포판 종류에 따라 패키지 관리 시스템이 탑재되어있음.
라이브러리 동적 로딩과 의존성
정적 라이브러리 vs 동적 라이브러리
Apllications Aplications
Operation System Bin/Library
Hardware Operating System
Virtual Machine
Hypervisor
Operating System
Hardware
Traditional Architecture → Virtual Architecture(가상 머신)
계층구조
기본 쉘 명령어
★리눅스 쉘(Shell)
- 쉘 = 껍질
- H/W와 Kernel을 감싸고 있는
- 사용자가 쉘을 이용하여 리눅스 시스템을 사용하게 함.
- 명령어 처리기
User → Terminal Program →(/dev /pts ...)→ bash
★Bash (Bourne Again Shell)
- 쉘의 한 종류
- sh와 대부분 호환됨.
*도커나 쿠버네티스 CLI 기반으로 사용
기본 쉘 명령어 (command)
- 매뉴얼 조회(일종의 백과사전) : man > 모르는게 생기면 man page를 통해 우선적으로 찾아보기
- 파일 목록/내용 조회 관련 명령어 : Is, cat, head, tail
- 검색/탐색 관련 명령어 : grep, find
- 압축/해제 관련 명령어 : tar, gzip/gunzip, zip/unzip
- 시간 관련 명령어 : date, cal
- 기타 명령어 : echo, exit, history
- 관리자 권한 실행 : sudo
- 패키지 매니저 : apt
- 텍스트 에디터 : nano
man is 처음에는 설명들이 쭉 나오고 q를 누르고 껏는데
다시 입력하니
no manual entry file is
이런 오류인지 아닌지 무언가가 안된다...
구글링해도 도무지 못찾겠어서 일단 인강 질문에 남겨놨다...
디렉터리 내용 조회/이동/확인
shell에서 file을 다룰줄 알아야함
cd = change directory
디렉토리를 이동하는 명령어 , 절대 경로나 상대 경로를 주어서 디렉토리를 이동할 수 있음.
- cd/root = /root 디렉토리로 이동
- cd .. = 현재 디렉토리의 상위 디렉토리로 이동
- cd ~ = 현재 사용자의 홈 디렉토리로 이동
ls (List)
디렉토리에 있는 내용(디렉토리, 파일 등)을 확인하는 명령어
윈도우(또는 도스)의 dir 명령과 비슷.
- ls 명령어 -a 옵션(all) = 숨겨진 파일이나 directory도 보여줌.
- ex) ls -al
pwd
현재 디렉토리가 여기에 있다라는 뜻 → /home/weeding
리눅스 시스템에는 root dir가 꼭 있음. /로 표현
root dir 밑에 있는 home이라는 뜻.
/home 안에 test라는 디렉토리가 있음.
bash 쉘이 여기에 있다라는 뜻.
** 이 와중에 한글 입력이 안되서 아래 글 참고해서 한글 입력 해결 완료! 후...
https://iworldt.tistory.com/11
clear = 화면 깨끗하게 리셋
cd / = 현재 디렉토리가 어디있는지 편하게 표시 = /$
~$ : ~의 의미는 현재 사용자의 홈 디렉토리
파일 내용 조회 에 관한 몇가지 command
윈도우즈에서 파일을 보려면 더블클릭 > 내용이 보임
리눅스는 여러가지 커맨드가 70년대의 유닉스 시절부터 내려온 커맨드들을
발전시켜오면서 많은 것들이 유지
커맨드라인에서 쓰는 소스들 빈약한 애들이 아직도 많이 있음.
text파일이 있다라고 할때
윈도우즈에서는 처음부터 끝까지 내용을 다 보여주는데
리눅스에서 이러한 것을 cat 이라함
cat을 통해 파일을 지정하면 = ex) cat abc.txt
head는 처음부터 위에 어느정도까지만 보여줌
tail은 문서상의 가장 끝의 몇줄만 보여줌
head와 tail은 일부만
more, less 라는 유틸리티를 사용하면 지정 일부만 보여줌. (한 화면에 보여주는 부분을 짤라서)
페이지를 나눠서 볼 수 있음.
vim, vi, nano(윈도우즈에 익숙한, 간단한)
텍스트 파일을 열 수 있음. editor를.
--help = 간단한 설명
less
파일 내용 검색
grep
파일 안에 있는 내용중에서 내가 원하는 내용을 검색
ex) grep "kern.log" dpkg.log
grep --help 간단한 설명 확인
파이프
앞의 출력이 뒤에 입력으로 간다. 그렙을 이렇게도 이용할 수 있다.
ex) ls -al | grep "kern.log"
grep "2021-03-25 22:15" dpkg.log | head
cat dpkg.log | grep "2021-03-25 22:15:49"
파일 검색
파일의 속성이나 조건들을 부여해서
어디에 있는지 찾는 Find에 대해 알아보자
리눅스 시스템 상에 있는 특정한 파일이 어디에있는지 모를때 굉장히 난감.
찾으려면 불편. 검색기(탐색기) 활용
Find라고 하는 툴을 활용
지정한 디렉토리 이하의 디렉토리들을 탐색
기본 경로는 현재 디렉토리
기본수식은 -print
Find -name : xxxxx
. 현재 디렉토리
.. 현재 디렉토리의 상위 디렉토리
/etc
find /etc -print
find . -name "*conf" -print
절대경로
리눅스의 최상위 폴더인 루트디렉토리부터 이동할 목표 폴더까지
모든 경로를 다 입력해서 이동하는 방법
ex)
$ pwd
/home/weeding
$ cd /home/weeding/바탕화면
위와 같이 pwd로 위치를 확인해보면 바탕화면 폴더로 이동된것을 확인 가능.
이렇게 폴더를 이동할 때 모든 경로를 다 입력하는 것을 절대경로라 함.
상대경로
내가 현재 소속된 디렉토리에서 목표 디렉토리로 바로 이동할 때 사용하는 방법
쉽게 이야기해서 윈도우 폴더의 뒤로가기/앞으로 가기 기능
ex) 현재 위치가 home 폴더, 이 때 home > weeding > 바탕화면 순서로 가기 위한 루트
. 명령어를 활용하여 요약하면
cd ./weeding/바탕화면
상대 경로는 ./ 기호는 생략할 수 있다.
home > weeding > 바탕화면
cd ./weeding/바탕화면 = cd weeding/바탕화면
'기초 물방울 > 리눅스&VM' 카테고리의 다른 글
리눅스(Linux) 프로세스와 시그널 (0) | 2022.04.05 |
---|---|
리눅스(Linux) 사용자와 그룹, 소유권, 사용자추가, 스크립트 (0) | 2022.04.04 |
리눅스(Linux) 하드링크와 소프트링크 실습 (0) | 2022.04.04 |
리눅스(Linux) 공부 기록 #3 (0) | 2022.03.27 |
리눅스(Linux) 공부 기록 #2 Ubuntu 커맨드 (0) | 2022.03.20 |