[Linux] 스크립트용 커맨드 정리

minujana
2 min readAug 18, 2021

스크립트 작성을 할 때,

필요한 목적별로 쓸만한 커맨드를 좀 정리해서 계속 업데이트를 하고 참고하면서 사용하려고 작성을 하려한다.

마지막 작성일: 2021.08.27

파일에 특정부분 찾아서 바꾸기

sed -i 's/기존내용/바꿀내용/' 파일절대경로
ex)
sed -i 's/PASS_MAX_DAYS\t99999/PASS_MAX_DAYS\t10/' /etc/login.defs
\t 는 탭을 의미함

sed에서 i옵션은 over write 옵션이므로, i 옵션을 주어야 파일 내용이 실제로 변경된다. 그러니 변경하기전에 i옵션 없이 콘솔에 변경될 내용을 출력해보고 맞게 변경되는 걸 확인하고 i 옵션을 넣자

파일에 특정위치에 원하는 내용 삽입하기

sed -i "라인넘버i 넣을내용" 파일절대경로
ex)
sed -i "5i auth\trequired\tpam_tally.so deny=5" /etc/pam.d/system-auth

파일에 만약에 넣을 위치에 이어쓰거나, 앞에 삽입되는 것이 아니라 기존 라인을 한칸 개행하고 해당 내용이 지정한 라인에 삽입됨

라인 마지막에 문자열 삽입하기

sed -i 's/$/문자열/g' 파일절대경로
ex)
sed -i 's/$/pl/g' /etc/group

특정문자를 찾아서 바꾸는 것과 비슷하지만, 정규식과 연산자를 활용한 것으로 $은 정규식, g는 연산자이다.

따라서 라인 맨끝에 해당 내용을 추가하는 것을 모든 라인에 적용하는 커맨드가 된다.

password 입력없이 ssh 사용

sshpass -p [Password] ssh -o StrictHostKeyChecking=no root@[IP]
ex)
sshpass -p P@ssw0rd ssh -o StrictHostKeyChecking=no root@10.10.10.5

sshpass 패키지를 설치해줘야한다. (epel에 포함되어있음) key 교환해서 공개키로 접속하는 방법도 있겠지만, 이걸 써먹는게 좀 더 편하다.

ssh 옵션에 Key Checking을 비활성화하지 않으면 knownhost로 등록할껀지 입력을 서버가 기다리기 때문에 꼭 no로 주고 커맨드를 실행하자 scp도 마찬가지

--

--