리눅스에서 터미널로 작업을 하다보면 이 파일이 실행 파일인지 아니면 디렉트리 인지 그냥 일반 파일인지 구분을 해야하는데


이기능을 터미널에서는 문자 색상으로 구분을 해서 보여준다.


하지만 이것을 커스텀으로 자신이 원하는 색상으로 변경하여 사용할수 있다.


여기서 중요한것은 자신의 터미널 프로그램의 설정이다.


몇몇 터미널 프로그램은 쉘 설정 보다 프로그램의 프로파일을 우선시 하는경우가 있기 떄문이다.


이경우에는 아무리 색상을 변경하더라도 변경되지 않는다.


색상은 모든 컬러를 사용할수 있지 않고 ANSI코드를 사용하여 나타내기 때문에 제한적이다.





파일 종류 


디렉토리 di

일반파일 fi

실행파일 ex

링크파일 ln

소켓파일 so

블록장치 bd (하드 디스크나 USB같은 장치) Block Device

캐릭터 장치 cd(플로피 프린터 같은 장치) Character Device 

텍스트 파일 no

named pipe pi


예로 export LS_COLORS="di=01;34":"fi=01;32":"ex=01;37":"ln=01;36":"so=01;31"

Posted by 준P

리눅스에서는 파일 및 폴더에 접근권한 또는 실행 권한 과 같은 권한들 두어서 관리를 한다.


크게 특수권한, 읽기 권한, 쓰기 권한, 실행 권한이 있다.


chmod 명령어로 설정이 가능하며 소유자, 소유그룹, 다른사용자에 대한 설정이 가능하다


읽기 권한은 4


쓰기 권한은 2


실행 권한은 1


로 구성이 되어 있으며 권한의 합계에 의한 권한을 설정 할수 있다.


소유자, 소유 그룹, 다른 사용자 순으로 권한을 나열하여 표시하여서 표기 한다.



프로그램에 대해 권한을 부여 한다면 


소유자는 모든 권한을 가지고 있고 소유그룹은 읽기 실행 권한 다른사용자는 읽기 권한만 있을때 값은


소유 자     : 읽기 4 + 쓰기 2 + 실행 1 = 7

소유 그룹 : 읽기 4 +            +실행 1 = 5

다른사용자: 읽기 4                           = 4


754로 설정한다.,


이것은 보편적인 권한 설정이고 여기에 추가로 앞에 추가 권한이 붙는다.


이 특수 권한은 다른 사용자의 접근을 차단하거나 수정을 금지하고 권한을 빌려올수 있는 특별한 권한이다.


보편적인 권한의 맨앞에 붙으며 보안상 관리가 필요한 권한이다.


sticky bit  1


sticky bit는 다른 사용자가 삭제 하거나 이름 변경을 하지 못하도록 막음


허나 디렉토리 생성이나 파일생성은 자유롭다. 이와같은 특징떄문에 공유폴더와 같은 여러 사용자가 사용하는 폴더에서 사용



setgid 2 


setgid는 다른 그룹보다 소유권을 우선적으로 얻을수 있다.


setgid가 디렉토리에 설정이 되면 그 하위 파일들에 생성된 파일들은 해당 그룹에 우선적으로 소유권을 같는다.



setuid 4 


setuid는 파일 이나 프로그램 실행시 해당 소유자의 권한을 빌려올수 있다.


/etc/password 와 같은 파일은 root 사용자 또는 root 그룹 만 수정이나 읽기가 가능하다 


허나 setuid가 설정 되어 있으면 root 사용자의 권한을 빌려서 읽거나 쓰기가 가능하다. 



 

특수 권한  

소유자

 소유 그룹  

 다른 사용자  

 1

 sticky bit

 x

 x

 x

 2

 setgid

 w

 w

 w

 4

 setuid

 r

 r

 r


ls 명령어로 파일이나 디렉토리를 을 보면 보편적으로 


DWRX - WRX - WRX


로 표기가 된다 만약 특수 권한이 설정이 되면


sticky bit 가 설정이 되면 
DWRX - WRX - WRT

로 설정 된것이 보인다.


sticky bit는 마지막 다른 사용자 권한에서 변경이 된다.


실행권한이 없으면 대문자 T 실행권한이 있으면 소문자 t로 표기가 된다.



setgid 가 설정이되면 


DWRX - WRS - WRX

로 설정이 된것이 보인다. 


setgid는 소유 그룹 권한에서 설정이 된다


실행권한이 없으면 대문자 S 실행권한이 있으면 소문자 s로 변경이 된다.




setuid가 설정되면 


DWRS - WRX - WRX

로 설정이 된것이 보인다.


setuid는 소유자에게서 권한이 변경된것이 보이며


실행권한이 없으면 대문자 S 실행권한이 있으면 소문자 s로 변경이 된다.








Posted by 준P

리눅스에서는 사용자를 식별하는데 유저 아이디로 구분을 하는데 (UID) 양의 정수로 0부터 32767까지 사용한다(16비트)


특이하게 0은 무조건 슈퍼유저(root)이다. 


또한 시스템에 따라서 시스템 용도로 예약되어 있다. 보통은 1부터 100까지 이지만 레드헷은 101부터 499까지 데비안은 999까지 예약 해놓는다.


UID는 /etc/password 파일과 관련이 깊다. password파일은 사용자의 비번과 같은 정보가 담겨있어서 uid가 들어가면서 구분을 하기 떄문에 uid를 통해서 사용자를 찾을수 있다.


리눅스에서는 그룹을 통해서 사용자를 묶을수 있다. GID는 그룹 이이디로 사용자를 목적에 의해 분루 한것이다. 


루트의 그룹은 항상 0이다./etc/password와 /etc/group을 통해서 알수 있다.


id 명령어를 통해서 현제 자신의 그룹 과 id를 알 수 있다.

chmod 나 chgrp과 같은 명령어를 통해서 파일이나 디렉토리의 사용자를 변경 혹은 삭제를 가능하게 만들 수 있다.


수정할떄에는 수정할 파일의 수정 권한을 가지고 있는 유저에게서 실행해야 한다.


예 chmod 755 testfile


chmod user:user testfile


chgrp user testfile


chgrp (gid) testfile



참고로 수정을 하면 해당 파일이나 디렉토리만 적용이 되기 때문에 하위 폴더나 파일에 적용시킬려면-R 옵션을 추가 해야 한다.!

Posted by 준P

리눅스 쉘 에서는 여러가지 기능 이있는데 명령어 출력 값을 명령어 옵션에 넣어서 사용하기도 하고 


오류 메시지만 출렦하지 않는다던가 오류메세지만 출력하거나 등등 여러 입 출력이 있다.


입력 리다이렉션은 사용자의 키보드에서 입력된 입력이 아닌 것을 표준입력으로 지정하는 기능 이다.


리눅스 시스템에서 파일의 내용을 사용자가 입력한것 처럼 입력 해준다.


예로 파이썬 스크립트를 실행 할떄 일반적으로 


파이썬을 실행후 알맞게 프로그래밍 한다면 


파이썬에 사용자가 입력한 것 처럼 파일의 내용을 입력 할수 있다.




딱히 에로 들것이 없어서 파이썬을 사용했는데 입력 리다이렉션으로 했다는 차이점 뿐이다.


반대로 프로그램의 출력을 파일에 저장할수 있다.



단지  > 만 사용해서 저장을 하면 새로 만들기 떄문에 기존에 있는 파일에 추가로 저장을 할려면 >>을 사용하면 된다.



에러 메세지만(stderr) 따로 저장 할수 있는데 (에러메세지는 콘솔에 출력이 되지 않는다. 에러출력을 리다이렉션 해서 파일에 저장 되기 때문이다.)



유제 레벨의 파일을 관리자 권한 없이 /opt폴더에 복사하면 권한 오류가 뜨는데 이 오류메세지를 test 파일이 저장한것이다. (오류메세지는 뜨지 않는다.)

Posted by 준P

zsh는 최근에 나온 쉘이다. oh-my-zsh는 zsh의 환경설정을 다루는 프레임워크로 테마나 플러그인을 사용할수 있다.


zsh에서 agnoster라는 테마가 아주 잘나와서 인기가 있는데 iterm에서만 작동한다는 문제점이 있었다.(폰트 문제로 영문조차 꺠져서 나왔음)


oh-my-zsh커뮤니티가 활발한 만큼 이 문제에 대해서는 공식적으로는 맥만 지원하지만 어느 멋진분이 Ubuntu Mono derivative Powerline이라는 글꼴로 해결을 할 수가 있다고 한다.


그래서 시도 해서 성공했다.


정상적으로 설치가 되면 이렇게 멋진 테마가 적용된다.!!!!



agnoster테마 설치시 나오는 글꼴 에러.... 영 보기가 좋지 않다 참고 쓸만 하지만 매우 거슬린다.


일단 zsh부터 설치를 하자!!!


sudo apt-get install zsh


아마 대부분 데비안/우분투 계열에서는 해결이 될것이다.(한글 또한)


기본적으로 기본쉘은 bash이므로 zsh로 변경을 해야한다.


chsh 명령어로 sh쉘을 변경할수 있는데 쉘의 위치를 알아야 한다. 따라서 which명령어로 zsh의 위치를 알아 낸다.


리눅스에서는 ` 로 감사주면 명령어로 인식을 하므로 간단하게 해결을 할수있다.


chsh -s `which zsh`


이제 쉘을 bash에서 zsh로 변경을 했으니 zsh쉘로 터미널이 실행될것이다.


이제 oh-my-zsh를 설치하고 폰트 설치와 터미널 설정만 하면 되다.


oh-my-zsh는 github에서 다운로드 받아서 설치한다.


wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh


./install.sh


oh-my-zsh가 설치 되었으니 이제 .zshrc에서 테마를 지정할 수 있다.


화살표 방향을 수정해 주면된다.


이제 터미널을 재실행 하면 폰트가 깨진 zsh agnoster 테마를 만나볼 수 있다.


git clone https://github.com/powerline/fonts.git


으로 파일을 다운로드 받는다.


cd fonts


./install.sh


로 폰트를 설치한다.


설치가 완료되면 이제 터미널에서 폰트를 Ubuntu Mono derivative Powerline으로 변경하면 된다.


터미네이터 기준으로 





이렇게 변경하면 멋진 agnoster 테마를 볼수 있다.!!!




'Linux' 카테고리의 다른 글

[Linux] uid ? gid 리눅스 사용자 식별자  (0) 2015.12.24
[Linux] 입 출력 리다이렉션  (0) 2015.12.24
[Linux] .desktop 파일 만들기  (0) 2015.12.01
deb 패키지 만들기  (0) 2015.07.28
리눅스의 파일/다이렉트 구조  (0) 2014.10.03
Posted by 준P

윈도우에 바로가기가 있다면 리눅스에는 .desktop파일이 있습니다.


리눅스에서 프로그램이나 응용소프웨어등을 설치하고 나서 실행할려면 설치된 폴더로 가서 실행을 해야한다. 


이것은 매우 블편 하다. 그래서 존제하는것이 .desktop파일이다.


.desktop파일은 /usr/share/applications 폴더에만 있어야 한다.


자 이제 에디터를 열고 파일명을 지정하고 .desktop 확장자를 붙여 준다음 편집을 하자!


.desktop파일에는 기본적으로 첫줄에 [Desktop Entry]가 존제해야 하며 프로그램 명 Name 과 프로그램 실행 파일 위치 Exec 와 실행 파입 Type은 필수적으로 들어 가야 된다.


기본적인 .desktop파일에 들어가는 내용이다.


[Desktop Entry]

Encoding=UTF-8

Version=1.0

Type=Application

Terminal=false

Exec=Program Name

Icon=Program Icon


이렇게 적어두고 /usr/share/applications 플더에 복사 하면 된다.


아래는 가능한  .desktop에 들어갈수 있는 모든것을 적어보겠다. 


[Desktop Entry]                                                                                #.desktop파일이 시작되는 지점

Encoding=UTF-8                                                                                         #인코딩 설정

Version=1.0                                                                                      #.desktop파일의 버전 준거(현제 1.0)

Name=Some Program                                                                      #프로그램 명

Comment=Some Program? this program exec by .desktop file         #코멘트 또는 프로그램의 팁을 적는다. ex 시작 메뉴에서 프로그램을 찾은뒤 프로그램에 마우스커서를 가져다 놓으면 뜨는 설명 

Exec=Some Program address %U                                                      #프로그램의 위치를 넣으면 된다. 만약 환경 변수에 등록 되어서 터미날에서 즉시 실행이 가능하면 프로그램 명만 적어도 된다.

   #추가로 %U가 있으면 파일을 연결 프로그램으로 설정이 가능하다.!!!!.avi를 클릭하면 동영상 프로그램이 켜지는것 처럼!!

Icon=Some Program Icon                                                                 #프로그램의 아이콘의 위치를 넣는다. 권장 png, xpm, svg 등을 사용한다.xpm과 svg는 사용하지 않는것이 좋습니다.

Terminal=false                                                                                 #프로그램을 실행할떄 터미널도 같이 실행할지 뭍는다 터미널 없이 실행 할려면 false 터미널과 같이 실행 할려면 true

Type=Application                                                                                 #타입을 지정한다. Application이나 Link 또는 Directory등을 지정할 수 있다.

Categories=Development;                                                               #프로그램의 카테고리를 적는다. 세미콜론으로 구분하여 적는다.메뉴(메뉴를 지원하는 데스크탑)에서 나타난다.

StartupNotify=true;                                                                          #프로그램이 실행되면 사용자에게 알린다.

Hidden=false                                                                                              #true로 설정하면 삭제된 프로그램 같이 취급한다.

OnlyShowIn                                                                                    #NotShowIn과 같이 사용 할 수 없다. 표시해야 하는 데스크톱 환경 구분

NotShowIn                                                                                      #OnlyShowIn과 같이 사용 할 수 없다. 표시하면 안되는 데스크톱 환경 구분 

MimeType                                                                                      #http://www.iana.org/assignments/media-types/media-types.xhtml 참조(영문)

path=Program Directory                                                                 #프로그램의 작업 디렉토리를 지정합니다.

NoDisplay=false                                                                              #프로그램이 존제 하지만 메뉴에 나타나지 말아야 할때 true

GenericName=Program GenericName                                             #프로그램의 일반적인 이름을 적는다.

URL=URL Address                                                                           #URL에 접속 합니다.

TryExec=Program address                                                              #프로그램이 실제로 설치되어 있는지 확인하는데 사용

Interface=program Interface                                                          #프로그램에서 인터페이스를 지정해야 하는경우 ex)[org.freedesktop.ImageAcquire]

.desktop 파일은 여러 언어를 지원한다. 자신의 프로그램이 한국과 영어를 지원한다면 시스템 환경에 따라 지정할수 있다.


프로그램명이 "안녕 지옥"이라면 

Name[kn]=안녕 지옥

Name[en]=Hello Hell

이렇게 여러 국가 코드를 통해 지원할 수 있디.








Posted by 준P

deb 패키지 만들기

데비안, 우분투 계열 에서 만든 응용프로그램을 패키지로 만들어 배포할려면 deb 라는 패키지 파일을 만들어야 한다.


패키지를 만들어 배포하면 설치하기도 쉽고 빌드하기도 쉽다. 패키지 파일을 만드는것은 의외로 쉽다.


1.먼저 패키지 폴더를 만듬니다.


deb 파일은 apk 처럼 앞축된 파일 입니다. 따라서 deb 파일도 앞축 매니저로 열면 열림니다.


패키지 폴더는 설치될 컴퓨터의 루트 ( / ) 폴더와 맞먹는다.


이 말은 루트 디렉토리에 복사 또는 생성이 된다.( 생각을 해보면 이걸이용해서 컴퓨터 어딘가에 악성 코드를 심어도 모를것 같다... 이걸 보면 인증된 패키지만 설치해야 하는 이유를 알것 같다....)


2.패키지 폴더안 DEBIAN  폴더 및 control, preinst, postinst, postrm, prerm 파일 만들기


패키지 폴더는 설치될 컴퓨터에 루트 디렉토리와 맞먹는 다고 하지만 예외적으로 DEBIAN 폴더는 패키지의 전반적인 데이터 파일이 존제 하기 떄문에 이 폴더는 복사 및 이동 되지 않는다.(설치 할떄도 필요 없다.)


3.이제 DEBIAN폴더안에 파일을 만들자


control 파일은 패키지의 의존성, 버전, 이름. 설명 등 여러가지 정보가 들어 있다.


control 파일의 예

Package: pkg-build-essential

Version: 1.3.4

Section: devel

Priority: optional

Architecture: all

Depends: build-essential, subversion, openjdk-7-jdk, libmysqlclient-dev, libmysql++-dev, 

 libcurl4-openssl-dev,libjson0, libjson0-dev, libjsoncpp0, libjsoncpp-dev, python-twisted-core, 

 flex, cmake

Recommends: libjson0-dbg, python-mysqldb

Maintainer: Developers <kukuta@gmail.com>

Homepage: http://kukuta.tistory.com

Description: Server Development base library install package

 1.0.1 : bug fetch..#1

 1.1.1 : bug fetch..#2

 1.2.0 : bug fetch..#3


출처: http://kukuta.tistory.com/171


preinst 파일은 deb 패키지가 앞축 해제되기 전에 실행될 스크립트 입니다.


postinst 파일은 deb 패키지가 앞축 해제된 후 패키지가 설치 및 업그래이드 한후 필요한 모든 명령이 담겨 있습니다. 스크립트 입니다.


prerm 파일은 deb 패키지가 삭제되기전에 실행됨니다. 스크립트 입니다.


postrm 파일은 deb 패키지가 삭제된 후에 실행됨니다. 스크립트 입니다.


DEBIAN 폴더안 파일들이 조금 어려울 수있습니다. 다음 글을 참조하시면 됨니다.(영어지만)

preinst


This script executes before that package will be unpacked from its Debian archive (".deb") file. Many 'preinst' scripts stop services for packages which are being upgraded until their installation or upgrade is completed (following the successful execution of the 'postinst' script).

postinst


This script typically completes any required configuration of the package foo once foo has been unpacked from its Debian archive (".deb") file. Often, 'postinst' scripts ask the user for input, and/or warn the user that if he accepts default values, he should remember to go back and re-configure that package as the situation warrants. Many 'postinst' scripts then execute any commands necessary to start or restart a service once a new package has been installed or upgraded.

prerm


This script typically stops any daemons which are associated with a package. It is executed before the removal of files associated with the package.

postrm


This script typically modifies links or other files associated with foo, and/or removes files created by the package. (Also see What is a Virtual Package?, Section 6.8.)

Currently all of the control files can be found in directory /var/lib/dpkg/info. The files relevant to package foo begin with the name "foo" and have file extensions of "preinst", "postinst", etc., as appropriate. The file foo.list in that directory lists all of the files that were installed with the package foo. (Note that the location of these files is a dpkg internal; you should not rely on it.)

출처 : https://www.hivelocity.net/kb/what-are-preinst-postinst-prerm-and-postrm-script-2/


이제 패키지 폴더에 자신이 만든 패키지 (만든 프로그램 )을 시스템에 들어가야 할 위치에 맞게 넣어주시면 됨니다.


이제 다 넣으셧으면 


dpkg -b <패키지 폴더 >


명령어로 묵으시면 됨니다.



Posted by 준P

리눅스에는 많은 폴더들이 있습니다.


그 구조에 대하여 알아보도록 하겟습니다.




/ (root, 최상위 폴더)


리눅스의 최상위 폴더 이고 절대경로 지정시 기준이되는 다랙토리 입니다.


파티션설정시에 반드시 존재해야 합니다.


또한 시스템의 근간을 이루고 있습니다.




/bin


리눅스의 명령어를 담고있는 디렉토리


시스템을 운영하는데 필요한 모든명령어가 들어 있습니다.




/sbin


/bin과 마찬가지로 명령어가 담긴 폴더


다른점은 시스템관리에 관령된 실행명령어들이 있는 디렉토리


시스템 점검 및 복구 시스템 초기화 및 종료 명령어등 시스템관리에 필요한 실행파일이 존재



/boot


리눅스가 부팅하는데 필요한 파일이 담겨 있다.


LINUX LOADER의 설정파일은 /etc/lilo.conf 에 있으며 lilo명령어는 /sbin/lilo 에 있다.


커널 이미지인 vmlinuz 가 위치하는데 lilo가 아닌 다른 부트로더는 모두 공통적으로 vmlinuz를 이용하여 부트하므로 매우중요하다.


이 폴더속 파일은 직접편집 불가능하며 커널 컴파일 등을 통해 생성이 된다.



/dev


각종 디바이스 파일들이 위치란다 이 폴더는 두가지로 나뉘는데 블록 디바이스와 캐릭터 디바이스 가 있다.


블록 디바이스는 하드나 시디롬같은 주변장치 이고 테이터를 블록 단위로 읽는다.


캐릭터 디바이스는 입 출력이 바이트 단위로 이루어진고 순차적으로 읽고 쓰여진다.



/etc

시스템 환경 설정 파일이 있는 디렉토리 


네트워크 관련 설정파일, 사용자 정보 및 암호정보, 파일 시스템 정보, 보안파일, 시스템 초기화 파일등 중요 설정 파일들의 위치한 디렉토리 


/etc/CORBA : Common Object Request Broker Architecture (COBRA)에 관한 파일이 들어있음. 


/etc/X11 : 엑스 윈도우 설정에 관련된 파일들이 있음. 


/etc/cron.d : crontab 명령의 설정파일이 있음. 


/etc/cron.daily : 매일 작동하게 하는 crontab 스크립트 파일이 존재. 


/etc/gnome : GTK+ 정의파일들이 있음. 


/etc/httpd : 아파치 웹 서버의 설정 및 로그파일이 있음. 


/etc/logrotate.d : logrotate 설정 파일들이 있음. 


/etc/mail : 센드메일과 관련된 파일이 있음. 


/etc/ppp : ppp 설정에 관련된 파일들이 있음. 


/etc/profile.d : 쉘 로그인 하여 프로파일의 실행되는 스크립트에 대한 정의가 있음. 


/etc/rc.d : 시스템 초기화와 관련된 스크립트가 존재. 


/etc/samba : 삼바에 관련된 파일들이 있음. 


/etc/security : 터미널 보안에 관련된 설정이 있음. 


/etc/skel : 새로운 사용자를 추가할 때 자동적으로 생성되는 디렉토리와 파일이 있음. 


/etc/squid : squid 프록시 서버에 관련된 파일이 있음. 


/etc/ssh : secure shell 설정 파일이 있음 


/etc/sysconfig : 시스템과 네트워크 설정을 담고 있음. 


/etc/xinetd.d : 슈퍼데몬 xinetd.d의 서비스 영역을 설정하는 디렉토리.



/home


이폴더는 사용자에 따라 생성이된다,


이폴더않에는 사용자 이름에 따라 만들어진 폴더가 있으며 사용자의 기본 다이렉트 이다.


/home/lost+found


이 폴더는 fsck명령어가 실행이되어 안에 잇던 파일이 갈곳이 없어졋을 떄 저장되는 폴더 입니다.


사용자가 없는 파일은 여기에 저장이되고 파일시스템을 점검할때 특수 목적으로도 사용이 된다.




/lib (비트)


프로그램들이 의존하고 있는 라이브러리 파일이 존재합니다.


라이브러리는 32비트 64비트 마다 다르므로 두가지폴더가 있을 수 있다.


/lib/modules 에는 커널모듈 파일이 존제


대부분의 라이브러리 파일이 링크로 연결되어 있다.



/lost+found


이 폴더는 fsck명령어가 실행이되어 안에 잇던 파일이 갈곳이 없어졋을 떄 저장되는 폴더 입니다.


사용자가 없는 파일은


시스템 및 네트워크의 부품에 대한 많은 논란과 당황 속에서 이동식 미디어에 대한 마운트 지점을 포함하는 디렉토리가 이제 생성 된 관리자. 충분히 재미있게, 그것은 / 매체를 선정되었습니다. 여기에 저장이되고 파일시스템을 점검할때 특수 목적으로도 사용이 된다



/media 


시스템 및 네트워크 이동식 미디어를 마운트 시키는 지점을 포함하는 디렉토리



/mnt


장치들이 마운트되는 디렉토리




Amid much controversy and consternation on the part of/proc


시스템에 관련된 정보를 저장한 가상 파일 시스템


cpu정보나 메모리정보 인터럽트정보를 볼 수 있다.


커널의 어떤 기능을 제어할수 있는 역활을 가지고 있다.


대부분이 읽기전용이고 쓰기가 가능한 파일이 있는데 특정값으로 변경하면 커널의 기능이 변하게 됨니다.


cat 명령어로 볼 수 있다.



/root


root 유저의 사용자 디렉토리 이다.


/tmp


임시 디렉토리로 임시 파일들의 간의 저장소 이다.

시스템 환경 설정 파일이 있는 디렉토리 


네트워크 관련 설정파일, 사용자 정보 및 암호정보, 파일 시스템 정보, 보안파일, 시스템 초기화 파일등 중요 설정 파일들의 위치한 디렉토리 


/etc/CORBA : Common Object Request Broker Architecture (COBRA)에 관한 파일이 들어있음. 


/etc/X11 : 엑스 윈도우 설정에 관련된 파일들이 있음. 


/etc/cron.d : crontab 명령의 설정파일이 있음. 


/etc/cron.daily : 매일 작동하게 하는 crontab 스크립트 파일이 존재. 


/etc/gnome : GTK+ 정의파일들이 있음. 


/etc/httpd : 아파치 웹 서버의 설정 및 로그파일이 있음. 


/etc/logrotate.d : logrotate 설정 파일들이 있음. 


/etc/mail : 센드메일과 관련된 파일이 있음. 


/etc/ppp : ppp 설정에 관련된 파일들이 있음. 


/etc/profile.d : 쉘 로그인 하여 프로파일의 실행되는 스크립트에 대한 정의가 있음. 


/etc/rc.d : 시스템 초기화와 관련된 스크립트가 존재. 


/etc/samba : 삼바에 관련된 파일들이 있음. 


/etc/security : 터미널 보안에 관련된 설정이 있음. 


/etc/skel : 새로운 사용자를 추가할 때 자동적으로 생성되는 디렉토리와 파일이 있음. 


/etc/squid : squid 프록시 서버에 관련된 파일이 있음. 


/etc/ssh : secure shell 설정 파일이 있음 


/etc/sysconfig : 시스템과 네트워크 설정을 담고 있음. 


/etc/xinetd.d : 슈퍼데몬 xinetd.d의 서비스 영역을 설정하는 디렉토리.


쓸데 없는 파일이 저장되기도 한다.



/usr


/usr 은 리눅스 시스템에서 가장 많은 용량을 차지하는 부분으로 대부분의 프로그램들이 여기에 깔린다.

/usr/X11R6

/usr/X11, /usr/X386 이 모두 /usr/X11R6 의 심볼릭 링크이다. /usr/X11R6/lib/X11 에는 X-윈도와 관련한 여러가지 파일 및 디렉토리가 있다.

/usr/bin

/bin 에서 짐작되듯이, 대부분의 사용자 실행 명령어들이 담겨 있다. gcc나 perl등의 개발도구도 여기에 담겨 있다.

/usr/doc

역시 doc에서 유추할 수 있듯이 각종 리눅스에 관한 문서들이 담겨 있다. 책 사는 데 돈이 아까우신 분들은 이 디렉토리를 이용하면 좋을 것이다. 하지만 과연 그럴까?^^; 최신버젼의 문서를 보길 원한다면 kldp.org(Korea Linux Documentation Project)를 방문하면 많은 도움이 될 것이다.

/usr/include

C, C++ 프로그램의 헤더 파일들이 담겨 있다.

/usr/info

여기에는 여러가지 GNU 프로그램들(gcc, make, autoconf...)의 info 파일들이 담겨 있다. 이 디렉토리를 이용하는 방법은 단순히 'info 프로그램 - ex) info gcc -'라고 치면 된다. 상당히 유용하므로 기본적으로 알아두자.

/usr/local

새로운 프로그램들이 설치되는 곳으로 프로그램 관리를 용이하게 할 수 있도록 되어 있다. make install로 프로그램 설치시 기본 디렉토리가 대부분 /usr/local 로 되어 있는 이유가 바로 그것이다.


windows 의 programfiles 폴더와 비슷하다.

/usr/man

info 와 비슷한 역할을 한다. 메뉴얼 페이지가 담겨 있는 것으로 역시 'man 프로그램'을 쳐서 이용할 수 있다. 모르는 명령어들은 꼭 한 번씩 man으로 확인하는 습관을 갖길...

/usr/src

프로그램 소스들이 보관되어 있는 것으로 리눅스 커널이 위치하고 있는 곳이다.


/var


시스템 작동중에 변경이 되는 파일들이 담겨있다 주로 로그 파일이나 웹서버 폴더와 같은 스풀 파일들이 저장된다.



'Linux' 카테고리의 다른 글

[Linux] .desktop 파일 만들기  (0) 2015.12.01
deb 패키지 만들기  (0) 2015.07.28
리눅스 명령어) chkconfig 명령어  (0) 2014.09.28
리눅스 명령어) strings  (0) 2014.09.25
리눅스 명령어) xxd  (0) 2014.09.24
Posted by 준P

chkconfig 명령어는 자동실행 명령어 입니다.


chkconfig은 데몬을 매번 시작할려고 할떄 설정할수있다.


주기적인 서비스 요청을 처리하기 위해 계속 실행되는 프로그램을 말한다. 디먼은 수집된 요구들을 또다른 프로그램이나 프로세스들이 처리할 수 있도록 적절히 전달한다.

[네이버 지식백과] 데몬 [daemon] (매일경제, 매경닷컴)

서비스를 매번시작할떄 사용하시면 유용합니다.

잘보시면 숫자:해제 또는 활성이라고 쓰여있는데요 이 숫자는 레벨이고 그레벨을 활성여부 입니다.


chkconfig에는 레벨이 있습니다.


 0

 halt 시스템 종료

 1

 single-user mode 시스템 복원모드나 파일시스템 점검시 사용

 2

 multi-user mode (without nwtwork) 네크워크를 지원하지 않는 다중 사용자 모드 

 3

 multi-user mode(only console login) 다중 사용자 모드 

 4

 not used 사용하지 않습니다.

 5

 multi-user mode with display manager  GUI환경

 6

 reboot 재시작 


레벨은 상황에 맞을 떄 사용하는 것입니다.


만약 부팅시 자동으로 서비스를 시작할려면 


0은 종료떄 사용하지는 않을꺼니 패스 1은  시스템 정검 및 복원이니 사용할 필요없음 6은 재부팅할떄 필요없으니 


2 ~ 5 를 on 해주시면 됨니다.




Posted by 준P

리눅스 명령어) strings

리눅스 명령어 중에 strings 라는 명령어가 있습니다.


이 명령어는 프로그램안에서 사용된 문자열을 출력 해줌니다.


사용법 


strings <옵션> <파일명>



저는 간단한 출력 프로그램을 만들었습니다.4


여기서 보시면 한글은 정상적으로 출력되지 않습니다.


허나 영어는 정상적으로 나오는것을 알수 있습니다.


옵션으로는 밑과 같이 있습니다.


  -a - --all                파일을 검색하고 데이터 섹션까지 검색합니다.

  -f --print-file-name      각 문자열 전에 파일명을 출력 합니다.

  -n --bytes=[number]       찾다 & 적어도 모든[숫자] 문자에서 NULL로 끝나는 순서로 출력( (default 4).

  -t --radix={o,d,x}        문자열의 위치를 8, 10,16진수로 출력 합니다.

  -o                        별명 --radix=o

  -T --target=<BFDNAME>     바이너리 파일 형식을 지정합니다

  -e --encoding={s,S,b,l,B,L} 문자의 크기나 에디안을 선택해주세요:

                            s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit

  @<file>                   <file> 에서 옵션 정보를 가져옵니다.

  -h --help                 프로그램의 정보를 출력 합니다.

  -v -V --version           프로그램의 버전을 출력 합니다.


Posted by 준P

리눅스 명령어) xxd

리눅스 명령어 중에 xxd 라는 명령어가 있습니다.


xxd는 헥스 에디터랑 비슷한 명령어 입니다.


사용법은 xxd <파일명> 입니다.



실행을 시켜 보시면 다음과 같이 보임니다.


또한 > 으로 파일로도 내보넬수 있습니다.


그 반대로도 헥스파일을 수정해서 다시 ELF파일로 만들수 있습니다.


-r 옵션을 이용하여 할수 있습니다.


xxd -r <수정한 hex 파일> > <만들 ELF명>




옵션으로는 밑과 같이 있습니다. (제가 변역하엿습니다.)

-a | -autoskip
토글 자동 생략 : 하나의 null line을 '*'으로 대쳐합니다. 기본값이 아닙니다.
-b | -bits
비트(이진수) 변환을 합니다,16진수 덤프 대신. 이 옵션은 여덟 숫자 "1"과 "0"대신에 일반적인 진수로 덤프 진수을 쓴다. 각 행은 아스키 (또는 EBCDIC) 표현을 16 진수로 행 앞에 숫자 및 따른. 이 명령줄은 -p, -i 옵션에서 작동하지 않습니다. 
-c cols | -cols cols
한 줄에 형식 <COLS> 옥텟. 기본 16 (-i : 12, -ps : 30 -b : 6). 최대 256.
-E | -EBCDIC
오른쪽 열 문자열을 ASCII에서 EBCDIC로 변경합니다. 이것은 16진수 형태를 변경하지 않습니다. 이 옵션은 -r, -p 또는 -i 옵션에서는 의미가 없습니다.
-g bytes | -groupsize bytes
공백으로 모든 <바이트> 바이트 (두 자리 16 진수 또는 8 비트 숫자 각)의 출력을 구분합니다. 그룹화를 억제하는 -g 0을 지정합니다. <바이트> 일반 모드에서이 디폴트 및 비트 모드에서 1. 그룹화는 포스트 스크립트 또는 스타일을 포함하는 적용되지 않습니다 .
-h | -help
사용가능한 명령 요약하여 출력하고 종료 합니다. 헥스 덤프가 수행되지 않습니다.
-i | -include
c언어 스타일의 형태를 포함합니다. XXD은 표준 입력에서 읽하지 않는 한, (입력 파일의 이름을 따서 명명) 완전한 정적 배열 정의 기록됩니다.
(추가 그냥 c언어 스타일의 배열 형식으로 변환이 됨니다.)
-l len | -len len
<len>의 크기 만큼 출력하고 종료합니다.
-p | -ps | -postscript | -plain
일반 16진수로 출력합니다. 0x를 쓰지 않습니다.
-r | -revert
역 동작 : 변환 (또는 패치) 진에 16 진 덤프. 표준 출력에 작성하지 않은 경우, XXD는 잘라 내지 않고는 출력 파일에 기록합니다. 일반 진수가 행 번호 정보없이 특정 열 레이아웃없이 덤프 읽을 -p -r 조합을 사용한다. 추가 공백과 줄 바꿈은 어디서나 사용할 수 있습니다.
-seek offset
-r 옵션을 사용하는 경우 :<offset> 16진수 덤프를 파일로 되돌림니다.
-s [+][-]seek
절대값 <seek>바이트에서 사작합니다. + 현재 표준 입력 파일의 위치를 기준으로 찾아 나타냅니다타. (표준 입력에서는 읽히지 않을 수 있다는 의미 입니다). - 입력의 끝에서 많은 문자를해야 탐색 해야함을 나타냅니다 (또는 +와 결합된경우: 현재의 표준입력 파일 전에 위치합니다). -s 옵션 없이는 xxd는 현재 파일위치에서 시작합니다.
-u
대문자 진수 문자를 사용합니다. 기본값은 소문자 입니다.
-v | -version
xxd의 버전을 출력합니다.

자세한건 xxd 홈페이지에서 확인해주세요 (영문)


xxd 홈페이지 http://linux.die.net/man/1/xxd


Posted by 준P

홈페이지를 접속하다보면 잘못된주소를 입력하여 에러페이지를 출력받는 경우가 있습니다.



자신의 홈페이지에  잘못접속하면 오류페이지를 만들고 싶다면 어떻게해야 할까여?


custom error 즉 사용자 지정 오류 페이지를 설정해주시면 됨니다.


리눅스 에서 설정이 가능 합니다. 서버파일 수정방법입니다. 


데비안 우분투 의경우만 설명하겟습니다 일단 데비안 먼저


데비안의 경우 httpd를 사용하기때문에 


cd /etc/httpd/conf


sudo httpd.conf


에서 332번째 줄에있는 글을 수정해줌니다.


#ErrorDocument 500 "The server made a boo boo."

#ErrorDocument 404 /missing.html

#ErrorDocument 404 "/cgi-bin/missing_handler.pl"

#ErrorDocument 402 http://www.example.com/subscription_info.html


참고로 에러 페이지는 ErrorDocument 숫자 이런식으로 지정해주실수도 있습니다.



요렇게 써있습니다.


여기서 주석처리 문인 #을 제거해줌니다.


주석을 제거한다음 에러 숫자옆에 자신의 에러 페이지를 지정해줌니다.


에러페이지 지정은 자신의 서버위치부터 입니다.


저는 요런식으로 변경하였습니다.



저는 404error.html 파일을 만들었습니다.(파일은 자신이 알아서 만듭시다)


이런식으로 수정후 httpd를 재시작 해주신뒤에 접속해보시면 됨니다.


sudo service httpd restart




저는 심플하게 만들었습니다.


이미지나 동영상등 첨부하실수있습니다.


이걸이용하셧서 만드셔도 됨닌다.


자 이제 우분투의 경우입니다.


우분투는 apache를 사용합니다.


cd /etc/apache2/conf.d


sudo vim localized-erro-pages


에서 60번줄부터 주석인 #을 제거 하시면됨니다.


참고로 에러 페이지는 ErrorDocument 숫자 이런식으로 지정해주실수도 있습니다.





그리고 에러 숫자옆에 에러페이지 주소를 지정해주시면됨니다.


마찬가지로 에러페이지는 서버 페이지 부터입니다.


그리고 그주소에 에러 페이지를 만들어 두시면 됨니다.


sudo service apache2 restart 


후 에러페이지 재접속을 하시면 에러페이지를 보실수있습니다.


이상 끝

Posted by 준P

리눅스에서 환경변수로 export 쓰고 출력하기위해 나 echo를 사용한다.


그래서 export 와 echo의 사용법에 대해 알아보려고 한다.


리눅스 쉘에서 


export [변수명]=[데이터값]


을 해주면 된다. 


하지만 이떄 변수명과 데이터값 사이에 있는 =과 띄워쓰기를 하면 안된다는 것이다.


띄워쓰기를 하면 = 을 데이터로 인식하여 오류가 난다.


예로 hell이라는 변수에 hello_hell 이라는 문자열을 넣고 싶으면


요렇게 하면 된다.


이제 출력 할려면 echo명령어를 사용해야 하는데


echo 명령어 사용법은


echo [출력할 데이터]


입니다. 근데 데이터값에 변수를 입력 해도 변수명이 나오는데요???


echo는 변수를 출력하는 명령어 이기떄문에 


echo $[변수명]


이렇게 써주셔애 합니다.


이 명령어도 export 처럼 $과 변수명 사이에 공백이 있으면 안됨니다.



네 이렇게 간단하게 export와 echo의 사용법을 알아보았습니다.

Posted by 준P

데비안에서 gcc로 컴파일하고 옵션을 추가하면 뜨는 에러가 있는데 옵션을 사용하기위해서는 라이브러리가 필요하다.


아마 아레와같은 에러르 많이보앗을것이다.


gcc -O -c mini_sendmail.c
gcc -O -s -static mini_sendmail.o -o mini_sendmail
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
make: *** [mini_sendmail] Error 1


이를 해결하기위해서는 라이브러리를 설치해야한다.


yum install glibc-static 으로 설치가 가능하다.


설치가 끝나면 옵션을 사용할수 있을것이다.

Posted by 준P

 데비안 계열 리눅스에서는 아파치가 아닌 httpd로 웹서버 설치가 가능합니다.


그리고 yum으로 설치해 주셔야합니다.


sudo yum -y install httpd


sudo service httpd start

 

sudo yum -y install php


sudo yum -y install php-mysql


sudo yum -y install php-devel


sudo yum -y install gd


sudo yum -y install php-gd


sudo yum -y install mysql-devel


sudo yum -y install mysql-server


sudo service mysqld start


mysql_secure_installation 


mysql 에서 기본적으로 mysql 설정을하지않으므로 계정설정을 하셔야합니다.


처음에 비번을 입력하라고 하는데 비번설정을하지 않았으므로 엔터를하시고 그다음부터는 y만입력하시는게 좋습니다.


service mysqld restart


service mysqld on  


chkconfig httpd on 


그리고 외부에서 접속 하시려면 


서비스 포트를 열어주셔야합니다.



Posted by 준P

기본적으로 wine에 카카오톡을 설치하면 버전이 낮음으로 인해 설치는되나 실행은 안됨을 알수있엇습니다.


따라서 버전을 1.1에서 1.7로 업그래이드를 해주셔야 합니다.


sudo add-apt-repository ppa:ubuntu-wine/ppa


ppa를 업데이트 해줘야 최신버전을 설치할수가 있다네여 아오!!!


다음은 sudo apt-get update && apt-get upgrade


를 하셔서 최신버전으로 업그래이드를 해줌니다.


sudo apt-cache search "wine" 으로 wine 버전목록을 확인 할 수 있습니다.


목록을 확인 하엿으니 설치를 해야겟져?


sudo apt-get install wine1.7  으로 1.7버전을 설치해 줌니다.


상위버전이있으면 상위버전을 설치해 줍시다.


sudo winetricks gdiplus  mfc 즉 윈도우즈 api등 그래픽 입니다.


sudo winetricks wmp9  미디어 플래이어 설치


sudo winetricks riched20 윈도우즈 시스템 파일중 하나...


자 이제 카카오톡을 설치해봅시다.


이전에 설치햇어도 다시 설치 해주셔야 합니다.



Posted by 준P

우분투에서 무작위모드가 지원 하는 데도 불구하고 와이어샤크에 인터페이스가 없는경우가 있다.


이것은 우분투에서 루트 즉 관리자만 패킷을 캡쳐할수있도록 해놔서 인데요.


이것을 해결할려면


sudo dpkg-reconfigure wireshark-common


일반 사용자도 패킷을 캡쳐할수가 있습니다.


sudo chmod +x /usr/bin/dumpcap


dumpcap폴더의 권한을 낮춤니다.


이로써 일반사용자로 패킷을 캡쳐할수가 있습니다.


즐거운 패킷 공부하십쇼~~~



'Linux' 카테고리의 다른 글

httpd 설치하기 httpd +PHP+MYSQL  (0) 2014.06.22
우분투 ubuntu 에서 카카오톡 설치하기(wine)  (0) 2014.03.08
VIM 설정목록  (0) 2013.12.31
vim파일 작업시 명령어  (0) 2013.12.31
리눅스 우분투 계열 apm설치  (0) 2013.12.31
Posted by 준P

VIM 설정목록

vim ~/.vimrc에

요글들을욜려둔다.

이러면 들려쓰기 나여러가지 프로그램밍할떄 유용합니다.

set cindent           #C 프로그래밍용 자동 들여쓰기
set number             #줄 라인 표시 = set nu
set showmatch     #(), {} 에서 닫는 괄호의 짝을 표시
set nowrapscan    #검색할 때 문서의 끝에서 처음으로 안돌아감
set ruler              #커서의 위치를 line번호와 column 번호 표시
set hlsearch         #검색어 강조 = set hls
filetype on          #파일 타입에 따른 구분 강조
set laststatus=2     #vim-powerline이 꾸며주는 상태바를 항상 출력
set shiftwidth=4     #자동 들여쓰기 4칸
set tabstop=4        #탭 4칸 설정
set expandtab       #탭 대신 스페이스
set nocompatible   #오리지날 VI와 호환하지 않음
set autoindent      #자동 들여쓰기
set smartindent    #스마트한 들여쓰기 ex)전처리기는 들여쓰기 하지 않음
set ignorecase    #탐색시 대소문자 구분 없음
set incsearch     #찾은 단어 하이라이트
set title             #타이틀바에 현재 편집중인 파일을 표시
set showmode   #상태 행에 현재 편집 모드 출력
set visualbell    #키를 잘못눌렀을 때 경고음 대신 화면이 깜박임:
syntax on           #문법 하이라이트 킴

[출처] vim 환경 설정|작성자 jjebal777


Posted by 준P

vim파일 작업시 명령어

파일 작업시 명령어 
Vim 명령어
결과 
:e 파일명
새로운 파일을 연다. 커맨드 프롬프트 처럼 Tab 키를 통해 파일이름의 자동 완성 기능을 사용할 수 있다. 
:w 파일명
파일을 저장한다. 만약 파일 이름을 지정하지 않는다면 그냥 원래 파일 이름으로 저장이 되고 파일 이름을 지정해 준다면 새로운 파일 이름으로 저장이 된다
:qVim 을 종료한다. 파일을 저장하지 않았자면 종료되지 않는다. 
:q!파일의 저장에 상관없이 종료한다. 
:wq파일을 저장한 후 종료한다. 
:x위의 :wq 와 거의 같지만 여기서 파일이 저장된 이후 기록된 사항이 있으면 저장하지 않고 파일이 저장된 이후 기록된 사항이 있으면 저장하고 종료한다. 
아래의 Vim 명령어는 Visual 모드, 터미널 모드 모두에서 사용 가능합니다. 
Vim 명령어
결과
j or 방향키 ↑
커서를 한 칸 위로 이동
k or 방향키↓
커서를 한 칸 아래로 이동
l or 방향키 →
커서를 한 칸 오른쪽으로 이동
h or 방향키 ←
커서를 한 칸 왼쪽으로 이동
e단어의 끝으로 이동
E단어의 끝으로 이동
b단어의 첫 부분으로 이동
B단어의 첫 부분으로 이동
0문장의 첫 부분으로 이동
^공백문자가 아닌 문장의 첫 부분으로 이동
$문장의 끝 으로 이동
H화면의 첫번째 라인으로
M화면의 중간 라인으로 이동
L화면의 마지막 라인으로 이동
:nn 번째 라인으로 이동. 예를들어 :10 이면 10 번째 줄로 이동한다.
텍스트의 삽입 몇 편집
Vim 명령어
결과
i커서 앞에 쓴다. 
I커서가 가리키는 라인의 앞에 쓴다
a커서 뒤에 추가한다. 
A커서가 가리키는 라인의 맨 뒤에 추가한다. 
o커서가 가리키는 라인 아래에 새 라인을 추가한다. 
O커서가 가리키는 라인 위에 새 줄을 추가한다. 
r한 글자를 바꿔쓴 후 다시 명령모드로 들어간다.
R삽입모드에 들어가지만 글자를 덧쓰면서 이미 쓰여진 글자를 지운다
ESC 
삽입/수정 모드에서 빠져나온다. 
텍스트 지우기
Vim 명령어
Action
x커서가 가리키는 글자를 지운다
X커서 앞의 글자를 지운다. 
dd or :d현재 커서가 가리키는 라인의 글자를 지운다
비주얼 모드 들어가기
Vim 명령어결과
v단어를 하이라이팅(Highlighting, 블록 설정) 한다. 텍스트를 하이라이팅 하기 위해서 보통의 이동 키를 사용한다. 
V현재 커서가 가리키는 라인을 하이라이팅 한다. 
The ESC key비주얼 모드에서 빠져나와 명령모드로 들어간다. 
블록 텍스트 편집하기 
아래의 명령어는 비주얼 모드에서 텍스트를 블록 설저한 후 명령모드로 들어와 사용할 수 있다. 물론 명령모드에서도 사용할 수 있긴 하다. 
Vim 명령어결과
~글자의 대소문자를 바꾼다 예를들어서 mOvL 은 MoVl 로 바뀐다. 비주얼 모드와 명령모드 둘다 사용할 수 있으며 비주얼 모드에서 블록 처리한 뒤 명령모드로 들어와 ~ 를 누르면 그 블록 설정된 부분의 대소관계가 바뀐다.
> (V)한 칸 오른쪽으로 민다
< (V)한 칸 왼쪽으로 민다.
c (V)블록처리된 텍스트를 바꾼다. 
y (V)블록처리된 텍스트를 복사(yank)한다. 
d (V)블록처리된 텍스트를 잘라내기한다. 
yy or :y or Y커서가 가리키는 라인을 복사한다. 블록 처리할 필요는 엎다. 
dd or :d커서가 가리키는 라인을 삭제한다. 블록 처리할 필요는 없다. 
p복사나 잘라내기 했던 텍스트를 붙여넣기(put) 한다. 
P커서 앞에 잘라내기 했던 텍스트를 붙여 넣는다. 
실행 취소 및 다시 실행
Vim 명령어결과
u실행 취소한다. 
U커서가 가리키고 있던 라인에서 했던 모든 실행들을 취소한다. 
Ctrl + r다시 실행한다. 
Vim 명령어결과
/patternpattern 이란 단어를 검색한다.
n다음 글자를 찾지만 아래방향으로 찾는다. 
N다음 글자를 찾지만 윗 방향으로 찾는다.
치환  (바꾸기) 
Vim 명령어
결과
:rs/foo/bar/afoo 를 bar 로 치환환한다. r 은 치환하는 범위를 지정하고 a 는 인자를 지정한다. 아래에 r 과 a 의 종류에 대해 설명되어 있다. 

범위 (r) 의 종류에는
아무것도 쓰지 않을 때
범위를 주지 않을 경우 현재 라인에서 치환한다. 
숫자를 쓸 때
치환할 라인의 숫자를 쓴다. 
%전체 파일의 모든 라인에 대해 치환한다. 
인자 (a)의 종류에는
g한 라인의 모든 경우를 치환한다. 이 인자를 주지 않을 경우 처음 발견되는 것만을 치환한다.
(이 말은 g 인자를 주지 않고 Hello Hi Hello 에서 Hello bye 로 치환한다면 bye Hi bye  가 아닌 bye Hi Hello 가 된다) 
i검색된 문자들의 대소문자를 무시하고 치환한다. 
(즉, hello 를 hi 로 치환시 Hello, hEllo, HELLO 등과 같은 것들도 치환된다. )
I위 경우를 무시하지 않는다. ( 위 경우서 hello 만 치환된다 )
c모든 치환에 대해 확인한다. 만약 치환할 것이라면 y 를, 치환하지 않을 것이라면 n 을, 이하 모든 부분을 치환할 것이라면 a 를, 치환을 종료하겠다면 q 를 누르면 된다. 
예를들자면... 
:452s/foo/bar/ 452 번째 라인의 첫 번째 foo 를 bar 로 치환한다. 
:s/foo/bar/g현재 라인에 나타나는 모든 foo 를 bar 로 치환한다.
:%s/foo/bar/g전체 파일의 모든 foo 를 bar 로 치환한다. 
:%s/foo/bar/gi위와 같지만 Foo, FOO, FOo, foO 와 같은 것들도 모두 치환된다. 
:%s/foo/bar/gc위위와 같지만 각 치환에 대해 모두 검사를 수행한다.
:%s/foo/bar/c파일의 모든 라인에 대해 각 라인의 첫 번째 foo 만 bar 로 치환하며 각 치환에 대해 검사를 한다. 


'Linux' 카테고리의 다른 글

우분투 ubuntu 와이어샤크 no interface 문제 (무작이모드 가능)  (0) 2014.03.07
VIM 설정목록  (0) 2013.12.31
리눅스 우분투 계열 apm설치  (0) 2013.12.31
kali linux 에 vmware tools 설치  (0) 2013.12.31
리눅스 종류  (0) 2013.12.31
Posted by 준P
1. Apache2 설치하기
# sudo apt-get install apache2
2. Mysql 설치하기 
# sudo apt-get install mysql-server mysql-client 
# 설치 중간에 Mysql root 계정의 password를 입력하라고 나옵니다.
3.Apache와 Mysql 연결인증 모듈 설치하기
# sudo apt-get install libapache2-mod-auth-mysql 
4. PHP 설치하기 
# sudo apt-get install php5-common php5 libapache2-mod-php5
5. PHP와 Mysql 연동 모듈 설치하기
# sudo apt-get install php5-mysql


'Linux' 카테고리의 다른 글

우분투 ubuntu 와이어샤크 no interface 문제 (무작이모드 가능)  (0) 2014.03.07
VIM 설정목록  (0) 2013.12.31
vim파일 작업시 명령어  (0) 2013.12.31
kali linux 에 vmware tools 설치  (0) 2013.12.31
리눅스 종류  (0) 2013.12.31
Posted by 준P