커널
운영체제를 작동시키는 핵심 프로그램
<커널 접근 방식>
리눅스의 경우 모노리딕 커널 방식을 사용하는데, 마이크로 커널의 확장성과 재사용성에 대한 장점을 모듈(module)이라는 개념을 도입해 보완
모놀리딕 커널
프로세스 관리, 메모리 관리, 파일시스템 같은 커널의 모든 기능을 통합한 구조로, 커널 모드에서 모든 기능을 수행
커널 코드에 하드웨어와 관련된 저수준 상호 작용이 포함되어 있어 구현된 커 널을 다른 시스템에 이식하기 어려움
마이크로 커널
운영체제의 기능을 프로세스 관리 서비스, 메모리 관리 서비스, 파일시스템 서비스와 같이 다수의 소규모 서버 프로세스로 분할하여 설계하는 방식
기능 확장이 쉽고 개발된 소규모 서버 모듈을 재사용 가능
커널 버전 번호 linux-x.y.z.tar.gz
x: 주 버전 번호로 리눅스 골격 자체의 획기적인 변화를 의미
y: 부 버전 번호이며 홀수이면 개발중인 커널이고 짝수이면 안정된 커널
z: 릴리스 번호로 추가된 기능은 없지만 오류 수정 등에 의한 작은 변화를 의미
배포판
비상업적이거나 상업적인 소프트웨어를 통합한 리눅스 패키지
- Red hat, ubuntu 등
리눅스 그래픽 인터페이스 상에서 커맨드라인 쉘에 접근하는 방법
터미널 윈도우(Terminal Window)를 사용함 / 혹은 CTRL+ALT+T를 클릭
리눅스의 장점
유닉스와 완벽하게 호환 가능
공개 운영체제이며 무료
강력한 네트워크 기능을 제공하며 인터넷의 모든 기능을 지원
멀티태스킹을 지원
안정적이며 하드웨어 기능을 효과적을 사용
리눅스의 단점
공개 소프트웨어이기 때문에 오류로 인한 사고 발생시 보상 불가
커널 버전이 너무 빨리 변화
Linux 주요 명령어(debian계열)
□ 날짜와 시간 보기 및 설정 : date => 관리자는 날짜와 시간을 바꿀 수 있다.
□ 화면 지우기 : clear
□ 온라인 도움말 얻기 : man
모든 리눅스 시스템은 man(manual pages의 약어)이라는 유틸리티를 가지는데, 이 유틸리티는 키보드를 눌러주는 것
만으로 유틸리티 사용에 관한 정보를 보여준다.
□ 명령어 사용법 확인하는 다른 방안
1). 명령어 --help (예: $ ls --help )
2). info 명령어 (예 : info ls ) : q를 사용하여 빠져 나옴
□ 프로세스의 종료: Control-C
출력의 정지: Control-S/Control-Q
입력의 끝: Control-D
□ 패스워드 설정 : passwd
최소 6문자 이상, 사전상의 단어나 고유 명사는 피한다
□ 접속 끊기 및 로그아웃: Control-D, logout, exit
시스템 종료 : shutdown, halt
시스템 재시작 : reboot
터미날 윈도우 제어를 위한 다양한 키 조합
□ 새로운 탭으로 쉘 열기 : Shift + Ctrl + t
□ 새로운 터미날 윈도우를 실행 : Shift + Ctrl + n
□ 하나의 탭을 닫기 : Shift + Ctrl + w
□ 하나의 터미날 윈도우 닫기 : Shift + Ctrl + q
□ 줌인 기능으로 텍스트 크기 확대 : Ctrl +Shift + ‘+’ (Terminal의 View 메뉴로 글자 확대 가능)
□ 줌 아웃 기능으로 텍스트 크기 축소 : Ctrl + ‘-’
=> 이 6개 안되는데????
□ 선택된 텍스트를 복사 : Shift + Ctrl + c
□ 다른 윈도우에 복사한 내용을 붙이기(입력) : Shift + Ctrl + v (혹은 가운데 마우스 버튼을 클릭)
기존 윈도우에서 shift만 추가했다고 생각하자
□ 터미날 윈도우를 전체 화면 모드로 전환 : F11 키
□ Up-Arrow()를 사용한 이전 수행 명령 수행 => windows cmd랑 똑같음
Tab 키를 사용한 명령어 자동 완성 기능
명령어의 부분적인 이름만 입력하고 탭 키를 누르면, Bash는 사용자가 입력한 정보를 바탕으로 커맨드 라인을 통해
명령어의 완성을 시도
- 다수개가 일치하는 경우 <Tab>키를 한번 더 누르면, 선택 옵션 나타남
사용자의 등록
시스템관리자 또는 서버 관리자로부터 계정을 부여 받는다 => 회사
본인의 컴퓨터에 리눅스를 설치하고 직접 관리자 자격으로 리눅스를 사용한다 => 개인 학습용
쉘(Shell) == 명령어 해독기
쉘은 순수 리눅스 운영체제와 사용자 사이에서 중간적인 매개 역할을 하는 프로그램
다른 응용 프로그램과 달리 메모리 상주
쉘은 사용자가 프로그램을 수행하고, 프로세스들의 파이프라인을 만들 고, 출력을 파일에 저장하며, 동시에 하나 이상의 프로그램이 수행되도록 한다
- Bourne-Again(Bash) 쉘
Bash Shell 설정
스타트업(startup) 파일과 초기화 파일의 두 가지 형태를 가짐
startup 파일
/etc/profile : 시스템 전체에 적용
사용자 홈 디렉토리의 .bashrc (Ubuntu Linux경우) 라는 파일이 있는데 자기의 환경에 맞게 설정하는 파일이다.
예를 들어 on/off시에 메세지를 띄운다 같은 추가적인 개인설정을 하는 것들
초기화 파일
/etc/bash.bashrc : 시스템 전체에 영향을 줌
모든 시스템은 정확하게 동일한 유틸리티를 갖지 않음➔ fedora, ubuntu가 100% 동일한 명령어를 사용하는 것은 아님
UNIX의 일반적인 디렉토리 정보
사용자 홈 디렉토리는 login을 해서 들어갔을 때 이 디렉토리로 들어가게 된다
리눅스의 기본 명령어
□ 현재 작업 중인 디렉토리의 확인 : pwd
print working directory
* 절대경로 / 상대경로는 Windows에서 알고있는 개념과 똑같은 개념이다.
. : 현재 디렉토리
.. : 부모 디렉토리
□ 다른 디렉토리로 이동 : cd
자신의 홈 디렉토리로 이동할 때 cd~ / cd를 입력하면 된다.
□ 디렉토리 내용 보기 : ls
□ 파일의 생성 : cat
명령 다음에 ‘>’ 문자와 ‘파일 이름’이 뒤따른다면, 그 명령으로부터의 출력은 파일에 저장된다.
□ 파일의 내용보기 : more
cat 과의 다른점은 긴 파일들을 한 페이지씩 단위로 보고 싶을 땐 more 사용
유사한 명령 : less
- more에 비해 forward와 backward 표시 가능
j 혹은 <Enter > 키 : 한 라인 앞으로
K : 뒤로 한라인 이동
Space bar : page down
b : page up
q : 종료
□ 파일의 내용보기 : head / tail
head -n은 파일의 처음 n줄을 표시한다.
tail -n은 파일의 마지막 n개의 줄을 화면에 보여준다.
□ 파일 복사 : cp
* 큰 파일 이동 시 cp, tar 명령 등을 수행한 후, buffer내용을 비울 수 있도록 sync 명령 수행하는 것이 안전함
( ➔ sync 명령은 버퍼 내에 남은 정보를 목적지로 보냄 )
□ Wild card
- 와일드 카드는 검색 문자열의 전후 어디에나 붙이거나, 문자열 속에 끼어 있어도 가능
a*
a로 시작되는 모든 것 (예: fins a*)
“*”는 “무엇으로든 바꿀 수 있는” 특수 기호
“*”는 임의의 0개 이상의 문자열
a?
a로 시작되는 두 문자로 된 문자열 (예: find a?)
“?”는 임의의 한 개의 문자
* ? ) 자체를 검색하고 싶으면 역슬래시를 활용하자
예제)
m[a,o,u]m : mam, mum, mom 문자
m[a-d]m : m으로 시작되고, m으로 끝나는 문자이면서, m과 m사이에 a에서 d사이의 문자를 갖는 경우 (mam, mbm, mcm, mdm )
cp {*.doc,*.pdf} ~ : .doc 혹은 .pdf로 끝나는 모든 것을 사용자 홈 디렉토리로 복사함
디렉토리는 뒤에 /를 첨부 표시(-F)
□ 파일 삭제 명령어 : rm
□ 디렉토리 만들기 : mkdir
□ 디렉토리 제거 : rmdir
디렉토리내에 파일이 존재하면 에러가 생긴다.
□ 파일 생성 시간 변경 : touch
2020년도 3학년 2학기 임베디드시스템 및 실습(동의대학교 최병윤 교수님)
'수업정리 > Linux' 카테고리의 다른 글
Docker 시스템 이해 (0) | 2020.09.15 |
---|---|
vi (vim)편집기 기본 사용법 및 주요 명령어 (0) | 2020.09.15 |
GNU Nano Editor의 기본 사용법 (2) | 2020.09.15 |
UNIX와 리눅스 소개(+ 컴퓨터 공학도가 알아야 할 인물) (0) | 2020.09.07 |
Window 10 환경에서 VirtualBox 6에 Ubuntu Linux(20.04) 설치 (0) | 2020.09.07 |