CS/Linux

[Linux] 구름IDE를 이용한 리눅스 명령어 실습

DandyNow 2023. 10. 3. 00:04
728x90
반응형

1. 구름 IDE에서 간편한 무료 서버 이용

통합 개발 환경 SASS 서비스를 무료로 이용할 수 있는 구름 IDE를 이용해 리눅스 명령어 실습을 진행하였다. 이 실습은 인프런의 "2022 30분 요약 강좌 시즌 1 : HTML, CSS, Linux, Bootstrap, Python, JS, jQuery&Ajax"에 포함된 리눅스 강좌를 학습하며 진행한 것이다.

 

2. 실습한 리눅스 명령어

  • dandy 폴더 생성
    • root@goorm:/workspace/linux# mkdir dandy
  • dandy 폴더 이동
    • root@goorm:/workspace/linux# cd dandy
  • 현재 경로 보기
    • root@goorm:/workspace/linux/dandy# pwd
  • test.py 파일 생성
    • root@goorm:/workspace/linux/dandy# touch test.py
  • 폴더 정보 보기
    • root@goorm:/workspace/linux/dandy# ls
    • root@goorm:/workspace/linux/dandy# ls -al
    • root@goorm:/workspace/linux/dandy# ll
  • test.py 편집
    • root@goorm:/workspace/linux/dandy# vi test.py
    • vi 에디터 명령어
      • :wq! => 저장 후 강제 종료
      • a(또는 i) => 명령모드
      • ESC => 입력모드
  • test.py 파일 내용 보기
    • root@goorm:/workspace/linux/dandy# cat test.py
    • root@goorm:/workspace/linux/dandy# more test.py
    • cat은 한 번에 출력, more은 한 페이지씩 보여주며 넘어감
  • echo를 이용한 txt파일 생성
    • root@goorm:/workspace/linux/dandy# echo "hello world"
    • root@goorm:/workspace/linux/dandy# echo "hello world" > test.txt
  • 파일 복사
    • root@goorm:/workspace/linux/dandy# cp test.py test2.py
  • 조회 결과를 txt 파일로 저장
    • root@goorm:/workspace/linux/dandy# ls -al > result.txt
  • 파일 삭제
    • root@goorm:/workspace/linux/dandy# rm test.py
  • 파일 경로 이동
    • root@goorm:/workspace/linux/dandy# mv result.txt ../
  • 폴더 생성/삭제/이동
    • 삭제
      • root@goorm:/workspace/linux# rmdir dandy
    • 생성(하위 폴더 포함)
      • root@goorm:/workspace/linux# mkdir -p one/two/three
    • 하위 폴더 & 파일 모두 삭제
      • root@goorm:/workspace/linux# rm -r one
      • (WINDOWS CMD의 경우 : rmdir /s /q one)
    • 폴더 생성 후 경로 이동
      • root@goorm:/workspace/linux# mkdir one;cd one
  • |(파이프) 명령어로 같이 실행
    • root@goorm:/workspace/linux/one# cat sample.txt | grep "Python"

  • 웹에서 이미지 다운로드
  • 깃 설치
    • 구름 IDE에는 기본값으로 깃이 설치되어 있고 설치 명령 실행시 오류
    • root@goorm:/workspace/linux# sudo apt-get install git
  • 깃허브 프로젝트 클론
  • 서버 기동을 위한 nginx 설치
    • 구름IDE에는 기본값으로 설치되어 있음
    • root@goorm:/workspace/linux# sudo apt-get install nginx
    • nginx의 default 파일에서 프로젝트 경로 수정
      • root@goorm:/workspace/linux# vi /etc/nginx/sites-available/default

  • 서버 기동
    • 프로젝트 경로로 이동
      • root@goorm:/workspace/linux# cd 10000hour/
    • 서버 기동
      • root@goorm:/workspace/linux/10000hour(main)# sudo service nginx start
    • 기동 중인 서버에 접속
      • 컨테이너 => 실행 URL과 포트 => 바로가기
    • 기동 중인 서버 현황 보기
      • root@goorm:/workspace/linux/10000hour(main)# ps aux
    • 서버 기동 중지
      • root@goorm:/workspace/linux/10000hour(main)# kill 6195
  • 루트 경로로 이동
    • root@goorm:/workspace/linux# cd ~
  • 최상단 경로로 이동
    • root@goorm:~# cd ..
  • 파일 찾기
    • root@goorm:~# find / -name test2.py
  • 현재 경로에서 파일 찾기
    • root@goorm:/workspace/linux# find . -name test2.py
  •  권한 부여 (r = 4, w = 2, x =1 / 소유자, 그룹사용자, 기타 사용자)
    • -rwx------ 1 root root   12 10월  2 11:13 test.txt*
      • root@goorm:/workspace/linux# chmod 700 test.txt
    • -rwx--x--x 1 root root   12 10월  2 11:13 test.txt*
      • ugo는 user, group, other
      • + 권한 추가, - 권한 빼기
      • x는 실행권한
      • root@goorm:/workspace/linux# chmod ugo+x test.txt
  • 압축/해제
    • -r 옵션 django 폴더의 하위 폴더까지 모두 압축
      • root@goorm:/workspace/linux# zip -r django.zip ./django
    • 해제
      • root@goorm:/workspace/linux# unzip django.zip
    • 하위 폴더에 압축 해제
      • -d  옵션 사용
      • root@goorm:/workspace/linux# upzip django.zip -d ./폴더명
  • 그 외 명령어
    • 별칭
      • alias
    • 매뉴얼
      • man
    • 도메인으로 IP 조회
      • nslookup
    • 네트워크 접속이 되는지 확인
      • ping
    • 네트워크 경로 추적(어느 단에서 장비가 고장 났는지 확인)
      • traceroute
    • 실행하고자 하는 프로그램의 경로명
      • which find
      • which python
      • which node
    • forground, backgroud : 프로세스를 백그라운드나 포그라운드로 옮기는 작업
      • fg
      • bg
      • &
        • python file.py &
          • 터미널의 백 그라운드에서 실행
          • 터미널 세션이 끊기면 종료됨
          • 버전에 따라 nohup명령과 같은 동작하기도 함
    • 프로세스 작업 출력
      • jobs
    • 네트워크 정보 출력
      • ifconfig
    • 파일 내용 확인
      • 위에서부터 10줄 표시
        • head file.py
      • 위에서부터 3줄 표시
        • head -3 file.py
      • 아래에서부터 10줄 표시
        • tail file.py
      • 아래에서부터 3줄 표시
        • tail -3 file.py
      • -F 속성 추가하면 꺼지지 않고 파일변경내용 실시간으로 갱신
        • head -F file.py
        • tail -F file.py
    • nohup
      • 데몬 형태로 실행, 터미널 세션이 끊겨도 계속 실행
        • nohup python file.py
      • 백그라운드에서 실행. 터미널 세션이 끊겨도 계속 실행됨. 종료 없이 백그라운드에서 동작하게 하고 싶다면(like Server) 해당 명령어사용이 안전. 권한은 항상 755 이상이어야 함
        • nohup python file.py &
      • 실시간으로 로그 확인
        • nohup을 사용하면 nohup.out파일이 나온다. 해당 파일에 프로세스의 출력내용이 기록된다. 
        • tail -f nohup.out
    • 서버 테스트용으로 요청
      • curl
        • 네이버 소스코드 요청
          • curl https://www.naver.com
        • index.html로 소스코드 저장
          • curl -o index.html http://www.naver.com
          • 대문자 -O를 사용하면 서버의 파일명으로 저장한다.
        • -d 다음으로 나오는 데이터를 넣어놓는 형식으로 요청, -X는 요청방식
          • curl -d {data:1, data:2} -X POST <url>
        • -H는 헤더내용 추가
          • curl -H "Content-Type: application/x-www-form-urlencoded" -X GET <url>

2024-02-15 추가

3. PM2

📌 설치

전역 설치(-g) 유의

npm i pm2 -g

📌 명령어

  • 프로세스 시작 : pm2 start --name <프로세스 이름 지정> npm -- start (npm -- start는 프로젝트 실행 명령어 이므로 프로젝트의 구동 설정에 따라 달라질 수 있음)
  • 프로세스 중단 : pm2 stop <프로세스 아이디 또는 이름>
  • 프로세스 재시작 : pm2 restart <프로세스 아이디 또는 이름>
  • 프로세스 삭제 : pm2 delete <프로세스 아이디 또는 이름>
  • 프로세스 목록 확인 : pm2 status
  • 프로세스 로그 확인
    • 전체 : pm2 log
    • 특정 프로세스 : pm2 log <프로세스 아이디 또는 이름>
  • pm2 모니터링 : pm2 monit

 

728x90
반응형