728x90

ln -s 기존파일 대상파일

이게 ln 옵션

뒤의 인수는 디렉토리도 됩니다.

 

 

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 언어 설정  (0) 2015.07.24
httpd: apr_sockaddr_info_get() failed  (0) 2015.04.27
linux address already in use  (0) 2015.04.27
자바 및 톰켓 경로 export 하기  (0) 2013.09.30
리눅스 심볼릭 링크 걸기  (0) 2013.09.30
728x90
조회 : 5,137   추천 : 0   비추천 : 0  

/usr/local/apache/bin/apachectl start 했을때 

아래와 같은 오류 발생시

httpd not running, trying to start
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

오류의 원인 정상적으로 /usr/local/apache/bin/apachectl stop 하지 않았을경우 발생된다.


]# netstat -anp | grep 80 
tcp        0      0 :::80                       :::*                        LISTEN      2404/httpd

]# kill -9 2404


]# netstat -anp | grep 80 
tcp        0      0 :::80                       :::*                        LISTEN      2405/httpd

]# kill -9 2405


이런식으로 반복해서
netstat -anp | grep 80
 ->
 tcp        0      0 :::80                       :::*                        LISTEN      2405/httpd
이 나타나지 않을때까지 계속  kill -9 프로세서번호 를 사용해서 죽인다.

더이상 나타나지 않으면
]# /usr/local/apache/bin/apachectl start로 실행하면 정상적으로 나온다.

 

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

httpd: apr_sockaddr_info_get() failed  (0) 2015.04.27
리눅스 링크 거는 법  (0) 2015.04.27
자바 및 톰켓 경로 export 하기  (0) 2013.09.30
리눅스 심볼릭 링크 걸기  (0) 2013.09.30
톰켓설치  (0) 2013.09.30
728x90

자바 및 톰켓 경로 export 하기

 

export JAVA_HOME=/usr/local/jdk1.7.0_07
export CATALINA_HOME=/was/tomcat/tomcat7
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/bin/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 링크 거는 법  (0) 2015.04.27
linux address already in use  (0) 2015.04.27
리눅스 심볼릭 링크 걸기  (0) 2013.09.30
톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
728x90

아래와 같이 리눅스에서 링크를 걸어 보세요.
ln -s /aa/bb/cc/dd /ee/ff/gg/dd

-s 옵션은 심볼릭 링크를 건다는 것이구요.. 디렉토리를 링크할 때는 심볼릭 링크만 가능합니다.
상기와 같이 링크가 걸렸다면..
cd /ee/ff/gg/dd 로 했을때 경로가 /aa/bb/cc/dd/ 로 바뀝니다.
링크를 설치할때 구태여 cd /ee/ff/gg 로 가서 링크할 필요는 없어요.
만약, pwd 가 /ee/ff/gg/ 인 상태라면.. 
ln -s /aa/bb/cc/dd dd 라고 하거나
ln -s /aa/bb/cc/dd /ee/ff/gg/dd 모두 동일하게 작동합니다. 

만약 /aa/bb/cc/dd/a1/b1/c1 경로를 2개 서버 이상이 NFS 로 공유하고 있다면,
/aa/bb/cc/dd 까지만 NFS 로 잡아주면 됩니다. 

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

linux address already in use  (0) 2015.04.27
자바 및 톰켓 경로 export 하기  (0) 2013.09.30
톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
728x90
JDK부터 설치해야한다. root 권한으로 진행~
http://java.sun.com/javase/downloads/?intcmp=1281

Java SE Development Kit (JDK) 6 Update 10

다운받아서 실행하면 지가 알아서 압축다풀고 설치다됐다고한다. -_-;
실행한 위치에 압축이 풀리므로 옮긴다!
(RPM 버전을 받으면 /usr/java에 jdk가 위치한다.)

mv jdk1.6.0_10 /usr/local/

그리고 나중에 버전업이 되었을때 자바 관련 패스를 전부 바꿔야하는 큰아픔을 막기 위해 심볼릭링크를 해준다.
ln -s /usr/local/jdk1.6.0_10 java
SDK와 같은 Kit은 이렇게 링크를 걸어주는게 좋다.
(RPM 버전을 받으면 /usr/java/default라는 링크가 이미 걸려있다.)

패스를 설정해보자.
vi /etc/profile
export JAVA_HOME=/usr/local/java
(RPM 버전이면 /usr/java/default)
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/bin/lib/ext:$JAVA_HOME/lib/tools.jar
위 3줄을 적당한 위치에 넣고 저장한 후~
수정사항을 바로적용하기 위해
source /etc/profile

패스가 제대로 걸렸는지 테스트 해본다! 아무대서나
java
뭔가 쭉쭉 나온다면 OK! env 같은 명령어로 확인해도 된다.

이제 Tomcat을 설치하자!
http://tomcat.apache.org/download-60.cgi
위 링크는 6.x 버전 링크다. wget으로 해당 링크의 파일을 받는다~

압축 풀고 위치를 옮긴다. 관리 편하려고...
tar -xzvf apache-tomcat-6.0.18.tar.gz
mv apache-tomcat-6.0.18 /usr/local/web/
cd /usr/local/web/
apache와 같은 디렉토리에 놓이게 되었다.
설치된 디렉토리 이름을 그냥 tomcat으로 바꾸자.
mv apache-tomcat-6.0.18/ ./tomcat

마지막으로 패스만 설정해주면 끝난다.
vi /etc/profile
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/web/tomcat
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/bin/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA
_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

위와 마찬가지로 바로적용하기 위해
source /etc/profile

방화벽이 문제가 될테니 다음과 같이~ iptables 파일에 추가한다.
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

방화벽을 제시작하고 테스트!
/etc/rc.d/init.d/iptables restart
/usr/local/web/tomcat/bin/startup.sh

http://ip:8080/
접속해서 고양이 나오면 성공!
혹시라도
Cannot find /usr/local/server/tomcat/bin/setclasspath.sh
This file is needed to run this program
이런 메세지가 나온다면 CATALINA_HOME Path를 확인해봐야한다.

만약 톰캣도 리부팅후 자동 실행되게 하고 싶다면 다음과 같이 스크립트를 작성한다.
(소스는 인터넷에서 퍼 온것~ 몇몇 경로 부분만 현재 내 서버에 맞게 고쳤다.)
저장은 -> /etc/rc.d/init.d/tomcatd

#!/bin/sh
#chkconfig: 2345 89 89
#description: tomcatd
#processname: /usr/local/tomcat/bin/catalina.sh
#config : /usr/local/tomcat/conf/server.xml
#config : /usr/local/tomcat/conf/web.xml
#pidfile : /var/run/tomcatd.pid
#
# author      : jongho, Ahn(...)
# email       : skylimit@syspam.co.kr, skylimit71@gmail.com
# date        : 2006. 07. 10
#

# Get Config
[ -f /usr/local/tomcat/conf/server.xml ] && [ -f /usr/local/tomcat/conf/web.xml ] || exit 0

source /etc/profile

# Source function library
. /etc/rc.d/init.d/functions

# caution :
#           variable=<value> space between variable and value is not allowed
RETVAL=0
prog=tomcatd

# Start function
start()
{
  echo -n "Starting $prog : "
  daemon $CATALINA_HOME/bin/catalina.sh start
  RETVAL=$?
  echo
  touch /var/lock/subsys/tomcatd
  return $RETVAL
}

# Stop fucntion
stop()
{
  echo -n "Stopping $prog : "
  daemon $CATALINA_HOME/bin/catalina.sh stop
  RETVAL=$?
  echo
  rm -f /var/lock/subsys/tomcatd
  return $RETVAL
}

# Restart function
restart()
{
  stop
  start
}

# See how we were called
case "$1" in
     start)
           start
           ;;
     stop)
           stop
           ;;
     restart)
           restart
           ;;
     *)
           echo $"Usage : $0 {start|stop|restart}"
esac

exit $RETVAL

그리고 나서 chmod 755 tomcatd로 권한주고 /sbin/chkconfig --add tomcatd 해주면 끝~
만약 다른 대몬과의 연동으로 실행 순서를 변경해야 한다면
아래와 같은 부분을 조정하면 된다.

#chkconfig: 2345 89 89

2345는 런레벨이며 첫번째 89는 시작우선권 두번째 89는 종료우선권이다.
끝~

 

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

자바 및 톰켓 경로 export 하기  (0) 2013.09.30
리눅스 심볼릭 링크 걸기  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
vi 명령 정리  (0) 2012.04.18
728x90

CentOS에 자바를 설치하기



http://www.oracle.com/technetwork/java/javase/downloads/index.html

여기에서 jdk를 다운받는다.

본인은 jdk6 update21 버전을 다운받았다.



1. 자바 설치

  /home 에 설치한다고 치자.


  별로 할게 없다.

  ./jdk-6u21-linux-i586.bin

  주르륵 알아서 설치된다.

  중간에 엔터 한번 쳐달라고 한다.


  jdk1.6.0_21 폴더가 만들어진다.

  편의상 java폴더로 바꿔보겠다.

  mv jdk1.6.0_21 /home/java



2. 환경파일 설정

  패스를 걸어줘야 한다.

  vi /etc/profile

  맨 밑에 추가

  JAVA_HOME=/home/java

  export JAVA_HOME

  PATH=$JAVA_HOME/bin:$PATH

  CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

 

  source /etc/profile 적용

 

3. 설치 확인

  java -version

  우린 1.6이상을 설치했는데 1.6이 아니면 CentOS 설치시 java가 같이 설치된거다.

  어떻게 걸려있는지 확인해보자

  which java

  /usr/bin/java

  이놈이다.

  가서 확인해볼까

  cd /usr/bin/

  어떻게 되어있길래 이런가 볼까.

  ls -al java

  java -> /etc/alternatives/java

  이런.../etc/alternatives/ 여기있는 자바가 실행되고 있었다.

  변경해야지

  alias java='/home/java/bin/java'


4. 확인

  java -version

  javac -version

 

vi /etc/profile 실행
export JAVA_HOME=/usr/java/j2se1.4.3_08
PATH=$PATH:$JAVA_HOME/bin
export PATH
vi 저장후 종료 :wq
그담에
/etc/profile의 실행권한이 없으면 실행권한을 줍니다.
그리고 실행권한은 root만 주세요..아니어도 실행하는 데는 무관합니다.
-rwxr--r--    1 root     root         1414 11월 20  2003 profile
실행
. /etc/profile
하고 아무데서나 javac, java하면 실행됩니다.
728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 심볼릭 링크 걸기  (0) 2013.09.30
톰켓설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
vi 명령 정리  (0) 2012.04.18
linux ftp client 사용법  (0) 2012.04.10
728x90

1. Syntax

# find path-name expression

2. Operands

* path-name : 상대 path-name 또는 절대 path-name 모두 사용가능

* 주로 사용하는 expression

-mtime n : modify time 으로 검색

-perm [-]mode : file permission 으로 검색

-size n[c] : file size 로 검색

-user user-name : file owner 로 검색

-exec command : 명령어 수행

-ls : find 결과에 대한 ls -l 명령을 수행해 dispaly

-name filename filename과 일치하는 파일을 찾음(*,? 또는 and가 사용될 수 있으며 이들은 따옴표 안에 표시를 하거나 백슬래시를 앞에 주고 사용함)

-print 현재의 경로 이름을 표시

-perm 모드 파일 권한(permission)이 일치되는 것을 찾는다. 원하는 권한은 ls로 볼수 있는 형태와 같이 지정한다.

-type ? 형태가 같은 파일을 찾는다. 물음표(?) 부분에 디렉토리는 d, 파이프는 p, 심볼릭 링크는 l, 소켓은 s, 블록 파일은 b, 일반 파일은 f 등의 기호를 사용한다.

-links ? 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다.

-size ? 파일의 크기가 일치하는 것을 탐색. 파일 크기는 블록단위로 물음표 부분에 지정한다. 한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자를 붙이면 1킬로바이트 크기의 블록 숫자로 간주 된다.

-uesr 사용자 파일 사용자의 ID에 따라서 검색. 로그인 이름이나 번호 모두가 가능하다.

-atime ? 최근 며칠내에 액세스한 파일을 검색. 날짜수는 ?에 명시한다.

-exec 명령 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝은 \;을 사용하여 끝낸다. find가 검색해낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다.

-newer 파일 어떤 파일보다 최근에 갱신된 모든 파일을 검색한다.

3. Example

# find . -name "sc*" -print 또는 # find . -name "sc*"

/* 현재 directory 를 기준으로 sc로 시작하는 file 을 찾아 display */

# find ./ -mtime 30 -print -exec rm {} \;

/* 모든 directory 에서 30일 전에 수정된 file 을 display 하고 그 file 들을 삭제함 */

# find . -perm -4000 -user root -ls

/* root user 의 setuid 가 정의되어 있는 file 을 찾아 display */

# find . -size +1000000c -ls

/* file size 가 1MB 가 넘는 것을 찾아 display */

# find . -size +1000000c -print -exec rm {} \;

/* file size 가 1MB 가 넘는 것을 찾아 display 하고 그 file 들을 삭제함 */

4. 문자열찾기 방법 1 - 영어만 주로 가능
# grep -rw "찾는문자열" ./

문자열찾기 방법 2 - 대/소문자 구분 안하고 검색
# grep -i -l "찾는문자열" * -r 2> /dev/null

문자열찾기 방법 3 - 한글, 영어 모두 가능
# find . -exec grep -l "찾는문자열" {} \; 2>/dev/null

문자열찾기 방법 4 - 한글,영어, 대소문자 안가리고 검색
# find . -exec grep -i -l "찾을문자열" {} \; 2>/dev/null

문자열찾은 후 치환
# find . -exec perl -pi -e 's/찾을문자열/바꿀문자열/g' {} \; 2>/dev/null

파일명 찾기
# find ./ -name 파일명 -type f

파일명 찾기(대소문자 구별없음)
# find ./ -iname 파일명 -type f

디렉토리 찾기
# find ./ -name 파일명 -type d

디렉토리 찾기(대소문자 구별없음)
# find ./ -iname 파일명 -type d

특정 사용자 소유의 모든 파일을 찾을때는?
# find ./ -user "사용자 ID" -print

두세가지 문자열을 동시에 찾아야 할때는 egrep을 쓰면 아주 편합니다.
예를 들어
만약 그냥 grep으로 문자열1,2 를 찾으려면
ps -ef | grep 문자열1; ps -ef | grep 문자열2
와 같이 해야하는것을 egrep를 이용하면

ps -ef | grep '문자열1|문자열2'
와 같이 간단해집니다.

# egrep '(pattern1|pattern2|pattern3)' file.txt

4. 날짜와 날짜사이 생성파일 찾기

# touch -t 200110020000 a.txt
(2001년 10월 02일 00시 00분 생성날짜를 가진 파일 생성)
# touch -t 200810312359 b.txt
(2001년 10월 26일 23시 59분 생성날짜를 가진 파일 생성)

# find ./ -newer a.txt -a ! -newer b.txt -ls
(a.txt 와 b.txt 파일 사이의 생성날짜를 가진 파일 검색)

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
vi 명령 정리  (0) 2012.04.18
linux ftp client 사용법  (0) 2012.04.10
VI Editor 사용법  (0) 2012.03.23
728x90

 

Command mode(명령 모드) - vi의 기본모드이며 vi를 실행하면 뜨는 기본화면이다.

Edit mode(입력 모드) - a, i, o등을 누르면 이동하는 모드이며 내용 입력 또는 C코딩이 가능하다.(오른쪽 아래에 --Insert-- 가 뜬다.)

Last line mode(실행 모드) - 입력모드에서 저장종료, 강제종료 등의 명령어를 입력하는 모드이다.(:, /, ? 등의 명령으로 동작)

<vi 에디터 명령어>

1. vi 시작 명령어

명령어

명령어 동작 설명

vi [file name]

파일 열기, 작성

vi +18 [file name]

18행으로 파일 열기

vi +/"문자열" fn

"문자열"의 처음 발생 단어부터 열기

vi -r [file name]

손상된 파일 회복

view [file name]

읽기 전용으로 파일 열기

2. vi 커서 이동 명령어

명령어

명령어 동작 설명

h(←)

왼쪽으로 커서 이동

j(↓)

아래로 커서 이동

k(↑)

위로 커서 이동

l(→)

오른쪽으로 커서 이동

w

오른쪽 한 단어의 끝 부분으로 커서 이동

e

오른쪽 한 단어의 앞 부분으로 커서 이동

b

왼쪽 한 단어의 앞 부분으로 커서 이동

Enter

한 행 아래로 커서 이동

Back space

한 문자 왼쪽으로 커서 이동

Space bar

한 문자 오른쪽으로 커서 이동

^

행의 맨 왼쪽으로 커서 이동

$

행의 맨 오른쪽으로 커서 이동

H

화면의 맨 위로 이동

M

화면의 중간으로 이동

L

화면의 맨 아래로 이동

"숫자"G

"숫자"만큼 지정한 줄로 커서 이동

3. 문자, 행 삽입 명령어

명령어

명령어 동작 설명

a (종료 : esc)

커서 오른쪽에 문자 삽입

A (종료 : esc)

커서 오른쪽, 행의 끝에 문자 삽입

i (종료 : esc)

커서 왼쪽에 문자 삽입

I (종료 : esc)

커서 왼쪽, 행의 처음에 문자 삽입

o (종료 : esc)

커서 아래에 행 삽입

O (종료 : esc)

커서 위에 행 삽입

4. 텍스트 변경 명령어

명령어

명령어 동작 설명

cw (종료 : esc)

단어 변경

cc (종료 : esc)

행 변경

C (종료 : esc)

커서 오른쪽의 행 변경

s (종료 : esc)

커서가 위치한 문자열 대체

S (종료 : esc)

커서가 위치한 라인의 문자열 대체

r

커서 위치 문자를 다른 문자로 대체

r-Enter

행 분리

J

현재 행과 아래 행 결합

xp

커서 위치 문자와 오른쪽 문자 교환

~

문자형(, 소문자) 변경

u

이전 명령 취소

U

행 변경 사항 취소

:u

이전의 최종 행 취소

.

이전 최종 명령 반복

5. 택스트 삭제 명령어

명령어

명령어 동작 설명

x

커서가 있는 문자 삭제

5x

커서가 있는 위치부터 5개의 문자를 삭제

dw

현재 커서가 있는 한 단어 삭제

dd

커서가 있는 라인 삭제

5dd

커서가 있는 라인부터 5개의 라인 삭제

db

커서의 위치에서 거꾸로 한 단어 삭제

D

커서 오른쪽 행 삭제

:5,10d

5-10번째 행 삭제

6. 복사 및 이동 명령어

명령어

명령어 동작 설명

yy

yank 또는 복사

Y

yank 또는 복사

P

yank되거나 삭제된 행 현재 행 위에 삽입

p

yank되거나 삭제된 행 현재 행 아래에 삽입

:1,2 co 3

1-2행을 3행 다음으로 복사

:4,5 m 6

4-5행을 6행 위로 이동

7. 행 번호 설정 명령어

명령어

명령어 동작 설명

:set nu

행 번호 표시

:set nonu

행 번호 숨기기

8. 행 찾기 명령어

명령어

명령어 동작 설명

G

파일의 마지막 행으로 가기

21G

파일의 21번째 행으로 가기

ctrl + G

현재의 filename line수를 알려줌

9. 탐색 및 대체 명령어

명령어

명령어 동작 설명

/검색할 문자열/

오른쪽 아래 방향으로 문자열 검색

?검색할 문자열?

왼쪽 위 방향으로 문자열 검색

n

문자열의 다음으로 계속 검색

N

문자열의 이전으로 계속 검색

:g/search-string/s//replace-

각 발생 탐색 후 확인하고 대체

string/gc

:s/str/rep/

현재 행의 str rep로 대체

:1,.s/str/rep/

1부터 현재 행의 str rep로 대체 파일

:%s/str/rep/g

전체 str rep로 전부 대체

:.$/aaa/bbb/

커서의 위치로부터 파일의 끝까지 있는 모든 aaa bbb로 대체

:! [file name]

vi열린 상태에서 외부명령어 실행

10. 화면정리 명령어

명령어

명령어 동작 설명

ctrl + I

불필요한 화면 정리 후 다시 표시

11. 파일 명령어

명령어

명령어 동작 설명

:r [file name]

커서 다음에 파일 삽입

:34 r [file name]

파일을 34번째 행 다음에 삽입

:e [file name]

파일 열기

12. 보관 및 종료 명령어

명령어

명령어 동작 설명

:w

변경사항 저장

:w [file name]

버퍼를 파일로 보관

:wq

변경사항 보관 후 vi 종료

:ZZ

변경사항 보관 후 vi 종료

:q!

변경사항 보관하지 않고 종료

:q

수정한 파일을 저장하지 않고 vi 종료

:e!

수정한 것을 무시하고 다시 편집상태로

 

 

[출처] [Linux] vi 필수 명령어 모음|작성자 Specialist

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
linux ftp client 사용법  (0) 2012.04.10
VI Editor 사용법  (0) 2012.03.23

+ Recent posts