vim 에디터 설치방법에 대해 알아본다  

 

 

 

VIM(VI Improved) 에디터

개발자는 에디터와 떼려해도 뗄 수 없는 관계에 있습니다. 현존하는 에디터 종류는 무수히 많은데, 윈도우즈 기본 에디터인 메모장부터, 리눅스 vi, Edit Plus, Emacs, 그리고 개발을 쉽게 해주는 부가적인 여러가지 기능을 넣은 IDE 인 이클립스, Visual Studio 까지 다양합니다.

 

보통 자신이 가장 많이 사용하는 에디터가 하나쯤은 있기 마련이지만 한가지만 사용하는 개발자는 없는 것 같습니다.

그 중 여기서 소개할 에디터는 vim 에디터 입니다. 이름에서도 알 수 있듯이 vi에디터를 더욱 발전시킨 에디터라는 것을 알 수 있습니다. (참고로 vi 에디터는 Visual edItor 에디터입니다.)

 

 

VIM 에디터의 장점

•거의 모든 운영체제 환경을 지원합니다.


•CUI 기반으로 매우 가볍고 빠릅니다.


•GUI 환경 또한 지원합니다.


•플러그인을 통해 기능 확장이 가능합니다.


•내부 스크립트를 사용해 기능 커스터마이징이 가능합니다.


•외부 명령어와의 연동이 가능합니다.


•문법 검사 기능이 있고 프로그래밍 코드의 가독성을 높여줍니다.


•정규 표현식을 이용한 문자열 연산이 가능합니다.


•실행했던 행동들을 되돌릴 수 있는 undo 기능이 제공됩니다.

 

 

VIM 에디터 리눅스에 설치하기

최신 버전의 리눅스 배포판들에는 기본적으로 vim이 설치되어 있습니다. 그러나 이는 최소 기능만 설치된 버전이고 만약 vim이 설치되지 않은 경우도 있을 수 있으므로 설치 방법을 알아봅니다.

 

 

RHEL 계열(레드햇, CentOS, 페도라 등..)

RHEL 리눅스는 RPM을 통해 패키지를 관리하므로, vim 패키지를 얻어 설치하거나 yum을 사용합니다. 패키지 설치에는 root 권한이 필요하므로 권한을 얻은 후 설치합니다. yum 명령어 한번이면 설치가 완료됩니다

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

[리눅스설치] RAID와 디스크 RAID 구성 종류

 

   


  

RAID에 대하여


RAID(Redundant Array of Inexpensive Disks)는 물리적으로 서로 다른 여러개의 디스크를 논리적으로 하나의 디스크인것처럼 사용하는 것입니다.

RAID는 크게 하드웨어 RAID와 소프트웨어 RAID가 있는데, 하드웨어 RAID의 경우 서버장비 제조업체에서 RAID용 장비와 DISK를 만들어서 공급받아 사용합니다.

안정성과 성능은 뛰어나지만 고가의 RAID 전용 장비 구매비용이 들어가게 됩니다.

소프트웨어 RAID의 경우 운영체제에서 지원하는 기술을 통해 이루어지기 때문에 하드웨어적인 구매비용이 절감되는 장점이 있지만 하드웨어 RAID 방식에 비해 안정성이나

속도가 떨어지는 단점이 있습니다.


RAID 레벨에 따른 디스크 구성
 

RAID는 방식에 따라 기본적으로 RAID0 ~ RAID5 까지로 나뉩니다.
 

단일 디스크인 경우

이경우는 RAID가 아니고 말 그대로 디스크 하나를 하나인것처럼 사용하는 경우입니다.

당연히 데이터는 디스크 하나에 차곡차곡 저장됩니다.
 
 

Linear RAID

Linear RAID는 RAID로 구성된 디스크를 차례대로 사용하는 경우입니다.

데이터는 첫번째 디스크부터 차례대로 저장됩니다.

디스크는 2개 이상 필요합니다.

RAID로 구성된 디스크의 공간을 100퍼센트 이용가능합니다.

 

그러나 신뢰성은 보장할 수 없는데 만약 1번 디스크와 2번디스크에 데이터가 걸쳐있는 경우 둘 중 하나 망가지면 데이터 잃게 됩니다.

무슨 뜻이냐면 만약 파일 하나를 저장하는데 10번화 11번 데이터가 파일 하나를 나눠 저장한 경우라면 둘 중 하나가 망가졌을 경우 해당 파일은 완전하지 못한 파일로 사용하지 못하게 되는 것입니다.
 

 

RAID0

RAID0은 동시에 각각의 디스크에 데이터를 저장하는 방식(병렬)입니다.

그렇기 때문에 RAID 레벨중 가장 속도가 빠릅니다.

디스크 1 에는 1,2,3을 저장하면서 동시에 디스크2에 4,5,6을 저장하는 것입니다.

이러한 방식을 Stripping 방식이라고 합니다.

속도는 빠르지만 뭐든 나누어 저장하기 때문에 한개의 디스크라도 고장이 난다면 데이터를 모두 잃게 되어 신뢰성이 떨어지는 방식입니다.

대부분 속도가 필요하나 중요하지 않은 데이터를 저장할 때 구성하는 방식입니다.

 

또한 디스크가 여러개일 때 디스크의 용량이 각각 다르다면 더 작은쪽에 용량이 맞춰집니다.

왜냐하면 어떤 데이터를 저장할 때 n/1로 나누어 동시에 저장하기 때문에 한쪽 디스크 용량이 작아 데이터가 꽉 찼을 경우 다른 디스크에 용량이 남는다고 해도 나누어 저장할 수 없기 때문입니다.
 

 
RAID1
RAID1은 RAID0의 신뢰성이 떨어지는 것과는 반대로 신뢰성을 보장하기 위한 방식입니다.

데이터를 여러개의 디스크에 동시에 저장하는 것은 같지만 같은 데이터를 복사하여 저장(Mirroring이라고 부름) 합니다.

그렇기 때문에 결함을 허용합니다.

* 결함을 허용한다는 뜻은 한쪽이 고장나도 데이터의 안정성을 보장한다는 뜻입니다.

 

단점으로는 데이터를 복사하여 저장하기 때문에 공간 효율이 2분의 1이라는 점(비용이 높음) 입니다.
 


RAID5

RAID5의 경우 RAID0처럼 공간 효율성이 좋으면서 RAID1처럼 신뢰성도 어느정도 보장하는 구성입니다.

디스크는 세 개 이상이 필요한데 구성하는 디스크 중 하나는 패리티 비트를 저장하기 위한 용도로 사용합니다.

 


예를 들어 파일1 ,2 ,3 이 있다고 가정했을 때 각각의 파일을 나누어 2진수로 저장한다고 생각해 보세요.

이때 1번 파일의 데이터는 0 과 1입니다.

그러면 디스크3에는 파일1에 대한 패리티비트로 1을 저장하게 됩니다.

*짝수 패리티(Parity) 비트의 경우 어떤 수의 합이 짝수가 되기 위한 비트로 저장하게 합니다.

 


파일 2의 경우 실제 데이터는 1과 1인데 1번디스크와 3번디스크에 각각 저장합니다.

그러면 패리티 비트는 2번디스크에 저장하게 되고 이미 1 과 1을 더하면 짝수이므로 0을 패리티비트로 저장하게 됩니다.

 


이런식으로 저장하게 되면 디스크 2가 고장이 난 경우 파일 1의 경우에는 1번 디스크의 0과 3번 디스크의 1을 합하면 1이므로 자연스럽게 2번 디스크의 원래 데이터는 1이었다는 것을 알 수 있습니다.

 


물론 디스크 두개가 고장날 경우 복구가 불가능 합니다.

따라서 디스크 구성 개수가 늘어날수록 공간효율은 N-1로 좋으나 디스크가 여러개일 수록 동시에 두개가 고장날 확률이 높아지므로 신뢰성이 떨어집니다.

 


또한 평소에는 패리티비트는 읽지 않고 실제 데이터만 읽다가 디스크에 문제가 생긴 경우에 패리티 비트를 이용하여 복구하게 됩니다.

 

RAID6(N-2의 공간 효율)

RAID6의 경우 RAID5를 개선한 것으로 패리티 비트를 두 개 사용하는 중복 패리티 알고리즘을 적용합니다.

따라서 디스크는 최소 4개 이상이 필요합니다.

중복 패리티 사용하기 때문에 저장속도가 조금 더 떨어지지만 RAID5보다 신뢰성이 높습니다.
 


RAID1을 RAID0으로 묶어 사용하는 경우 또는 RAID0을 RAID1로 묶어 사용하는 경우

RAID는 레벨별 한가지 구성으로만 사용하는 것이 아니고 다음과 같이 RAID1로 구성한 디스크들을 또다시 RAID0으로 구성하여 사용할 수 있습니다.

구성방식 변경에 따라 신뢰성과 공간효율 입출력 속도등을 알맞게 조절할 수 있습니다.


추가 RAID 2, 3, 4도 있지만 단점들을 보완한 방식이 5이므로 잘 사용하지 않습니다.


블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

[리눅스 명령어 ] 리눅스 기초(명령어 위주)

 
명령어 도움말 보기

리눅스에는 많은 명령어가 있기 때문에 모두 외워서 사용할 수 없습니다.
 
때문에 명령어에 대한 도움마을 얻을 수 있는 명령어가 있는데 man 명령어 입니다.

man 명령어는 manual의 약자로 다음과 같이 사용합니다.

 

리눅스 명령어

명령어 사이를 세미콜론으로 구분하면 연속으로 실행할때 사용한다는 의미이다.

fdisk -l /dev/sdb; fdisk -l /dev/sdc

(연속두번의 fdisk가 실행된다)

pwd : 현재 디렉터리 보여준다

ls -l : 현재 디렉터리의 파일리스트

ls -a : 현재 디렉터리의 목록(숨김파일 포함)

ls *.확장자

ls -l /etc/sysconfig/a* : 해당 디렉터리에 있는 목록 중에서 앞글자가 a인것들 목록

cd /etc : etc폴더로 이동

halt -p : 종료한다

df : 시스템에 마운트된 하드디스크를 확인할때 사용한다.

 

cd 명령어 관련

. 현재 디렉터리 .. 현재 디렉터의 상위 디렉터리

cp ../lib/abc .

: 현재 디렉터리의 상위 디렉터리(..)아래에 있는 /lib/디렉터리의 abc 파일을 (.)현재 디렉터리에 복사해라

 

mv : 파일이나 디렉터리 이동

mkdir : 디렉터리 생성

cat : 파일 내용을 보여줌

 

head, tail : 텍스트 형식으로 작성된 파일의 앞 10행 또는 마지막 10행만 화면에 출력함

head anaconda-ks.cfg : 해당 파일의 앞 10핼을 화면에 출력

head -3 anaconda-ks.cfg : 해당파일의 앞 3행을 화면에 출력

tail -5 anaconda-ks.cfig : 마지막 5행만 화면에 출력

 

권한이 필요한 명령어

rm : 파일이나 디렉터리 삭제

rmdir : 디렉터리 삭제(비어있어야한다)

cp : 파일이나 디렉터리 복사

 

파일실행

./파일명

 

다른사용자로 접속

su - 사용자 아이디 : 루트의 경우에는 비번없이 가능

exit : 위의 su를 사용한 경우 다시 root로 돌아감

 

네트워크 관련명령어

systemctl restart network : 네트워크 재시작

  - restart말고도 start, stop, status 가 있다.

ifconfig ens32 : 네트워크 정보확인

nmtui

  - 자동 ip 또는 고정 ip 사용 결정

  - ip주소 서브넷마스크 게이트웨이 정보 입력, dns 정보입력, 네트워크 카드 드라이버 설정

  - 네트워크 장치의 설정

ifup 장치이름 : 장치를 작동시켜주는 명령어

ifdown 장치이름 : 장치를 끄는 명령어

ifconfig 장치이름 : 해당 장치의 ip주소와 관련된 정보 출력

ping ip주소  또는 url : ping테스트

 

기타 팁

파이프 : |

  - 2개의 프로그램을 연결해준다.

  - ls -ls /etc | more : more를 사용해서 1페이지씩 나눠서 보겠다를 추가한것

필터 : grep, tail, wc, sort, awk, sed

  - ps -ef | grep bash : ps -ef는 모든 프로세스 번호 출력 bash라는 글자가 들어간 프로세스만 출력

프로세스

  - ps : 현재 프로세스 확인

  - kill : 프로세스 강제종료

  - pstree : 프로세스 트리형태 (부모와 자식관계)

  - jobs : 현재 백그라운드로 가동중인 프로세스 확인

  - 모든 명령어에 &를 붙이면 자동으로 백그라운드로 실행된다. 예) gedit &

 

 


블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,


[Linux] 우분투 리눅스 가상 터미널

 
가상 터미널

우분투에서는 7개의 가상 터미널을 제공합니다. 실제 물리적 모니터는 하나지만 논리적으로 7개의 모니터를 제공하는 것입니다. 만약 현재 실행중인 우분투가 X윈도우(GUI) 환경이라면 7개의 콘솔 중 7번째 터미널인 것입니다.


우분투에서 터미널이라 하면 보통 Gnome Terminal을 생각합니다.
하지만 Ctrl + Alt + F2 를 누르면 갑자기 화면이 바뀌면서 검은 바탕에 흰 글씨로 login: 을 뿌려줍니다.

이는 보통 리눅스에서 runlevel 3로 진입한 경우 나타나는 CUI 터미널로서 가상 터미널이라 불립니다.

ID와 Password를 입력하면 정상적 로그인이 됩니다.
안타깝지만 이 상태에서는 한글을 입력하거나 볼 수 없으며 영문만 가능합니다.

이런 답답한 터미널을 어디에 사용할까 생각되지만 가끔 필요할 때가 있습니다.
비디오 카드 설정을 변경하가나 X Windows를 뜯어 고칠 경우 사용하면 좋습니다.

우분투 시동중에 화면이 딱 멈추었을때도 가상 터미널로 진입이 가능하므로 알아 두면 언젠가 쓸 때가 생깁니다.

가상터미널은 Ctrl + Alt + F2 뿐만 아니라 F3, F4, F5, F6 이 가능하며
Ctrl + Alt + F7 은 우분투 바탕화면에 할당되어 있습니다.

멀티테스킹이 가능하므로 터미널을 여러개 띄우고 자유자제로 왔다갔다하는 것도 가능합니다.

한 가지 문제점은 이 가상터미널의 해상도가 너무 낮아 보기 안습이라는 겁니다.
/boot/grub/menu.lst 를 수정해서 가상 터미널의 해상도 조절이 가능하니 한 번 시도해 보세요.

7개의 가상 터미널 중 다른 터미널로 이동하는 방법은 단축키 Ctrl + Alt + F1 ~ F7 을 통해 이동할 수 있습니다.

X윈도우 환경인 경우 7번째가 X윈도우 환경이므로 다시 돌아오기 위해서는 Ctrl + Alt + F7을 누르면 됩니다.

만약 Ctrl + Alt + F3를 누르는 경우 3번 터미널로 이동합니다. tty3은 3번 터미널을 의미합니다.

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 오늘은 리눅스 재부팅,리눅스 종료, 리눅스 로그아웃 방법에 관하여 알아봅시다.

 

 

X윈도우 환경에서 종료할 때는

X윈도우 환경일 겨우 우측 상단 톱니바퀴를 누르고 컴[퓨터 끄기]를 누릅니다.

이후 나타나는 팝업에서 컴퓨터 끄기 버튼을 누릅니다.

다시시작 하려면 왼쪽의 회전 모양의 아이콘을 누릅니다.

명령어를 통한 종료

명령어로 시스템을 종료하는 방법은 몇 가지가 있는데 poweroff, shutdown -P now, halt -p, init 0 이 있습니다.

모두 root 권한에서 실행할 수 있는 명령어이며 옵션 및 명령어는 대소문자를 구분합니다.


#poweroff
#shutdow -P now
#halt -p
#init 0


shutdown 명령어


#shutdown -P +20    20분 후에 종료됩니다.(P: poweroff)
#shutdown -r 13:00  오후 1시에 재부팅 됩니다.(r: reboot)
#shutdown -c        예약된 종료 및 재부팅을 취소합니다.(c: cancel)
#shutdow -k +20     현재 서버에 접속해 있는 사용자들에게 20분 후 종료된다는 메시지를 보냅니다.(실제 종료되지는 않습니다.)
 

시스템 재시작

시스템 재시작하는 방법으로는 shutdown -r 과 같이 다음의 명령어들로 즉시 재시작이 가능합니다.


#reboot
#shutdown -r now
#init 6


시스템 종료 및 재시작시 init 명령어 를 사용하였는데 init 명령어는 시스템 런레벨을 변경하는데 사용됩니다. 런레벨이란 시스템 실행 모드를 변경한다는 뜻으로 이해해도 되는데 0은 종료모드, 6은 재시작 모드라고 생각하면 됩니다.

로그아웃

로그아웃은 특정 계정을 통해 현재 서버에 접속해 있는 상태에서 접속만 끊는 것이며, 시스템을 종료시키지는 않습니다.

다음의 두 가지 명령어를 통해 로그아웃 가능합니다.

#logout
#exit

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 


[리눅스] 디스크 RAID 구성 종류

 

 

RAID(Redundant Array of Inexpensive/Independent Disks)이란 여러개의 Disk처럼 묶어서 사용하는 방법입니다. 초장기RAID는 초기에는 Disk의 용량이 크기 않아서 업그레이드 후 폐기하기엔 아깝고 단독으로 사용하기에는 용량이 부족한 (Inexpensive)저장 장치를 재활용할 목적으로 RAID구성하였습니다 현재 RAID는 저장장치의 기술이 발전하여 용량이 점차 커져 용량 증설의 목적이 아닌 데이터보호 혹은 디스크 성능 개선을 위해 사용한다해서 독립적인 또는 단독으로 사용가능한(Independent)저장장치로 해석합니다.


RAID구성종류는 Hardware RAID와 Software RAID가 있습니다. H/W RAID는 RAID컨트롤러에 의해 구성하고 RAID컨트롤러에는 독자적인 메모리와 프로세서를 가지고 있고 안정적이고 성능이 우수합니다. S/W RAID는 RAID컨트롤러없이 운영체제에서 지원하는 방식으로 H/W RAID에 비해 속도나 성능이 떨어지고 저렴한 비용으로 H/W RAID와 동일하게 RAID를 구성할수있습니다.


RAID 레벨에 따른 디스크 구성 

RAID는 방식에 따라 기본적으로 RAID0 ~ RAID5 까지로 나뉩니다.  

단일 디스크인 경우

이경우는 RAID가 아니고 말 그대로 디스크 하나를 하나인것처럼 사용하는 경우입니다.

당연히 데이터는 디스크 하나에 차곡차곡 저장됩니다.   
 

Linear RAID

Linear RAID는 RAID로 구성된 디스크를 차례대로 사용하는 경우입니다.

데이터는 첫번째 디스크부터 차례대로 저장됩니다.

디스크는 2개 이상 필요합니다.

RAID로 구성된 디스크의 공간을 100퍼센트 이용가능합니다.


그러나 신뢰성은 보장할 수 없는데 만약 1번 디스크와 2번디스크에 데이터가 걸쳐있는 경우 둘 중 하나 망가지면 데이터 잃게 됩니다.

무슨 뜻이냐면 만약 파일 하나를 저장하는데 10번화 11번 데이터가 파일 하나를 나눠 저장한 경우라면 둘 중 하나가 망가졌을 경우 해당 파일은 완전하지 못한 파일로 사용하지 못하게 되는 것입니다. 

RAID0

RAID0은 동시에 각각의 디스크에 데이터를 저장하는 방식(병렬)입니다.

그렇기 때문에 RAID 레벨중 가장 속도가 빠릅니다.

디스크 1 에는 1,2,3을 저장하면서 동시에 디스크2에 4,5,6을 저장하는 것입니다.

이러한 방식을 Stripping 방식이라고 합니다.

속도는 빠르지만 뭐든 나누어 저장하기 때문에 한개의 디스크라도 고장이 난다면 데이터를 모두 잃게 되어 신뢰성이 떨어지는 방식입니다.

대부분 속도가 필요하나 중요하지 않은 데이터를 저장할 때 구성하는 방식입니다.

 

또한 디스크가 여러개일 때 디스크의 용량이 각각 다르다면 더 작은쪽에 용량이 맞춰집니다.

왜냐하면 어떤 데이터를 저장할 때 n/1로 나누어 동시에 저장하기 때문에 한쪽 디스크 용량이 작아 데이터가 꽉 찼을 경우 다른 디스크에 용량이 남는다고 해도 나누어 저장할 수 없기 때문입니다.
 


 
RAID1
RAID1은 RAID0의 신뢰성이 떨어지는 것과는 반대로 신뢰성을 보장하기 위한 방식입니다.

데이터를 여러개의 디스크에 동시에 저장하는 것은 같지만 같은 데이터를 복사하여 저장(Mirroring이라고 부름) 합니다.

그렇기 때문에 결함을 허용합니다.

* 결함을 허용한다는 뜻은 한쪽이 고장나도 데이터의 안정성을 보장한다는 뜻입니다.

 

단점으로는 데이터를 복사하여 저장하기 때문에 공간 효율이 2분의 1이라는 점(비용이 높음) 입니다.
 

 RAID5

RAID5의 경우 RAID0처럼 공간 효율성이 좋으면서 RAID1처럼 신뢰성도 어느정도 보장하는 구성입니다.

디스크는 세 개 이상이 필요한데 구성하는 디스크 중 하나는 패리티 비트를 저장하기 위한 용도로 사용합니다.

 

예를 들어 파일1 ,2 ,3 이 있다고 가정했을 때 각각의 파일을 나누어 2진수로 저장한다고 생각해 보세요.

이때 1번 파일의 데이터는 0 과 1입니다.

그러면 디스크3에는 파일1에 대한 패리티비트로 1을 저장하게 됩니다.

*짝수 패리티(Parity) 비트의 경우 어떤 수의 합이 짝수가 되기 위한 비트로 저장하게 합니다.


파일 2의 경우 실제 데이터는 1과 1인데 1번디스크와 3번디스크에 각각 저장합니다.

그러면 패리티 비트는 2번디스크에 저장하게 되고 이미 1 과 1을 더하면 짝수이므로 0을 패리티비트로 저장하게 됩니다.


이런식으로 저장하게 되면 디스크 2가 고장이 난 경우 파일 1의 경우에는 1번 디스크의 0과 3번 디스크의 1을 합하면 1이므로 자연스럽게 2번 디스크의 원래 데이터는 1이었다는 것을 알 수 있습니다.

물론 디스크 두개가 고장날 경우 복구가 불가능 합니다.

따라서 디스크 구성 개수가 늘어날수록 공간효율은 N-1로 좋으나 디스크가 여러개일 수록 동시에 두개가 고장날 확률이 높아지므로 신뢰성이 떨어집니다.


또한 평소에는 패리티비트는 읽지 않고 실제 데이터만 읽다가 디스크에 문제가 생긴 경우에 패리티 비트를 이용하여 복구하게 됩니다.


RAID6(N-2의 공간 효율)

RAID6의 경우 RAID5를 개선한 것으로 패리티 비트를 두 개 사용하는 중복 패리티 알고리즘을 적용합니다.

따라서 디스크는 최소 4개 이상이 필요합니다.

중복 패리티 사용하기 때문에 저장속도가 조금 더 떨어지지만 RAID5보다 신뢰성이 높습니다.  

RAID1을 RAID0으로 묶어 사용하는 경우 또는 RAID0을 RAID1로 묶어 사용하는 경우

RAID는 레벨별 한가지 구성으로만 사용하는 것이 아니고 다음과 같이 RAID1로 구성한 디스크들을 또다시 RAID0으로 구성하여 사용할 수 있습니다.

구성방식 변경에 따라 신뢰성과 공간효율 입출력 속도등을 알맞게 조절할 수 있습니다.

추가 RAID 2, 3, 4도 있지만 단점들을 보완한 방식이 5이므로 잘 사용하지 않습니다.

 


블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,


[Linux] 리눅스 런레벨


리눅스에는 시스템이 실행되는 모드에 따라 7가지 레벨로 나누어 놓았습니다.

이러한 레벨들을 런레벨이라 하며 CentOS, Ununtu 등 약간의 차이는 있을 수 있으니 기본적으로 같은 런레벨 체계를 사용합니다.(0 정지, 1 단일 사용자모드, 6 재시작 은 공통)

 

 
런레벨(CentOS)

센토스 기준 런레벨 테이블입니다.

0, 1, 6은 모든 리눅스 배포판 공통입니다.

 레벨명 설명

0
Power Off
시스템 종료를 의미합니다.


1

Rescue

시스템 복구모드이며 Windows의 안전모드를 생각할 수 있습니다.

기본적으로 관리자 권한을 얻어 수행 됩니다.
 

2

Multi-User
사용하지 않음

3

Multi-User

CLI(텍스트 기반) 다중 사용자 모드 입니다.


4

Multi-User

사용하지 않음


5

Graphical

GUI(그래픽 모드) 다중 사용자 모드 입니다.


6

Reboot

시스템 재시작을 의미합니다.

 


런레벨 확인 방법

다음 명령을 통해 런레벨 파일 확인 가능합니다.

런레벨 파일은 링크 파일이며 실제로는 각각 런레벨명.target 파일을 가리킵니다.

ex)runlevel0.target -> poweroff.target

 

리눅스 프로세스의 개념이해하기

 

 1) 포그라운드 프로세스 ( foreground process)

  리눅스에서는 한번에 수백 개 이상의 프로그램을 동시 수행할 수 있는데, foreground process는 일

  반적으로 쉘 상태에서 명령을 내리면 해단 프로세스가 종료될 때 까지 기다려야 합니다.

 2) 백그라운드 프로세스

  background process는 사용자 입력에 관계 없이 실행됩니다.

 3) 부모 프로세스

  일반적으로 컴퓨터를 실행시킬 때 서버 프로세스를 생성시키는 프로세스. 유닉스 프로그램에서는 프

  로세스 실행 중에 새로운 프로세스를 실행하기 위해 먼저 포크 명령 등 시스템 호출에 의해 새로운

  프로세스, 즉 자식 프로세스를 발생시킬 수 있는데 자식 프로세스를 발생시킨 프로세스가 부모 프로

  세스이다.

 4) 자식 프로세스

  다중 태스크 환경에서 또 다른 프로세스인 부모 프로세스(parent process)가 시동하는 프로세스. 이

  때 시동하는 동작을 흔히 갈래(fork)라고 한다. 부모 프로세스는 자식 프로세스가 실행을 정지할 때까

  지 잠자고 있는 경우가 많다.

 5) 고아 프로세스

  보통은 자식프로세스가 종료된 후에 부모 프로세스가 종료되는게 정상이지만, 부모프로세스가 먼저

  종료되거나 또는 필요에 의해서 먼저 종료되기도 하는데 이때 자식 프로세스만 남는 경우 이 자식 프

  로세스를 고아프로세스라고 부릅니다.

 6) 좀비 프로세스

  실행이 종료되었지만 아직 삭제되지 않은 프로세스를 말합니다

 

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 레드헷 리눅스 계열의 프로그램에서vi 에디터 사용법

 

vi에디터는 윈도우의 텍스트처럼 문서를 편집하는데 쓰이는 프로그램이다.

vi에디터를 사용하기 전에는 cat 으로 파일을 만들어 편집하고 했는데 cat만을 사용하면 기존에 작성하던 파일의 내용을 볼 수가 없었고 중간에 수정할 수도 없었는데 vi에디터를 사용하게 되면 이러한 문제점들을 해결하고 파일 편집을 할 수가 있다.

vi에디터는 밑에 그림처럼 크게 3가지 모드로 나눌수가 있다.

 

 

 

 

vi에디터를 "​vi 파일명 " ​으로 실행하게 되면 처음엔 '​명령모드'​가 나올 것이다. 이는 해당 파일을 볼 수는 있지만 수정할 수가 없다. 따라서 파일을 수정하기 위한 모드인 입력모드로 들어가는 방법과 수정 후 그 파일을 저장할 실행모드가 필요하다.

 

처음 명령모드에서 i를 입력하면(그림처럼 a또는 o를 입력해도 상관없음 보편적으로 i를 사용함)

명령모드에서 입력모드로 바뀌게되며 이때부터 파일을 마음껏 편집할 수 있다. 편집을 마친후 해당 파일을 저장하거나 혹은 그냥 저장하지않고 나오려면 ESC를 눌러 명령모드로 이동후 다시 실행모드로 이동해야 하는데 이때 실행모드로 이동하기 위해서 ESC-> ​: 를 입력하면 실행모드로 바뀔것이다.

: 입력후 저장하려면 w를 누르고 그냥 나오려면 q를 입력하면된다. 혹은 이명령어를 조합해서 저장후 종료를 원할땐 wq를 입력하면 될 것이다. 리눅스는 명령어들의 조합이 가능하니깐 이점을 항상 숙지하고 있어야한다.

명령모드에서 커서를 방향키로 이동시킬수 있다. 혹시나 모르실까봐 말씀드린다.

 

명령모드에서 사용할 인자값들은 i 이외에도 몇개가 더있지만 사용법은 위에서 설명한 형식과 동일하다. 간단하게 종류만 가르쳐 주겠다.

'​dd​'  커서 위치의 한 행을 삭제

'​yy​'  커서 위치의 한 행을 복사                         dd와 yy는 앞에 숫자를 넣고 사용하면 해당 숫자의

'​p​'  복사한 내용을 커서 위치에 붙여넣기            줄만큼 실행된다. ex) 50dd -50줄을 삭제

'​u​'  되돌리기

Tip. 강제로 종료 혹은 강제 종료후 저장과 같이 강제의 의미를 넣기위해서는 ​!​를 뒤에 붙이면된다.

 

리눅스에는 Redhat 계열과 Ubuntu 계열이 있다. 이 둘은 서로 다른 명령어가 몇가지가 있는데 이중에서 파일을 설치하는 방법이 다르다. Redhat계열은 yum이라는 명령어를 사용하지만 ubuntu계열은 apt-get의 명령어를 사용한다.

저는 두가지 os를 사용하지만 학원배우는 내용은 centos이기 때문에 Redhat계열의 명령어만 설명하겠다.

프로그램 설치방법을 설명하기 전에 rpm이라는 걸 알아보자.

rpm이란 (Redhat Packege Manager)의 줄임말로  윈도우의 setup.exe 와 비슷한 역활을 한다.

확장자는 .exe가 아니라 .rpm이다.

rpm 명령어로 설치가 가능하지만 이 명령어는 설치중일때 계속 설치여부의 확인을 계속 물어보기 때문에 그많은 여부를 확인하기 귀찮아서 yum이라는 간편하고 실용적인 명령어만 알아보겠다.

rpm명령어 중 알고있으면 좋은 명령어는 '​rpm -qa 패키지이름 ​' 을 사용하면 해당 패키지가 컴퓨터에 설치가 되어 있느니 확인하는 명령어이며 find 명령어처럼 검색한 이름과 똑같은 이름만 찾아서 보여준다.

바로 yum을 설명하겠다. yum명령어를 사용하기전 확인해야할 것은 컴퓨터가 인터넷과 연결되있는지의 여부와 설치하고자하는 패키지의 이름을 정확히 알아야한다는 것이다. 물론 rpm도 마찬가지겠지만말이다.

명령어는 '​yum install -y 패키지이름​' 이다. 중간에 y 인자값은 설치중 간혹?나오는 설치여부를 묻는 질의에 항상 yes를 적용하겠다는 인자값이다.

'​yum update 패키지이름​' 은 해당 패키지를 업데이트 한다는 것이다.

'​yum remove 패키지이름​' 은 해당 패키지를 삭제해버리는 명령어이다.

 

 

               

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

 

VI 에디터 명령어

 

# 시작/종료 및 기타

 

:set number    또는 :set nu    행에 번호 부여

:set nonumber 또는 :set nonu    행에 부여된 번호 제거

:ZZ 또는 :wq    저장하고 vi 에디터 종료

:w [filename]    주어진 파일 이름으로 저장

:w! [filename]    주어진 파일 이름으로 저장/덮어쓰기 후 종료

:w!    저장후 편집종료

:q    저장하지 않고 vi 에디터 종료

:q!    저장하지 않고 vi 에디터 강제종료

:e    vi 에디터 종료하지 않고 다른 파일 편집

:e!    편집한 내용 저장하지 않고 최종 저장된 상태로 파일 열기

 

# 입력 편집 명령어

 

i    문자 앞에서부터 입력

a    현재 문자 뒤에서부터 입력
   
I    현재 라인 첫머리에서부터 입력

A    현재 라인 맨뒤에서부터 입력

o    현재라인 아래에 입력

O    행의 위에 입력

r    겹쳐쓰기(커서위치 1문자 변환)

R    현재문자 이후부터 겹쳐쓰기

s    커서가 있는 단어를 지우고 입력하기

ch    커서 바로 앞의 한글자를 여러글자로 수정하기

S    커서가 있는 행을 지우고 입력하기

cw    커서 위치의 한 단어를 수정하기

co    커서 위치부터 줄의 처음까지 수정하기

c    커서 위치부터 줄의 끝까지 수정하기

cc    커서가 있는 줄을 수정하기

cj    커서가 있는 줄과 그 다음 줄을 수정하기
   
ck    커서가 있는 줄과 그 앞줄을 수정하기

 

# 삭제 명령어

dw    한 단어 삭제

dd    한 라인 삭제

[number]dd    커서있는 위치에서 숫자만큼  라인 삭제

dj    커서가 있는 줄과 그 다음 줄을 삭제

dk    커서가 있는 줄과 그 앞줄을 삭제

do    커서 위치부터 줄의 처음까지 삭제

x    커서의치의 글자 삭제

D    한줄삭제
   
d$    커서 위치부터 줄의 끝까지 삭제

X    커서 바로 앞의 글자 삭제

# 치환 명령어

cw    한 단어 바꾸기(단어의 첫머리에 커서 위치해야함)

# 복사 명령어

y    문자 복사

yy    한라인 복사

yw    커서 위치부터 단어의 끝까지 복사하기

yj    커서가 있는 줄과 그 다음줄을 복사하기

yo    커서 위치부터 줄의 처음까지 복사하기
   
yk    커서가 있는 줄과 그 앞줄을 복사하기

y$    커서 위치부터 줄의 끝까지 복사하기
   
p    현재 줄 다음에 버퍼의 내용을 붙임

P    현재 줄 앞에 버퍼의 내용을 붙임

# 명령어 취소/반복

esc key  입력화면에서 빠져나옴옴

u 또는 :u    되돌리

U    그줄에 행해진 작업 모두 취소하기

.    조금전에 했던 명령 반복하기
   
# 이동 명령어

:[number]  숫자의 행으로 이동

:0    문서의 맨앞으로 이동

:$    문서의 맨뒤로 이동

l    오른쪽으로 이동

h    왼쪽으로 이동
   
j    아래로 이동

k    위로 이동
   
B    특수문자,기호제외(한단어 뒤로이동)

b    한단어 뒤로 이동

w    한단어 앞으로 이동

W    특수문자, 기호제외(한단어 앞으로 이동)

enter    다음줄의 첫글자로 이동
   
e    단어의 마지막 글자로 이동

o    라인의 시작으로 이동

E    단어의 마지막 글자로 이동하기

$    라인의 끝으로 이동

shift키와 함께 사용
   
gg    파일의 첫 행으로 이동

G    파일의 마지막 행으로 이동
   
^    라인의 첫 번째 단어로 이동

shift키와 함께 사용
   
+    다음 라인의 처음으로 이동

H    화면의 맨위로 이동
   
-    이전 라인의 처음으로 이동

M    파일의 중간으로 이동
   
[ctrl]+F    한 화면 앞으로 이동

L    화면의 끝으로 이동
   
[ctrl]+D    한 화면의 반만큼 앞으로 이동

/[text]    단어검색

/[filename]    파일검색
   
[ctrl]+B    한 화면의 뒤로 이동

[ctrl]+U    한 화면의 반만큼 뒤로 이동

               

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,


리눅스 vi 편집기

   
이번 포스팅은 vi 편집기에 대해 말해드리겠습니다. 


vi 편집기란? 텍스트 기반의 편집기로써 유닉스, 리눅스 계열의 운영체제에서 사용하는 유명한 편집기  입력모드(Insert mode), 명령모드(command mode), 라인모드(line mode)의 세 가지 모드로 구분하며 사용한다.


입력 모드(Insert mode) - 입력을 원하는 글자를 입력하고, 화면은 입력한 상태를 그대로 보여주는 모드입니다.


명령 모드(Command mode) - 명령을 사용하여 커서를 이동하거나 글자를 삭제 및 교체하고 문자열을 검색 할 수도 있는 등 다영한 편집이 가능한 모드로 명령이 아닌 키보드 입력은 모두 에러 처리됩니다.


라인 모드(line mode) - 콜론(:) 을 앞에 붙이고 사용하며 저장, 편집, 검색 기능 등 다양한 기능을 제공하는 모드입니다.


vi 편집기는 터미널에서 vi를 실행하면 명령모드로 실행됩니다.
여기서 a 또는 i 를 누르면 입력모드로, 콜론을 누르면 라인모드로 넘어갑니다.
다시 명령모드로 돌아올 때는 esc로 돌아오면 됩니다.


(그림판으로 표현한다면 이정도..?)


그럼 vi편집기를 사용하려면 무슨 명령어를 사용해야 할까요? vi 편집기를 사용하고 싶다면 vi 명령어를 사용하면 됩니다.


vi ([파일명])


vi만 쳐도 되고 vi [파일명] 을 사용하면 경로에 그 파일이 존재한다면 그 파일을 열게되고, 없다면 그 파일의 이름으로 저장하게 됩니다.


vi를 종료할 때는 명령어를 사용해야 하는데 명령모드에서 각 명령들을 치면 종료가 됩니다.


 명령어
 
내용
 

:q
 
 그대로 종료
 

:q!
 
 저장하지 않고 종료
 

:wq
 
 저장하고 종료
 

:x
 
 저장하고 종료 =:wq
 

 ZZ
 
 저장하고 종료  =:wq
 

여기서 :q 랑 :q! 랑 헷갈릴 수 있는데 :q는 변경된 내용이 없을 때 종료하는 것이고 :q!는 강제로 종료하는 명령어입니다. :w 는 저장하는 명령어인데, :q와 같이 씀으로써 저장하고 종료하라는 명령어가 됩니다.


다음은 vi 편집기의 파일 불러오기 명령입니다.


 명령어
 
내용
 

:r [파일명]
 
 지정한 파일의 내용을 커서가 있는 줄 다음에 불러옴
 

vi [파일명]
 
 편집기를 시작할 떄 그 파일을 불러옴
 

이번에는 vi 편집기의 저장하기 명령어입니다.


 명령어
 
내용
 

 :w
 
 문서의 내용을 현재 파일에 저장
 

:w [파일명]
 
 문서의 내용을 [파일명]에 저장
 

:w! [파일명]
 
 문서의 내용을 [파일명]에 저장 ( 이미 있는 파일이면 지우고 저장)
 
vi 편집기의 편집 명령입니다.


 입력키
 
내용
 

x
 
 현재 커서가 위치한  글자 삭제
 
dd
 
 현재 커서의 행 삭제
 
yy
 
 현재 커서가 있는 행을 복사

p
 
 복사한 행 내용을 현재 행 이후에 붙여 넣기
 
X
 
 현재 커서가 위치한 앞 글자 삭제
 

숫자dd
 
 현재 커서부터 숫자만큼의 행 삭제
 

숫자yy
 
 현재 커서부터 숫자만큼의 행을 복사
 

P
 
 복사한 내용을 현재 행 이전에 붙여 넣기
 

원래는 문제를 풀이하려 했지만, 문제가 너무 단순해서 그냥 넘어가겠습니다. 그냥 몇번 사용해보고 넘어가도 됩니다.

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,