OS 29

[Unix] homebrew 설치(mac os)

맨날 Linux에서 systemctl 명령어 사용해서 프로그램 기동하다가 Unix에는 systemctl 명령어가 없어서 찾아보니까 brew 명령어를 사용해야 한다고 한다. brew 명령어는 homebrew라는 프로그램을 설치하여 사용할 수 있다. ( https://brew.sh/ko/ ) homebrew란 macOS용 패키지 관리자로, 소프트웨어 패키지를 쉽게 설치하고 관리할 수 있도록 도와주는 역할을 한다.간편한 설치: 복잡한 설치 과정을 단순화하여 명령어 한 줄로 소프트웨어를 설치할 수 있다.의존성 관리: 필요한 라이브러리나 패키지를 자동으로 관리한다.커뮤니티 지원: 많은 오픈소스 패키지가 homebrew를 통해 제공되며, 사용자들이 쉽게 접근할 수 있다. homebrew 설치 명령어/bin/bash..

OS/Unix 2024.08.26

[Unix/Error] Mac 터미널에서 Operation not permitted 에러 발생

맥에서 PostgreSQL 16을 설치하다가 소유자 변경해야 할 일이 생겨 chown 명령어를 사용하였는데, Operation not permitted(허가받지 않은 작업) 에러가 발생하였다.찾아보니 이는 Mac OSX의 시스템 통합 보호(SIP, System Integrity Protection) 때문에 발생하는 문제라고 하여 터미널에 대한 전체 디스크 접근 권한을 ON으로 변경하는 작업을 했다. 1. 좌측 상단의 사과 클릭 -> 시스템 설정 클릭 -> 개인정보 보호 및 보안 클릭 -> 전체 디스크 접근 권한 클릭 2. 터미널을 on으로 변경 이렇게 하면 소유자 변경이 될 줄 알았으나 Operation not permitted 에러는 여전히 발생하였다. 다시 찾아봤더니 root가 아닌 계정으로 소유자 ..

OS/Unix 2024.08.25

[Linux/Error] java.net.BindException: Address already in use

위 에러는 현재 실행한 프로세스의 포트가 이미 다른 데서 사용 중이어서 발생한 에러다.이를 해결하기 위해선 다음 명령어를 입력한다. 먼저 netstat 명령어로 사용 중인 프로세스의 PID 정보를 확인한다.netstat -nap | grep 포트번호예) netstat -nap | grep 9003- 옵션 -n : 포트번호- 옵션 -a : 모든 프로세스 표시- 옵션 -p : 프로세스의 PID 정보위 사진에서 맨 오른쪽의 595880/haproxy에서 595880이 이미 사용 중인 포트 9003 프로세스의 PID이다. 저 PID를 kill 명령어로 종료시킨 후 원래 실행하려던 프로세스를 실행하면 정상적으로 실행될 것이다.kill -9 PID예) kill -9 595880

OS/Linux 2024.05.28

[Linux] vi 모드에서 한 줄 복사 후 붙여넣는 명령어

타임존 테스트를 위해 profile 파일을 수정하다가 테스트가 끝나면 원복해야 하는데 수정 전 내용을 다시 찾아야하는 과정이 귀찮다는 생각이 문득 들었다. 그래서 수정하려는 줄을 싹 복사한 후 그 밑줄에 붙여넣기 하는 vi 편집기 명령어를 찾아보았다. 나는 test.txt를 임의로 만들어 명령어를 사용할 것이다. 일단 vi로 test.txt 파일을 연다. test.txt를 열면 아래와 같이 텍스트가 작성되어 있다. 나는 마지막 문장을 복사할 것이다. 그러려면 마지막 문장인 'COPY & PASTE ...'로 커서를 이동시킨 후 yy 명령어를 사용하여 복사한다. vi 모드에서 'y'를 연속으로 2번 입력하면 된다. yy 명령어를 입력하면 아무 것도 뜨는 것이 없겠지만, 이미 복사가 된 상태이다. 이제 붙여..

OS/Linux 2024.04.01

[Linux] readlink 명령어로 JAVA_HOME 경로 찾기

보통 JAVA_HOME 경로를 찾을 때 /usr/bin/java라는 심볼릭 링크(symbolic link)를 타고타고 들어간다. 이 방법은 너무 비효율적이라 생각해서 찾다보니 readlink라는 명령어를 알게 되었다. readlink 명령어를 사용하여 /usr/bin/java를 입력하면 /usr/bin/java 링크의 원본 경로를 찾을 수 있다. $ readlink /usr/bin/java 이때, f 옵션을 추가하면 해당 링크의 절대 경로를 알려준다. $ readlink -f /usr/bin/java 실제 JAVA_HOME은 f 옵션을 사용했을 때 출력되는 절대 경로이다.

OS/Linux 2024.02.18

[Linux] JAVA_HOME 경로를 못 잡을 때 해결방법

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/jre/bin/java/bin/java: Not a directory 서버에서 한 프로세스를 기동시켰는데 계속 JAVA 경로를 제대로 못 잡고 있었다. 분명 자바 경로를 설정했는데 이상해서 .bash_profile을 다시 보니 export JAVA_HOME을 작성하는 걸 빼먹었다. 해결 위와 같은 에러가 발생한다면 .bash_profile에서 다음과 같이 export를 추가한다. JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/jre export JAVA_HOME export JAVA_HOME을 추가하니 정상적으로 프로..

OS/Linux 2024.01.31

[Linux] Resource temporarily unavailable(자원이 일시적으로 사용 불가능함)

Resource temporarily unavailable(자원이 일시적으로 사용 불가능함) 정상적으로 잘되던 계정 전환이 갑자기 되지 않으면서 다음과 같이 에러가 떴다. 그래서 계정에 할당된 리소스를 확인해보았다. 이는 /etc/security/limits.conf에서 확인하면 된다. vi /etc/security/limits.conf root soft nofile 81920 root hard nofile 81920 root soft nproc 81920 root hard nproc 81920 위와 같이 root에는 리소스가 할당되어 있었으나, 내가 접속하려는 계정은 그렇지 않았다. 그래서 해당 계정도 /etc/security/limits.conf에 추가하였다. vi /etc/security/limit..

OS/Linux 2023.10.16

[Windows] cmd에서 javac 명령어가 안될 때

cmd에서 javac 명령어가 안될 때 cmd에서 java파일을 class파일로 컴파일하려고 javac 명령어를 입력했는데 다음과 같은 문구가 출력됐다. 이는 자바가 깔려있더라도 시스템 변수를 설정하지 않아 javac.exe 파일이 실행되지 않았기 때문에 발생한 것이다. 해결방법은 다음과 같다. 1. 폴더에서 '내 PC' 우클릭 후 '속성'을 클릭한다. 2. 관련 설정에서 '고급 시스템 설정'을 클릭 후 '환경 변수' 버튼을 클릭한다. 3. '새로 만들기' 버튼 클릭 후 javac 실행파일이 있는 경로를 작성 후 등록한다. ex) 변수 이름: JAVA_HOME / 변수 값: Java설치경로/bin 4. 변수 Path에 대해 '편집' 버튼을 클릭한 후 '새로 만들기' 버튼 클릭하여 3번에서 등록한 변수를 ..

OS/Windows 2023.08.28

[OS] 가상 메모리(Virtual Memory)

가상 메모리(Virtual Memory) 가상 메모리란? 보조 메모리가 주 메모리의 일부인 것처럼 사용할 수 있는 메모리로, 컴퓨터가 물리 메모리 부족을 보완하여 RAM에서 디스크 스토리지로 일시적으로 데이터를 전송할 수 있도록 한다. 가상 메모리는 최근에 사용되지 않은 데이터를 하드 드라이브나 SSD와 같은 스토리지 장치로 스왑하여 RAM을 확보한다. 그리고 시스템 성능 향상과 멀티태스킹 및 대규모 프로그램 사용에 있어 중요하다. 그러나 가상 메모리는 RAM보다 매우 느리기 때문에 이에 지나치게 의존하면 안된다. 가상 메모리의 작동방식 가상 메모리는 HW와 SW를 모두 사용해서 작동한다. 응용프로그램이 사용 중일 경우 해당 프로그램의 데이터가 RAM을 사용하여 실제 주소에 저장된다. 메모리 관리 장치(..

OS 2023.08.26

[Linux] 파일 내용만 지우기

파일 내용만 지우기 abc.txt 파일에 위와 같은 내용이 담겨있다. abc.txt 파일 자체를 삭제하지 않고 안에 내용만 지우고 싶을 땐 다음 명령어를 입력하면 된다. $ cat /dev/null > 파일명 -- 만약 abc.txt 파일 내용을 삭제하고 싶다면 $ cat /dev/null > abc.txt 처음에 $ cat abc.txt 입력했을 땐 abc.txt 파일 내용이 출력됐었는데 지금은 파일 내용이 지워져서 출력되지 않는다. cf) /dev/null : 윈도우의 휴지통과 비슷한 역할을 하는 리눅스의 블랙홀이다.

OS/Linux 2023.08.22