본문 바로가기

Java/개념정리

리눅스 명령어 모음_(2)

##Shell Programming

Server -> Service(Web, DB, FTP)

 

##bash

ps -ef | grep bash

    유저 인터페이스 프로그램

        로그인 시 자동할당 된다.

    몇명이 로그인했는지 알 수 있다.

    kill -9 프로세스 id 를 입력해 접속 종료 가능

 

##ps -l

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY  TIME CMD

 

    TIME

        보통 0이지만(bash의 경우 높으면 해킹의 확률이 높음)

    TTY

        pts (sudo 사용시사용)

    NI

        우선순위 설정 작을 수록 더 중요함

    C

        Cpu 스케쥴링

    PPID

        parent process ID

        bash는 sudo의 PID를 PPID로 가진다.

        최고 조상의 PPID는 1이다.(init)

            1번프로세스를 끌 수 없다.

 

##값 지정하기(shell)

a=100

echo $a 지정한 값 호출

변수는 로컬 변수

 

##vi

    vi  명령어를 통해 vi접근하기

    vi sh   bash를 통해 vi 사용가능

 

##상속

    export [변수이름]=[값]

    export ORACLE_HOME=/u01/oracle

    export JAVA_HOME=/usr/local/java/bin

        변수이름을 통해 참조 가능하다.

    env | grep [변수이름]   변수 찾아보기

 

    env | more  한페이지씩 변수 보기

## 환경변수

    p422

    환경변수는 수정시 주의를 요함

    env | grep LOGNAME...

 

##쉘 스크립트 프로그래밍

 

wich bash   인터프리터 경로

 

예제

vi hello.sh

    #!/usr/bin/bash     첫 번째 줄에 인터프리터 경로 설정

    echo "hello"

 

chmod u+x hello.sh  권한 부여(실행가능 속성 부여)

ls -l hello.sh      설정 조회

./hello.sh      프로그램 실행

 

예제2

a=100       리눅스는 키로들어오는 모든 값을 문자로 입력받음

b=`expr $a + 100`

        expr을 붙여서 수식으로 변환, 명령어는 감쌀때`사용

        띄어쓰기에 유의할 것

 

    ''  single  타입하나만사용 'hi'

    ""  double  타입2개이상 사용 "kim==$b"

    ``  accent  명령어만 사용

    ()  괄호안에 명령어를 넣어도 괜찮음

 

if

    if[] then fi

    if else 사용 가능

    if elif...elif

    if -f /etc/passwd   파일이 존재한다면

        p432파일에 관련된 조건

 

case문

    자바의 swich문과 동일함

    case in

        ) ;;

        ) ;;

        ) ;;

    esac

 

for문

    for i in

    do

 

    done

 

while문

    while true

    do

 

    done