📘 Ubuntu 서버 운영에 꼭 필요한 리눅스 기본 명령어
1) history
지금까지 실행한 명령 전체를 출력한다.

grep을 함께 사용하여 특정 키워드로 필터링할 수도 있다.

*nginx와 관련된 명령어만 골라서 출력한다.
grep은 정규표현식도 지원하기 때문에 원하는 명령어를 효과적으로 찾을 수 있다. 또한 history와 함께 자주 사용되는 응용 패턴도 존재한다.
!! : 바로 직전 명령어 재실행
sudo !! : 직전 명령을 sudo로 다시 실행
!123 : 123번째 명령어 재실행
!nginx : nginx로 시작하는 마지막 명령어 재실행
2) cat & tail & head
텍스트/로그 파일을 볼 때 가장 먼저 사용하는 두 도구가 cat과 tail이다.
cat은 파일 전체를 단번에 출력하는 명령어이다. (concatenate)
cat file.txt
cat -n file.txt # 줄 번호 포함
cat -A file.txt # 숨은 제어문자/탭/줄바꿈 모두 표시
전체 로그를 한 번에 출력하기 때문에 작은 파일을 확인해야 할 때 효과적이다. 반대로 너무 큰 로그의 경우 cat으로 출력 시 터미널이 멈춘 듯 보일 수 있기 때문에 큰 파일은 tail 명령어를 사용하는 것이 좋다.
tail -n 100 a.log # 최근 100줄
tail -f a.log # 실시간 추적(follow)
tail -F a.log # 로테이션/이름 변경 시에도 자동 추적
만약 파일의 끝부분이 아닌 앞을 보고 싶다면 head 명령어를 사용하면 된다. head는 파일의 처음 N 줄을 출력한다.
head file.txt # 기본 10줄
head -n 40 file.txt # 앞에서 40줄
head -c 100K big.log # 앞에서 100KB만
3) apt
apt는 Ubuntu/Debian 계열에서 패키지를 설치, 업데이트, 제거할 때 사용하는 표준 도구이다. 업데이트는 보안과 직결되므로 정기 루틴을 만들어 두는 것이 좋다.

sudo apt update 명령어는 저장소에서 목록만 새로 받는다. 실제 설치나 업그레이드가 이루어지지는 않기 때문에 추가로 sudo apt upgrade 명령어를 통해 설치된 패키지들을 최신 버전으로 업그레이드한다.
아래는 이외에 자주 쓰는 명령어이다.
apt list --upgradable # 업그레이드 가능한 패키지 확인
sudo apt install htop # 패키지 설치
sudo apt remove --purge nginx # 패키지 + 설정 파일 삭제
sudo apt autoremove # 필요 없는 의존성 정리
apt show nginx # 패키지 상세 정보
apt search redis # 패키지 검색
apt policy openssl # 설치/후보 버전과 우선순위 확인