'시스템 환경@'에 해당되는 글 4

  1. 2011.11.24 [EP] JSTL(Apache Taglibs 1.0) 사용하기 1
  2. 2010.04.11 현재 쉘 보기
  3. 2010.04.11 현재 사용자의 그룹을 알고 싶을 때
  4. 2009.04.14 Command Line Interface

[EP] JSTL(Apache Taglibs 1.0) 사용하기 1

- 환경
ServerInfo : SAP J2EE Engine/7.00
Servlet : 2.3
JSP : 1.2
web.xml 을 수정할 수 없음.

- JSTL (Apache Taglibs 1.0 구현체)을 사용하려고 함.
Tomcat 4, 5에서는 예제(standard-examples.war)가 잘 동작함.

- jstl.jar, standard.jar를 PORTAL-INF/lib/에 넣는다.

test.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
com.sapportals.portal.prt.servlets_jsp.server.jsp.ParseException:  Error in parsing taglib 'http://java.sun.com/jstl/core' tag in web.xml or .tld file of the taglib library.
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspTaglibDirective.verifyAttributes(JspTaglibDirective.java:189)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspDirective.parse0(JspDirective.java:162)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspDirective.parse(JspDirective.java:117)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ElementCollection.parse(ElementCollection.java:86)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ParserImpl.parse(ParserImpl.java:595)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2170)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
        ...

tld 파일을 여기저기 넣어 보고 uri를 바꿔봐도 안됨.
(JSPCompiler를 디컴파일해서 uri를 어떻게 찾는지 보려고 했는데 어디에 있는지 찾지를 못했다.)

- htmlb를 사용하는 글을 보고 tld를 설정함.

portalapp.xml PORTAL-INF/taglib/에 c.tld를 넣는다.

test.jsp taglib 선언은 되는데 실제 사용할 때 에러가 발생한다.
com.sapportals.portal.prt.servlets_jsp.server.jsp.ParseException: java.lang.NullPointerException
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.TagBeginGenerator.init(TagBeginGenerator.java:148)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.xmlsyntax.CustomJspTag.action(CustomJspTag.java:114)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ElementCollection.action(ElementCollection.java:47)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2170)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
        at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
        at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
        ...

- SAP NetWeaver 04, 7.1이 JSP 1.2를 지원하지 않는다고 함.
javax.servlet.jsp.JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion()의 리턴값은 1.2인데...

- 커스텀 태그라이브러리를 작성해 보니 JSP 1.1 형식으로는 가능
Taglibs의 c.tld를 1.1형식으로 변경하면 가능할 거 같다.

현재 쉘 보기

$ env | grep SHELL
SHELL=... //로그인 쉘

$ echo $0
-bash

$ ps $$
  PID TTY      STAT   TIME COMMAND
23752 pts/0    Rs     0:00 -bash

$ ps -p $$
  PID TTY          TIME CMD
23752 pts/0    00:00:00 bash

$ sh

# echo $0
sh

# ps -p $$
  PID TTY          TIME CMD
24794 pts/0    00:00:00 sh

$ env | grep SHELL
SHELL=... //처음과 동일함. sh가 아님.

현재 사용자의 그룹을 알고 싶을 때

어떤 시스템에 들어갔는데 지금 내가 로그인한 계정의 그룹을 알고 싶었다.
어떤 명령어를 써야 하나?

$ whoami
user1

$ who am i
user1     pts/0        2010-04-11 05:33 (192.168.100.254)

$ grep `whoami` /etc/passwd
user1:x:1306:1306::/home/hosting_users/user1:/home/bin/bash

$ touch _tmp; ls -al _tmp; rm _tmp //파일 하나 만들어 보면 알잖아
-rw-rw----+ 1 user1 user1 0  4월 11 07:41 _tmp

다른 방법도 있을거 같은데...

Command Line Interface

- 명령 히스토리
  • bash, tcsh, Windows Command : 아래/위 화살표
  • ksh : ESC-K, J(vi), Ctrl+N, P(emacs)
  • csh은 이 기능이 없으므로 tcsh 이용하면 됨.
    또는 history를 사용한다.
    set history=20
    alias h history

- 방금 사용한 명령 실행

- 자동 완성
  • sh
    # cd mESC
  • bash : Tab
  • ksh : cd 명령에 * 사용 가능
    # set -o //현재 설정 확인
    # set -o vi //export EDITOR=vi, export VISUAL=vi 와 동일하다고 하던데.....EDITOR=vi 하면 vi 가 온으로 되네
    # cd mESC-\ //vi
    # set -o emacs
    # cd mESC+ESC //emacs
  • csh
    # set filec
    # cd mESC
  • tcsh : Tab, ESC, cd 명령에 * 사용 가능
  • Windows Command : Tab, cd 명령에 * 사용 가능


- 파일 리스팅

  • sh
    ???# cd mESC
  • bash : Tab-Tab ???
  • ksh
    # cd mESC-= //vi

- 환경변수 설정
  • sh, ksh
    # export LANG=ko
  • csh
    # setenv LANG ko
  • Windows Command
    > set LANG=ko