개발환경 : AWS ec2 - ubuntu 18.04 터미널을 보기 좋게 쓰기 위해 개발환경에 oh-my-zsh를 설치해보자. zsh 설치 sudo apt install zsh -y 기본 쉘을 zsh로 변경 chsh -s /bin/zsh 만약 여기서 변경이 안되고 chsh:PAM authentication failed 오류가 발생했다면, 다음 순서를 따라하고 다시 쉘을 변경해준다. 1.chsh 설정 파일을 vim으로 접속 sudo vim /etc/pam.d/chsh 2.해당 파일의 auth required pam_shells.so 주석처리 oh-my-zsh 설치 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/too..
프로젝트를 하다보면 종종 SSH로 연결된 서버에 파일 혹은 폴더를 전송해야 하는 경우가 있다. 이때는 SCP를 활용한다. 로컬 ➡️ 원격 서버 scp -P 포트번호 -r {전송할 폴더 위치} {전송한IP의 ID}@{전송할IP}:{도착주소} 원격 서버 ➡️ 로컬 scp -P {원격서버포트} -r {원격서버ID}@{원격서버 IP or DDNS}:{전송하려는 파일 절대경로} {전송받는 로컬 폴더 절대경로} -r 옵션은 폴더를 전송할 때 사용한다. 파일을 전송한다면 생략해도 된다. 만약 원격 서버 ➡️ 로컬을 진행할때, ssh 키 등록이 안되어있어 에러가 난다면, 로컬의 ssh public 키를 원격 서버의 ~/.ssh/authorized_keys 에 등록해준다.
리눅스 환경에서 프로그램을 돌리다보면 에러 메시지가 뜨지 않고 killed라는 글자만 쓰여있는 경우가 있다. 이 때는 다음과 같이 커맨드에 입력해주면 process가 강제종료된 원인을 알 수 있다. 대부분은 out of memory문제이다. dmesg | grep -E -i -B100 'killed process'
wget의 개념 wget은 webget의 줄임말 HTTP, HTTPS, FTP와 FTPS 등 가장 널리 사용되는 인터넷 프로토콜을 이용해 파일을 검색하기 위한 자유 소프트웨어 패키지 상호작용 하지 않는 (non-interactive) 커맨드라인 툴이기 때문에 스크립트, cron 작업, X-Windows(GUI) 지원이 없는 터미널에서 쉽게 호출됨 특징 REST와 RANGE를 사용해서 중단된 다운로드 재개 가능 파일 이름 와일드카드를 사용하고, 디렉토리를 재귀적으로 미러링 가능 Windows, 대부분의 UNIX-like OS에서 사용 가능 HTTP 프록시, 쿠키와 영속적인 커넥션 지원 미러링할 때 문서를 다시 다운로드 해야 하는지 여부 결정을 위해 로컬 파일 타임스탬프 사용 재귀적 미러링이란? 특정 디렉토..
nohup이란? "no hangups"라는 의미로 리눅스, 유닉스에서 명령어나 쉘 스크립트 파일(*. sh)을 데몬 형태로 실행시키는 프로그램이다. 데몬 형태로 실행시킨다는 것은, UI 없이 시스템 백그라운드에서 동작하는 프로그램을 지칭한다. nohup을 사용하는 이유 nohup은 터미널이나 세션이 종료된 후에도 해당 프로세스가 종료되지 않고 지속적으로 동작하게 해준다. 즉 리소스를 끊지 않는 이상, (로컬의 컴퓨터를 종료하거나 인스턴스를 종료하거나 프로세스를 죽이거나 등등) 계속해서 프로세스는 동작하게 된다. 오랜 시간이 걸리는 스크립트나, 항상 켜두어야 하는 서버 등을 배포할 때 주로 사용한다. 사용방법은 프로그램 실행어 앞에 nohup을 붙여주면 되고, 실행 시 실행한 경로에 "nohup.out"이..
문제점 WSL 2 consumes massive amounts of RAM and doesn't return it · Issue #4166 · microsoft/WSL Your Windows build number: 18917 What's wrong / what should be happening instead: WSL 2 starts using huge amounts of RAM after a while, just using it like normal. At the moment I'm using ph... github.com WSL을 사용하고, 이 글 까지 읽게 된 사람들은 모두 공감하겠지만 WSL이 램을 잡아먹는 비율은 어마어마하다. 이러한 현상은 WSL2의 특성과 리눅스의 특성의 환상의 콜라보로 인..
에러 원인 WSL을 사용하다보면, systemd 명령을 실행했을때 종종 systemd 환경이 아니라는 오류가 발생한다. 원인은 WSL은 루트 시스템 프로세스가 systemd가 아닌 init이기 때문이다. pstree 루트 시스템 프로세스는 pstree 명령을 통해 확인할 수 있다. pstree 명령어는 실행되고 있는 프로세스들간의 연결구조를 트리형식으로 보여준다. 최근 리눅스 진영은 init에서 systemd로 바뀌는 추세라고 하며, WSL은 아직 그것을 반영하지 못하고 있는 것이라고 한다.(잘 모름) 해결법 cd / cd etc sudo vim wsl.conf 우선 위 명령어로, WSL에서 init 시스템 프로세스를 systemd 체계로 바꿔주어야 한다. [boot] systemd=true 해당 파일에..
window wsl2 환경에서 프로그래밍을 할 때, sudo apt-get update시 종종 볼수 있는 "release file is not valid yet" 이라는 에러가 있다. 예시) 이 때는 다음 명령어로 하드웨어 시계(RTC)값을 시스템 시계로 동기화하여 해결할 수 있다. sudo hwclock --hctosys