ln -s 기존파일 대상파일

이게 ln 옵션

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

 

 

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

리눅스 언어 설정  (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
조회 : 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로 실행하면 정상적으로 나온다.

 

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

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

자바 및 톰켓 경로 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

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

리눅스 링크 거는 법  (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

아래와 같이 리눅스에서 링크를 걸어 보세요.
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 로 잡아주면 됩니다. 

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

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
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는 종료우선권이다.
끝~

 

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

자바 및 톰켓 경로 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

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하면 실행됩니다.

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

리눅스 심볼릭 링크 걸기  (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

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 파일 사이의 생성날짜를 가진 파일 검색)

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

톰켓설치  (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

 

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

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

톰켓설치  (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