실행했을 때
원하는 저장공간에
오늘 날짜로 파일명이 만들어지는
스크립트
순서는 이렇게..
mkdir 폴더생성
vi 실행파일.sh
스크립트 적기
실행권한설정
실행하기
스크립트
date 날짜띄우는명령어 YYMMDD 변수에 담아줘
(date_log로 폴더가 저장됐으면 하는 )원하는 경로 DIR_LOG 변수에 담아줘
변수사용해 오늘날짜 뜨는 파일명 FILE_NAME 라고
만약에 DIR_LOG가 이 디렉토리아니면(저 경로에 date_log없으면)
실행
DIR_LOG 만들어
파일내용안에 date날짜 넣어
아니면 (만약 저 경로에 date_log있으면)
"이름같은폴더가 있음" 뜨게 해
끝.
#!/bin/bash
YYMMDD=`date +"%y%m%d"`
DIR_LOG="/home/`whoami`/date_log"
FILE_NAME="Date_${YYMMDD}.txt"
if [ ! -d $DIR_LOG ]
then
mkdir $DIR_LOG
`date > ${DIR_LOG}/${FILE_NAME}`
else
echo "이름이 같은 폴더가 이미 있음."
fi
특수문자 >,<,>> 는 입출력의 방향바꾸는 특수문자
명령1>파일이름
(파일의 내용을 명령1로 바꿉니다.)
명령1>>파일이름
(파일의 내용에 명령1을 추가합니다)
https://hack-cracker.tistory.com/26
쉘 스크립트 if문 옵션 -d
파일조건
[-d file] file이 디렉토리이면 참이다
https://webstone.tistory.com/79
에러 해결
처음에
DIR_LOG="/home/`whoami`/date_log"
이렇게 하니까 안나옴
syusmm 내계정넣어주면 나오는데.
`whoami`는 현재 사용자의 이름을 출력하는 명령어
안됐던 이유
root에서
/home/`whoami`/ 찾으려하니까 안나오는 거임
나와서 이렇게 보면
home안에 계정들 있지
syusmm 계정에서는 실행 가능!
다시 해보면
syusmm계정에서
실행(은 되지만 이미 있다고뜸)
root로 가면 안됨
sudo는 현재 계정에서 단순히 root의 권한만 빌리는 것
su는 현재 계정에서 root계정으로 전환하는 명령어
su는 root계정의 환경변수를 가져오지 않고 현재 계정의 환경변수를 사용하게 될 것이고
su -는 root계정의 환경변수까지 모두 가져와 root계정에 접근하게 되는 것.
https://jootc.com/p/20170122130
+ 안됐던 이유2
실행권한 설정이 안되어있었음
권한 설정
r읽기
w쓰기
x실행
소유자에게 실행권한 부여함
chmod u+x file.txt
리눅스 권한설정
숫자로 한번에 권한 변경해도 됨
chmod 000 test.c
사용자, 그룹, 다른사용자의 모든 권한을 제거한다.
chmod 777 test.c
사용자, 그룹, 다른사용자의 모든 권한을 추가한다.
chmod 700 test.c
사용자에게만 모든 권한을 준다.
chmod 744 test.c
사용자에게는 모든 권한을 주고, 그룹, 다른 사용자에게는 읽기 권한만 준다
744라는 숫자는 이렇게 해석할 수 있다.
사용자
r w x
4 + 2 + 1 = 7
그룹
r - -
4
다른 사용자
r - -
4
https://withcoding.com/103
https://nachwon.github.io/shell-chmod/