으나님의 잡다한 개발상식
운영체제 / 리눅스 명령어 본문
1. 운영체제(OS)
- 시스템의 모든 자원(하드웨어)을 운영하는 것
- 전원이 켜지자 마자 '스케줄링'이라는 것을 함 : 언제 어떤 자원을 사용할지 공간 배분
- 그런 저장 공간들이 배분되어 있는 것을 레지스트리라고 함. 즉 레지스트리로 스케줄링을 함.
- 화면을 송출할 때 운영체제를 사용.
- 화면을 바꾸는 속도가 60hz라면 이 속도로 화면이 바뀌므로 영상이 될 수 있음..
- 구조(=리눅스 구조)
-분류
1) 유닉스 기반 운영체제
2) 리눅스 기반 운영체제
- redhat계열 : 리눅스 레드헷(유료) / 최신버전이 안 나옴
- debian 계열 : 우분투(무료) / 이제는 debian을 많이 씀
3) 윈도우 기반 운영체제
있었으나 리눅스가 처음에 무료로 뿌리면서 비약적으로 성장하게 됨.
나중에 리눅스를 사용해서 개발할 경우 커널까지만 공개해야한다고 라이선스를 정함.
2. 우분투
- ubuntu 14.04.6(LTS) : 14년도 4년에 나온 6번째 버전 / 짝수년도에 정식버전을 출시함
- 최신버전도 버그가 많은 테스트 버전이라서 리눅스 서버 업데이트는 거의 하지 않음.
- 우분투와 윈도우를 같이 돌리려면 가상머신을 깔아야 함 - 버추얼박스(무료) / VMWare(유료)
- 또는 듀얼부팅을 해야 함(처음에 부팅하면 롬에서 바이오스가 실행되면서 어떤 OS로 부팅할지 선택함).
- intel계열의 cpu에서 돌도록 설정되어 있음
- 5년 동안 업데이트를 보장함
- 데스크탑용 우분투(개인사용자) / 서버용 우분투(GUI 환경 제공하지 않음, 모든 작업을 콘솔에서 진행해야 함)가 있음
- deb는 패키지 파일 확장자. apt는 패키지 관리 프로그램 확장자. apt 프로그램을 이용하여 deb 설치
- 근데 확장자 없어도 돌아감
3. 커널
- 운영체제의 핵심 기능을 관리(프로세서, 메모리, 네트워크, 저장장치, 응용프로그램)
- 공개되어 있음
- 드라이버를 관리
4. GNU(유닉스 x 리눅스 o)-정처기 시험에 많이 나온다고 함.
그래서 반드시 소스를 공개해야 한다.
5. 리눅스 터미널 명령
gedit : txt 파일 켬
cd .. : 상위 파일로 올라가기
cd 파일명 : 해당 파일로 찾아가기
ls : 폴더를 보여줌
$ : 사용자 권한
사용자ID@컴퓨터이름 : 현재 디렉토리 $(사용자)
사용자ID@컴퓨터이름 : 현재 디렉토리 #(root-관리자)
$ gedit a.txt
# cd abc/
cd - : 한 번만 뒤로 갈 수 있음
cd ./ : 현재 디렉토리
sudo su : super user 권한으로 실행/ 관리자 권한으로 들어가면 $ → #이 됨
ls-al : 모든 파일 보기(숨김파일까지). 여기서 '.'으로 시작되는 파일은 숨김파일임.
nautilus : 파일 브라우저(현재 폴더를 띄워라)
cp : 복사
rm : 삭제
rmdir : 디렉토리 지우기(그 폴더 안에 파일 있을 경우 지워지지 않음)
rm -rf : 모두 삭제(폴더 안에 뭐가 있어도 지워지고 안내멘트도 안나옴 근데 루트는 못 지우게 되어 있음)
mkdir : 디렉토리 만들기
mv text1 text2 : text1을 text2로 바꾸기// 파일을 움직이거나 폴더명 바꾸기
apt-get install vim : vim 패키지 깔기
apt-get remove vim : vim 패키지 지우기
vi : 마우스를 사용하지 않고 키보드만 사용(키보드 방향키도 안먹음) - HJKL로 이동할 수 있음
vim : vi와 동등하게 사용 가능, 마우스와 키보드 방향키도 사용 가능
ifconfig = ipconfig
top : 현재 메모리나 cpu사용량을 체크할 수 있음
pwd : 현재 폴더
ctrl+c : 강제종료
ctrl+z : 일시 정지
ctrl+alt+t : 새로운 터미널 열기
ctrl+shift+t : 여러 터미널을 하나의 창에서 쓰기
~ : 홈디렉토리(사용자) ex) /home/k
. : 현재 디렉토리 ex) cd ./
.. : 상위 디렉토리
/ : 루트
sudo shutdown [시간] : 종료하기(ctrl+z를 통한 정지가 안먹음)
sudo reboot : 리부트하기
df : 파일구조에 대해 볼 수 있음 여기서 /dev/sda1는 하드디스크임
mount :
<파일 디렉토리>
R : Read 읽기 권한
W : Write 쓰기 권한
X : 실행 권한
파일디렉토리 -d
소유자 소유그룹 제3자
rwx rwx rwx
ex) -rw--rw--r : 소유자는 읽고 쓰기 권한 있음 / 소유그룹은 읽고 쓰기 권한 있음 / 제3자는 읽기 권한만 있음
★cfmod : 권한변경
- *** *** ***
d *** *** ***
***부분은 비트연산임 따라서 읽기 권한은 4, 쓰기 권한은 2, 실행권한은 1임 합치면 7임
ex) cfmod 777 파일이름으로 하면 소유자, 소유그룹, 제3자 모두에게 모든 권한을 준다는 의미가 됨.
앞에 -, d는 파일구성을 뜻함.
chown 새로운유저 : 새로운그룹 파일명
ex) sudo chown aaa:foo A.txt
# : 주석
bashrc : 내의 alias에 단축명령어를 쓸 수 있음
gedit ~/.bashrc로 접속
echo '내용': '내용'을 화면에 찍으라는 명령어. ex) echo '1'
echo '내용' > '파일' : '파일'에 '내용'을 넣으라는 명령어(이전 내용은 지워짐) echo '1'>test
ln : link하는 기능
-R : 하위폴더
★find : 파일 검색 ex) find -name '파일명'
★grep : 파일 내용 검색 ex) grep -R '문자열' .
cat : 파일보기 ex) cat '파일명'
vim에서 입력모드를 진입하는 명령어
1) i: 커서 위치에서 입력
2) a: 커서 위치 뒤에서 입력
3) o: 다음 줄로 넘어가서 입력
4) ESC : 입력모드에서 나가기
vim 명령모드 명령어
1) b : 단어의 맨 앞으로 이동
2) B : 문장의 맨 앞으로 이동
3) e : 단어의 맨 뒤으로 이동
4) E : 문장의 맨 뒤으로 이동
5) gg : 파일의 첫 번째 문장으로 이동 / 5gg : 5번째 라인으로 이동
6) G : 파일의 마지막 문장으로 이동
7) yy : 한 줄을 복사함 / 5yy : 커서부터 5줄을 통째로 복사(명령모드에서는 복붙이 안됨.)
8) p : 복사한 한 줄을 붙여넣기
9) dd : 한 줄 삭제/ 3dd : 커서부터 3줄을 통째로 삭제
10) u : 되돌리기(undo)
11) ESC : 비주얼모드에서 나가기
vim 비주얼모드(블럭모드) 명령어
1) v : 블럭모드에 진입. 블럭을 잡을 수 있음
2) x : 잘라내기(붙여넣기 가능)
3) ESC : 비주얼모드에서 나가기
EX 모드(도구창)
1) : : EX모드 진입
2) w : 저장
3) q : 나가기 ex) :wq - 저장하고 나가기
4) ! : 무시
5) :5 : 5번째 라인으로 점프
6) e 파일명: 파일 새로 열기
7) new : 창을 가로로 나누기 (중첩해서 분할 가능)
8) vs : 창을 세로로 나누기 (중첩해서 분할 가능)
9) :%s/찾을문장/바꿀문장 : 찾아바꾸기
10) /찾을문장 : 문장을 찾음. 다음으로 넘어가려면 n으로 넘길 수 있음
ctrl+alt+F1~F6 : 터미널모드
ctrl+alt+F7 : 그래픽모드(X-Windows)
vim 내에서 esc+set number
gedit~/.vimrc 수정
set nu #줄 번호 보이기
set shiftwidth=4
set showmatch
set smartcase
set ruler
set cursorline
set hlsearch
set tabstop=4
syntax on
vim의 설정 : gedit ~/.vimrc
vim 애드온 : vim을 좀더 효율적으로 사용
ctag, cscope, taglist