[AWS] EC2 인스턴스 명령어 정리

yunSeok·2024년 7월 2일
0

AWS

목록 보기
10/11

다른 글 안보게 최대한 정리..

😊 명령어 정리 (tomcat v10.1.25)


💨 리눅스 명령어

  • sudo (Super user Do)

관리자 권한으로 명령을 실행합니다.

sudo apt update

  • rm (remove)

파일이나 디렉토리를 삭제합니다.

  • -r (recursive) : 디렉토리와 그 내용을 재귀적으로 삭제
    sudo rm -rf
  • -f (force) : 확인 없이 강제로 삭제합니다.
    sudo rm file.txt
  • ls (List)

현재 디렉토리의 내용을 나열합니다.

  • l (long listing format) : 파일의 상세 정보를 표시
    ls -l
  • a (all) : 숨김 파일을 포함한 모든 파일을 표시
    ls -a /home/user
    ls -la /home/user
  • h (human-readable) : 파일 크기를 사람이 읽기 쉬운 형태로 표시
    ls -lh /home/user
  • t (time) : 파일을 수정 시간 순으로 정렬
    ls -lt /home/user
  • 특정 확장자를 가진 파일만 표시
    ls *.txt
  • 특정 디렉토리의 내용 표시
    ls /var/log
  • -R (Recursive) : 하위 디렉토리 내용까지 재귀적으로 표시, 디렉토리 구조를 트리 형태로 보여줌
    ls -R
  • cd (Change Directory)

작업 디렉토리를 변경합니다.

cd /home/user

  • pwd (Print Working Directory)

현재 작업 중인 디렉토리의 전체 경로를 표시합니다.

  • mkdir (Make Directory)

새 디렉토리를 생성합니다.

  • -p (parents) : 필요한 경우 상위 디렉토리도 함께 생성
    mkdir -p /home/user/documents/projects/new_project
  • cp (Copy)

파일이나 디렉토리를 복사합니다.

  • -r (recursive) : 디렉토리와 그 내용을 재귀적으로 복사
    cp -r source_directory/ destination_directory/
  • mv (Move)

파일이나 디렉토리를 이동하거나 이름을 변경합니다.

  • 이동
    mv file.txt /home/user/documents/
  • 변경
    mv old_name.txt new_name.txt
  • cat (Concatenate)

파일의 내용을 표시하거나 여러 파일을 연결합니다.

  • 내용 표시
    cat file.txt
  • 파일 연결
    cat file1.txt file2.txt > combined.txt
  • grep (Global Regular Expression Print)

파일 내에서 지정된 패턴을 검색합니다.

주요 옵션: -i: 대소문자 구분 없이 검색 -r: 디렉토리 내 모든 파일에서 재귀적으로 검색

  • "문자" : 파일에서 특정 문자열 검색 (단어가 포함된 전체 라인을 출력합니다.)
    grep "error" log.txt
  • -i (ignore case) : 대소문자 구분 없이 검색 (단어가 포함된 전체 라인을 출력합니다.)
    grep -i "warning" *.log
  • -n (Number) : 매칭되는 라인 번호 표시
    grep -n "message" context.txt
  • -v (Invert) : 매칭되지 않는 라인 표시
    grep -v "success" tomcat.log
  • -r (recursive) : 디렉토리 내 모든 파일에서 재귀적으로 검색
    grep -r "deprecated" /home/user/project/
  • -C (Context) 숫자 : 매칭된 문자열 주변의 컨텍스트 표시, 지정된 수의 라인(앞뒤 컨텍스트)을 함께 출력합니다.
    grep -C 3 "exception" error.log
  • chmod (Change Mode)

파일이나 디렉토리의 권한을 변경합니다.

  • rwx r-x r-x
    chmod 755 file.txt
  • u (user) : 소유자, x (execute) : 실행
    chmod u+x program
  • g (group) : 그룹, w (write) : 쓰기,
    -R (recursive) :하위 디렉토리와 파일들에도 동일한 권한 변경을 적용
    chmod -R g+w directory/
  • chown (Change Owner)

파일이나 디렉토리의 소유자를 변경합니다.

  • user: 새로운 소유자의 사용자 이름, group: 새로운 그룹 이름, file.txt: 변경할 파일
    chown user:group file.txt
  • newuser: 새로운 소유자의 사용자 이름, newgroup: 새로운 그룹 이름, directory/: 변경할 디렉토리
    -R (recursive) :하위 디렉토리와 파일들에도 동일한 권한 변경을 적용
    chown -R new_user:new_group /directory/....
  • ps (Process Status)

실행 중인 프로세스 목록을 표시합니다.

  • aux : 모든 프로세스의 상세 정보 표시
    ps aux
  • e (every) : 모든 프로세스를 표시, f (full) : 프로세스에 대한 전체 정보를 표시
    ps -ef | grep nginx
  • find

파일이나 디렉토리를 찾습니다.

  • 현재 디렉토리에서 특정 이름의 파일 찾기
    . : 현재 디렉토리를 검색 시작점으로 지정합니다. 현재 디렉토리와 그 하위 모든 디렉토리를 검색합니다.
    find . -name "*.txt"
  • 특정 디렉토리에서 n일 이내에 수정된 파일 찾기
    -mtime (modification time) : 파일의 수정 시간을 기준으로 검색합니다.
    find /home/user -mtime -7
  • 빈 디렉토리 찾기
    type: 파일 유형을 지정합니다.
    d (directory) : 디렉토리, f (file) : 일반 파일, l (link) : 심볼릭 링크
    find . -type d -empty
  • 특정 크기 이상의 파일 찾기 (예: 100MB 이상)
    find / -size +100M
  • vi (Visual Editor, Visual Interface)

이전의 라인 편집기와 달리 전체 화면을 사용하는 효율적인 텍스트 편집 기능을 제공

:w : 저장
:q : 종료 (변경사항 없을 때)
:wq 또는 :x : 저장 후 종료
:q! : 저장하지 않고 강제 종료

  • vim

vi의 개선된 버전으로, 더 많은 기능을 제공합니다.

sudo vi /directory/.../file/txt

  • nano

사용하기 쉽고 직관적인 인터페이스를 목표로 합니다.

sudo nano /directory/.../file/txt

  • readlink

심볼릭 링크(symbolic link)의 대상을 표시

  • 모든 심볼릭 링크를 재귀적으로 따라가 최종 목적지를 찾음
    -f (full, follow) : 전체 경로(full path)를 반환, 심볼릭 링크를 따라간다(follow)는 의미
    readlink -f /path/to/symlink


💨 기본 명령어

  • 재부팅

sudo reboot

  • 시스템 리로드

sudo systemctl daemon-reload

  • 최신 업데이트

sudo apt-get update
sudo apt-get upgrade

  • 방화벽 설정

sudo ufw allow 8080/tcp

  • 사용자 이름 확인

whoami



💨 Java 관련

  • 자바 버전 확인

java -version

  • 설치된 자바리스트 확인

update-java-alternatives --list

  • 자바 경로 확인

readlink -f /usr/bin/javac

  • 자바 환경 변수

sudo vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin/:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
  • 기본 Java 버전 설정
    여러개가 설치되었을 때 하나를 기본값으로 설정하는 방법

sudo update-alternatives --config java



💨 톰켓 작동 관련

  • 톰켓 실행 (service 설정)

sudo /usr/local/tomcat10/bin/startup.sh

  • 톰켓 실행

sudo systemctl start tomcat
sudo service tomcat start

  • 톰켓 재시작

sudo systemctl restart tomcat
sudo service tomcat restart

  • 톰켓 상태

sudo systemctl status tomcat

  • 톰켓.service 상태

sudo systemctl status tomcat.service

  • 톰켓 중지

sudo systemctl stop tomcat

  • 톰켓 종료

sudo pkill -9 -f tomcat

  • 톰켓 자동 시작
    시스템이 부팅될 때 Tomcat 서비스가 자동으로 시작됩니다.
    영구적으로 적용되며, 다시 비활성화하기 전까지 유지됩니다.

sudo systemctl enable tomcat

  • 톰켓 자동 시작 비활성화

sudo systemctl disable tomcat



💨 톰켓 로그 관련

  • TOMCAT 로그

sudo tail -f /usr/local/tomcat10/logs/catalina.out

tomcat 9.0 버전 로그
sudo cat /var/log/tomcat9/catalina.out

  • TOMCAT 로그 (엄청 자세한 로그)

sudo journalctl -u tomcat.service

  • 로그 clear

sudo truncate -s 0 /usr/local/tomcat10/logs/catalina.out
sudo sh -c '> /usr/local/tomcat10/logs/catalina.out'

tomcat 9.0 버전 로그 clear
sudo truncate -s 0 /var/log/tomcat9/catalina.out



💨 톰켓 환경 설정

  • 톰켓 설정 파일 (server.xml)

sudo vi /usr/local/tomcat10/conf/server.xml

UTF-8 설정하기 : URIEncoding="UTF-8"
path 설정하기 : <Context docBase="프로젝트명" path="/" reloadable="true"/>

  • 톰켓 manage 설정 파일 (tomcat-users.xml)

sudo vi /usr/local/tomcat10/conf/tomcat-users.xml

<role rolename="tomcat"/>
        <role rolename="admin"/>
        <role rolename="manager-gui"/>
        <role rolename="manager-script"/>
        <role rolename="manager-jmx"/>
        <role rolename="manager-status"/>
        <role rolename="admin-gui"/>
        <role rolename="admin-script"/>
        <user username="tomcat" password="tomcat" 
        roles="tomcat,admin,manager-gui,manager-script,manager-jmx,
        manager-status,admin-gui,admmin-script"/>
  • 톰켓 manage 원격 접속 허용
    만약 로컬이 아닌 원격에서 접속 가능

sudo vi /usr/local/tomcat10/webapps/manager/META-INF/context.xml

<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
      allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
      
      이부분 주석 처리하기
  • 톰켓 환경 변수 1

sudo vi /etc/profile

export CATALINA_HOME=/usr/local/tomcat10
  • 톰켓 환경 변수 1 적용

source /etc/profile
echo $CATALINA_HOME

  • 톰켓 환경변수 2

sudo vi /etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat 10 Web Application Server
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Environment=CATALINA_PID=/usr/local/tomcat10/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat10
Environment=CATALINA_BASE=/usr/local/tomcat10

ExecStart=/usr/local/tomcat10/bin/startup.sh
ExecStop=/usr/local/tomcat10/bin/shutdown.sh

[Install]
WantedBy=multi-user.target


💨 톰켓 설치 관련

  • 톰켓 10.1.25v 설치
  1. 톰켓 10.1.25v 다운로드

    wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.25/bin/apache-tomcat-10.1.25.tar.gz

  2. 압축 해제

    sudo tar xzvf apache-tomcat-10.1.25.tar.gz

  3. 디렉토리 변경

    sudo mv apache-tomcat-10.1.25 /usr/local/tomcat10

  4. 설치된 톰켓 정보 확인

    sudo /usr/local/tomcat10/bin/version.sh
    tomcat.service 파일 설정시 여기서 보여지는 데이터와 일치해야한다.



💨 톰켓 삭제 관련

  • 톰켓 삭제

sudo apt remove tomcat10

  • 톰켓 관련 전체 삭제

sudo apt-get remove --purge tomcat10

  • 삭제 후 불필요한 패키지 제거 + 정리

sudo apt-get autoremove

  • PID 파일 삭제

sudo rm -f /usr/local/tomcat10/temp/tomcat.pid



💨 권한 설정

  • 접근 권한

sudo su chmod 755 /usr/local/tomcat10/webapps
sudo su chmod -R 755 /usr/local/tomcat10/webapps

sudo chown -R tomcat:tomcat /usr/local/tomcat10/webapps
sudo chmod -R 755 /usr/local/tomcat10/webapps

이게 보안에 더 좋다.

📌 -R : 이 옵션은 "recursive"의 약자로, 디렉토리와 함께 그 안의 모든 파일과 하위 디렉토리의 권한도 함께 변경합니다.

  • 자동 권한 부여
  1. ACL 패키지 설치

    sudo apt-get install acl

  2. /usr/local/tomcat10/webapps 디렉토리에 대한 기본 ACL 설정하기

    sudo setfacl -Rdm u:whoami:rwx /usr/local/tomcat10/webapps

  3. 현재 존재하는 모든 파일과 디렉토리에 ACL 적용

    sudo setfacl -Rm u:whoami:rwx /usr/local/tomcat10/webapps
    -R: 재귀적으로 적용
    -d: 기본 ACL 설정 (새로 생성되는 파일/디렉토리에 적용)
    -m: ACL 수정
    u::whoami:rwx: 현재 사용자에게 읽기, 쓰기, 실행 권한 부여

  • 톰켓 권한 설정

sudo chown -R tomcat:tomcat /usr/local/tomcat10
sudo chmod +x /usr/local/tomcat10/bin/*.sh

  • 톰켓 manage 권한 설정

chmod 744 /usr/local/tomcat10/conf/tomcat-users.xml

  • 서비스 파일 권한 설정

sudo chmod 644 /etc/systemd/system/tomcat.service

  • Tomcat 디렉토리의 소유권 변경

sudo chown -R tomcat:tomcat /usr/local/tomcat10

  • 로그 디렉토리 권한 설정

sudo mkdir -p /usr/local/tomcat10/logs
sudo chown -R tomcat:tomcat /usr/local/tomcat10/logs

  • 권한 확인

sudo ls -l /경로
sudo ls -l /etc/systemd/system/tomcat.service

  • 파일 실행 권한 부여

sudo chmod +x /파일경로
sudo chmod +x /usr/local/tomcat10/bin/*.sh



💨 디렉토리 관련

  • 관련 디렉토리 이동

cd /usr/local/tomcat10/webapps

  • 디렉토리 내용 확인 (디렉토리 이동 후)

ls -l

  • 디렉토리 데이터 삭제 (디렉토리 이동 후)

rm -rf

  • 특정 파일 삭제 (디렉토리 이동 후)

rm 파일명

  • 관련 디렉토리 삭제

sudo rm -rf /usr/local/tomcat10
sudo rm -rf /etc/경로

  • 디렉토리 생성

sudo mkdir -p /경로

  • 사용가능한 패키지 검색

apt-cache search (검색어)

  • 작업 완료 (디렉토리 나오기)

exit



💨 MySQL 관련

  • MySQL 설치

sudo apt-get install mysql-server

  • 설치된 MySQL 버전 확인

mysql -V

  • RDS 연결

mysql -u 계정이름 -p -h 엔트포인트 주소
mysql -u admin -p -h database-1......ap-northeast-2.rds.amazonaws.com


💨 젠킨스 명령어 (정리중)

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null

echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null

sudo apt install jenkins -y

sudo systemctl start jenkins

sudo systemctl restart jenkins

sudo systemctl status jenkins

sudo systemctl enable jenkins



💨 기타 명령어

  • 9버전 톰켓 설치
    (9버전만 가능 10버전 이상부터는 공식 사이트 참고)

sudo apt-get install tomcat9

  • 포트포워딩

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

  • unzip 설치

sudo apt-get install unzip

  • 초기 root 비밀번호 설정

sudo passwd root

  • 서버시간 확인

date

  • 시간 변경 (timezone Asia/Seoul)

sudo timedatectl set-timezone Asia/Seoul


0개의 댓글