C/C++ 의 컴파일 및 디버깅이 가능한 통합환경을 지원한다. 기본적으로 gcc 를 사용하며 착하게 한글이 지원된다. Visual C++ 로 작성된 프로젝트도 불러들여서 컴파일이 가능하다. 물론 MFC를 사용한 소스는 MFC 라이브러리 및 헤더 파일이 있어야 한다. 윈도우 프로그램, 콘솔 프로그램, 정적 라이브러리, dll, OpenGL, DirectX 등 거의 모든 프로그램을 작성할 수 있다. 내장 에디터는 코드 자동완성 기능도 지원한다. 아직 베타버전이어서 약간의 불안정한 감도 없지는 않다. 내가 쓰는건 MinGW MinGW(Minimalist GNU for Windows) C/C++ MinGW 는 말그대로 윈도우를 위한 최소한의 GNU 집합체이다. 리눅스 gcc 개발환경과 비슷한 방식으로 윈도우 콘솔에서 개발가능하다.
시만텍 C++를 대체해서 쓸 수 있는 컴파일러이다. Win32, Windows 3.1, MSDOS, 32bit 확장 MSDOS 프로그램을 작성할 수 있다. STL 은 다운로드 페이지에 함께 있으므로 같이 인스톨 해서 사용할 수 있다.
유명한 볼랜드 C++ 도 무료로 사용할 수 있는 버전이 있다. 무료로 사용할 수 있는 최신 버전은 5.5 이며 IDE(통합개발환경)는 지원하지 않는다.
GNU C/C++ 에 기반을 둔 컴파일러이다. IDE, 그래픽 라이브러리, 파서, 텍스트 유틸리티, make 등을 지원한다. 모든 라이브러리가 소스와 함께 제공된다.
작고 빠른 코드를 생성하는 C 컴파일러중 하나이다. C++ 은 지원하지 않는다.
위에 소개한 컴파일러는 많은 무료 컴파일러 중에서 쓸 만한 것들을 고른 것이다. cygwin 에도 C/C++ 컴파일러가 있으나 제외했다. 해당 홈페이지를 가고 싶으면 각 제목을 클릭하고, 상업적으로 사용할 경우 라이센스를 받아야 되는 것들도 있으므로 확인하고 사용하자 |
검색결과 리스트
우분투에 해당되는 글 25건
- 2012.12.31 vim 갖다 붙이기 ex mode
- 2011.11.13 리눅스 디렉토리 구조 훔쳐보기
- 2011.11.04 웹브라우저에서 디렉토리 리스트가 보일때 index 를 없애려면, Robot.txt 작성법 1
- 2011.10.18 vi vim 으로 source code과 navigation을 해 보자. close tag까지 - grep
- 2011.10.02 [How To] Solution for sudo: must be setuid root problem
- 2011.10.01 포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 2
- 2011.10.01 우분투 Default shell 바꾸기 bash
- 2011.09.26 우분투에서 NPM -> nodejs -> socket.io 순으로 설치하기. (웹채팅)
- 2011.09.05 서버 호스팅
- 2011.07.26 Process manager
- 2011.07.26 mysqldump DB 백업
- 2011.07.15 리눅스 게시판 - 서버 관련 내용들이 잔뜩
- 2011.06.25 UTF-8 EUC-KR
- 2011.06.25 VIM binary mode
- 2011.06.22 제로보드4 세팅 관련 (PHP, UTF8) 2
- 2011.06.22 VIM UTF8, EUC-KR 자동 설정
- 2011.06.01 VI navigation "go forward" "go back"
- 2011.05.15 공짜 무료 C/C++ 컴파일러들 무료프로그램
- 2011.05.12 APM 한방 셋업
- 2011.05.10 링크 (심볼릭, 하드)
- 2011.05.10 Config file을 읽는 순서
- 2011.05.10 왜 실행파일에 ./ 를 붙여야 하는가?
- 2011.05.10 터미널 창으로 메세지 보내기
- 2011.05.10 리눅스 기본 명령들
- 2011.04.12 Putty 기본주소 setting
글
vim 갖다 붙이기 ex mode
You can use one of the following to copy from the clipboard in Vim:
"+p
"*p
SHIFTINSERT
Which one you use depends on your environment.
If you're using gVim or MacVim, you'll want "+p
If you're using Vim from the command line, you'll want "*p
If you're in insert mode or ex mode (I think) you use SHIFTINSERT
백북에서 insert는 fn Enter
By insert I mean the key over by HOME, PAGE UP, and DELETE
Explanation:
"
means you're going to specify a register- there are 26 custom registers - 1 for each letter
- there are many other registers (see this)
+
or"
refers to the unnamed buffer, which represents the system clipboardp
is the normal put command
More info on buffers:
If you want, you can store different text in different buffers.
To yank 3 lines to the buffer named x use this:
"x3yy
To paste the contents of the buffer named y above the cursor:
"yP
'우분투' 카테고리의 다른 글
리눅스 디렉토리 구조 훔쳐보기 (0) | 2011.11.13 |
---|---|
웹브라우저에서 디렉토리 리스트가 보일때 index 를 없애려면, Robot.txt 작성법 (1) | 2011.11.04 |
vi vim 으로 source code과 navigation을 해 보자. close tag까지 - grep (0) | 2011.10.18 |
[How To] Solution for sudo: must be setuid root problem (0) | 2011.10.02 |
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 (2) | 2011.10.01 |
글
리눅스 디렉토리 구조 훔쳐보기
리눅스 디렉토리 구조 훔쳐보기
우선 리눅스 디렉토리의 구조를 대강 살펴보자.
/
최상위 디렉토리(root directory). M모사의 제품처럼 드라이브라는 개념이 리눅스에서는 존재치 않으며, 모든 디렉토리는 최상위 디렉토리를 기준으로 위치된다.
/bin
대부분의 중요한 실행 파일들이 담겨 있다.
/boot
시스템 부팅에 관련된 파일들이 담겨 있다.
/dev
디바이스 파일들이 담겨 있다.
/etc
시스템 설정 상태를 담고 있는 파일들이 담겨 있다.
/home
일반 계정 사용자들의 홈 디렉토리를 담고 있다.
/lib
공유 라이브러리 파일들이 담겨 있다.
/mnt
다른 장치들을 마운트하는 디렉토리
/proc
프로세스 정보를 담고 있는 파일들이 담겨 있다.
/root
root의 홈 디렉토리.
/sbin
root가 시스템 운영을 위해 필요한 실행 파일을 담고 있다.
/tmp
임시 디렉토리
/usr
사용자들을 위한 대부분의 프로그램들과 설정 파일들이 담겨 있다.
/var
로그 파일 등의 시스템 관리와 관련된 정보들이 저장되는 디렉토리.
4. 리눅스 파일/디렉토리 구조 파헤치기
4.1 /bin
4.2 /boot
4.3 /dev
4.4 /etc
4.5 /home
4.6 /lib
4.7 /mnt
4.8 /proc
4.9 /root
4.10 /sbin
4.11 /tmp
4.12 /usr
4.13 /var
4. 리눅스 파일/디렉토리 구조 파헤치기
대강 리눅스 디렉토리 구조를 알아봤으니, 더 심층적으로 알아보자.
4.1 /bin
/bin에는 필수적인 실행 명령어들이 모여 있다. 대부분이 모든 사용자가 실행 가능한 것들이며 우리가 쓰는 거의 모든 기본 명령어들이 담겨 있다. 예를 들어 cat, chmod, chown, cp, date, echo, kill, ln, ls, mkdir, more, mount, mv, ps, pwd, rm, sh, su, vi 등등등...
4.2 /boot
말 그대로 시스템 부팅에 관련된 모든 파일을 담고 있다. 단, lilo(LInux LOader)의 설정 파일은 /etc/lilo.conf 에 있으며, lilo 자체는 명령어로서 /sbin/lilo에 위치하고 있다. 특히 커널 이미지인 vmlinuz 가 위치하고 있는데, lilo 가 아닌 다른 부트로더 프로그램들 모두가 공통적으로 vmlinuz 를 이용해 시스템을 부팅하므로 이 디렉토리가 매우 중요하다고 할 수 있다. 이 디렉토리의 파일들은 직접 편집할 수 없으며 커널 컴파일 등의 과정으로부터 생성된다.
4.3 /dev
각종 디바이스 파일들이 위치해 있는데 크게 블록 디바이스와 캐릭터 디바이스로 나뉠 수 있다. 블록 디바이스란 HDD와 같은 주변 장치를 말하는데, 데이타가 블록 단위로 읽고 쓰여지며 랜덤하게 액세스할 수 있다. 반면 캐릭터 디바이스는 입출력이 한 바이트 단위로 이루어지며 데이터가 순차적으로 읽고 쓰여진다. 디바이스를 새로 만들 때에는 mknod 명령을 이용하면 되며, 물론 /bin 에 위치해 있다. mount를 할 때에 필요한 디바이스 몇 개만 소개한다.
플로피 디스크 디바이스
/dev/fd0
첫 번째 FDD의 디바이스로 두 번째의 경우는 0 대신 1을, 세 번째의 경우는 2를 써주면 된다.
IDE 하드 디스크 디바이스
/dev/hda or /dev/hda1
마지막 부분의 hda에서 'a'는 위치를 나타내는 것으로, 'a'는 primary master, 'b'는 primary slave, 'c'는 secondary master, 'd'는 secondary slave를 의미한다. 그리고 그 뒤에 숫자가 없을 경우에는 전체를 의미한다. 숫자를 달 경우에는 파티션을 의미한다.
SCSI 하드 디스크 디바이스
/dev/sda, /dev/sda1
IDE 하드 디스크 디바이스와 같으나 'h' 대신 's'를 쓴다.
하드웨어 관련 디바이스
/dev/cdrom
CD-ROM 디바이스이다.
4.4 /etc
시스템 설정 파일들이 모여 있다. 그런 만큼 시스템을 백업하고자 할 때는 꼭 이 디렉토리를 가장 먼저 백업해야 한다. 각 파일들에 대한 설명은 에디터로 파일을 열어보면 주석처리로 설명이 되어 있으므로, 참고하면 될 것이다.
/etc/(cshrc.login, cshrc.cshrc, profile)
bash 나 csh,tcsh 사용자가 로그인할 때 기본으로 읽어들여 초기화시키는 파일이다. 그러므로 모든 사용자에게 공통으로 적용할 쉘 관련 사항이 있다면 이 파일들을 수정하면 된다. 각 사용자들은 자신의 홈 디렉토리에 개별 설정 파일이 있으므로 역시 원하는 대로 설정할 수 있다.
/etc/fstab
시스템 부팅시 처리되는 마운트와 관련한 사항들이 기록되어 있다.
--------------------------------------------------------------------------------
/dev/hda1 / ext2 defaults 1 1
/dev/hdb5 /home ext2 defaults 1 2
/dev/hdb2 /public ext2 defaults 1 2
/dev/hda2 /public2 ext2 defaults 1 2
/dev/hdb6 /sysbackup ext2 defaults 1 2
/dev/hdb3 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 owner,noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 owner,noauto,ro 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
--------------------------------------------------------------------------------
첫 번째 항목은 마운트될 디바이스가 적혀 있다. 디바이스 이름은 이미 보고 넘어갔으니 모르는 사람은 없겠죠? 두 번째 항목은 마운트시킬 마운트 포인트가 적혀 있다. 세 번째 항목은 해당 디바이스의 파일 시스템 타입이 적혀 있다. ext2는 리눅스에서 사용하는 파일 시스템이며, msdos와 vfat는 각각msdos와 windows에서 사용하는 파일 시스템이고, iso9660은 CD-ROM에서 지원되는 파일 시스템이다. 자세한 것은 mount를 참고하자.
/etc/group
사용자 그룹이 정의되어 있으며, 다음과 같은 형식으로 쓰여져 있다.
--------------------------------------------------------------------------------
Group Name:Password:GID:Member
--------------------------------------------------------------------------------
/etc/issue
시스템에 로그인할 때 나타나는 'login:' 위에 나타나는 메시지이다. 만약 로그인할 때 나타나는 메시지를 바꾸고 싶으면 /etc/rc.d/rc.local 파일의 맨 아래 부분에 #로 시작되는 주석을 참고하자.
/etc/motd
'message of the day'의 약자로 로그인 직후의 메세지를 담고 있다. 관리자가 공지를 띄우는 데 유용한 파일.
/etc/passwd
사용자들의 계정 정보와 패스워드, 홈 디렉토리에 대한 정보를 담고 있으며 다음과 같은 형식으로 쓰여져 있다.
--------------------------------------------------------------------------------
user ID:passwd(암호화상태):UID:GID:사용자 정보:홈디렉토리:로그인쉘
--------------------------------------------------------------------------------
/etc/shadow
쉐도우 패스워드 파일
4.5 /home
사용자들의 모든 홈 디렉토리가 담겨 있다.
4.6 /lib
공유 라이브러리와 커널 모듈들이 담겨있다. 이전에 짚고 넘어간 /bin과 /sbin디렉토리에 있는 실행 명령어들이 실행될 때 필요한 공유 라이브러리들이 존재한다.
4.7 /mnt
마운트 포인트 디렉토리로써 꼭 여기에만 마운트해야 하는 것은 아니다. 하지만 일부러 만들어 놓인 곳이니 이곳을 쓰자^^;
4.8 /proc
일종의 가상 파일 시스템으로 메모리 정보만을 담고 있다. 우리가 흔히 사용하는 ps 프로그램이 여기에서 프로세스 정보 등을 참조한다.
4.9 /root
root(수퍼 유저)의 홈 디렉토리. 뭐 그게 끝이지 뭐...^^;
4.10 /sbin
수퍼 유저가 사용하는 실행 명령어들이 거의 다 들어 있다. 그러므로 물론 일반 유저는 사용할 수 없다. 예를 들어 halt, reboot, fdisk, mkfs등이 있다.
4.11 /tmp
임시 디렉토리이다. 그러므로 임시 파일들의 간이 저장 창고 역할을 한다.
4.12 /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 로 되어 있는 이유가 바로 그것이다. M모사의 '창문들'이라는 OS에 있는 'Program Files'라는 디렉토리와 유사하다고 보면 된다.
/usr/man
info 와 비슷한 역할을 한다. 메뉴얼 페이지가 담겨 있는 것으로 역시 'man 프로그램'을 쳐서 이용할 수 있다. 모르는 명령어들은 꼭 한 번씩 man으로 확인하는 습관을 갖길...
/usr/src
프로그램 소스들이 보관되어 있는 것으로 리눅스 커널이 위치하고 있는 곳이다.
4.13 /var
이 디렉토리 아래에는 시스템 작동 중 변경되는 파일들이 담겨 있다. 로그 파일이나 스풀 파일들이 그것들인데, 즉 다른 시스템과 공유가 되지 않음을 의미한다.
'우분투' 카테고리의 다른 글
vim 갖다 붙이기 ex mode (0) | 2012.12.31 |
---|---|
웹브라우저에서 디렉토리 리스트가 보일때 index 를 없애려면, Robot.txt 작성법 (1) | 2011.11.04 |
vi vim 으로 source code과 navigation을 해 보자. close tag까지 - grep (0) | 2011.10.18 |
[How To] Solution for sudo: must be setuid root problem (0) | 2011.10.02 |
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 (2) | 2011.10.01 |
글
웹브라우저에서 디렉토리 리스트가 보일때 index 를 없애려면, Robot.txt 작성법
인터넷으로 홈페이지를 접속하면, 기본적으로 홈 디렉토리 내의 Index.html 파일을 보여주게 됩니다.
아파치 설정 파일(httpd.conf) 파일에 아래와 같이 DirectoryIndex 설정이 아래와 같이 되어 있기 때문입니다.
아래와 같이 설정이 되어 있는 경우, 도메인으로 접속시에 홈 디렉토리내의 Index.html 파일을 출력하며, Index.html 파일이 존재하지 않는 경우 index.htm -> index.php의 순서로 찾아서 출력하게 됩니다. 만약 홈 디렉토리내의 main.html파일로 홈페이지가 뜨게 하려면, 아래의 DirectoryIndex 부분을 main.html 로 변경하면 되겠죠.?? ^^
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
웹브라우저에서 디렉토리 리스트가 보이게 되는 경우는 아래와 같이 가상호스트 디렉토리의 Options 부분에 Indexes 설정이 되어 있는 경우에 홈 디렉토리의 리스트가 출력되게 됩니다.
단, 모든 경우에 디렉토리의 리스트가 출력되는것이 아니라, 위의 DirectoryIndex 부분에 설정된 index.html index.htm index.php 파일이 모두 존재 하지 않을때에만, 디렉토리 리스트가 출력되게 됩니다.
<Directory "/home/*/public_html">
~
Options Indexes FollowSymLinks
~
</Directory>
index 파일이 없을때 디렉토리 리스트가 뜨지않고 에러페이지를 출력하게 하려면, 아래와 같이 Options 부분의 Indexes를 삭제하고 아파치 데몬을 리스타트 하면 됩니다.
<Directory "/home/*/public_html">
~
Options FollowSymLinks
~
</Directory>
Apache 보안
장마가 끝나고 무더위가 우리들을 괴롭히는 시기가 도래했습니다. 보안 관리자 여러분, 이 무더위에 속에서 짜증내지 마시고 에어컨 앞에서 시원한 얼음과자 드시면서 더위를 달래 보시기 바랍니다.
매달 연이은 기사 원고 청탁(?)에 이젠 자원이 고갈이 나고 있는 상태입니다만 제가 알고 있는 또는 가지고 있는 자료에서 뽑은 짤막한 Apache 설정 보안 팁을 여러분을 위해 풀어 놓겠습니다.
1. ServerToken 설정 변경에 따른 Apache 버전 head 정보
ServerToken 설정에는 다음과 같은 옵션이 있습니다.
[Full | OS | Minor | Minimal | Major | Prod]
각 옵션 별 어떻게 표시가 되는지 알아 보도록 하겠습니다.
- Full
Server: Apache/2.0.54 (Unix)
- OS
Server: Apache/2.0.54 (Unix)
- Minor
Server: Apache/2.0
- Mnimal
Server: Apache/2.0.54
- Major
Server: Apache/2
- Prod
Server: Apache
보안상 더 좋은 방법은 소스를 수정해서 정보를 아예 유출되지 않도록 하는 것이 더 좋겠습니다. 하지만, 대부분 관리자들은 RPM으로 설치를 하시는 경우가 많기 때문에 소스 수정에 대한 부분은 언급하지 않겠습니다.
2. 특정 디렉토리 접근 제한
이전 기사에 관리자 웹 페이지 접근 방법에 대하여 짧게 설명한 적이 있습니다. 포트를 달리하고 방화벽에서 특정 사용자만이 접근하도록 설정하는 것이 좋다고 여러분에게 이야기 하였습니다. 그런데, 방화벽이 없다면 어찌해야 좋은가? 그 방법이 아래 예시가 되겠습니다.
물론, 이 방법 또한 일반 웹 페이지에 의해서 침해 사고를 당했을 경우엔 무용지물이 되겠습니다. 그러나, 그냥 내버려 두는 것 보다는 더 안전하다는 것입니다.
[예]
SetHandler test <- 제한 할 디렉토리 기재(/는 빼야 함)
Order deny,allow
Deny from all
Allow from 192.168.100.15 <- 접근 할 IP 기재
3. 디렉토리 인덱싱 없애기
의외로 많은 웹 사이트가 디렉토리 인덱싱을 사용하고 있습니다. 전월 기사에서 알려 드린 방법으로 찾아 보셨으면 많은 웹 사이트가 디렉토리 인덱싱을 사용하고 있다는 것을 알아 차렸을 것입니다. 디렉토리 인덱싱을 사용하게 되면 웹 사이트 구조를 알게 되고 중요 파일에 대한 정보를 유출 시킬 수 있으므로 사용이 불필요하다면 반드시 디렉토리 인덱싱 사용을 중지 하시기 바랍니다.
Options Indexes, … Indexes 삭제
…
/Directory>
지난달에 이어 짤막한 apache 설정에 대한 보안 팁을 제공하도록 하겠습니다. 여러분에 많은 도움이 되길 바라지는 않지만 조금이나마 도움이 되었으면 합니다.
1. 심볼릭 링크
심볼릭 링크를 이용하여 기존의 웹 문서 외에 다른 파일 시스템에 접근 가능합니다. 편리성을 제공하기는 하지만 심각한 보안 문제를 야기 시킬 수 있습니다. 예를 들어 /etc/ 디렉토리를 링크를 걸어 놓았다면 /etc/passwd 파일의 사용자 계정 정보를 획득 할 수 있습니다.
“Options”지시어에서 심볼릭 링크를 가능하게 하는 옵션인 “FollowSymLinks’를 제거하면 막을 수 있습니다.
< Directory / >
Options FollowSymLinks ← 제거
AllowOverride None
< / Directory >
2. SSI(Server Side Includes)
SSI는 보안상 몇 가지 잠재적인 보안위험이 있습니다. 서버의 부하를 늘리며 일반적인 CGI 스크립트와 동일한 위험을 가집니다. SSI 파일에서 “exec 층”를 사용하면 httpd.conf에서 아파치를 실행하도록 설정한 사용자와 그룹 권한으로 CGI 스크립트나 프로그램을 실행할 수 있습니다.
SSI페이지가 스크립트나 프로그램을 실행하지 못하도록 하기 위하여 “Options” 지시어에서 “Includes” 대신 “IncludesNOEXEC”를 사용하면 됩니다.
< Directory / >
Options IncludesNOEXEC ← 추가
AllowOverride None
< / Directory>
3. Apache와 Tomcat 연동
Apache와 Tomcat이 root를 공유하게 디면 WEB-INF/web.xml와 WEB-INF/classes 아래에 있는 java 파일과 class파일이 노출될 위험이 있으며 파일명만 알아내면 소스 파일을 가져갈 수 있습니다. 따라서, 이를 방지하기 위해서는 apache의 httpd.conf에 다음과 같이 추가 해주어야 합니다.
< Location /WEB-INF >
SetHandler WEB-INF
Order deny,allow
Deny from all
< / Location >
이제 선선한 바람이 불어오는 가을입니다. 덥지 않아서 좋기는 하지만 감기 걸리기에 그만인 날씨죠. 여러분 모두 감기 조심하세요.
Robot.txt
로봇이 http://kw1993.egloos.com/ 과 같은 웹 싸이트를 방문하면, 먼저 http://kw1993.egloos.com/robots.txt 파일을 호출한다.
robot.txt 파일이 발견되면 파일을 읽어 그 내용을 분석한다.
로봇에 접근 권한 및 접근 가능한 경로에 대한 정보로 자신이 수집해도 되는 콘텐트만을 수집 하게 된다.
한 사이트에는 하나의 "robots.txt" 를 루트에 가질 수 있다.
로봇은 하위 디렉토리에서 이 파일을 검색하지 않는 것을 원칙으로 한다.
이 때문에 robots.txt 파일은 꼭 웹사이트의 루트에 생성해야 한다.
uri는 대소문자 구별하고, "robots.txt" 파일이름은 모두 소문자로 작성해야 하며. 파일명에 공백은 허용되지 않는다.
robot.txt 파일에 아래와 같이 되어있다면 해당 url에 대하여 모든 로봇에 대해 모든 경로에 접근을 차단한다는 내용이다.
user-agent: * # 모든 로봇(robot)들에 적용
disallow: / # 모든 페이지들의 색인(indexing) 금지
user-agent : 접근을 허용하지 않을 로봇을 설정 한다.
disallow : 허용하지 않을"disallow"를 빈 값으로 설정 할 경우, 모든 하위 경로에 대한 접근이 가능하다.
robots.txt 화일에는 최소한 한개의 "disallow" 필드(field)가 존재해야 한다.
disallow: /help # /help.html과 /help/index.html 둘 다 허용 안함
disallow: /help/ # /help/index.html는 허용 안하나, /help.html은 허용 됨.
페이지 차단하기
특정 파일 확장자를 차단 하는 방법은 robot.txt 파일에 아래와 같은 내용을 추가 하면된다.
Disallow: /*.xml$ # 루트 하위에 있는 xml 확장자를 가진 모든 파일의 색인을 거부한다.
Disallow: /test.html? # 루트에 text.html 과 ?가 포함된 파일의 색인을 거부한다.
항목에 대해 설정 한다.
기본적인 사항들은 많은 카페/블로그에서 더 상세한 정보를 제공하고 있는 것 같습니다. XGI 카페에서 다루는 내용은 XGI 및 홈페이지 제작으로 차별화하고 기타 내용은 기본적인 사항만 간단하게 언급하고 지나가도록 하겠습니다.
주로 웹호스팅을 사용하고 있기 때문에 리눅스에서 기본적으로 사용하는 웹서버인 아파치를 설정하실 일이 없을 것 입니다. 하지만 필요하신 분들도 있을 것이고 기본적으로 어떤 설정에 의하여 웹서버가 구동되는지 기본적인 것이나마 알아 두시면 도움이 될 것 같습니다.
좀더 자세한 것은 검색해 보시면 너무나 많은 자료가 있음을 아실 것입니다. 참고 하시고요.
아래 자료는 [펌]자료입니다.
출처는 모르겠네요. 처음 자료를 쓰신 분께 감사
HOW-TO Configuration httpd.conf(apache)
ServerType Standalone
# 서버 타입을 설정하는 지시자 이다.
# ServerType 에서 설정할 수 있는 것은 Standalone 과 inetd 두가지 설정이 있다.
※ 윈도우 환경에서는 standalone type만 지원이 됩니다.
▶ inetd Type
클라이언트의 요청이 있을 때 마다 httpd가 구동되어 클라이언트의 요청을 처리한 후 종료하는 방법이죠... 이런 동작 방식은 느리지만 접속이 적은 사이트라면 서버의 자원 사용을 최소화 합니다.
▶ standalone
기본 설정으로 몇개의 httpd를 미리 가동시켜서 사용자의 요청을 기다리죠... 때문에 많은 클라이언트가 빈번하게 요청하는 경우 빠르게 요구를 처리할 수 있습니다.
ServerRoot /usr/local/apache
# 아파치 서버의 루트 디렉토리를 설정한다.(아파치 서버가 설치된 디렉토리)
PidFile /usr/local/apache/logs/httpd.pid
# 아파치가 실행될 때 생성되는 httpd.pid 파일이 생성될 경로를 지정한다.
PID는 Process ID로 리눅스상에서 사용되는 모든 프로그램은 고유의 ID번호를 가지고 있습니다.
아파치 종료시 PID파일을 참조하게 됩니다.
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
#부모 프로세스가 자식 프로세스와 의사 소통을 할 때 사용되는 지시자와 그 파일을 지정한다.
Timeout 300
# 클라이언트에서 요청이 들어오고 처리를 완료할 때까지의 시간을 설정합니다. 시간단위는 초입니다.
Timeout은 클라이언트에서 서버로 접속할 때 클라이언트나 서버의 통신장애로 인해 300초 동안 클라이언트에서 완벽한 처리를 하지 못할 때 클라이언트와의 연결을 해제한다.
KeepAlive On
# 서버와의 지속적인 연결을 하도록 설정되어 있다. 즉 한번의 연결에 대해 한번의 요청만 처리하는 것이 아니라 또 다른 요청을 기다리게 된다. 하지만 지속적인 연결 시간은 KeepAliveTimeout 값에 설정한 만큼 유지된다. KeepAlive를 Off로 설정하게 되면 클라이언트로 부터 한번의 요청을 받은 후 바로 접속을 해제한다. 특별한 경우가 아니라면 On 상태로 유지하는 것이 좋다.
MaxKeepAliveRequests 100
# KeepAlive 상태에서 처리할 최대 요청 처리 건수를 설정한다.
# 보통의 웹 사이트에서는 설정값 100으로 충분하다.
KeepAliveTimeout 15
# KeepAlive 설정을 on으로 했을 경우에 아파치 서버가 얼마동안 클라이언트의 다음 요청을 기다리고 있는지 설정합니다. 초단위로 설정합니다.
MinSpareServers 5
# 아파치가 실행될 때 최소 예비 프로세스(httpd) 수를 설정한다. 이 값에 의해 현재 nobody 소유의 아파치 프로세스가 5보다 작을 경우 자동으로 부족한 만큼의 아파치 프로세스 생성한다.
# 8 정도 설정하는 것이 적당하다.
MaxSpareServers 10
# 아파치가 실행될 때 최대 예비 프로세스(httpd) 수를 설정한다. 이 값에 의해 현재 nobody 소유의 아파치 프로세스가 10보다 클 경우 불필요한 프로세스를 제거한다.
# 20 정도 설정하는 것이 적당하다.
StartServers 5
# 아파치가 실행될 때 생성 시키는 자식 프로세스 수이다.
하 지만 이 값이 MinSpareServers 값보다 작을 경우 아파치 실행 후에 바로 MinSpareServers 의 설정만큼 생성하기 때문에 아무런 의미가 없게 된다. StartServer 값과 MinSpareServers 값은 같은 값을 설정하는것이 바람직하다.
MaxClients 150
# 아파치 서버의 동시 접속자 수를 정의한다.
최대 값은 256이다.
256 이상의 값을 설정하고 싶을 때는 아파치 소스의 httpd.h 헤어 파일의 HARD_SERVER_LIMIT 부분을 수정하고 아파치를 다시 컴파일 해야 된다.
MaxRequestsPerChild 0
# 아파치의 자식 프로세스가 처리할 수 있는 최대 요청 처리 건수를 설정한다.
0 은 무제한을 뜻한다.
Listen
서 버의 어떤 포트에서 클라이언트의 요청에 응답하는지를 설정합니다. Listen은 중복해서 사용할 수 있으며 이를 이용해서 Port Based Virtual Host를 지정할 수 있습니다. 또한 Listen지시자는 Port이외에도 IP주소나 IP주소와 포트에서의 사용자 요청에 응답하도록 설정할 수 있습니다.
Listen 80
Listen 8080
Listen 192.168.1.1:80
Listen 192.168.1.1:8080
BindAddress *
# 가상 호스트를 지워한다. 기본적으로 주석 처리 되어 있지만 실제로는 가상 호스트에 영향을 주지 않았다.
Port 80
# 아파치가 사용할 기본 포트를 지정한다.
User nobody
Group nobody
# 자식 프로세스가 생성될 때 그 프로세스의 소유자와 소유그룹을 결정한다.
# 보안상 절대 root 로 설정하는 일은 없도록 한다.
ServerAdmin yunisj@apmtip.com
# 아파치 서버 관리자 e-mail을 설정하는 부분이다.
ServerName apmtip.com
# 아파치 서버가 작동중인 서버 이름을 설정한다. 기본적으로 주석 처리 되어 있다.
도메인이 아닌 IP 주소로 사용자의 홈페이지에 접속할 때 URL 끝에 /를 붙여야 접속이 되는 경우가 있는데 이럴 경우 ServerName 지시자에 주석을 제거 하고 아이피 주소를 설정해 주면 된다.
DocumentRoot "/usr/local/apache/htdocs"
아파치의 웹 문서들의 루트 디렉토리를 지정한다.
아래 부터 디렉토리 제어이다. Directory 구문에 대한 자세한 설명은 아래에 있다.
시스템 루트( / ) 디렉토리에 대한 제어
Options FollowSymLinks
AllowOverride None
# /usr/local/apache/htdocs 디렉토리에 대한 제어
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
# 사용자 홈 디렉토리인 public_html 디렉토리에 대한 제어
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
###################################################################
# 디렉토리 제어와 관련된 설정과 옵션 설 명 #
###################################################################
디렉토리 제어문의 시작은 로 시작해서 로 끝난다.
# -->> Options(옵션) 설명 ;
옵션 구문은 Options 라는 키워드로 시작된다.
FollowSymLinks : 실볼릭 링크를 허용한다.
SymLinksIfOwnerMatch : 링크를 허용하지만 링크 하고자 하는 사용자의 소유로 되어 있는 것만 링크 가능하다.
ExecCGI : CGI 실행을 허용한다.
Includes : SSI를 허용한다.
IncludesNOEXEC : SSI를 허용하지만 "#exec" 와 "include"로 정의한 CGI 실행은 거부한다.
Indexes : 웹 서버의 디렉토리에 접근 했을 때 DirectoryIndex 지시자로 설정한 파일이 없을 경우 디렉토리안의 파일 목록을 보여준다.
MultiViews : 클라이언트의 요청에 따라 적절하게 페이지를 보여준다. 쉽게 생각하면 HTTP 헤드 정보가 Accept-Language:ko 라면 Korea 언어에 맞게 데이터를 클라이언트에 전송한다.
None : 모든 설정을 부정한다.
All : MultiViews를 제외한 옵션을 의미한다.
# -->>AllowOverride 설명
AllowOverride는 클라이언트의 디렉토리 접근 제어에 관한 설정이다.
AllowOverride 는 AccessFileName 지시자와 밀접한 관계를 가지고 있다.
아래의 각 설정값들은 AccessFileName 지시자에서 설정한 파일에 적용된다.
None : AllowOverride를 off 한다는 것이다.
All : AccessFileName 지시자로 설정한 파일에 대해 민감하게 반응한다. 모든 지시자를 사용할 수 있다.
AuthConfig : AccessFileName 지시자에 명시한 파일에 대해서 사용자 인증 지시자 사용을 허락한다.
--> AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require등을 사용할 수 있다.
FileInfo : AccessFileName 지시자로 설정한 파일에 대해서 문서 유형을 제어하는 지시자 사용을 허락한다.
--> AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority등을 사용할 수 있다.
Indexes: AccessFileName 지시자로 설정한 파일에 대해서 디렉토리 Indexing을 제어하는 지시자 사용을 허락한다.
--> AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOpions, ReadmeName등을 사용할 수 있다.
Limit : AccessFileName 지시자로 설정한 파일에 대해서 호스트 접근을 제어하는 지시자 사용을 허락한다.
--> Allow, Deny, order 등을 사용할 수 있다.
Options : AccessFileName 지시자에 명시한 파일에 대해서 Options 그리고 XBiHack 등과 같은 지시자 사용을 허락한다.
--> Options, XBitHack등을 사용할 수 있다.
AloowOverride와 AccessFileName에 설정한 파일을 이용해서 아파치 인증 기능을 사용할 수 있다.
아파치 인증에 관한 자세한 설명은 "http://rootman.co.kr의 아파치 인증" 강좌를 참고하길 바란다.
####################################################################
DirectoryIndex index.html
# 파일 이름을 명시하지 않고 디렉토리에 접근할 경우 자동으로 보여줄 파일 이름을 설정한다.
# 여러개의 파일 이름을 설정할 수 있다. 파일 이름에 대한 구분은 Space 키, 즉 빈 공간으로 구분한다.
AccessFileName .htaccess
# 특정 디렉토리의 접근 제어를 할 파일 이름을 정의한다.
# 단, 해당 디렉토리의 AllowOverride 에서 None으로 설정되어 있지 않아야 된다.
# 자세한 설명은 "아파치 인증" 강좌 참고
CacheNegotiatedDocs
# 프록시 서버에 문서를 캐시하도록 설정한다. 기본적으로 주석 처리 되어 있다.
HostnameLookup Off
# 아파치의 로그 파일에는 기본적으로 클라이언트의 IP 주소 정보가 기록되는데 이 설정을 On 하면 호스트 네임(도메인)
# 이 기록된다. 하지만 DNS 질의를 해야 되므로 속도가 느리다는 단점이 있다.
# 그냥 Off로 사용하는것을 추천한다.
ErrorLog /usr/local/apache/logs/error_log
# 아파치 서버 접속 에러 로그를 기록할 결로와 파일 이름을 설정한다.
LogLevel warn
# 에러 로그 내용의 레벨을 설정한다.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# 사용자 접속을 기록할 로그 포멧을 정의한 부분이다. 위와 같이 4가지 형식의 로그 포멧이 기본적으로 설정되어 있다.
common : 가장 일반적인 로그 기록
referer : 현재 아파치 서버에 접속하기 전에 머물렀던 URL으 기록한다.
agent : 접속자의 웹 브라우저(OS 포함) 종류를 기록한다.
combined : 위의 3가지 로그 포멧을 모두 조합한 것이다.
접속자에 대한 많은 정보를 기록하길 원한다면 combined으로 설정하면 된다.
# %h %I 등과 같은 아파치 로그 포멧을 알고 싶으면 아파치 메뉴얼를 참고 하기 바란다.
CustomLog /usr/local/apache/logs/access_log common
# 로그 파일의 경로와 파일 이름, 그리고 로그의 포맷을 설정한다.
# common 이외에 위에서 정의한 로그 포멧을 지정할 수 있다.
ServerSignature On
# apache 서버가 생성하는 Error 페이지와 Ftp 디렉토리 목록, mod_status, mod_info 등에 apache 서버 버젼과 가상 호스트
# 네임을 추가적으로 표시해 준다.(On 설정시) Email 설정시 ServerAdmin의 E-mail 주소를 페이지에 링크해 준다.
# On, Off, Email을 설정해서 사용할 수 있다.
Alias /icons/ "/usr/local/apache/icons/"
# 특정 디렉토리를 alias 한다. 위의 경우는 /usr/local/apache/icons/ 디렉토리를 icons 라는 이름으로 alias 한것이다
# icons 디렉토리 앞의 /(슬래쉬)는 DocumentRoot를 의미한다.
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
# Alias와 같은 형식이고 실행할 스크립트 디렉토리를 alias할 때 사용한다.
Redirect old-URL new-URL
# old-URL을 new-URL로 코딩해준다. 하지만 HTML태그로 위의 기능을 대신할 수 있기때문에 사용할 일이 거의 없을것이다.
IndexOptions Fancy Indexing
# 디렉토리에 DirectoryIndex에 설정된 파일명이 없을경우 아파치서버는 디렉토리목록을 보여주는데 Fancy Indexing을 설정할 경우 파일의 크기, 생성날짜 등을 같이 출력해준다.
DefaultIcon /icons/unknown.gif
# 아이콘이 설정되어 있지 않은 파일 확장자들의 아이콘을 대신한다
AddDescription "GZIP compressed document" .gz
AddDescription "tar archive" .tar
AddDescription "GZIP compressed tar archive" .tgz
# 아파치가 디렉토리 목록을 보여줄 경우 파일 확장자에 대해 간략한 설명을 할 수 있게 한다. 단, IndexOptions에서 FancyIndexing이 적용되어 있어야 된다.
ReadmeName README
HeaderName HEADER
# 아파치가 디렉토리가 목록을 보여줄 경우 페이지 위(HEADER)와 아래(README)에 추가로 출력할 텍스트들을 설정할 수 있다.
# 각 디렉토리에 README, HEADER 라는 이름으로 텍스트 파일을 만들면 된다.
ErrorDocument 500 "The server made a boo bo"
ErrorDocument 404 /missing.html
ErrorDocument 402 http://some.other_server.com/subscription_info.html
# 클라이언트의 요구에 의해 발생하는 아파치 서버의 에러페이지에 출력할 텍스트나 문서를 정의할 수 있다.
각 페이지는 에러 코드별로 설정할 수 있으며 외부의 URL을 지정할 수도 있다.
문자열을 설정을 경우네는 " "안에 문자열을 설정하면 되고 내부 html 문서를 지정해줄 경우에는 문서의 경로를 지정해 주면 된다. 단, (/)최상위 경로는 DocumentRoot를 의미한다.
SetHandler server-status
Order deny,allow
Deny from all
Allow from .your_domain.com
SetHandler server-info
Order deny,allow
Deny from all
Allow from .your_domain.com
# 위의 설정을 함으로써 웹 브라우저에서 아파치 서버의 상태와 정보를 볼수 있다. 보안상 특정 호스트에서만 볼 수 있게 설정할 수 있으며 기본적으로 주석 처리되어 있다.
Deny from all
ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
# 아파치 1.1 이전 버젼의 버그를 악용하는 경우가 있는데 이 설정에 해 두면 이러한 공격을 phf.apache.org의 로깅 스키립트로 리다이렉트 시켜준다. 요즘은 필요없는 설정이고 위의 URL에 cgi스크립트가 존재하지도 않는다.
DefaultType text/plain
아파치가 처리할 기본 문서들을 정의한다. 위의 설정은 html과 text 파일을 포함시킨 것이다.
위의 설정 때문에 text 파일도 웹 브라우저에 표시해 줄수 있는 것이다.
'우분투' 카테고리의 다른 글
vim 갖다 붙이기 ex mode (0) | 2012.12.31 |
---|---|
리눅스 디렉토리 구조 훔쳐보기 (0) | 2011.11.13 |
vi vim 으로 source code과 navigation을 해 보자. close tag까지 - grep (0) | 2011.10.18 |
[How To] Solution for sudo: must be setuid root problem (0) | 2011.10.02 |
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 (2) | 2011.10.01 |
글
vi vim 으로 source code과 navigation을 해 보자. close tag까지 - grep
자자, closetag을 사용하려면 /usr/share/vim/vim73/plugin에다가 closetag.vim을 넣고 ctrl- 로 태그를 닫으면 되는데
중요한건 plugin에 넣을 때 644의 기본 chmod를 맞춰줘야 하고, 복사가 잘 안되니까 sudo로 잘 넣어줘야 한다.
tagmatch를 위해서 %를 쓸 수 있는데
etc/vim/vimrc.local에
filetype plugin on
을 꼭 넣어줘야 한다.
http://www.vim.org/scripts/script.php?script_id=39
matchit
폴더 탐색을 위해서는
:30vs ./ 또는 e .
의 명령어로 navigator를 만들 수 있다.** shift-p 로 파일을 열어야 오른쪽에 열 수 있다.
cw를 이용하면 grep 결과를 볼 수 있다.
아! 그리고 현재 파일이름 보려면 set laststatus=2 로 하면 된다.
cd - 로 goes back to previous directory할 수 있다.
source insight로 php하기
http://cozyu.tistory.com/7
source insight 비슷한 kscope
http://blog.naver.com/xgraph?Redirect=Log&logNo=150106205269
'우분투' 카테고리의 다른 글
리눅스 디렉토리 구조 훔쳐보기 (0) | 2011.11.13 |
---|---|
웹브라우저에서 디렉토리 리스트가 보일때 index 를 없애려면, Robot.txt 작성법 (1) | 2011.11.04 |
[How To] Solution for sudo: must be setuid root problem (0) | 2011.10.02 |
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 (2) | 2011.10.01 |
우분투 Default shell 바꾸기 bash (0) | 2011.10.01 |
글
[How To] Solution for sudo: must be setuid root problem
http://sathyasays.com/2008/10/10/how-to-solution-for-sudo-must-be-setuid-root-problem/
had encountered this problem on sudo/gksu not working few months earlier.
Whenever I had to open an application with gksu it did not open at all ! I was wondering what did i do. I dint know whether i meddled with something or is it any other configuration that created the problem.
If I type sudo in terminal i get “sudo: must be setuid root”
This is how I went about fixing it:-
- Open terminal and enter as root i.e. type ‘su’ and then the root password (Please be careful while being the root). Alternatively, you can also use ur OS’s live CD to mount the root partition (the partition where you have installed your OS)
- Next, type
chmod 4755 /usr/bin/sudo
If the command perfectly happens then as far I am able to tell sudo and gksu should work correctly.
그러나, 답변중에는
chmod 4111 /usr/bin/sudo 만으로도 충분하다는 답변이 있다.
'우분투' 카테고리의 다른 글
웹브라우저에서 디렉토리 리스트가 보일때 index 를 없애려면, Robot.txt 작성법 (1) | 2011.11.04 |
---|---|
vi vim 으로 source code과 navigation을 해 보자. close tag까지 - grep (0) | 2011.10.18 |
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 (2) | 2011.10.01 |
우분투 Default shell 바꾸기 bash (0) | 2011.10.01 |
우분투에서 NPM -> nodejs -> socket.io 순으로 설치하기. (웹채팅) (0) | 2011.09.26 |
글
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때
내가 아래에서 구현한 것은 일반적으로도 도움이 될 것이다. 그러나 내가 쓴 설명은 포트번호로 가상호스트를 구현하는 것이다. mydomain.local 형식으로 도메인을 통해 가상호스트를 구축하려면 [apache] 로컬 컴퓨터에 가상호스트 만들기를 참고하는 편이 도움이 된다.
이 설명은 윈도우에서 APM_SETUP을 바탕으로 작성한 것이다.
두 파일을 건드려야 한다.
하나는 기본 설정 파일, 하나는 가상 호스트 설정 파일.
가상 호스트 설명을 보면 종종 어떤 파일을 건드려야 하는지 안 나와 있는데, 그게 문제인 듯하다.
다음 두 파일을 건드려야 한다. 메모장에서 열면 된다. txt파일이니까.
{아파치 루트}/conf/httpd.conf 와 {아파치 루트}/conf/extra/httpd-vhosts.conf 다.
(위에서 {아파치 루트}는 아파치가 설치돼 있는 폴더를 의미한다.)
* httpd.conf에서 설정해야 하는 것.
1.
Listen이라고 써 있는 부분을 찾는다.
이 부분은 포트를 설정하는 부분이다. 포트가 뭔지까지 설명하지는 않겠다.
아파치가 사용하는 기본 포트는 80이다.
가상 호스트 각각 다른 포트로 사용할 생각이라면 여기에 포트번호를 적어 줘야 한다.
한 포트에서 다 사용할 생각이라면 굳이 여기를 건드릴 필요는 없다.
어쨌든, 나는 82번 포트는 기본 포트로, 83번 포트는 가상 호스트 포트로 사용할 계획이다.
따라서 이렇게 적어 줬다.
Listen 82
Listen 83
2.
다음 부분을 찾는다. 거의 맨 뒤에 있다.
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
주석을 해제한다.(빨간 색 #을 지운다. #은 아파치 설정 파일에서 주석이다. 윗 줄은 말 그대로 설명이므로 주석을 해제하면 안 된다. 아랫 줄은 가상 호스트 설정 파일을 가리키는 부분이다. 주석을 해제하면 가상 호스트를 작동시킨다는 뜻이다. 그래서 가상 호스트를 사용하려면 이 주석을 해제하는 것이다.)
주석을 해제하고 아래처럼 됐으면 끝이다.
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
* extra/httpd-vhosts.conf에서 설정해야 하는 것.
1.
아래 부분을 찾는다. 기본은 80으로 돼 있다.
NameVirtualHost *:80
아까 나는 82번 포트는 기본으로 사용하고 83번 포트를 가상 호스트로 사용하기로 했었다.
따라서 이 부분을 83으로 고친다.
NameVirtualHost *:83
2.
이제 가상 호스트 실제 설정을 해 주는 부분이다.
메모장으로 맨 아래부분으로 내려가서 새로 작성해 줘야 한다.
<VirtualHost 127.0.0.1:83>
ServerName 127.0.0.1:83
ServerAdmin webmaster@localhost
DocumentRoot “C:/APM_Setup6/htdocs/word”
</VirtualHost>
위와 같은 형식으로 작성한다.
주황색으로 칠한 부분 : 가상 호스트의 IP주소, 혹은 http주소다. www.address.com 형식으로 적어 주거나, IP주소로 적어 준다.
파랑색으로 칠한 부분 : 웹마스터 메일 주소인데, 난 뭔지 잘 모른다. 알아서 잘 적으면 된다. 나는 로컬에서 사용할 용도로 가상호스트를 설정한 것이므로 별 걍 저대로 놔뒀다.
초록색으로 칠한 부분 : 가상 호스트의 주소가 실제로 가리키게 할 디렉토리(절대 주소)를 적어 준다. ip주소나 http주소를 적으면 바로 이 디렉토리에 있는 index 파일을 찾아서 웹브라우저에 보여 주게 된다.
3.
가상 호스트를 추가하려면 저 부분을 여러 개 적어 주면 된다.
테스트를 위해 작성해 봤다.
<VirtualHost 127.0.0.2:83>
ServerName 127.0.0.2:83
ServerAdmin webmaster@localhost
DocumentRoot “C:/APM_Setup6/htdocs”
</VirtualHost>
주소를 127.0.0.2로 하고 디렉토리를 다르게 적어 줬다.
이렇게 하면 설정 끝이다.
그런데도, 동작하지 않을때,
영어로 돼 있지만 여기가 잘 설명돼 있다 : Apache: [warn] _default_ VirtualHost overlap on port 80, the first has precedence Error and Solution
요지는, 가상 호스트를 매길 때 가상호스트 설정을 적어 준 부분에 NameVirtualHost 라고 적어 줘야 한다는 건데, 이 때 제대로 적어 줘야 한다는 거다. 예를 보자.(출처는 위 링크)
# My Virtual Hosts Config File for Two Domains NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@theos.in DocumentRoot "/usr/local/docs/theos.in" ServerName www.theos.in ServerAlias theos.in ErrorLog "/var/log/theos.in-error_log" CustomLog "/var/log/theos.in-access_log" common </VirtualHost> <DIV style="MARGIN: 1em 0px"><SCRIPT type=text/javascript><!-- google_ad_client = "ca-pub-4085781408395472"; /* 키워드 링크 나열 */ google_ad_slot = "3110428491"; google_ad_width = 728; google_ad_height = 15; //--> </SCRIPT><SCRIPT type=text/javascript src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </SCRIPT><SCRIPT src="http://pagead2.googlesyndication.com/pagead/js/r20110921/r20110914/show_ads_impl.js"></SCRIPT><SCRIPT>google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);</SCRIPT><INS style="BORDER-BOTTOM: medium none; POSITION: relative; BORDER-LEFT: medium none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 728px; PADDING-RIGHT: 0px; DISPLAY: inline-table; HEIGHT: 15px; VISIBILITY: visible; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px"><INS style="BORDER-BOTTOM: medium none; POSITION: relative; BORDER-LEFT: medium none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 728px; PADDING-RIGHT: 0px; DISPLAY: block; HEIGHT: 15px; VISIBILITY: visible; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px" id=google_ads_frame3_anchor><IFRAME style="POSITION: absolute; TOP: 0px; LEFT: 0px" id=google_ads_frame3 vspace=0 height=15 marginHeight=0 src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-4085781408395472&output=html&h=15&slotname=3110428491&w=728&lmt=1317475106&flash=10.0.42.34&url=http%3A%2F%2Fmytory.co.kr%2Farchives%2F825&dt=1317475106093&shv=r20110921&jsv=r20110914&saldr=1&prev_slotnames=1732325096%2C6433767654&correlator=1317475105010&frm=4&adk=1116408870&ga_vid=465412242.1317444933&ga_sid=1317474711&ga_hid=982700803&ga_fc=1&u_tz=540&u_his=3&u_java=1&u_h=1050&u_w=1400&u_ah=1010&u_aw=1400&u_cd=32&u_nplug=0&u_nmime=0&dff=%EB%A7%91%EC%9D%80%20%EA%B3%A0%EB%94%95&dfs=14&adx=127&ady=1265&biw=995&bih=746&oid=2&ref=http%3A%2F%2Fwww.google.co.kr%2Furl%3Fsa%3Dt%26source%3Dweb%26cd%3D4%26ved%3D0CEgQFjAD%26url%3Dhttp%253A%252F%252Fmytory.co.kr%252Farchives%252F825%26rct%3Dj%26q%3D%25EC%259A%25B0%25EB%25B6%2584%25ED%2588%25AC%2520%25ED%258F%25AC%25ED%258A%25B8%2520%25EA%25B0%259C%25EB%2585%2590%26ei%3DMJ2GTqqbPKukiAes5ty5Dw%26usg%3DAFQjCNFbTBn3agZ6z3CCuw5PtgOhV3-CWw%26cad%3Drjt&prodhost=googleads.g.doubleclick.net&fu=0&ifi=3&dtd=16&xpc=id2vpT1IJZ&p=http%3A//mytory.co.kr" frameBorder=0 width=728 allowTransparency name=google_ads_frame3 marginWidth=0 scrolling=no hspace=0></IFRAME></INS></INS></DIV> <VirtualHost *:80> ServerAdmin webmaster@nixcraft.com DocumentRoot "/usr/local/docs/nixcraft.com" ServerName www.nixcraft.com ServerAlias nixcraft.com ErrorLog "/var/log/nixcraft.com-error_log" CustomLog "/var/log/nixcraft.com-access_log" common </VirtualHost> |
만약 IP로 구분을 했다면 *가 아니라 IP를 적어 줘야 한다고 한다.
NameVirtualHost 192.168.0.99:80 하는 식으로 말이다.
응용!
자, 그런데 나의 경우에는 저렇게 해도 작동이 안 됐다. 왜였을까?
virtualHost 정의 파일이 여러 개 있었던 게 원인이다. 나 같은 경우는 우분투를 사용한다. 우분투는 /etc/apache2/sites-enabled 폴더에 있는 심볼릭 링크(링크를 지우면 원본까지 지워지는 무서운 링크!)가 바로 가상 호스트를 정의하는 파일인데, 아래 그림을 보라.
default 외에도 dekiwiki 라는 놈이 보인다. 이놈도 바로 가상호스트를 정의하고 있었던 것이다! 이놈은 dekiwiki를 설치하면 자동으로 생성되는 놈이기 때문에 눈치채지 못했던 것이다. OTL;;
자, 이 파일을 까 보면 이 가상호스트는 아래처럼 시작한다.
?1 <VirtualHost *>
즉, 그러므로 다른 가상 호스트들도 시작 부분을
<VirtualHost *:80> 이 아니라 <VirtualHost *>로 설정을 해 주고, 가상호스트 정의 파일 맨 앞에다
?12 NameVirtualHost *
<VirtualHost *>
라고 적어 줘야 하는 것이다.
내가 권장하는 것은 가상 호스트 서정 파일 말고 httpd.conf 에 적어 주는 것이다. 가상 호스트 설정파일을 아파치가 읽기 전에 저 NameVirtualHost * 를 읽어야 하기 때문이다.
이렇게 모든 걸 끝내면 모든 가상호스트가 제대로 돌아가기 시작했다.
만약 고쳤는데도 [warn] NameVirtualHost *:80 has no VirtualHosts 따위 에러가 나오면 어딘가에 NameVirtualHost를 적어 둔 것이다. 찾아 내서 지워 주자.
'우분투' 카테고리의 다른 글
vi vim 으로 source code과 navigation을 해 보자. close tag까지 - grep (0) | 2011.10.18 |
---|---|
[How To] Solution for sudo: must be setuid root problem (0) | 2011.10.02 |
우분투 Default shell 바꾸기 bash (0) | 2011.10.01 |
우분투에서 NPM -> nodejs -> socket.io 순으로 설치하기. (웹채팅) (0) | 2011.09.26 |
서버 호스팅 (0) | 2011.09.05 |
글
우분투 Default shell 바꾸기 bash
아무리도 bash를 Default로 쓰고 싶은데..
이런 방법이 있었구만!!!
'우분투' 카테고리의 다른 글
[How To] Solution for sudo: must be setuid root problem (0) | 2011.10.02 |
---|---|
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 (2) | 2011.10.01 |
우분투에서 NPM -> nodejs -> socket.io 순으로 설치하기. (웹채팅) (0) | 2011.09.26 |
서버 호스팅 (0) | 2011.09.05 |
Process manager (0) | 2011.07.26 |
글
우분투에서 NPM -> nodejs -> socket.io 순으로 설치하기. (웹채팅)
앞에 정리해 놓은 내용은 여러가지 node.js 버전을 사용할 때는 좋지만, 내가 원하는 version이 있을 떄는
별로 좋지 않은 방법같다. 여러가지 문제가 있어서, 뒷쪽 install 방법을 권장한다.
깔아보면 알겠지만, npm은 nodejs가 깔려 있어야 깔린다 쩝.
어쨌거나, NPM은 Nodejs의 Package Manager니까, NPM을 이용해서 여러가지 Package를 install할 수 있다.
그런데, 그 전에 NVM 즉 Nodejs Version Manager를 이용하면 더 적당한 Version의 nodejs를 깔 수 있으니
참고하자.
그 방법으로는,
nvm으로 Node.js 설치
# git clone git://github.com/creationix/nvm.git ~/.nvm # . ~/.nvm/nvm.sh # nvm sync # nvm install stable # nvm use stable
이 되겠다. 이렇게 하면 가장 stable한 version의 node.js를 깔아주고,
그런 다음에 package들을 깔아줘야 겠다. (socket.io를 쓰기 위해서)
npm 자체는 다음과 같이 설치하는 데 그냥 sudo로 해서는 안되고 root를 이용해서 해야 된다.
$ sudo -s (root) $ curl http://npmjs.org/install.sh | sh
요렇게 설치한 후에
# npm install socket.io # npm install express # npm install stylus # npm install nib # npm install jade # git clone git://github.com/LearnBoost/socket.io.git # cd socket.io/examples/chat # node app.js
그렇다고 끝난거냐? 그건 또 아니다. 뭐가 없다면서 난리가 난다. NODE_PATH가 어쩌구 없단다.
이건 어떻게 해결하느냐. 분명히 nvm을 이용해서 깐데가 있을건데 그중 node_modules directory가
있는 곳을 찾아서 꼭 아래와 같이 추가해 줘야 module을 제대로 load 가능하다.
export NODE_PATH=/home/hieonn/node_modules:$NODE_PATH
그렇지 않으면 이런 에러가 뜬다.
무슨 Use node_modules folders, or the NODE_PATH environment variable instead. 뭘 어쩌라고!!!
난생 처음 쓰게 되는 nodejs의 에러를 어떻게 받아들여야 할지 난감하다..
마지막으로 nodejs를 애플리케이션으로 서비스에 등록하기 방법이 있다.
# npm install forever -g # forever start app.js
아 그것참 쉽지 않군.
그리고, 이게 제대로 깔렸는지 확인하려면 그냥 node와 npm을 쳐보면 제대로 깔렸는지 알 수 있다.
그리고, 확실하게 node가 동작하는지 보려면
/* helloworld.js */ var http = require('http'); http.createServer(function(req, res) { res.writeHead (200, { 'Content-Type' : 'text/plain' } ); res.end('Hello World .. !\n'); }).listen(8887, '180.111.333.22'); console.log('Server running at http://180.111.333.22:8887');
helloworld 파일을 만들고, 실행한 후,
node hellworld.js
브라우저로 접속해 보면
요렇게 응답해야 정상이다.
http://firejune.com/1683?stag=%25EC%259E%25A0%25EC%258B%25A4%253Fstag%253D%25EA%25B0%2580%25EA%25B2%25A9%25EC%25B1%2585%25EC%25A0%2595&
http://rintiantta.blog.me/40138506630
nvm이 없을 때 사람들이 권하는 방법은 아래와 같은데 참고할 만 하다.
nodejs 의 git로 부터의 설치
$ git clone git://github.com/joyent/node.git node.git $ cd node.git $ git tag $ git checkout v0.4.12 #0.4.12가 express를 쓰는 최신 stable 버전이다. $ export JOBS=2 $ ./configure --prefix=/opt/node # 설치 위치는 각자 취향에 맞게.. $ make $ sudo make install $ sudo ln -s /opt/node/bin/node /usr/bin/node # 이 부분도 각자 알아서..
npm 자체는 다음과 같이 설치하는 데 그냥 sudo로 해서는 안되고 root를 이용해서 해야 된다.
$ sudo -s (root) $ curl http://npmjs.org/install.sh | sh
아래를 이용해서 Package를 깔아야 한다.
# npm install socket.io # npm install express # npm install stylus # npm install nib # npm install jade # git clone git://github.com/LearnBoost/socket.io.git # cd socket.io/examples/chat # node app.js
export NODE_PATH=/home/hieonn/node_modules:$NODE_PATH
이걸 해주던가, 짱나니까,
/etc/environment 를 수정해 주면 전체 사용자에 먹히는 환경변수가 된다.
NODE_PATH="/home/hieonn/node_modules"
'우분투' 카테고리의 다른 글
포트번호로 아파치 가상 호스트 설정하기 Virtual hosting과 동작하지 않을 때 (2) | 2011.10.01 |
---|---|
우분투 Default shell 바꾸기 bash (0) | 2011.10.01 |
서버 호스팅 (0) | 2011.09.05 |
Process manager (0) | 2011.07.26 |
mysqldump DB 백업 (0) | 2011.07.26 |
글
서버 호스팅 서비스의 종류는?
1. 일정 금액을 납부하고 서버를 임대받아 사용기간 동안 무상 A/S를 받는 임대형
2. 매달 일정액을 저렴하게 이용한 후 할부 구매하는 방식으로
24개월후는 소유권을 이전받는 소유권 이전형 임대형 서버 호스팅
3. 저렴한 가격으로 서버를 구입하여 회선과 공간 서비스만 제공받음으로
추가 비용은 부담이 되지만 장기적으로는 비용절감의 효과가 있는 구매형 서버 호스팅이 있다
요즘 서버호스팅 업체가 많이 생겨 서버임대료는 월110,000원~120,000원선으로 많이 저렴해졌다
서버 호스팅 업체는 사업 준비단계에 선정하여야 함으로
앞으로 발생할 방문고객 수 등을 미리 잘 예측하여
자신에게 적합한 서비스와 업체를 선정하여야 하겠다.
'우분투' 카테고리의 다른 글
우분투 Default shell 바꾸기 bash (0) | 2011.10.01 |
---|---|
우분투에서 NPM -> nodejs -> socket.io 순으로 설치하기. (웹채팅) (0) | 2011.09.26 |
Process manager (0) | 2011.07.26 |
mysqldump DB 백업 (0) | 2011.07.26 |
리눅스 게시판 - 서버 관련 내용들이 잔뜩 (0) | 2011.07.15 |
글
Process manager
또는 ps aux
'우분투' 카테고리의 다른 글
우분투에서 NPM -> nodejs -> socket.io 순으로 설치하기. (웹채팅) (0) | 2011.09.26 |
---|---|
서버 호스팅 (0) | 2011.09.05 |
mysqldump DB 백업 (0) | 2011.07.26 |
리눅스 게시판 - 서버 관련 내용들이 잔뜩 (0) | 2011.07.15 |
UTF-8 EUC-KR (0) | 2011.06.25 |
글
mysqldump DB 백업
'우분투' 카테고리의 다른 글
서버 호스팅 (0) | 2011.09.05 |
---|---|
Process manager (0) | 2011.07.26 |
리눅스 게시판 - 서버 관련 내용들이 잔뜩 (0) | 2011.07.15 |
UTF-8 EUC-KR (0) | 2011.06.25 |
VIM binary mode (0) | 2011.06.25 |
글
리눅스 게시판 - 서버 관련 내용들이 잔뜩
'우분투' 카테고리의 다른 글
Process manager (0) | 2011.07.26 |
---|---|
mysqldump DB 백업 (0) | 2011.07.26 |
UTF-8 EUC-KR (0) | 2011.06.25 |
VIM binary mode (0) | 2011.06.25 |
제로보드4 세팅 관련 (PHP, UTF8) (2) | 2011.06.22 |
글
UTF-8 EUC-KR
두개를 binary로 보면 다르게 보이는 걸 확인할 수 있다.
:%!xxd
'우분투' 카테고리의 다른 글
mysqldump DB 백업 (0) | 2011.07.26 |
---|---|
리눅스 게시판 - 서버 관련 내용들이 잔뜩 (0) | 2011.07.15 |
VIM binary mode (0) | 2011.06.25 |
제로보드4 세팅 관련 (PHP, UTF8) (2) | 2011.06.22 |
VIM UTF8, EUC-KR 자동 설정 (0) | 2011.06.22 |
글
VIM binary mode
바이너리 파일의 hex 모드로 편집하고 싶으면 :%!xxd 명령어와 :%!xxd -r (hex모드에서 복귀) 를 활용하면 된다.그런데 파일을 binary 모드로 열지 않으면 항상 끝에 0x0a (Line Feed) 가 붙어버려서 정확한 편집이 안된다.
'우분투' 카테고리의 다른 글
리눅스 게시판 - 서버 관련 내용들이 잔뜩 (0) | 2011.07.15 |
---|---|
UTF-8 EUC-KR (0) | 2011.06.25 |
제로보드4 세팅 관련 (PHP, UTF8) (2) | 2011.06.22 |
VIM UTF8, EUC-KR 자동 설정 (0) | 2011.06.22 |
VI navigation "go forward" "go back" (0) | 2011.06.01 |
글
제로보드4 세팅 관련 (PHP, UTF8)
우선은 이건 문제가 있는지 없는지 모르겠지만,
로그인이 안되는 문제점을 해겨라려다가, Zeroboard도 PHP버전에 따라 다르다는 걸 알게되었다.
맞는걸 까는 것이 좋을 듯 하다.
install.php 를 실행하자.
UTF-8 encoding은
첨부하는 프로그램으로 폴더를 선택해서 한꺼번에 Encoding을 하자.
안그러면 하루종일 UTF8로 다시 저장해야 되는 꼴을 겪는다.
아래와 같은 방법으로 해결했다는 사람이 있는데,
나는 절대로 안되던데. 쩝
스킨은
내가 좋아하는 스킨들이다.
http://www.xpressengine.com/index.php?mid=zb4_skin_user&search_target=nick_name&search_keyword=JiYoo&document_srl=1313641
여기가서 보면 있고, 글쓴 사람을 누르면 그사람이 쓴 글을 찾을 수 있는데, 여러개 같은 시리즈가 있다.
제로보드 게시판은 찾기 너무 어려우니까,
http://www.xpressengine.com/zb4_main
그리고 지금 사이트에 사용하는 스킨은
(UTF-8 Encoding되어 있음)
로그인 삭제, 글쓰기 삭제등이고, 꼭 관리자 게시판에서 잘 설정을 하자구요.
마지막으로 로그인 튕기는 문제는,
요 앞에꺼를 lib.php 맨 앞에 넣고,
ini_set('register_globals','1');
ini_set('session.bug_compat_42','1');
ini_set('session.bug_compat_warn','0');
ini_set('session.auto_start','1');
그래도 안되면 요 아랫줄을 연이어서 넣고서 함 해본다.
if(count($HTTP_GET_VARS)){extract($HTTP_GET_VARS);}
if(count($HTTP_POST_VARS)){extract($HTTP_POST_VARS);}
$PHP_SELF=$HTTP_SERVER_VARS[PHP_SELF];
$HTTP_REFERER=$HTTP_SERVER_VARS[HTTP_REFERER];
$REMOTE_ADDR=$HTTP_SERVER_VARS[REMOTE_ADDR]
http://hosting.ncity.net/board/board.php?id=faq&articleNo=16&page=1&searchText=&clickCategory=
그리고, 마지막으로
DB에 관리자 password를 바꾸는 script는 첨부하는 것과 같은데,
어차피 DB에 직접 Access해서 바꾸는 것과 같다.
하지만 이런 script는 없애자
공지 이메일이 깨져 나갈 때는?
http://www.xpressengine.com/zb4_qna/16606107
utf-8 버전을 사용적이 없어서리..
참고만 해 보세요..
lib.php 파일 소스를 찾아서..
if(!$type) $headers .= "Content-Type: text/plain; ";
else $headers .= "Content-Type: text/html; ";
$headers .= "charset=euc-kr\n";
아래처럼 변경을 해 보세요..
if(!$type) $headers .= "Content-Type: text/plain; ";
else $headers .= "Content-Type: text/html; ";
$headers .= "charset=utf-8\n"
- 그래도 제목과 보낸 사람은 깨져 나간다 쩝
'우분투' 카테고리의 다른 글
UTF-8 EUC-KR (0) | 2011.06.25 |
---|---|
VIM binary mode (0) | 2011.06.25 |
VIM UTF8, EUC-KR 자동 설정 (0) | 2011.06.22 |
VI navigation "go forward" "go back" (0) | 2011.06.01 |
공짜 무료 C/C++ 컴파일러들 무료프로그램 (0) | 2011.05.15 |
글
VIM UTF8, EUC-KR 자동 설정
http://nan1004au.tistory.com/165
set fileencodings=utf-8,euc-kr
더 중요한건,
set encoding=utf-8
이게 추가되어야 한다.
'우분투' 카테고리의 다른 글
VIM binary mode (0) | 2011.06.25 |
---|---|
제로보드4 세팅 관련 (PHP, UTF8) (2) | 2011.06.22 |
VI navigation "go forward" "go back" (0) | 2011.06.01 |
공짜 무료 C/C++ 컴파일러들 무료프로그램 (0) | 2011.05.15 |
APM 한방 셋업 (0) | 2011.05.12 |
글
VI navigation "go forward" "go back"
'우분투' 카테고리의 다른 글
제로보드4 세팅 관련 (PHP, UTF8) (2) | 2011.06.22 |
---|---|
VIM UTF8, EUC-KR 자동 설정 (0) | 2011.06.22 |
공짜 무료 C/C++ 컴파일러들 무료프로그램 (0) | 2011.05.15 |
APM 한방 셋업 (0) | 2011.05.12 |
링크 (심볼릭, 하드) (0) | 2011.05.10 |
글
공짜 무료 C/C++ 컴파일러들 무료프로그램
'우분투' 카테고리의 다른 글
VIM UTF8, EUC-KR 자동 설정 (0) | 2011.06.22 |
---|---|
VI navigation "go forward" "go back" (0) | 2011.06.01 |
APM 한방 셋업 (0) | 2011.05.12 |
링크 (심볼릭, 하드) (0) | 2011.05.10 |
Config file을 읽는 순서 (0) | 2011.05.10 |
글
'우분투' 카테고리의 다른 글
VI navigation "go forward" "go back" (0) | 2011.06.01 |
---|---|
공짜 무료 C/C++ 컴파일러들 무료프로그램 (0) | 2011.05.15 |
링크 (심볼릭, 하드) (0) | 2011.05.10 |
Config file을 읽는 순서 (0) | 2011.05.10 |
왜 실행파일에 ./ 를 붙여야 하는가? (0) | 2011.05.10 |
글
링크 (심볼릭, 하드)
ln 명령어를 이용
'우분투' 카테고리의 다른 글
공짜 무료 C/C++ 컴파일러들 무료프로그램 (0) | 2011.05.15 |
---|---|
APM 한방 셋업 (0) | 2011.05.12 |
Config file을 읽는 순서 (0) | 2011.05.10 |
왜 실행파일에 ./ 를 붙여야 하는가? (0) | 2011.05.10 |
터미널 창으로 메세지 보내기 (0) | 2011.05.10 |
글
Config file을 읽는 순서
/etc/profile → ~/.bash_profile → ~/.bashrc → /etc/bashrc
'우분투' 카테고리의 다른 글
APM 한방 셋업 (0) | 2011.05.12 |
---|---|
링크 (심볼릭, 하드) (0) | 2011.05.10 |
왜 실행파일에 ./ 를 붙여야 하는가? (0) | 2011.05.10 |
터미널 창으로 메세지 보내기 (0) | 2011.05.10 |
리눅스 기본 명령들 (0) | 2011.05.10 |
글
왜 실행파일에 ./ 를 붙여야 하는가?
파일을 만들기 위해서 touch는 왜 하는가? → 파일이 없는 경우에는 빈 파일을 만들어 준다.
path에 들어 있지 않으면 실행이 되지 않는다.
chmod 655로 실행 파일로 만들어야 함
path 추가는 /etc/profile 에 해 줘야함.
pathmunge를 이용해서.
'우분투' 카테고리의 다른 글
링크 (심볼릭, 하드) (0) | 2011.05.10 |
---|---|
Config file을 읽는 순서 (0) | 2011.05.10 |
터미널 창으로 메세지 보내기 (0) | 2011.05.10 |
리눅스 기본 명령들 (0) | 2011.05.10 |
Putty 기본주소 setting (0) | 2011.04.12 |
글
터미널 창으로 메세지 보내기
Ctrl-D 가 보내는 명령 중요
wall 명령은 내 시스템에 접속한 전체 사용자에게 같은 메시지를 보낸다.
아래와 같은 방법 으로 사용하면 된다.
- 보낼 메시지가 한줄일때
[root@localhost /]# wall Hi nice to meet you
[root@localhost /]#
Broadcast message from root (pts/0) (Fri Jan 21 15:38:09 2005):
Hi nice to meet you
[root@localhost /]#
- 두줄 이상의 메시지를 보낼때
[root@localhost /]# wall
Hi !! ^^
Nice to meet you..
Have nice day.. ^^ <- 메시지를 보낼때 ctrl+d 입력
[root@localhost /]#
Broadcast message from root (pts/0) (Fri Jan 21 15:39:12 2005):
Hi !! ^^
Nice to meet you..
Have nice day.. ^^
[root@localhost /]#
위와 같은 방법을 사용하면 현재 시스템에 접속한 모든 사용자가 메시지를 받아보게 된다..
특정 사용자에게만 메시지를 보낼 경우는 아래와 같이 간단히 echo 와 >(redirection)를 이용해서 보낼수 있다.
우선 who 명령으로 시스템에 접속한 사용자를 확인 한다.
[root@localhost /]# who
root pts/0 Jan 21 15:05 (help.freeb.net)
root pts/1 Jan 21 15:21 (help.freeb.net)
test pts/2 Jan 21 15:22 (help.freeb.net)
jook pts/3 Jan 21 15:22 (help.freeb.net)
pts/3 에 접속해 있는 jook라는 사용자에게 메시지를 보내려면, 아래와 같이 입력 하면 된다.
[root@localhost /]# echo "Hi.. nice to meet you.. ^^" > /dev/pts/3
[root@localhost /]#
그러면.. pts/3 에 접속해 있는 jook라는 사용자만 메시지를 받아보게 된다.
그런데 마지막꺼는 안되더라..?
'우분투' 카테고리의 다른 글
링크 (심볼릭, 하드) (0) | 2011.05.10 |
---|---|
Config file을 읽는 순서 (0) | 2011.05.10 |
왜 실행파일에 ./ 를 붙여야 하는가? (0) | 2011.05.10 |
리눅스 기본 명령들 (0) | 2011.05.10 |
Putty 기본주소 setting (0) | 2011.04.12 |
글
리눅스 기본 명령들
./파일이름 : 실행
파일 가져오기 ftp 이용 (bin을 설정하는 건 text file이외에는 모두 bin이다)
windows쪽에서 ftp로 접속해서 가져올 수도 있다.
험험험.
이렇게 가져오는 것임 ftp 로그인 후 get으로 복사해 옴.
ps 관련 -ef로 봐야 제대로 보인다.
파일시스템
'우분투' 카테고리의 다른 글
링크 (심볼릭, 하드) (0) | 2011.05.10 |
---|---|
Config file을 읽는 순서 (0) | 2011.05.10 |
왜 실행파일에 ./ 를 붙여야 하는가? (0) | 2011.05.10 |
터미널 창으로 메세지 보내기 (0) | 2011.05.10 |
Putty 기본주소 setting (0) | 2011.04.12 |
글
Putty 기본주소 setting
Putty가 기본 주소를 지정하기 위해서 환경설정에서 한참 찾게 되는데, 실제로는 기본 주소 설정은 없고,
다음과 같이 short cut에 아예 지정하는 해야 한다.
그리고 첨부하는 폰트를 쓰면 깔쌈해 지며,
(맑은 고딕과 비트 스트림의 혼합)
전체 설정저장할 때, 기본 설정으로 이름을 일부러 쓰고서 저장이 되어야 그 다음부터 기본 설정으로
적용되서 사용가능하며,
마지막으로
한글이 깨져 나올 때는 UTF-8로 설정해서 봐야 한다.
'우분투' 카테고리의 다른 글
링크 (심볼릭, 하드) (0) | 2011.05.10 |
---|---|
Config file을 읽는 순서 (0) | 2011.05.10 |
왜 실행파일에 ./ 를 붙여야 하는가? (0) | 2011.05.10 |
터미널 창으로 메세지 보내기 (0) | 2011.05.10 |
리눅스 기본 명령들 (0) | 2011.05.10 |