운영체제

[리눅스] 리눅스 기본 정보 모음

지승준 2014. 1. 5. 13:48

리눅스 추천 싸이트 : https://www.linux.co.kr/

추천 자격증 : 리눅스 마스터 2

 

리눅스 기초 공부방법 : 리눅스 명령어

(eg.. cd, ls, pwd, cp, mv, sudo, man, apt-get, dpkg, rpm, wget, finger, who, cat, vi .. 필수50여개)

 

지름길 : WebServer 운용, 계정만들기, DB셋팅, WebServer셋팅, DNS서버설치, Sendmail셋팅 등...

          

  

리눅스를 사용해보자

 

ls –a : 숨김파일까지보기

ls –l  : 파일의 권한까지 보기

man <명령어> : 명령어에 관한 정보를 알 수 있다.

 

도메인을 사는곳 : whois.kisa.or.kr

 

gabia : 도메인서비스싸이트

(도메인의 이름을 찾기에 쉽다)

 

> : direct

 

ls > list : 하면 list파일이 생성되면서 ls명령어로 터미널 창에서 나오는 것들을 list파일에 저장한다.

rm : 제거명령

mkdir : 디렉터리 생성

rmdir : 디렉터리 제거 (하위에 파일또는 디렉토리가 있으면 제거 못함)

rm – rf <폴더명> : 하위 파일과 디렉토리 까지 제거

 

쉘에서 프로세서를 실행시키면 그 쉘자체에서 실행시킨다

그 쉘이아닌 복제하여 실행시키고 싶다면 ‘<프로세스이름> &’를 치면 된다. (ex : gedit &)

-> 이 방법은 다른 프로세서로 실행시키는 것으로 프로세서 아이디가 할당된다.

 

 ps –ef : 사용하고 있는 전체 프로세스 보기

-e : 모든 프로세스

-f : full 포멧으로 보기

 

 | : 파이프

 grep : 묶기

 ps –ef | grep apache : ps명령어와 grep명령어를 파이프로 서로 묶어서 활용하는데모든프로세스를 full포멧으로 보되, apache와 연관된 것만 보겠다.

 

kill <프로세스 번호> : 프로세스 죽이기

 

vi편집기는 sudo apt-get install vim을 통해 업그래이그 해줘야 키패드방향키가 먹힌다.

하나의 창에서 vi를 수정하다가 다른 터미널에서 같은 파일을 불러서 수정할 경우 swap파일이 생성된다.( .swp 파일나중에 갱신하라는 것이 뜨면 .swp파일을 제거하면 된다.

127.0.0.7은 자기자신을 나타내는 것으로 (localhost) 어느 pc나 같다.

 

아파치 설치 : sudo apt-get install apache2

아파치 깔고 자신의 pc를 서버로 사용가능하다

 

아파치설치후 자신의 메인 웹의 위치 : /var/www

메인웹 수정 : sudo vi index.html

자신의 웹 확인 : 브라우저상에서 주소를 127.0.0.7을 치면됨 (자신의 ip주소를 쳐도 가능)

위처럼 아파치설치하고 브릿지에서 다른사람을 모두 접속할 수 있도록 설정해두면 외부에서 브라우저 상으로 나의 ip에 접속하면 index.html파일의 내용이 보이게 된다.

 

권한변경 : chmod

 : 7

읽기 : 4

쓰기 : 2

보기 : 1

4+2+1 = 7 -> 7로두면 읽기 쓰기 보기 다 되는 것

 

파일질라 설치 :  sudo apt-get install filezilla

ex :  sudo chmod 777 www 하면 www폴더는 모든권한부여됨

 

[WebServer설치]

HTML코드를 브라우저에서 볼 수 있도록 만들어 주는 프로그램

 

WebServer종류 : Apache WebServer 1.6.x …… 2.x(지금쓰는버전)

우분투에서 Apache WebServer설치법

 

$> sudo apt-get install apache2

(선행조건 : 다운받기 위해서는 업데이트 서버 주소가 등록되어 있어야 함. sources.list)

 

WebServer Root폴더는 /var/www 이다.

index.html -> 메인 HTML코드

 

내컴퓨터 IP로 차아가는 법

a. localhost

b. 127.0.0.1

c. 실제IP (같은 LAN망에서는 서로 다른 컴퓨터에서 접속가능)

실제IP구하는 법 : 윈도우(ipconfig) , 리눅스(ifconfig)

 

위처럼 접속하면 자신의 /var/www 폴더에 있는 index.html파일이 보인다.(http://)

index.html파일에서 링크를 건 html파일은

 

Windows 원격접속으로 우분투 연결법

 

서버에 설치해야 될 것

$> sudo apt-get install xrdp

(윈도우가 접속할 수 있도록 해주는 서버 관련 프로그램그래픽 방식)

 

telnet(x) 암호화가 안되므로 안씀

 

ssh : 암호화 텔넷

 

$> sudo apt-get install openssh-server

(sshd)

ssh를 제공하는 것은 이것을 통해서 원격으로 서버에 접속가능 (터미널방식)

 

[계정만드는방법]

$> sudo adduser rfidguest

(패스워드도 입력도 하라고 자동으로 나옴)

 

[패스워드 바꿔 주는 방법]

$>sudo passwd rfidguest

 

[계정을 삭제하는 방법]

$>sudo deluser rfidguest

 

 

$> w 를 치면 현재 나의 pc에 접속한 user를 알 수 있다.

 

df : 하드디스크 메모리 확인 (df -h)

du <파일 또는 디렉토리의 상대결로 혹은 절대경로> : 해당 디렉토리 또는 파일 메모리 확인

 

레이드 : 물리적으로 여러 개인 하드디스크를 하나로 묶어주는 기술

(단점 : 복구가 힘들다)

 

bin : 명령어들을 모아 놓는 디렉토리

 

sbin : 시스템이 쓰는 명령어를 모아 놓는 디렉토리

이 명령어들을 잘 이용하면 코드가 간단하고 쉬워진다.

 

usr : 사용자들을 위한 것들을 모아 놓은 것 (사용자들에 의한 것)

(usr안에도 bin, sbin들이 있는데 리눅스에서 채택되지 않았지만 유저들이 만들어 놓았던 것들을 모아 놓은 것이다.)

 

home : 계정이 들어 있다.

게임의 경우 사용자들에게 계정을 만들면 주로 이곳에 들어 있다.

 

etc : 모든 환경 설정파일들이 들어있다.

dev

lib

proc


 

시간을 정확히 맞추는 방법 : rdate

서버의 경우 데이터들을 받을 때 시간이 잘 맞아야 원하는 순서로 받는게 가능

 

 

파일찾기 : find <경로> -name <파일이름>*

ex : find /home/rfidpc –name Hello* 혹은 find /home/rfidpc –name ‘Hello*’ 

ex2 : find /home/rfidpc –name *.java  혹은 find /home/rfidpc –name ‘*.java’

ex3 : find / -name Hello*

위의 ‘/’경로는 전체경로를 뜻하는 듯

위의 별표(*)는 생략을 뜻함

 

cd롬 삽입 : sudo mount /dev/sr0

cd롬 꺼내기 : sudo umount /dev/sr0

 

웹에서 Forbidden이 뜨면 서버에서 들어오는 권한을 막아서 이다.

서버상에서 들어오는 권한을 주려면

sudo chmod 755 www (www에 대한 권한을 바꾸는 방법)

예로 웹에서 서버상에있는 노래를 실행하는데권한이 막혀있다면 노래가 들리지 않을 수 있다.

 

 

real IP – 외부에서도 바로 접속이 가능하다.

 

가상 IP – 실제로 쓸 수 있는 IP는 한정되어 있지만 가상IP를 할당하여 많은 것처럼 느낄 수 있고그것을 할당하여 나눠 쓸수있는 IP로 외부에서는 가상IP로 접속이 되지않는다.

 

유동IP – 가정에서 주로 쓰는 것특정 날짜 혹은 컴퓨터의 재 시작마다 다시 할당이 된다.

 

[WebServer]

: HTML, Javascript를 웹브라우저에서 읽을 수 있도록 서비스를 제공하는 프로그램. TCP/IP, http 프로토콜 이용.

 

 

ip주소를 영문자 이름으로 매칭시켜주는 것 -> 도메인 네임 서비스

미국에서는 인터닉한국에서는 코닉()이라는 곳에서 제공

 

한국 도메인 네임 사업자 : 코닉에서 일부 사업을 받아서 (대행업체서비스를 해준다(도메인 네임 서비스)  ex : gabia

 

 

nslookup : 네임서비스를 지켜보는 것

ex : $> nslookup www.daum.net

 

현재는 ipv6, ipv4주소체계를 동시에 제공하고 있음

 

유명한 웹 서버 프로그램 : Apache, IIS(Window)

웹 서버 겸용 컨테이너 : Tomcat, Resin, (웹서버 역할을 하면서 자바프로그램을 구동 시킬 수 있다.)

자바를 웹에서 써서 database를 쓸 수 있는 장점이 있다다만 일반 웹서버보다 느리고 무겁다.

 

Tomcat의 경우 무료.

 

참고로 위처럼 무료로 제공되는 것들 중 대다수는 대학의 연구기관에서 나라에서 지원받아서 만든것.

 

아파치는 웹 서버 뿐만 아니라 xml을 고속으로 필터링 해주는(parser) 것을 무료로 제공한다또한 서버 제어 기술도 제공

 

 

$>uname

$>uname –a  : 리눅스 버전까지 모두 알 수 있다.

 

리눅스 3버전이상부터 cpu의 모든 코어들에 직접 프로세스 할당 및 제어가 가능

 

권한을 받아서 디렉토리 권한 바꾸기

chown <계정>:<그룹> ./www

 

 

 

 

 var www폴더안에 폴더를 하나 더 만들고(ex : chap10) 그곳에 index.html을 만들면,

apache서버 프로그램 자체가 그 폴더를 잡아 줘서 그곳의 index.html을 실행시킬 수 있다.

주소는 http://<자신의ip주소>/chap10 이다.

 

 

 

● 아파치 서버 종료 시키는법 :

$> cd /etc/init.d

$> sudo ./apache2 stop

 

● 아파치 서버 다시 구동 시키는법 :

$> cd /etc/init.d

$> sudo ./apache2 start

 

 /etc/init.d 안에는 명령어들이 있다.

 

 Web Programming

Web 서버운영 -> HTML서버 (HTML, JavaScript, jQuery), JSP

Web 2.0 서버운영 -> Tomcat + Apache  + DBMS(mysql, Oracle)

Web 3.0 서버운영 -> Tomcat + Apache + DBMS + 전자정부프레임워크(Spring, iBatis …)

 

한국 : 전자정부프레임워크 (LG CNS, 삼성 SDS,  삼사가 모여서 만든것)

 

메이저 트렌드(현재) :

1. google

2. Oracle

3. IBM

4. MS

 

웹쪽에서는 SAP(ERP) 도 주목할 것

SAP : 2만 이상의 직원이 있는 대기업의 경우에 적용되는 시스템이라 볼 수 있다.

ERP : SAP의 조각으로 소규모 에서도 적용하는 시스템

 Web2.0 운영해보자

Tomcat자체도 동접 50명 정도 까지는 지원한다자체적으로 서버의 기능을 하므로

그 이상을 원하면 Apache와 간은 서버 프로그램을 올린다.

그리고 DBMS를 올린다

 

 SSH서버 설치방법 :

sudo apt-get install openssh-server (sshd설치)

 

● 깔린 SSH서버에 터미널로 접속하는 방법 (puty를 이용하는 방법 (윈도우의 경우). puty말고도 새롬데이터맨, Security CRT 등등 많이 있다.)

1. 먼저 SSH서버가 구축 되어 있어야 한다우분투의 경우에는 위의 ssh서버 설치 방법을 참고하여 설치만 하면 간단히 ssh서버가 구축된다.

 

2. SSH서버에 접속할 수 있는 SSH클라이언트 프로그램을 깐다(Puty)

 http://kldp.net/projects/iputty/ 이 싸이트에서 Puty를 깐다.(왼쪽은 한글용이고, window용이다.)

 

3. puty를 설치한다.

 

4. puty를 실행하고, SSH서버의 ip주소를 입력한 뒤 접속한다.

 

한글 안깨지게 설정하는 방법 : puty자체 설정에서 창->변환->’수신한데이터문자셋’ 이 부분을 UTF-8로 바꾸면 된다그리고 이 설정을 세션창의 저장된 세션에서 세션자체에 저장하면 다시 시작하더라도 한글로 나오게 된다.

 

● mike 라는 계정을 만들어보자

puty 클라이언트 프로그램을 실행시키고

서버 ip에 접속 한 뒤,

$> sudo adduser mike 를 친다.

mike에 대한 암호를 입력하고 전화번호 등의 기본 데이터를 입력하면 계정이 만들어 진다.

 

cd /home 으로 가면, mike라는 계정이 있는 것을 확인 가능하다.

 

● 위에서 계정을 만든 뒤 바로 계정을 바꿔서 들어가는 방법

$> su <계정이름>

ex : su mike

 

● 참고로 위에서 만든 mike sudo의 명령어는 먹히지 않는다 (일반 유저 이므로)

그렇기 때문에 리눅스의 직접적인 변경을 위해서는 계정을 바꿔서 들어가야함최초 생성시 만들었던 계정이 sudo 권한을 받을 수 있다. (root권한으로 들어가는 root도 물론 권한을 가진다.)

 

sudo 권한을 받을 수 없으므로 리눅스상에서 파일을 쓸 수가 없다.

하지만 자신의 계정 폴더에서는 마음대로 쓰고 실행하고 읽기가 가능하다.

(mike계정의 경우 cd /home/mike 로 가면 그곳에서는 마음대로 가능)

 

● apache안에 가상 호스팅 기법이 있기 때문에 계정하마다 홈페이지를 줄 수 있다.

예로 <ip주소>/~mike  이와 같은 형식으로 이루어 진 것이 가상 호스팅으로 이루어진 것이다.

 

 

● 계정을 지우는 방법

1. root권한 을 얻을 수 있는 계정으로 로그인한다.

2. sudo userdel <계정 이름>

위 방법으로 하면 계정자체는 날라가지만 계정의 폴더는 남아 있다.

계정의 폴더 까지 지워주려면

1. cd /home

2. sudo rm –rf <계정이름>

 

 vi에서 키워드 찾기

 esc 명령어 모드에서  :/<찾을 단어>

 

 ls *passwd*

* : 모두

즉 위 명령어는 중간에 passwd가 붙어있는 모든 것을 보여 주라는 것.

 

cd /etc/

vi ./passwd 하면 모든 계정에 대한 정보가 보임

 

계정중 mike를 보면

mike : x : 1001 : 1001 : Mike,,, : /home/mike:/bin/bash

<계정번호> : <> : <> : <그룹번호 mike의 경우 1001>

 

 cd /etc/rc0.d/

시스템에 대한 정보를 알 수 있음

 

 cd /etc/init.d

데몬에 대한 정보를 알 수 있음

 

여기서 ls로 보면 위에서 깔은 ssh서버의 데몬이 보인다.

 

 ssh정지 시켜 보기

$> cd /etc/init.d

init.d폴더로 가서

$> ./ssh stop     //정지

$> ./ssh start     //실행

 

위에꺼 안됨;

 

● 리눅스 폴더 구조 공부

/bin , /sbin , /user/bin , /usr/sbin -- 명령어 모인곳

/etc      – 시스템 프로그램의 정보들이 모여있는 곳

/home   – 계정 폴더가 존재함

/user    – 일반 프로그램 설치

 

 env : 환경설정에 관한 내용을 볼 수 있다.

$> env | grep LANG 를 치면 language에 대한 설정 값을 볼 수 있다.

 

 ls –al | grep “^d”

디렉토리와 관련된 것만 묶어서 보여줌

 

● 파일 이름 바꾸기

ln <원래 파일 이름> <바꿀 파일 이름>

 

● 링크 파일(바로가기만들기

ln –s <링크이름> <링크할 파일 이름>

 

위와 같이 하면 하늘색으로 뜨는데 이것은 포인터를 뜻한다.

 

● 명령어에 대한 내용을 가지고 있는 배쉬파일을 보면

alias는 별칭이라 보면된다원래의 명령어를 간추려서 별칭만으로 사용 가능하다.

alias  ll = ls –alf

la la –a

l = ls –cf

라고 되어 있다.

따라서 la만 쳐도 ls –a와 같은 기능을 한다.

 

● 파일들 묶기

tar –cvf <묶고 나온 파일의 이름>.tar <묶을 파일들>

ex : tar –cvf mytar.tar ./He*   : He로 시작하는 모든 파일을 mytar.tar로 묶는다.

참고로 위처럼 해서 생긴 파일의 용량은 묶은 파일들 각각의 용량 합과 같다.

 

● 압축하기

gzip [옵션]

ex : tar –cvf mytar.tar | gzip -9c > mytar.tar.gz

위에서 파일 묶기로 묶을 tar파일을 mytar.tar.gz로 압축하여 만드는 것.

 

● 압축풀기

gunzip [옵션]


 

ex : gunzip –c mytar.tar.gz | tar –xvf mytar.tar

 

● shadow 중요