vi 에디터 기본 환경 설정

리눅스/OS 일반|2025. 6. 25. 08:42
반응형

현재 계정의 디렉토리에 .vimrc 파일을 생성하고 설정값을 저장만 하면 됩니다.

기본 설정이 안되어 있으면 새로운 파일을 편집하게 됩니다.

" 표시는 주석입니다.

 

# vi ~/.vimrc

" 검색 관련 설정
set hlsearch                    " 검색 결과 하이라이트
set incsearch                   " 실시간 검색
set ignorecase                  " 대소문자 무시
set smartcase                   " 스마트 대소문자

" 검색 하이라이트 색상 (노란 배경, 검은 글씨)
highlight Search ctermbg=yellow ctermfg=black guibg=yellow guifg=black

" 현재 검색 결과 색상 (빨간 배경, 흰 글씨)
highlight IncSearch ctermbg=red ctermfg=white guibg=red guifg=white

" 줄 번호 표시
"set number

" 구문 강조
syntax on

 

이제 vi 에디터를 사용하면 설정된 값이 적용되어 열리게 됩니다.

 

반응형

댓글()

watchdog 설정으로 시스템 다운시 재부팅하기

리눅스/OS 일반|2025. 6. 11. 16:58
반응형

watchdog 명령은 시스템을 주기적으로 감시하고, 문제가 감지되었을 때 자동으로 재부팅하도록 도와주는 데몬 프로그램입니다.

시스템이 멈추거나 심각한 장애 상태에 빠졌을 때 자동으로 복구되도록 하기 위해 사용됩니다.

 

# dnf -y install watchdog    // RockyLinux 에서

# apt -y install watchdog    // Ubuntu 에서

 

# systemctl enable watchdog

 

여기에서는 시스템이 행(Hang) 걸릴때 네트워크 연결이 안된다는 것을 이용해 '네트워크 연결 실패시 리부팅' 이라는 조건을 설정하였습니다.

하지만 행 걸린 시점에서 watchdog 이 제대로 동작할지는 모르겠네요...

# vi /etc/watchdog.conf

# 모든 ping 대상에 실패할 경우에만 재부팅을 트리거합니다.
# 5번 연속 실패해야 다운으로 간주
ping = 192.168.10.1
ping = 192.168.10.2
ping-count = 60

# 60초 동안 syslog 파일이 업데이트되지 않으면 재부팅 시도
change = /var/log/syslog 60

# 1분 평균 부하가 24를 초과하면 재부팅
max-load-1 = 24

# 이는 시스템이 매우 바쁘거나 멈추려고 할 때 watchdog이 확실하게 작동하도록 돕습니다.
# 1 (가장 높은 우선순위) ~ 99 (가장 낮은 우선순위)
realtime = yes
priority = 1

 

# systemctl restart watchdog

 

이제 네트워크 연결이 1분간 체크되지 않으면 시스템이 자동 리부팅 됩니다.

별도의 파일에 기록하도록 옵션 설정을 하지 않았으므로, 로그는 /var/log/messages 에 기록됩니다.

 

반응형

댓글()

Ubuntu 24.04 에서 RTX5080 드라이버 설치하기

리눅스/OS 일반|2025. 4. 11. 12:42
반응형

Ubuntu 24.04 에서 여러 AMD, NVIDIA 제품을 설치해 보았지만, RTX5080 은 설치 방식이 조금 달라서 내용을 기록해 둡니다.

 

 

1. nouveau 드라이버 차단

 

nouveau 드라이버를 블랙리스트에 추가합니다.

# cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
EOF

 

initramfs 이미지를 업데이트하여 블랙리스트 설정을 반영합니다.

# update-initramfs -u

 

시스템을 재시작 합니다.

# reboot

 

 

2. NVIDIA Driver 설치

 

리포지토리를 추가합니다.
# add-apt-repository ppa:graphics-drivers/ppa

# apt update
 
설치 가능한 드라이버 버전을 확인합니다.
# ubuntu-drivers devices
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:97/0000:97:01.0/0000:98:00.0 ==
modalias : pci:v000010DEd00002C02sv00001458sd00004196bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-570-open - third-party non-free recommended
driver   : nvidia-driver-570 - third-party non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

여기에서 위와 같이 recommended(추천) 라고 되어진 버전을 설치하면 됩니다.

(nvidia-driver-570 버전이 추천인데, 아래 nvidia-smi 명령이 안된다면 nvidia-driver-570-open 을 설치하세요)

# apt -y install nvidia-driver-570-open

 

설치 후 시스템을 재부팅 하면 관련 명령 사용이 가능해 집니다.

# reboot

 

아래 명령으로 드라이버가 잘 설치된 것을 확인할 수 있습니다.

# nvidia-smi

 

 

3. CUDA 설치

 

설치 방법을 따라 설치를 하면 됩니다. (Install Type 을 runfile 로 선택하면 설치가 간단해 집니다)

# wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run

# sh cuda_12.8.1_570.124.06_linux.run

 

처음 설치 화면이 뜨기까지 시간이 어느정도 소요됩니다.

설치 과정은 Continue 선택 > accept 입력 > (미리 설치했으므로) 'Driver' 제외 및 나머지 기본값으로 Install 입니다.

파일 사이즈가 크기 때문에 여기에서도 시간이 다소 소요됩니다.

 

CUDA 설치가 완료되면, ~/.bashrc 파일에 경로를 추가하여 CUDA 바이너리에 접근할 수 있도록 합니다.

# echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc

# echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

# source ~/.bashrc

 

설치된 CUDA 버전을 확인합니다.

# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

 

반응형

댓글()

RockyLinux 9 에서 root 원격접속 허용하기

리눅스/OS 일반|2025. 3. 14. 09:29
반응형

일반계정이 아닌 root 로 바로 접근을 허용하려는 경우 아래와 같은 SSH 설정 옵션으로 셋팅 후 데몬을 재시작 해 줍니다.


# vi /etc/ssh/sshd_config

...
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
...

 

# systemctl restart sshd

 

반응형

댓글()

Ubuntu 24.04 APT 저장소 및 키 초기화 하기

리눅스/OS 일반|2025. 2. 19. 10:31
반응형

모든 추가 저장소 삭제
# rm -f /etc/apt/sources.list.d/*.list

모든 GPG 키 삭제
# rm -f /etc/apt/keyrings/*.gpg

기본 APT 저장소 복구 (Ubuntu 24.04 Noble 기준)
# tee /etc/apt/sources.list <<EOF
deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse
EOF

APT 캐시 및 설정 초기화
# apt clean
# apt autoclean
# apt -y autoremove --purge
r# m -rf /var/lib/apt/lists/*

저장소 업데이트 및 확인
# apt -y update && apt -y upgrade

 

반응형

댓글()

RockyLinux 9 기본 방화벽 변경하기 (firewalld -> iptables)

리눅스/Security|2025. 1. 10. 14:35
반응형

Rocky Linux 9는 기본적으로 firewalld를 사용하지만, iptables를 설치하고 사용할 수도 있습니다.

아래는 iptables 설치 및 활성화 방법입니다.

 

1. firewalld 비활성화

우선 사용하지 않을 firewalld 를 비활성화 합니다.

# systemctl disable --now firewalld

 

2. iptables 설치

iptables 패키지를 설치합니다.

# dnf -y install iptables iptables-services

 

3. iptables 룰 작성

방화벽을 가동하기 전에 룰셋을 정합니다.

# vi /etc/sysconfig/iptables

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

-A INPUT -s 192.168.10.2/32 -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

COMMIT

 

 

4. iptables 방화벽 가동 

# systemctl enable --now iptables

 

5. iptables 상태 확인

# systemctl status iptables

# iptables -nL

 

반응형

댓글()

Nginx 에서 Proxy 구성시 Arguments 사용하기

리눅스/APACHE|2024. 12. 12. 12:35
반응형

Nginx 를 프록시 서버로 만들건데, Backend 서버를 내가 원하는 IP 로 접속하는 예제 입니다.

Client 에서는 Backend 서버에 직접 접속이 안되기 때문에, 프록시 서버를 이용하는 것입니다.

 

- 접속예 : http://www.sysdocu.kr/?url=192.168.10.2

- 192.168.10.2 사설 IP 를 가진 서버에 www.sysdocu.kr  이라는 프록시 서버를 이용해 접근합니다. (통신, 트래픽 흐름)

 

nginx.conf 파일에서 서버 구성내용을 아래와 같이 수정합니다.

아래 예시에서는 upstream 없이 구성하였습니다.

url 값은 arg_url 로 받아야 합니다.

 

# vi /etcc/nginx/nginx.conf

...

    ###################################
    server {
        listen 80;
        server_name www.sysdocu.kr;

        # 404 에러 페이지 (선택, 404 출력 파일의경로와 파일명 입력)

        location = /custom_404.html {

            root /etc/nginx;

            internal;

        }

 

        location / {
            set $backend "http://$arg_url";
            proxy_pass $backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Connection "";
        }
    }
    ###################################

...

 

# systemctl restart nginx

 

반응형

댓글()

빈글

리눅스/OS 일반|2024. 11. 1. 18:48
반응형
반응형

댓글()

ffmpeg 명령어로 포맷 변환 예제 (mkv to mp4, mp4 to mp3)

리눅스/OS 일반|2024. 11. 1. 18:47
반응형

ffmpeg 명령으로 할 수 있는것은 다양하지만, 필자의 필요에 의해서 아래 내용만 기록해 둡니다. 

 

 

1. mkv to mp4

 

# ffmpeg -i example.mkv -c:v copy -c:a copy example.mp4

 

입력 파일 : example.mkv

출력 파일 : example.mp4

 

위 옵션 사용시 비디오 및 오디오 스트림이 원본 품질로 유지됩니다.

이 방식은 매우 빠르고 효율적이며, 데이터 손실이 없습니다.

 

 

2. mp4 to mp3

 

영상에서 오디오만 추출이 가능합니다.

 

# ffmpeg -i input.mp4 -q:a 0 -map a output.mp3

 

-i input.mp4 : 입력 MP4 파일

-q:a 0 : 오디오 품질을 최상으로 설정 (-q:a 0 대신에 -b:a 128k 와 같이 비트레이트 지정 가능)

-map a : 오디오 스트림만 추출

output.mp3 : 출력 MP3 파일 이름

 

특정 시간대의 오디오만 추출하려면 -ss (시작 시간) 와 -t (지속 시간) 를 추가합니다.

 

# ffmpeg -ss 00:01:00 -i input.mp4 -to 00:00:30 -q:a 0 -map a output.mp3

 

-ss 00:01:00 : 추출 시작 시간 (1분 0초)

-t 00:00:30 : 추출 지속 시간 (0분 30초)

-q:a 0 : 오디오 품질을 최상으로 설정 (-q:a 0 대신에 -b:a 128k 와 같이 비트레이트 지정 가능)

빠른 처리를 위해 -ss 옵션을 입력 파일 앞에 배치 하였습니다.

  이 경우, ffmpeg는 해당 시간대부터 직접 처리하므로 더욱 빠릅니다.

- mp4 말고 오디오파일 mp3 에서 부분 추출도 가능합니다.

 

반응형

댓글()

Ubuntu 24.04 GNOME 46 Orchis 테마 적용하기

리눅스/OS 일반|2024. 9. 26. 13:53
반응형

- 로컬PC 일반 계정에서 적용이 잘 되는것 확인하였습니다.

 

파일 배포 URL

https://www.pling.com/p/2176652/

plymouth-theme.zip
0.46MB
neofetch-config.zip
0.00MB
GTK-Themes.zip
2.56MB
cava-config.zip
0.00MB
conky-config.zip
0.41MB
cursors-theme.zip
4.57MB
fonts1.zip
14.32MB
fonts2.zip
12.89MB

(fonts1.zip 과 font2.zip 는 fonts.zip 을 나누어 올린것임)

gnome-extensions.zip
1.76MB
ubuntu-desktop-settings.zip
0.01MB
fishomp-config.zip
0.12MB
wallpapers.zip
0.37MB
icon-themes.zip
19.35MB

 

 

세팅 방법 동영상 강좌

https://www.youtube.com/watch?v=5nJdzjoiygc&t=3s

 

 

Documents 에 나오는 명령어 입니다.

컨테이너 XRDP 접근하여 ubuntu 계정으로 로그인하고 진행하였습니다.

 

OS 환경 업데이트

$ sudo apt update && sudo apt dist-upgrade -y

 

어플 및 의존성 패키지 설치

$ sudo apt install curl \

rsync \

git \

gdebi \

nautilus-admin \

nautilus-extension-gnome-terminal \

sassc \

gnome-tweaks \

gnome-shell-extension-manager -y

 

리소스 파일 다운로드 (12개 파일 - fonts.zip 은 한개로 침)

$ cd Downloads

$ sudo apt -y install wget

$ wget http://sysdocu.kr/orchis/filelist.txt

$ wget -i filelist.txt

$ cd ..

 

GNOME 확장 설치

$ unzip -o $HOME/Downloads/gnome-extensions.zip -d $HOME/.local/share/gnome-shell/

 

GTK 테마 설치

$ mkdir -p $HOME/.themes
$ unzip -o $HOME/Downloads/GTK-Themes.zip -d $HOME/.themes

$ mkdir -p $HOME/.config/gtk-4.0
$ ln -sf $HOME/.themes/Orchis-Dark/gtk-4.0/{assets,gtk.css,gtk-dark.css} $HOME/.config/gtk-4.0/

 

아이콘, 커서 테마 설치

$ mkdir -p $HOME/.local/share/icons
$ unzip -o $HOME/Downloads/icon-themes.zip -d $HOME/.local/share/icons

$ mkdir -p $HOME/.icons
$ unzip -o $HOME/Downloads/cursors-theme.zip -d $HOME/.icons

 

폰트, 바탕화면 설치

$ unzip -o $HOME/Downloads/fonts.zip -d $HOME/.local/share/

$ sudo unzip -o $HOME/Downloads/wallpapers.zip -d /usr/share/backgrounds/

 

Conky 위젯 설치 및 설정

$ sudo apt install conky-all jq curl playerctl -y
$ unzip -o $HOME/Downloads/conky-config.zip -d $HOME/.config

Cava, 터미널, 오디오, 가상화, NeoFetch 설치

$ sudo apt install cava -y

$ unzip -o $HOME/Downloads/cava-config.zip -d $HOME/.config

$ sudo apt install neofetch -y

$ unzip -o $HOME/Downloads/neofetch-config.zip -d $HOME/.config

 

Fish 쉘, Oh My Posh 설치

$ sudo apt install fish -y

$ chsh -s /usr/bin/fish
Password: (ubuntu 계정 패스워드 입력)

$ sudo wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh

$ sudo chmod +x /usr/local/bin/oh-my-posh 
$ unzip -o $HOME/Downloads/fishomp-config.zip -d $HOME
$ chmod u+rw ~/.poshthemes/*.json

 

Flatpak, Appimage 지원 활성화

$ sudo apt install gnome-software gnome-software-plugin-flatpak flatpak libfuse2 -y

$ flatpak remote-add --if-not-exists flathub http://flathub.org/repo/flathub.flatpakrepo

(화면 팝업으로 패스워드 입력)

$ sudo flatpak install flathub io.bassi.Amberol -y    // 여기에서 원래는 sudo 가 없지만, LXC 에서는 권한이 없어 추가해보았음

 

(위가 잘 안되면 반복 하거나 메모리 증설해볼 것. 나는 어떻게 넘어감...)

 

$ sudo flatpak override --filesystem=$HOME/.themes
$ sudo flatpak override --filesystem=$HOME/.local/share/icons
$ sudo flatpak override --filesystem=xdg-config/gtk-4.0

 

GNOME 앱 설치

$ sudo apt install gnome-weather \

gnome-maps \

gnome-audio \

gnome-calendar \

gnome-clocks \

gnome-connections \

gnome-console \

gnome-contacts \

gnome-music \

vlc \

gnome-shell-pomodoro -y

 

Plymouth 테마 설치 및 변경

$ sudo apt install plymouth -y
$ sudo unzip -o $HOME/Downloads/plymouth-theme.zip -d /usr/share/plymouth/themes
$ sudo update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/hexagon_dots/hexagon_dots.plymouth 100

$ sudo update-alternatives --config default.plymouth

(여기에서  /usr/share/plymouth/themes/hexagon_dots/hexagon_dots.plymouth   100       manual mode 행으로 된것을 찾아 앞 번호를 입력하면 됨)
$ sudo update-initramfs -u    // LXC 에서 명령어가 없다면 명령어부터 설치 sudo apt install initramfs-tools

 

GNOME 쉘 세팅 적용

$ unzip -o $HOME/Downloads/ubuntu-desktop-settings.zip -d $HOME/Downloads/
$ dconf load / < $HOME/Downloads/ubuntu-desktop-settings.conf

 

데스크톱이라면  이때 배경이 바뀌는게 보임.

LXC 는 ubuntu 계정으로 다시 로그인해야 보일지도? 메뉴를 눌러 로그아웃을 못하는 경우 호스트에서 컨테이너를 stop, start 해보자. 잘 안되네... 배경은 적용된 것 같기도 하고.. 근데 날씨 API 를 등록해야 하니, 이런건 컨테이너에서 사용 못하겠다.

 

SNAP 앱과 서비스 삭제

$ cp -afv $HOME/snap $HOME/Downloads/
$ sudo snap remove --purge firefox
$ sudo snap remove --purge snap-store
$ sudo snap remove --purge gnome-42-2204
$ sudo snap remove --purge gtk-common-themes
$ sudo snap remove --purge snapd-desktop-integration
$ sudo snap remove --purge firmware-updater
$ sudo snap remove --purge core22
$ sudo snap remove --purge bare
$ sudo snap remove --purge snapd
$ sudo apt autoremove --remove snapd -y

$ sudo rm -rf /var/cache/snapd/

$ echo "Package: snapd
Pin: release a=*
Pin-Priority: -10" | sudo tee /etc/apt/preferences.d/nosnap.pref

$ sudo apt update

 

파이어폭스 웹브라우저 설치

$ sudo add-apt-repository -y ppa:mozillateam/ppa && sudo apt update

$ echo 'APT::Key::Assert-Pubkey-Algo "";' | sudo tee /etc/apt/apt.conf.d/99weakkey-warning

$ sudo apt update

$ sudo apt install -y -t 'o=LP-PPA-mozillateam' firefox

$ echo "Unattended-Upgrade::Allowed-Origins:: \"LP-PPA-mozillateam:$distro_codename\";" | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox

$ echo 'Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 501' | sudo tee /etc/apt/preferences.d/mozillateamppa

$ sudo apt update

 

파이어폭스 테마 설치

$ cd $HOME/Downloads

$ git clone https://github.com/vinceliuice/WhiteSur-firefox-theme.git

$ cd WhiteSur-firefox-theme/

$ sudo ./install.sh -m    // 데스크톱은 모르겠는데 LXC 에서는 sudo 를 붙여주어야 했음. 매뉴얼에서는 안붙임.

 

끝.

 

바탕화면 날씨정보 지역 ID 및 API 발급 (로그인 필요)

$ vi ~/.config/conky/Alfirk-MOD/scripts/weather-v2.0.sh

수정 후 스크립트 실행하면 적용됨

https://openweathermap.org

 

 

반응형

댓글()

Ubuntu 24.04 Desktop 에서 Samsung SL-J3560FW 프린터 잡기

리눅스/OS 일반|2024. 9. 25. 09:31
반응형

프린터 설정에서 프린터를 추가할때 Samsung SL-J3560FW 모델과 동일한 드라이버가 출력되지 않고, 삼성 홈페이지에서 조차 리눅스용 드라이버를 제공하지 않습니다.

이러한 환경에서 아래 드라이버를 선택하여 설치하였더니 잘 되는 것으로 확인 했습니다.

 

- 설정 > 프린터 > [프린터 추가] > 하단 검색창에 프린터 IP 입력

 

조금 기다리면 아래 세가지 항목이 선택항목으로 출력됩니다.

-  JetDirect

- LPD

- SL-J3560FW

 

여기에서 올바른 모델명을 선택하여 진행하면 인쇄시 글씨가 깨져 출력되므로,

JetDirect 를 선택, [추가] 하고 아래 모델명을 찾아 설치합니다.

- 제조사 : Hewlett-Packard

- 드라이버 : HP Business Inkjet 110, hpcups 3.23.12

 

반응형

댓글()