리눅스에서 시스템 환경변수를 등록하는 방법은, 환경변수의 종류나 읽어들이는 시점 등에 따라 매우 다양한 것으로 알고 있다.


여기서는, 특정 실행파일을 더 쉽게 실행하기 위해 .bash_profile에 환경변수를 추가하는 방법에 대해서만 간단히 다룬다.



여기서 다루는 방법이 필요한 경우는, 특정 실행파일을 손쉽게 실행하고 싶을 때,


예를 들어 /usr/app/mysql 에 mysql가 설치되어있다고 해보자.


 이때 mysql을 실행하기 위해서는 # /usr/app/mysql/bin/mysql 이런식으로 실행을 해야 한다.


그런데 이를 단순히 # mysql 이라고만 입력해도 실행이 되게 하고 싶을 때 아래와 같이 환경변수를 등록해주면 된다.



# cd

($HOME 경로로 이동)


# vi .bash_profile

(.bash_profile을 vi편집기로 실행)


PATH=$PATH:HOME/bin:/usr/app/mysql/bin

(위와 같이 PATH로 된 부분에서 실행하고자 하는 파일이 있는 경로를 콜론으로 붙여서 추가한다)


:wq

(편집 중인 vi편집기를 저장하고 종료한다)


# source .bash_profile

(.bash_profile이 적용되도록 한다)


# mysql

(기존에는 /usr/mysql/bin/mysql 이라고 실행하던 것을, 위와 같이 손쉽게 실행할 수 있게 된다.)


리눅스, 유닉스 계열의 서버에서 특정 프로세스 상태를 확인하기 위한 명령어는 아래와 같다.


# ps -ef | grep [프로세스명]


ex. ps -ef | grep httpd  : 아파치 프로세스 확인

     ps -ef | grep mysql : MySQL 프로세스 확인



그런데 솔라리스 등의 OS에서는 프로세스 내용이 잘려서, 확인하고 싶은 경로나 설정 등을 확인하지 못할 때가 있다.


그럴 땐 아래와 같은 방법으로 확인하면 된다.


# /usr/ucb/ps -auxww | grep [프로세스명]


ex. /usr/ucb/ps -auxww | grep httpd : 아파치 프로세스 확인

     /usr/ucb/ps -auxww | grep mysql : MySQL 프로세스 확인


JSP를 이용한 웹페이지 작성 과정에서 


MVC 패턴을 좀더 명확히 적용하기 위해, 그리고 가독성이나 편의성 등을 위해


<% %> 등의 기호를 사용하여 자바 언어를 작성하는 것보다 JSTL을 이용하는 경우가 많더라.


문법이 크게 어렵거나 한 건 없지만, 자꾸 까먹을 때가 있어서 정리.



0. JSTL을 사용하기 위해

프로젝트 패키지 내에 해당 라이브러리를 삽입하여 import 해주는게 일반적인 것 같고,

혹시 import할 라이브러리가 없다면 아래와 같은 방식으로 추가해주면 사용 가능하다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


1. <c:if>

<c:if test="조건식">실행문</c:if>


2. <c:choose>

<c:choose>

<c:when test="조건식">실행문</c:when>

<c:when test="조건식">실행문</c:when>

<c:otherwise>위조건에 해당하지 않을경우 실행문</c:otherwise>

</c:choose>


3. <c:forEach>

forEach의 경우 예시를 들어서...

<c:forEach var="car" items="${carList}"

<tr>

<td><c:out value="${status.count}"/></td>

<td><c:out value="${car.name}"/></td>

<td><c:out value="${car.num}"/></td>

</tr>

</c:forEach>



리눅스 OS를 서버로 사용할 경우, 특정 종류 혹은 모든 파일의 개수를 구해야 할 경우가 있다.


이때 사용되는 명령어를 간단히 정리해본다. 결론적으로 find와 wc 명령어를 사용하게 되는데, 우선 이 두 명령어가 어떤 명령어인지 간단하게 짚고 넘어가본다.



1. find 명령어


콘솔에서 find --help 라고 쳐보면 아래와 같은 내용이 출력된다.


사용법: find [경로...] [수식]

기본 경로는 현재 디렉토리입니다; 기본 수식은 -print입니다

수식은 다음과 같이 이루어질 수 있습니다:

연산자(감소하는 우선순위; 다른 것이 주어지지 않으면 -and가 묵시적으로 사용됨)

      ( EXPR ) | EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2


      EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2

옵션 (항상 참): -daystart -depth -follow --help

      -maxdepth LEVELS -mindepth LEVELS -mount -noleaf --version -xdev

시험 (N은 +N, -N, N이 될 수 있음): -amin N -answer FILE -atime N -cmin N


      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME

      -ilname PATTERN -iname PATTERN -inum N -ipath PATTERN -iregex PATTERN

      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE


      -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN

      -size N[bckw] -true -type [bcdpfls] -uid N -used N -user NAME

      -xtype [bcdpfls]


      -context CONTEXT


행동: -exec COMMAND ; -fprint FILE -fprint0 FILE -fprintf FILE FORMAT

      -ok COMMAND ; -print -print0 -printf FORMAT -prune -ls


=> 즉 find는 여러가지 조건을 가진 파일 혹은 폴더들의 목록을 검색하는 명령어이다.



2. wc 명령어


콘솔에서 wc --help 라고 쳐보면 아래와 같은 내용이 출력된다.


사용법: wc [<옵션>]... [<파일>]...

Print newline, word, and byte counts for each FILE, and a total line if

more than one FILE is specified.  With no FILE, or when FILE is -,

read standard input.

  -c, --bytes            print the byte counts

  -m, --chars            print the character counts

  -l, --lines            print the newline counts

  -L, --max-line-length  가장 긴 줄의 길이를 표시합니다

  -w, --words            단어의 개수를 인쇄합니다

      --help     이 도움말을 표시하고 끝냅니다

      --version  버전 정보를 출력하고 끝냅니다


=> 즉 wc는 파일의 줄이나 단어 수 등을 한번에 계산하여 확인할 수 있는 명령어이다.



3. 파일 개수 구하기


위 두 내용을 살펴보았을 때 파일 개수는 아래와 같이 구해야 한다는 것을 알 수 있다.


> find [디렉토리경로] -type f -name "[파일명규칙]" | wc -l


find의 결과로 출력되는 라인수 = 검색된 파일 개수이기 때문에 find로 특정 이름을 가진 파일을 검색하고, 이 결과의 줄 수를 출력하는 것이다.



예를 들어 /home 경로 안에서 확장자가 .log인 파일의 개수를 구하고자 할 때는 아래와 같이 입력하면 된다.


> find /home -type f -name "*.log" | wc -l


리눅스를 사용하다 보면, tar 혹은 tar.gz로 압축을 하거나 압축을 풀어야 할 경우가 자주 생긴다.


이를 처리하기 위해 리눅스에서는 tar 라는 명령어를 사용하게 되는데,


tar 명령어도 여러가지 옵션이 있지만 각 옵션에 대해서 알아보기 보단, 자주 사용하는 명령어 패턴만 정리한다.



1. tar로 압축하기

> tar -cvf [파일명.tar] [폴더명]


ex) abc라는 폴더를 aaa.tar로 압축하고자 한다면

     > tar -cvf aaa.tar abc



2. tar 압축 풀기

> tar -xvf [파일명.tar]


ex) aaa.tar라는 tar파일 압축을 풀고자 한다면

     > tar -xvf aaa.tar



3. tar.gz로 압축하기

> tar -zcvf [파일명.tar.gz] [폴더명]


ex) abc라는 폴더를 aaa.tar.gz로 압축하고자 한다면

     > tar -zcvf aaa.tar.gz abc



4. tar.gz 압축 풀기

> tar -zxvf [파일명.tar.gz]


ex) aaa.tar.gz라는 tar.gz파일 압축을 풀고자 한다면

     > tar -zxvf aaa.tar.gz




참고로, 위의 옵션들을 포함한 그나마 자주 사용되는 tar 명령어의 옵션들은 아래와 같다.



 옵션

 설명

 -c

 파일을 tar로 묶음

 -p

 파일 권한을 저장

 -v

 묶거나 파일을 풀 때 과정을 화면으로 출력

 -f

 파일 이름을 지정

 -C

 경로를 지정

 -x

 tar 압축을 풂

 -z

 gzip으로 압축하거나 해제함



리눅스 서버 부팅시각 확인 방법 1. last 로그 확인


> last reboot



리눅스 서버 부팅시각 확인 방법 2. dmesg 로그 업데이트 시각 확인


> ll /var/log/dmesg




이 외의 자세한 내용은 /var/log 밑에서 찾아보면...

현재 설정된 크론탭 조회


# crontab -l




크론탭 추가/수정


# crontab -e

(이후 화면에서 vi편집기에서 처럼 편집하면 된다.)


<설명>

1번필드 : 시간(분)

2번필드 : 시간(시간)

3번필드 : 일자

4번필드 : 월

5번필드 : 요일(0:일요일, 1:월요일, 2:화요일….)

6번필드 : 실행할 명령이나 스크립트


<예시>

00 02 * * * /usr/local/bin/test.sh >> /test.log

: 매일 02시에 /usr/local/bin/test.sh를 실행하고, 해당 로그를 /test.log에 저장한다.


00 02 * * 6 /usr/local/bin/test.sh

: 매주 토요일 02시에 /usr/local/bin/test.sh를 실행한다.



자바(JAVA) 형 변환(String과 Date)



String to Date


String from = "2013-04-08 10:10:10";

SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date to = transFormat.parse(from);




Date to String


Date from = new Date();

SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String to = transFormat.format(from);


자바(JAVA) 형 변환(String과 int)



Strinig to int


String from = "123";

int to = Integer.parseInt(from);



int to String


int from = 123;

String to = Integer.toString(from);



역방향 DNS 조회 방법

(윈도우 사용시, cmd로 실행 창을 켜서 진행)


# nslookup


# set type=ptr


# [a.b.c.d]

(아이피가 a.b.c.d일 경우)

(보통 d.c.b.a.in-addr.arpa 라고 입력하지만 그냥 일반 ip 순서대로 입력해도 된다.)


=> 조회 결과 확인




SPF 레코드 조회 방법

(윈도우 사용시, cmd로 실행 창을 켜서 진행)


# nslookup


# set type=txt


# [domain]

(조회하고자 하는 도메인을 입력한다)


=> 조회 결과 확인