리눅스 사용 시 기본적인 명령어를 참조할 때가 있습니다. 매번 인터넷 검색하기도 그렇고 해서 자주 사용하게되는 리눅스 명령어를 하나씩 하나씩 정리해 보고자 합니다.
서버 nginx 사용명령
웹서버인 NGINX를 사용 시 가장 많이 사용하는 명령어는 다음과 같은 것들이 있습니다.
서버 세팅 변경 후 NGINX가 제대로 작동하는지 확인 시 -t를 사용합니다. nginx 서버를 다시 시작하지않고도 제대로 작동하는지를 확인할 수 있습니다.
nginx -t
Code language: PHP (php)
NGINX가 제대로 작동한다고 판단되면 NGINX 서버를 다시 가동시킵니다. 그러면 서버 세팅 변경이 반영됩니다.
service nginx restart
Code language: PHP (php)
데이타베이스를 다시 가동시킵니다. 데이타베이스 메모리 사용 등을 다시 세팅 시킬 때 사용합니다.
service mysql restart
Code language: PHP (php)
php를 다시 가동시킵니다
service php7.3-fpm restart
Code language: PHP (php)
저는 가끔 위 세가지를 동시에 사용할 필요가 있어 아래와 같은 명령을 copy & paste합니다.
service nginx restart && service mysql restart && service php7.3-fpm restart
Code language: PHP (php)
데이타 베이스 간단 사용법
서버를 활용하다보면 아무래도 데이타베이스 관련 작업을 자주하게 됩니다. 여기 이와 관련 명령어 몇가지를 정리해 봤습니다.
데이타베이스 mysql 접속
-u root -p[비밀번호]
Code language: PHP (php)
데이타베이스 리스트 보기
show databases;
Code language: PHP (php)
데이타베이스 선택
데이타베이스 선택을 위해서는 use [데이타베이스 이름] 명령을 사용합니다. 예를 들어 shop이라는 이름을 가진 데이타베이스를 선택한다고 한다면 아래와 같습니다.
use golf;
Code language: PHP (php)
데이타베이스 테이블 보기
데이타베이스 테이블들이 무엇이 있는지를 보려면 조회하려면 show tables를 사용합니다.
show tables;
Code language: PHP (php)
데이타베이스 삭제 방법
데이타베이스를 삭제하려면 drop 명령을 사용합니다.
DROP DATABASE [데이타베이스 이름];
Code language: PHP (php)
데이타베이스 백업방법
가장 많이 사용하는 명령이 아닐까 싶은데요. 데이타베이스 백업을 위햐서는 아래와 같은 명령어를 사용합니다.
mysqldump --opt --single-transaction -u root -p[비밀번호] [데이타베이스 이름] > [데이타베이스 백업 파일 이름].sql
Code language: PHP (php)
데이타베이스 복원 방법
데이타베이스를 백업했으면 언제인가는 모르지만 백업할 기회가 반드시 생기죠.. 복원 시키는 명령은 아래와 같습니다.
mysql -u root -p[비밀번호] [데이타베이스 이름] < [데이타베이스 백업 파일 이름].sql
Code language: PHP (php)
압축 백업하기 그리고 압축 풀기
또 자주 사용하는 명령어 중에는 압축 백업 명령이 있죠. tar -옵션 명령(주로 -xvzf)을 사용합니다. 아래 몇가지 예를 들었습니다.
tar -cvzf home.tgz /home
tar -cvzf happist.tgz /home/happist
Code language: PHP (php)
압축을 푸는 것은 아래와 같은 명령어를 사용합니다. 마찬가지로 tar -옵션 명령을 사용합니다.
tar -xvzf happist.tgz
Code language: PHP (php)
파일 또는 폴더 삭제 명령 rm
rm은 파일이나 폴더를 지울 때 사용하는 명령어입니다.
사용법은 아래와 같습니다.
- rm [옵션] 파일명
- rm [옵션] 폴더명
셋이상의 파일을 지우거나 하위 폴더를 지우기 위해서는 -r 옵션을 사용합니다.
rm 명령어의 옵션은 아래와 같습니다.
옵션 | 설명 |
-f | 강제로 파일이나 디렉토리를 삭제하고, 삭제할 대상이 없을 경우 메시지를 출력하지 않음 |
-i | 매번 삭제할 때마다 사용자에게 질문함 |
-I | 셋 이상의 파일을 삭제하거나 하위의 파일이나 디렉토리가 있을 경우 진짜 삭제할 것인지 질문함 |
–interactive[=WHEN] | 상호대화형 모드로 값(WHEN)을 지정함 WHEN 대신 once(-I 옵션과 같음)와 always(-i 옵션과 같으며 디폴트 값)가 올 수 있음 |
–no-preserve-root | ‘/’를 특별하게 취급하지 않음 |
–preserve-root | ‘/’를 삭제하지 않음(디폴트 값) |
-r | 하위 디렉토리를 포함하여 모든 내용을 삭제 |
-d | 빈 디렉토리들만 제거 |
-v | 지워지는 파일의 정보를 출력 |
–help | rm 명령어 사용법을 출력 |
–version | rm 명령어의 버전 정보를 출력 |
특정 확장자만 지우기
리눅스 파일 지우기 명령인 rm을 활용해 특정 확장자만 지울 수 있습니다.
rm *.webp
Code language: PHP (php)
이중 확장자를 가진 경우
그런데 저의 경우 webp 이미지를 만들 때 .png.webp 또는 .jpg.webp와 같은 형식으로 webp 파일을 만들었습니다. 이렇게 이중 확장자를 지울 경우는 고민거리가 있습니다.
여기서 단순히 .webp 확장자 전체를 지운다면 앞서 사용한 rm *.webp라는 명령어를 그대로 사용하면 되죠.
그러나 파일들이 .webp도 있고 .png.webp도 있는 상황이라고 가정해 보죠. 여기서 오직 이중 확장자인 .png.webp만 지우고 싶다면 마찬가지로 rm *.png.webp를 사용합니다.
rm *.png.webp
Code language: PHP (php)
특정 파일 찾아서 전체 지우기
위에서 특정 파일을 지우는 방법에 대해서 이야기했는데요. 때로는 서버 곳곳에 산재해 있는 특정 파일을 다 지워야하는 경우가 있습니다.
예를들어 이미지 최적화를 위해 webp 파일을 만들었는데요. 이 webp 이미지 파일 화질이 너무나 떨어져서 전부 지우고, 어느 정도 품질이 확보된 webp 이미지 파일을 재생성하고 싶을 수 있습니다.
이러려면 서버에 이미 만들어진 webp 확장자를 가진 이미지 파일 전부를 지워야하죠.
이렇게 특정 확장자 파일을 찾아서 일괄 지우려면 rm 명령어 보다는 find 명령어를 사용하면 좋습니다. find 명령어 + exec rm명령어 사용
find . -name "*.webp" -exec rm {} \;
Code language: PHP (php)
또는 find 명령어에서 제공하는 -delete 옵션을 사용하면 간단하고 빨리 처리할 수 있다고 합니다.
find . -name "*.webp" -delete
Code language: PHP (php)