본문 바로가기

728x90
반응형

Linux(Ubuntu)

(7)
Linux: 가상환경 메모리 설정 메모리를 적게해서 부하테스트를 하는 방법을 알아보니, ulimit 이라는 방법이 있다. $ ulimit -v 200000 위와 같은 식으로 하면 현재 사용하는 shell의 memory가 200000kb로 설정된다. 해당 쉘과, 자식 프로세스에만 영향을 미치고, 쉘을 껐다 키면 변경 전 상태로 다시 돌아간다. 일시적이 아니라 아예 설정값을 바꾸려면 .bashrc 등에 위의 명령어를 기재하면 된다. 도커 이미지를 만들어서 메모리와 cpu 값을 정해서 하는 방법도 있지만, 간단하게 테스트 할 때는 ulimit을 사용하는 것이 편하다.
Linux shell: alias 대신 함수로 동적으로 명령어 실행하기 # dynamic command FastAPI를 실행하는 uvicorn main:app --reload 나 Django를 실행하는 python manage.py runserver 위와 같은 명령어를 실행하는 경우에 너무 길어서 alias 등록을 할 수 있는데, port 번호를 그때그때 원하는 대로 실행시키려면 alias 대신에 함수를 이용하면 된다. 위 두 명령어는 기본적으로 8000 포트로 실행되는데, 포트번호를 기입해서 명령어를 실행하면 해당 포트로 실행이 되도록 bashrc에 등록해보자 FastAPI를 8001번 포트로 실행시킨다 하면 다음과 같다 uvicorn main:app --reload --port 8001 위 명령어들을 shell에 다음과 같이 등록해보자 1. .bashrc 파일 오픈 nano ~/.bashrc 2. 명령..
Linux(ubuntu) 실행 중인 프로세스 죽이기 #netstat # fuser # port # kill Linux Ubuntu 실행중인 프로세스 죽이기 실행중 포트 확인 netstat -tnlp 실행중인 프로세스 포트번호로 죽이기 (ex 8000번 포트) sudo fuser -k 8000/tcp pid번호로 죽이기 1) pid 번호 확인 ps -ef 2) pid 번호로 죽이기 (ex pid 번호: 5345) sudo kill -9 5345 (저는 개인적으로 fuser를 많이 쓰게 되더군요.)
scp (Secure Copy Protocol) in Linux # ssh cp scp ssh 환경의 파일(디렉토리)를 cp(복사) 해오는 명령어 $ scp -r root@210.180.XXX.XXX:/root/workspace/tech_repo_list/REPO ./ $ scp -r root@210.180.XXX.XXX:/root/ADMIN_REPO ./ ssh로 접속한 곳의(root@210.180.XXX.XXX:) 해당 폴더를(/root/workspace/tech_respo_list/REPO) 지정한 곳에(./) 복사한다(scp) 재귀적으로 (-r) * 재귀적으로? -r 함수의 결과값을 다시 변수로 받아서 처리 a -> f(a) -> f(f(a)) -> f(f(f(a))) ... 디렉토리를 복사하는 경우, 디렉토리 안에는 파일외에 또 디렉토리가 있을 수 있다. 재귀적으로 복사하지..
파일 압축 # tar, tar.gz, zip tar 압축 tar -cvf 압축파일명.tar 압축대상 ex) tar -cvf aa.tar aa tar 압축 풀기 tar -xvf 압축파일명.tar ex) tar -xvf aa.tar tar.gz 압축 tar -zcvf 압축파일명.tar.gz 압축대상 ex) tar -zcvf aa.tar.gz aa tar.gz 압축 풀기 tar -zxvf 압축파일명.tar.gz ex) tar -zxvf aa.tar.gz zip 압축 현재 디렉토리를 aa.zip으로 압축 zip aa.zip ./* 현재 디렉토리 및 하위 디렉토리까지 모두 압축(재귀) zip aa.zip -r ./* zip 압축 풀기 unzip 압축파일.zip 현재 디렉토리에 압축 해제 unzip aa.zip 특정 디렉토리에 압축 해제 unzip abc.z..
Linux 기초: Kernel 질문: Linux 커널의 가장 중요한 역할은 무엇입니까? 답변(Chat GPT): Linux 커널은 Linux 운영 체제의 핵심입니다. 메모리, 프로세서 및 장치와 같은 시스템의 하드웨어 리소스를 관리하고 운영 체제 및 응용 프로그램에 서비스를 제공합니다. Linux 커널의 가장 중요한 역할 중 하나는 시스템의 하드웨어와 소프트웨어 사이에서 중개자 역할을 하는 것입니다. 하드웨어에 대한 균일한 인터페이스를 제공하여 응용 프로그램 및 기타 소프트웨어가 기본 하드웨어의 세부 사항을 알 필요 없이 하드웨어 리소스에 액세스할 수 있도록 합니다. Linux 커널은 또한 운영 체제와 응용 프로그램에 여러 가지 중요한 서비스를 제공합니다. 파일 시스템, 네트워킹 및 프로세스 관리를 관리하고 애플리케이션이 이러한 서비..
Linux 기초: ABI / ELF ABI Application Binary Interface 두 개의 컴파일된 프로그램이 서로 상호 작용할 수 있는 방법 또는 프로그램이 라이브러리와 상호 작용할 수 있는 방법을 정의하는 표준을 나타냅니다. ABI는 데이터 유형의 크기 및 정렬, 함수 호출 규칙, 메모리의 데이터 표현을 포함하여 프로그램 간에 데이터가 전달되는 방식에 대한 세부 정보를 지정합니다. 또한 프로그램이 시스템 호출, 라이브러리 함수 및 기타 공유 리소스와 같은 외부 리소스에 액세스하고 조작하는 방법을 정의합니다. ABI는 서로 다른 아키텍처 및 플랫폼용으로 컴파일된 프로그램이 동일한 ABI를 준수하는 한 서로 상호 운용할 수 있도록 하기 때문에 중요합니다. 이를 통해 소프트웨어 개발자는 다양한 시스템에서 쉽게 배포하고 실행할 수..

728x90
반응형