글

라벨이 linux인 게시물 표시

tmux 사용법

 `tmux`는 터미널 멀티플렉서(terminal multiplexer)로, 하나의 터미널에서 여러 개의 세션을 만들고, 창을 나누고, 백그라운드에서도 세션을 유지할 수 있게 해주는 도구야. SSH로 서버에 접속할 때 특히 유용하지. 기본적인 사용법을 아래에 정리해볼게: * * * * * ### ✅ 기본 명령어 | 동작 | 명령어 | | --- | --- | | 새 세션 생성 | `tmux` 또는 `tmux new -s 세션이름` | | 세션 목록 보기 | `tmux ls` | | 세션에 다시 접속 | `tmux attach -t 세션이름` | | 세션 종료 | `exit` 또는 `Ctrl-b` → `:` → `kill-session` | | 세션 분리(detach) | `Ctrl-b` 누른 후 `d` | * * * * * ### ✅ 창/패널 관련 | 동작 | 키 조합 | | --- | --- | | 새 창 생성 | `Ctrl-b` → `c` | | 창 간 이동 | `Ctrl-b` → 숫자 (예: `0`, `1`) | | 창 이름 변경 | `Ctrl-b` → `,` | | 수평 분할 | `Ctrl-b` → `"` | | 수직 분할 | `Ctrl-b` → `%` | | 패널 간 이동 | `Ctrl-b` → 화살표 키 | | 패널 종료 | 해당 패널에서 `exit` | | 패널 크기 조절 | `Ctrl-b` 누른 상태로 `Ctrl` + 화살표 | * * * * * ### ✅ 자주 쓰는 팁 -   세션이 끊기더라도(예: SSH 접속 종료) 세션은 유지돼서 다시 `tmux attach -t 세션이름` 하면 이어서 작업할 수 있어. -   `.tmux.conf` 파일을 이용해 키 바인딩이나 색상 등을 커스터마이징할 수 있어.

externally-managed-environment 리눅스 pip 안되는 문제

리눅스는 전역으로 pip으로 깔면 안되고 가상환경을 만들거나 해야 하는듯 externally-managed-environment https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-every-time-i-use-pip-3 The proper way to install Python libraries and applications is to install them in a Python virtual environment whenever possible  (the exceptions to this rule are quite rare). The error message describes two common ways to accomplish this: either by creating a virtual environment yourself, or for applications, by using  pipx —a tool which will create a virtual environment for you and install the application in that virtual environment. pipx  is strongly recommended for installing  applications , i.e., when you will primarily use the installed code from the command line. On Debian systems and Debian-based systems such as Ubuntu, you can install  pipx  using  apt , and then use  pipx  to install the application: apt install pipx pipx install some-python-ap...

프로그램 실행 systemctl vs 백그라운드

 ELK Stack (Elasticsearch, Logstash, Kibana)을 설치하는 방법은 여러 가지가 있지만, `systemctl`을 이용한 설치는 ELK Stack 각 컴포넌트를 시스템 서비스로 관리할 수 있게 해주어 많은 장점을 제공합니다. `systemctl`을 사용하면 다음과 같은 이점이 있습니다: 1. **서비스 관리**: 각 ELK 컴포넌트를 시스템 서비스로 등록하여 쉽게 시작, 중지, 재시작할 수 있습니다. 2. **자동 시작 설정**: 시스템 부팅 시 자동으로 ELK 컴포넌트를 시작하도록 설정할 수 있습니다. 3. **상태 모니터링**: `systemctl status` 명령어를 통해 서비스의 현재 상태를 확인할 수 있습니다. 4. **로그 관리**: 시스템 로그를 통해 서비스의 문제를 쉽게 진단할 수 있습니다. 5. **보안**: 서비스를 더 안전하게 운영할 수 있는 보안 옵션을 제공합니다. 그러나 ELK Stack을 설치하기 전에는 시스템 요구 사항, 네트워크 설정, 보안 설정 등을 고려해야 합니다. 또한, ELK Stack을 Docker 컨테이너나 Kubernetes 클러스터와 같은 컨테이너 오케스트레이션 환경에서 실행하는 것도 고려할 수 있습니다. 이러한 방법은 배포 및 관리를 더욱 효율적으로 만들어줍니다. 설치 방법은 사용하고 있는 리눅스 배포판, 시스템 환경, 사용 목적에 따라 달라질 수 있으니, 자세한 설정 방법은 공식 문서를 참조하는 것이 좋습니다. --- 리눅스에서 프로세스를 백그라운드에서 실행하는 방법 중 하나는 명령어 끝에 `&`를 붙이는 것입니다. 이 방법은 터미널 세션과 독립적으로 프로세스를 실행시키는 데 유용합니다. 하지만, 이 방식에는 몇 가지 주의할 점이 있습니다: 1. **세션 종료 시 프로세스 종료**: 터미널 세션을 종료하면 백그라운드에서 실행 중인 프로세스도 종료될 수 있습니다. 이를 방지하기 위해 `nohup` 명령어를 사용할 수 있습니다. 예를 들어, `nohup 명령어 &` ...

[리눅스 명령어] systemctl

 `systemctl`은 리눅스에서 사용되는 명령어로, `systemd` 시스템 및 서비스 매니저를 제어하기 위해 사용됩니다. `systemd`는 현대 리눅스 배포판에서 널리 사용되는 초기화 시스템(init system)과 서비스 매니저로, 시스템 부팅 및 관리를 담당합니다. `systemctl`을 사용하여 시스템 서비스를 시작, 중지, 재시작, 활성화(부팅 시 자동 시작), 비활성화(부팅 시 자동 시작 안 함) 할 수 있습니다. 또한 시스템의 현재 상태, 서비스 상태, 시스템 로그 등을 확인하는 데에도 사용됩니다. 예를 들어, 특정 서비스를 시작하려면 `systemctl start 서비스명`, 상태를 확인하려면 `systemctl status 서비스명`과 같이 사용합니다. 이러한 기능들 덕분에 `systemctl`은 리눅스 시스템 관리에 있어서 중요한 도구 중 하나로 여겨집니다. ELK Stack으로 예를 들자면,  ELK Stack (Elasticsearch, Logstash, Kibana)을 설치하는 방법은 여러 가지가 있지만, `systemctl`을 이용한 설치는 ELK Stack 각 컴포넌트를 시스템 서비스로 관리할 수 있게 해주어 많은 장점을 제공합니다. `systemctl`을 사용하면 다음과 같은 이점이 있습니다: 1. **서비스 관리**: 각 ELK 컴포넌트를 시스템 서비스로 등록하여 쉽게 시작, 중지, 재시작할 수 있습니다. 2. **자동 시작 설정**: 시스템 부팅 시 자동으로 ELK 컴포넌트를 시작하도록 설정할 수 있습니다. 3. **상태 모니터링**: `systemctl status` 명령어를 통해 서비스의 현재 상태를 확인할 수 있습니다. 4. **로그 관리**: 시스템 로그를 통해 서비스의 문제를 쉽게 진단할 수 있습니다. 5. **보안**: 서비스를 더 안전하게 운영할 수 있는 보안 옵션을 제공합니다. 그러나 ELK Stack을 설치하기 전에는 시스템 요구 사항, 네트워크 설정, 보안 설정 등을 고려해야 합니다. 또한...

`kill` vs `pkill`

 `kill`과 `pkill`은 프로세스를 종료하는 데 사용되는 리눅스 명령어들이지만, 사용 방식과 목적이 약간 다릅니다. 1. **`kill`**:     - `kill`은 프로세스 ID (PID)를 직접 지정하여 특정 프로세스를 종료합니다.     - 프로세스를 종료하려면 먼저 그 프로세스의 PID를 알아야 합니다. 이를 위해 `ps` 명령어나 `pgrep` 등의 다른 도구를 사용해야 할 수도 있습니다.     - 예:       ```bash       ps aux | grep elasticsearch       kill [PID]       ``` 2. **`pkill`**:     - `pkill`은 프로세스 이름 또는 다른 패턴을 기반으로 프로세스를 찾아서 종료합니다. 따라서 PID를 직접 지정할 필요가 없습니다.     - 이는 여러 프로세스를 일치하는 이름이나 패턴으로 한 번에 종료할 때 특히 유용합니다.     - 예:       ```bash       pkill -f elasticsearch       ``` `pkill`을 사용하는 주된 이유는 특정 프로세스의 PID를 따로 조회하지 않고도 프로세스 이름이나 패턴을 통해 바로 프로세스를 종료할 수 있기 때문입니다. ELK 스택과 같이 여러 컴포넌트로 구성된 시스템에서는 `pkill`이 `kill`보다 종종 더 편리하게 사용될 수 있습니다.

패키지 관리 도구 apt-get yum

## 도구 있는지 확인  시스템에 `apt-get` (데비안/우분투 기반 시스템의 패키지 관리 도구) 또는 `yum` (Red Hat 기반 시스템의 패키지 관리 도구)이 있는지 확인하려면 여러 가지 방법을 사용할 수 있습니다. 1. **명령어의 존재 확인**:    `which` 또는 `command -v`를 사용하여 명령어의 경로를 확인합니다.    ```bash    which apt-get    ```    또는    ```bash    command -v apt-get    ```    위 명령어들 중 하나를 실행하면 `apt-get`의 경로가 출력됩니다. 만약 아무런 출력이 없다면 해당 명령어는 시스템에 설치되어 있지 않습니다.    같은 방식으로 `yum`도 확인할 수 있습니다. 2. **버전 확인**:    설치된 패키지 관리 도구의 버전을 확인하려면 다음과 같이 실행합니다.    ```bash    apt-get --version    ```    또는    ```bash    yum --version    ```    이 명령어들은 각각의 패키지 관리 도구의 버전 정보를 출력합니다. 만약 해당 도구가 설치되어 있지 않다면, 오류 메시지가 출력됩니다. 이러한 방법들을 통해 시스템에 어떤 패키지 관리 도구가 설치되어 있는지, 그리고 그 버전은 무엇인지 확인할 수 있습니다. ## `yum` vs  `apt-get` `yum`과 `apt-get`은 리눅스 배포판에 따라 사용되는 주요 패키지 관리 도구입니다. 각 도구는 배포판의 유형과 철학에 따라 설계되었으며, 특정한 목적과 기능을 갖추고 있습니다. 이...

리눅스 명령어 cat grep 그리고 패턴

`cat`과 `grep`을 함께 사용하는 것은 파일에서 특정 패턴이나 문자열을 검색할 때 유용합니다. 그러나 일반적으로 `grep`만으로도 파일 내부를 검색할 수 있기 때문에 `cat`을 꼭 사용할 필요는 없습니다. 그렇지만 `cat`과 `grep`을 함께 사용하는 방법을 이해하는 것은 중요합니다. 1. **기본 예시**:    ```bash    cat filename.txt | grep "search_term"    ```    이 명령어는 `filename.txt` 파일에서 "search_term" 문자열을 검색하여 일치하는 모든 라인을 출력합니다. 2. **여러 파일에서 검색**:    ```bash    cat file1.txt file2.txt | grep "search_term"    ```    `file1.txt`와 `file2.txt`의 내용에서 "search_term" 문자열을 검색하여 일치하는 모든 라인을 출력합니다. 3. **대소문자 구분 없이 검색**:    ```bash    cat filename.txt | grep -i "search_term"    ```    `-i` 옵션을 사용하면 대소문자를 구분하지 않고 "search_term"을 검색합니다. 4. **라인 번호와 함께 검색 결과 출력**:    ```bash    cat filename.txt | grep -n "search_term"    ```    `-n` 옵션을 사용하면 일치하는 문자열이 있는 라인의 번호도 함께 출력됩니다. 다시 한번 강조하지만, `cat` 없이 `grep`만 사용하여 파일 내부를 직접 검색할 수 있습니다. 예를 들어: ```bash grep "search_term" ...

리눅스 명령어 ll cat

1. **ll**    - **설명**: `ll`은 `ls -l`의 약자로, 파일과 디렉터리에 대한 상세한 정보를 표시하는 명령어입니다. 여기에는 파일의 권한, 링크 수, 소유자, 그룹, 크기, 마지막 수정 날짜 및 파일/디렉터리 이름이 포함됩니다.    - **예시**:      ```bash      ll      ```      이 명령어를 사용하면 현재 디렉터리의 모든 파일과 디렉터리에 대한 상세 정보를 볼 수 있습니다. 2. **cat**    - **설명**: `cat`은 concatenate(연결)의 줄임말로, 파일의 내용을 화면에 출력하거나 여러 파일을 함께 연결하는 데 사용됩니다. 주로 파일의 내용을 빠르게 확인할 때 사용합니다.    - **예시**:      - 파일 내용 출력:        ```bash        cat filename.txt        ```        이 명령어는 `filename.txt`의 내용을 화면에 출력합니다.      - 여러 파일 연결:        ```bash        cat file1.txt file2.txt > combined.txt        ```        `file1.txt`와 `file2.txt`의 내용을 합쳐 `combined.txt`에 저장합니다. `ll`은 파일과 디렉터리의 상세한 정보를 확인하기 위해, `cat`은 파일의 내용을 빠르게 확인하거나 파일을 연결하...

리눅스 명령어 free disk lscpu fdisk

1. **free**    - **설명**: 시스템의 전체 메모리 사용량, 여유 메모리, 스왑 메모리에 관한 정보를 보여줍니다.    - **예시**:      ```bash      free -h      ```      `-h` 옵션은 사람이 읽기 쉬운 형태로 출력합니다 (예: M은 메가바이트를 의미). 2. **df -h** (참고로, `disk -h`는 올바른 명령어가 아닙니다. 아마 `df -h`를 의미하셨을 것 같습니다.)    - **설명**: 파일 시스템의 전체 용량, 사용된 용량, 여유 용량, 사용률 등의 정보를 제공합니다.    - **예시**:      ```bash      df -h      ```      `-h` 옵션은 사람이 읽기 쉬운 형태로 출력합니다. 3. **lscpu**    - **설명**: CPU 아키텍처에 관한 정보를 제공합니다. 이를 통해 CPU의 속성, 코어 수, 소켓 수 등을 파악할 수 있습니다.    - **예시**:      ```bash      lscpu      ``` 4. **fdisk -l**    - **설명**: 연결된 모든 디스크와 해당 파티션 정보를 표시합니다.    - **예시**:      ```bash      sudo fdisk -l      ```      관리자 권한이 필요한 경우 sudo를 사용하여 명령어를 실행할 수 있습니다. 이 명령어들은 리눅스...

nohup 명령어로 세션과 독립적으로 백그라운드에서 실행하기

 `nohup`은 "no hang up"의 줄임말로, 쉘 스크립트나 명령어를 터미널 세션과 독립적으로 백그라운드에서 실행하게 하는 리눅스/유닉스 명령어입니다. 터미널이나 쉘 세션에서 프로그램을 실행하면, 해당 세션을 종료할 때 프로그램도 함께 종료됩니다. 그러나 `nohup`을 사용하면, 사용자가 로그아웃하거나 터미널을 종료하더라도 프로세스가 계속 실행되게 할 수 있습니다. **사용 방법**: ``` nohup 명령어 &  ``` `&`는 명령어를 백그라운드에서 실행하라는 의미입니다. 예를 들어, `my_script.sh` 스크립트를 `nohup`으로 실행하려면 다음과 같이 합니다: ``` nohup ./my_script.sh & ``` 기본적으로, `nohup`은 `nohup.out`이라는 파일에 명령어의 출력을 저장합니다. 다른 파일로 출력을 리다이렉트하려면: ``` nohup ./my_script.sh > my_output.log & ``` `nohup`은 오랜 시간 동안 실행되는 작업, 큰 데이터셋의 처리, 원격 서버에서의 작업 등에서 유용하게 사용됩니다.

리눅스 명령어

리눅스 명령어 기본 설명 1. **ls**:    - `ls` 명령어는 "list"의 약자로, 디렉터리의 내용을 나열합니다.    - 다양한 옵션들을 통해 출력 결과를 사용자가 원하는 대로 조절할 수 있습니다.      - `-l`: 상세한 정보(권한, 소유자, 크기, 수정일 등)와 함께 목록을 출력합니다.      - `-a`: 숨겨진 파일을 포함해 모든 파일을 출력합니다.      - `-h`: 크기를 사람이 읽기 쉬운 형식으로 출력합니다. 2. **df**:    - `df`는 "disk free"의 약자로, 사용 가능한 디스크 공간을 보여줍니다.    - 일반적으로 파일 시스템별로 사용된 공간과 사용 가능한 공간을 표시합니다.      - `-h`: 크기를 사람이 읽기 쉬운 형식으로 출력합니다. 3. **du**:    - `du`는 "disk usage"의 약자로, 디렉터리나 파일이 사용하고 있는 디스크 공간의 크기를 보여줍니다.      - `-h`: 크기를 사람이 읽기 쉬운 형식으로 출력합니다.      - `-s`: 주어진 경로의 총 사용량만 표시합니다. 4. **ln**:    - `ln` 명령어는 파일이나 디렉터리에 대한 링크를 생성합니다.    - 기본적으로 하드 링크를 생성하지만, `-s` 옵션을 사용하면 심볼릭 링크(소프트 링크)를 생성할 수 있습니다. 5. **top**:    - `top` 명령어는 시스템의 현재 상태를 실시간으로 모니터링하며, CPU 사용률이 높은 프로세스 순서대로 출력합니다.    - 이를 통해 어떤 프로세스가 리소스를 많이 사용하고 있는지 파악할 수 있습니다. 6. **vi**:   ...

wine 툴

당장 필요하지는 않아서 설치는 안하지만 그냥 이름이 마음에 들어서 Wine (Wine Is Not an Emulator)은 유닉스와 유닉스 계열 운영 체제 (예: Linux, macOS)에서 Microsoft Windows 응용 프로그램을 실행하기 위한 소프트웨어 레이어입니다. 이름에서 알 수 있듯이 Wine은 실제로는 "에뮬레이터"가 아니라, Windows API를 유닉스 및 유닉스 계열 운영 체제에 구현한 것입니다. macOS에서의 Wine: 용도: macOS 사용자가 Windows 전용 소프트웨어를 실행할 수 있게 합니다. 동작 방식: Wine은 Windows 응용 프로그램이 원래 사용하려는 Windows API와 DLL을 유닉스 환경에서 실행 가능한 형태로 "번역"합니다. 성능: 일반적으로, Wine을 통해 실행되는 응용 프로그램은 네이티브 Windows 환경에서 실행되는 것에 비해 성능 저하가 적습니다. 그러나 모든 Windows 응용 프로그램이 완벽하게 작동하는 것은 아닙니다. 설치: Homebrew와 같은 패키지 관리자를 사용하거나 공식 Wine 웹사이트에서 바이너리를 직접 다운로드할 수 있습니다. 주의사항: 호환성: 모든 Windows 응용 프로그램이 Wine에서 잘 작동하지는 않습니다. 일부는 문제 없이 작동할 수 있지만, 일부는 오류가 발생할 수 있습니다. 64비트 지원: 최근 macOS 버전은 64비트 응용 프로그램만 지원하며, 이로 인해 Wine의 일부 버전과 기능이 제한될 수 있습니다. 그래픽과 사운드: 고급 그래픽 또는 사운드 기능을 사용하는 게임 또는 응용 프로그램은 Wine에서 제대로 작동하지 않을 수 있습니다. Wine은 무료와 오픈 소스이며, 다양한 커뮤니티와 상업적 지원이 있습니다. 예를 들어, "CrossOver" 같은 상업적 솔루션은 Wine을 기반으로 하며, 추가 기능과 사용 편의성을 제공합니다. --- 왜 mac에는 homebrew 나 wine 처럼 술과 관련된 패키...

cmd 랑 windows powershell 차이

https://focuskr.tistory.com/294 apt-get 안되더라....