끝낼때는 fi로 끝낸다.
조건의 비교연산자는 숫자일때와 문자열일때가 다르다.
숫자일때는 '1=1'이지만
문자열일때는 'hello'.equels('hello')
보통 사용하는 목적
숫자비교
디렉토리
파일체크
if문에 비교연산자(불리언)형식이 아니어도 가능하다
결과는 다음과 같이 나온다.
이렇게 입력하고 실행시켜보자.
그러면 위와 같은 결과가 나온다.
👉shell script에서의 비교연산자
-lt: less then(<)
-le: less equel(<=)
-gt: greater then(>)
-ge: greater equel(>=)
-eq: equel (==)
-ne: not equel(!=)
밑에 위와 같은 코드를 추가해준다. 그리고 결과를 보면 다음과 같이 나온다.
❗❗주의해야 할 점(띄어쓰기)
✅:띄어쓰기 🔽:엔터
if✅[✅1✅-gt✅2✅]🔽
then🔽
echo✅"1은 2보다 크다"🔽
fi
이런 식으로 띄어쓰기를 해야한다.
log라는 폴더가 있는지 없는지 확인해보자.
log폴더가 없음을 알 수 있다. if문으로 확인해서 없으면 만들어보자.
만들어졌음을 알 수 있다.
쉘스크립트 뿐만이 아니라 node.js로도 이러한 작업을 할 수 있다.
없음을 알 수 있다.
다음과 같이 test.sh 파일을 scripts/log
폴더 안에 만들어준다.
파일이 있다고 바뀌었음을 알 수 있다!
안되면 다음과 같이 만들어도 된다
?그 안에 'echo hello'를 어떻게 넣는지 모르겟다
2개의 변수를 받지 못하는 것을 알 수 있다.
for(i=0; i<10; i++){
내용
}
구분값이 없다.
?숫자로 10번 반복하는거 처럼은 못하ㅏㄴ?
이렇게하면 자바스크립트처럼 쓸 수 있다.
bash
zsh
$ find ./test.txt
파일을 깔긴 깔았는데 어디에 깔렸는지 모를 수 있다.
만약 디렉토리 전체에서 node라는 이름을 가진 파일을 싶다면
$ find / - name node
최상위부터 들어가면서 찾는다. 이렇게하면 파일이든 폴더든 다 찾는다.
파일만 찾고 싶을 때는 옵션을 달아준다.
$ find / -type f -name node
타입이 파일인것만 이름이 node인 것을 찾아준다.
$ find / -type f -name "*.js"
파일 검색범위 줄이기
홈 디렉토리에서 js파일들을 찾으려면
$ find ~/ -type f -name "*.js"
$ find ~/ -type f -name "server.js"
$find ~/ type f --exec -name "server.js"
예를 들어 nginx가 어디 깔렸는지 모를 때,
$find ~/ type f --exec -name nginx
-exec?
$ vi /etc/passwd
를 터미널에 입력하면 다음과 같이 계정명들이 나온다. root 게정 및 맨 밑에 보면 내 계정도 나온다.
$ sudo useradd -m [계정명]
-m: 홈 디렉토리에 계정을 만들어준다. 이 때 기존 계정의 비밀번호를 입력해주어야 한다.
$ sudo passwd [생성한 계정명]
새로 만든 계정의 비밀번호를 설정할 수 있다.
나는 1234로 해주었다.(깜거을까봐....)
$ su [계정명]
입력해주면 내가 바꾸는 계정의 비밀번호를 입력하라고 뜬다.
그리고 홈 디렉토리로 가보자.
바꿈과 동시에 예전의 투박한 화면으로 돌아온 것을 알 수 있다.
zsh로 세팅하지 않아서 다시 이렇게 된 것이다. 즉, 계정별로 환경을 구축할 수 있다.
여기서 다른 계정의 디렉토리의 파일을 수정해보자. 나는 node2.txt를 수정해보도록 하겠다. 볼 수는 있지만 수정은 되지 않는다.
그러면 관리자 계정으로 들어가서 수정을 해보자.
이러한 오류가 뜨면서 되지 않는다. 왜냐하면 나는 seunghee가 아니라 SH2 계정의 관리자계정이기 때문이다.
그러면 다시 seunghee계정으로 들어가서 권한을 허용해주자.
$su [원래의 계정명]
을 입력해 원래 계정의 비밀번호를 입력해준다.
그리고는 sudoers 파일을 열어본다.
그러면 다음과 같은 파일이 열어질것이다.
#User privilege specification 부분에 새로운 계정명을 추가해주자.
위의 root계정과 똑같이 모든 권한을 허용해준다.
그런 다음
$ su [새로운 계정명]
을 입력하여서 계정을 바꾼다.
그리고 node2.txt를 바꿔보자.
$sudo vi [변경할 파일]
이제 수정이 된다.
이렇게 계정별로 자신의 디렉토리의 파일의 접근과 수정 권한을 바꾸는 권한의 여부를 다르게 설정할 수 있다. 그래서 어떤 사람은 심지어 내 계정의 파일을 보지도 못하게 할 수 있다.