본문 바로가기

회고록(TIL&WIL)

TIL 2023.01.06 리눅스

리눅스

https://wikidocs.net/book/2370

프로세스 확인

| 를 하나씩 이어 붙이게 되면 앞선 명령어의 output 값을 뒤에 이어진 명령어에 input 값으로 사용하게 한다.

ps -ef | grep user01 | grep ssh

프로세스 죽이기

sudo kill [Id]

종료 상태 코드 확인

echo $? 

0은 정상 완료
126은 명령을 실행할 권한이 없음
127은 명령을 찾을 수 없음
130은 Ctrl + C 로 명령이 종료됨

리다이렉션

// 오류 발생 내용 날짜 이용하여 파일생성
data 2>> $(date +%y%m%d).err

변수를 만드는방법

// 일시적인 변수
name2=asdf
echo $name2
>>asdf

// 모든 변수 확인
set | grep name2
>>name2=asdf

// 전역번수 생성
export name=asdf
echo $name

// 전역변수 확인
env

// 삭제
unset name2

// 환경변수로 저장하는 방법
nano .bashrc
// .bashrc 파일을 열어 아래 코드 추가
export name2=asdf

//보통은 부팅할 때 한번만 읽는 그런 파일들을 갱신하고 적용할 때 사용
source .bashrc

경로 확인

echo $PATH

bash 활용

#!/bin/bash
echo fname?
read fname
javac $fname.java
java $fname


#!bin/bash
#  ./ex02 a aa aaa
echo 'arguments'   #arguments
echo $0            #./ex02
echo $1            # a
echo $2            # aa
echo $#            # 3
echo $$            # processId
echo $*            # a aa aaa


// 날짜 포맷
mydate=$(date +%Y년%m월%d일)
echo $mydate

// 프로세스 id조회
ps -ef | grep $$

// printf 활용가능
printf "$s:$i\n" "name" 20

// 연산 expr
expr 5 + 1
>> 6
//*은 와일드 문자이기때문에 문자열 처리를 해줘야한다. 연산자는 다 문자열 처리해주는게 좋다.
expr 5 '*' 3
>> 15

// 변수 let
let su1=5+1
//비교 연산자 - 꺽쇠의 경우는 리다이렉트로 사용되기 때문에 다른 명령어를 사용해야한다.
lt(<), gt(>), le(<=), ge(>=), eq(==), ne(!=)
// file 체크 명령어
-r (readable) -w (wrtitable) -x (runnable) -d (isDir) -a (isExist)
[ 5 -eq 5 ] 의 형태로도 비교 가능하다 다만 [] 시작과 끝을 무조건 띄워야한다.

// if#!bin/bash
read mypath
if [ -e $mypath ]
then
     prinf 'exist '
     if [ -d $mypath ]
     then
          echo 'is dir'
     else
          echo 'is file;
     fi
else
      printf 'fail'
fi

// case 문
#!bin/bash
read val
case $val
yes) echo 'say Yes!';;
no) echo 'say No!';;
*) echo 'what?';;
esac
 

exec - 프로세스를 새로 생성하지 않고 현재 프로세스에서 실행하는 방식으로 자원을 아낄 수 있다.
crontab - 스케쥴링