--- title: "리눅스 사용 - 가상머신" description: "리눅스 커널이 탑재된 환경에서 실 사용감을 익혀본다." image: "/assets/blog/03-linux-03/Hyperviseur.svg" authors: [bitdori] --- - https://sourceforge.net/projects/qbittorrent/files/latest/download 또는 https://www.fosshub.com/qBittorrent.html 에서 [qBittorrent][qBittorrent] 다운로드 - 설치 - https://cdimage.ubuntu.com/xubuntu/releases/jammy/release/ 또는 https://ftp.kaist.ac.kr/ubuntu-cdimage/xubuntu/releases/jammy/release/ 에서 [Xubuntu][Xubuntu] 토렌트 다운로드 ![xubuntu-torrent](/assets/blog/03-linux-03/xubuntu-torrent.png) 다운로드 한 _.torrent_ 파일을 더블클릭하여 iso 파일 다운로드 ![xubuntu-downloading](/assets/blog/03-linux-03/xubuntu-downloading.png) Xubuntu를 다운로드 하는 동안 https://www.virtualbox.org/wiki/Downloads 접속 ![virtualbox-org](/assets/blog/03-linux-03/virtualbox-org.png) _Windows hosts_ 를 클릭하면 다운로드가 진행되지만 이번에는 [curl][curl]로 다운로드를 해 보기 위해 주소를 복사하기만 한다. - Cygwin 실행 - `cd` 로 다운로드 할 경로로 이동 - `curl -O` 까지 입력한 뒤 우클릭 - Paste를 하여 복사해 둔 VirtualBox 주소 붙여넣기 - 실행 ![curl-O](/assets/blog/03-linux-03/curl-O.png) ![curl-downloading](/assets/blog/03-linux-03/curl-downloading.png) 다운로드가 끝나면 VirtualBox 설치 ![vbox-inst-1](/assets/blog/03-linux-03/vbox-inst-1.png) ![vbox-inst-2](/assets/blog/03-linux-03/vbox-inst-2.png) ![vbox-inst-3](/assets/blog/03-linux-03/vbox-inst-3.png) ![vbox-inst-4](/assets/blog/03-linux-03/vbox-inst-4.png) ![vbox-inst-5](/assets/blog/03-linux-03/vbox-inst-5.png) qBittorrent에서 Progress가 100%이면서 상태가 Seeding이면 Xubuntu 다운로드가 끝난 것이다. 항목을 우클릭해서 다운로드 대상 폴더를 확인 ![xubuntu-downloaded](/assets/blog/03-linux-03/xubuntu-downloaded.png) VirtualBox 실행 - New ![vbox-new](/assets/blog/03-linux-03/vbox-new.png) 이름란에 `xubuntu` 입력 - ISO 이미지에 토렌트로 받았던 이미지를 선택 `Skip Unattended Installation` 체크 ![vbox-create](/assets/blog/03-linux-03/vbox-create.png) 프로세서는 초록색 범위 내에서 선택 ![vbox-create-hardware](/assets/blog/03-linux-03/vbox-create-hardware.png) 시스템 전체에서 남는 공간 중 xubuntu 가상머신에 할당할 크기 지정 - Next - Finish ![vbox-create-harddisk](/assets/blog/03-linux-03/vbox-create-harddisk.png) 설정 ![vbox-settings](/assets/blog/03-linux-03/vbox-settings.png) 디스플레이에서 비디오 메모리 용량을 초록색 범위 내에서 할당 3D 가속 활성화 체크 ![vbox-settings-display](/assets/blog/03-linux-03/vbox-settings-display.png) 시작 ![vbox-start](/assets/blog/03-linux-03/vbox-start.png) ![vbox-starting](/assets/blog/03-linux-03/vbox-starting.png) VirtualBox 내부에 마우스 포인터가 갇히는 경우 _오른쪽 Ctrl_ 키를 누르면 빠져나올 수 있다. 설치 클릭 ![vbox-hostkey](/assets/blog/03-linux-03/vbox-hostkey.png) 키보드 레이아웃은 English (US) 선택 ![xubuntu-inst-kbd](/assets/blog/03-linux-03/xubuntu-inst-kbd.png) [서드파티][서드파티] 소프트웨어 설치 체크 - 계속 ![xubuntu-inst-thirdparty](/assets/blog/03-linux-03/xubuntu-inst-thirdparty.png) 지금 설치 - 계속 - 변경사항을 디스크에 쓰기 창에서 계속 ![xubuntu-instnow](/assets/blog/03-linux-03/xubuntu-instnow.png) ![xubuntu-inst-write-disk](/assets/blog/03-linux-03/xubuntu-inst-write-disk.png) 시간대 선택 ![xubuntu-inst-tz](/assets/blog/03-linux-03/xubuntu-inst-tz.png) 사용자명 `xubuntu` 패스워드는 보안상 쉽게 탈취되지 않도록 짓는 것이 원칙이지만 가상머신 내에서 테스트용도로 사용하기 때문에 편한대로 간결하게 지어도 괜찮을 것이다. ![xubuntu-inst-adduser](/assets/blog/03-linux-03/xubuntu-inst-adduser.png) 설치가 끝날 때 까지 대기 ![xubuntu-installing](/assets/blog/03-linux-03/xubuntu-installing.png) --- ### 설치 중 참고사항 유명 소프트웨어 중에 [LTS][LTS]라는 릴리스 모델을 채택하고 있는 프로젝트가 여럿 있는데 우분투는 2년에 한 번씩 짝수해 4월마다 LTS 버전을 출시하고 있다. https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions 각 버전마다 별명이 있으며 2022년 4월에 출시한 22.04 버전은 jammy라는 [코드네임][코드네임]이 붙어있다. Xubuntu는 ubuntu에 [xfce][xfce]를 탑재한 [리눅스 배포판][리눅스 배포판]이다. 기본 우분투의 [Nautilus][Nautilus] 파일탐색기는 일부 외장 디스크 unmount시 [spindle][spindle] parking 시퀀스가 올바르게 작동하지 않는 문제가 있지만 Xubuntu의 파일탐색기에서는 해당 문제가 일어나지 않는다. [하이퍼바이저][하이퍼바이저] 성능만 따지면 VirtualBox보다 [QEMU][QEMU]가 더 빠르긴 하지만 리눅스에서 설치하는 [virt-manager][virt-manager]가 함께 있어야 편리하게 쓸 수 있기 때문에 본 자습서에서는 VirtualBox를 사용한다. QEMU는 호스트와 [아키텍처][아키텍처]가 일치하지 않는 [프로세서][프로세서]도 가상화 할 수 있기 때문에 해당 내용에 관심이 있다면 관련 자료를 알아보는 것도 좋다. {/* DMA */} Cygwin으로도 리눅스의 여러 기능을 사용할 수 있지만 가상머신에 운영체제 전체를 설치하면 - Cygwin에서 rm으로 실수로 파일을 삭제하는 등 시스템에 영향을 줄 수 있는 여지가 가상머신 내부에서는 없기 때문에 가상머신 내부에서 완전히 망가지더라도 해당 이미지 외부로 아무 영향을 주지 않는다. - X [디스플레이 서버][디스플레이 서버] 구동 - [패키지 매니저][패키지 매니저] 탑재 - [컨테이너][컨테이너] 구동 - [RAID][RAID] 구성 - [부트로더][부트로더] 설정 - 리눅스 심볼릭 링크 - [sysctl][sysctl] 등으로 커널 조작 등을 사용할 수 있다. [WSLg][WSLg] 또는 [VcXsrv][VcXsrv]로 리눅스 그래픽 환경을 구동할 수 있지만 Windowing system이 서로 달라서 네이티브 리눅스 환경과 재현도 차이가 날 수 있다. --- Xubuntu 설치가 끝나면 재시작 ![xubuntu-inst-complete](/assets/blog/03-linux-03/xubuntu-inst-complete.png) 만약 재시작 화면이 끝나지 않고 멈춰 있다면 가상머신을 강제로 리셋하면 된다. ![xubuntu-reset-1](/assets/blog/03-linux-03/xubuntu-reset-1.png) ![xubuntu-reset-2](/assets/blog/03-linux-03/xubuntu-reset-2.png) ![xubuntu-boot-1](/assets/blog/03-linux-03/xubuntu-boot-1.png) ![xubuntu-boot-2](/assets/blog/03-linux-03/xubuntu-boot-2.png) 부팅이 끝나면 [세션 관리자][세션 관리자]가 뜬다. ![xfce4-session](/assets/blog/03-linux-03/xfce4-session.png) - 우상단 전원 아이콘 클릭 - Shut Down... ![shutdown](/assets/blog/03-linux-03/shutdown.png) --- 다시 시스템을 시작한다. ![vbox-start](/assets/blog/03-linux-03/vbox-start.png) 사용 언어와 관련된 필요 패키지를 자동으로 감지해서 띄워주면 그대로 설치하면 된다. ![lang-1](/assets/blog/03-linux-03/lang-1.png) ![lang-2](/assets/blog/03-linux-03/lang-2.png) 패스워드란에는 운영체제 설치 단계에서 입력했던 패스워드를 입력한다. ![lang-3-passwd](/assets/blog/03-linux-03/lang-3-passwd.png) ![lang-4-inst](/assets/blog/03-linux-03/lang-4-inst.png) ![lang-5-applying](/assets/blog/03-linux-03/lang-5-applying.png) 소프트웨어 업데이트 알림에 대해서도 그대로 설치를 진행한다. ![upd-1](/assets/blog/03-linux-03/upd-1.png) ![upd-2-passwd](/assets/blog/03-linux-03/upd-2-passwd.png) ![upd-3-inst](/assets/blog/03-linux-03/upd-3-inst.png) ![upd-4-unpacking](/assets/blog/03-linux-03/upd-4-unpacking.png) 설치 후 시스템 재시작 ![upd-reboot](/assets/blog/03-linux-03/upd-reboot.png) --- 상단 작업표시줄 우클릭 - _Panel_ - _Add New Items..._ ![xf-taskbar-1-newitems](/assets/blog/03-linux-03/xf-taskbar-1-newitems.png) Launcher - _Add_ ![xf-taskbar-2-launcher](/assets/blog/03-linux-03/xf-taskbar-2-launcher.png) 우상단 ! 아이콘 클릭 - _Delete finished notifications_ 클릭해서 VirtualBox 알림 정리 ![vbox-delnoti](/assets/blog/03-linux-03/vbox-delnoti.png) 새로 생긴 빈 Launcher 아이콘 우클릭 - _Properties_ ![xf-taskbar-3-launcher-props](/assets/blog/03-linux-03/xf-taskbar-3-launcher-props.png) _Add a new empty item_ ![xf-taskbar-4-new-empty-item](/assets/blog/03-linux-03/xf-taskbar-4-new-empty-item.png) Name란에 _[xterm][xterm]_ 이라고 작성하면 다 쓰기 전에 _Create Launcher XTerm_ 이 펼쳐진다. 클릭 - _Create_ ![xf-taskbar-5-xterm](/assets/blog/03-linux-03/xf-taskbar-5-xterm.png) _Close_ ![xf-taskbar-6](/assets/blog/03-linux-03/xf-taskbar-6.png) xterm 실행 ![xterm](/assets/blog/03-linux-03/xterm.png) - `sudo apt purge apport* whoopsie*` 실행하여 설치된 패키지 제거 - `y` 입력 - 엔터 - `sudo apt autoremove` 실행하여 사용하지 않는 패키지 제거 ![apt-purge](/assets/blog/03-linux-03/apt-purge.png) ![apt-autoremove](/assets/blog/03-linux-03/apt-autoremove.png) [whiskermenu][whiskermenu] - Settings Manager - IBus Preferences ![ibus-setup](/assets/blog/03-linux-03/ibus-setup.png) Input Method - Add ![ibus-inputmethod-add](/assets/blog/03-linux-03/ibus-inputmethod-add.png) More... - Korean 검색 - Korean 클릭 - Hangul 선택 - Add ![ibus-more](/assets/blog/03-linux-03/ibus-more.png) ![ibus-hangul](/assets/blog/03-linux-03/ibus-hangul.png) 기존에 있었던 Input Method인 English 선택 - Remove ![ibus-remove-en](/assets/blog/03-linux-03/ibus-remove-en.png) Close ![ibus-hangul-finished](/assets/blog/03-linux-03/ibus-hangul-finished.png) whiskermenu - Log Out... - restart ![logout](/assets/blog/03-linux-03/logout.png) ![restart](/assets/blog/03-linux-03/restart.png) 시스템 재시작 후 한글 입력 테스트 ![ibus-hangul-test](/assets/blog/03-linux-03/ibus-hangul-test.png) ### [Guest Additions][Guest Additions] 설치 ![guest-insert](/assets/blog/03-linux-03/guest-insert.png) 이미지 삽입 후 잠시 기다리면 `/media/xubuntu/VBox_GAs_major.minor.patch` 경로에 [마운트][마운트] 된 내용이 나온다. ![guest-mounted](/assets/blog/03-linux-03/guest-mounted.png) xterm에서 해당 경로로 이동 -> `./autorun.sh` -> 패스워드 입력 ![guest-autorun](/assets/blog/03-linux-03/guest-autorun.png) 근데 바로 설치를 진행할 수 없다. _sudo apt install [gcc][gcc] [make][make] [perl][perl]_ 로 [의존성][의존성] 패키지 설치를 한 뒤 다시 시도 ![guest-dep](/assets/blog/03-linux-03/guest-dep.png) ![guest-inst-gcc-make-perl](/assets/blog/03-linux-03/guest-inst-gcc-make-perl.png) 의존성 패키지 설치가 끝난 뒤 다시 `./autorun.sh` 실행 ![guest-autorun-done](/assets/blog/03-linux-03/guest-autorun-done.png) autorun.sh 절차가 끝나면 `sudo /sbin/rcvboxadd quicksetup all` 실행 후 시스템 재시작 ![guest-rcvboxadd](/assets/blog/03-linux-03/guest-rcvboxadd.png) 해상도 제한이 완화되었다. ![vbox-resolution](/assets/blog/03-linux-03/vbox-resolution.png) ### xterm 설정 `.Xresources` 라는 파일명으로 다음 내용을 저장해 놓는다. ``` XTerm.termName: xterm-256color XTerm*utf8: 1 XTerm*utf8Title: true XTerm.vt100.locale: true XTerm.vt100.foreground: white XTerm.vt100.background: black *background: rgb:00/00/00 *foreground: rgb:ff/ff/ff *color0: rgb:00/00/00 *color1: rgb:d3/62/65 *color2: rgb:ae/ce/91 *color3: rgb:e7/e1/8c *color4: rgb:7a/7a/b0 *color5: rgb:96/3c/59 *color6: rgb:41/81/79 *color7: rgb:be/be/be *color8: rgb:66/66/66 *color9: rgb:ef/81/71 *color10: rgb:e5/f7/79 *color11: rgb:ff/f7/96 *color12: rgb:41/86/be *color13: rgb:ef/9e/be *color14: rgb:71/be/be *color15: rgb:ff/ff/ff XTerm.vt100.faceName: Roboto Mono XTerm.vt100.faceNameDoublesize: Noto Sans Mono CJK KR XTerm.vt100.faceSize: 12 ! disable bold font faces, instead make text light blue. XTerm.vt100.colorBDMode: true XTerm.vt100.colorBD: rgb:82/a4/d3 ! disable underlined text, instead make it white. XTerm.vt100.colorULMode: true XTerm.vt100.colorUL: rgb:e4/e4/e4 XTerm.vt100.metaSendsEscape: true XTerm*eightBitInput: false XTerm.vt100.backarrowKey: false XTerm.ttyModes: erase ^? Xft.antialias: true Xft.hinting: true Xft.rgba: rgb Xft.autohint: false Xft.hintstyle: hintslight Xft.lcdfilter: lcddefault Xft.embolden: true XTerm*selectToClipboard: true xterm*dynamiccolors: true *VT100*colorMode: on *VT100*dynamicColors: on XTerm.vt100.translations: #override \n\ Ctrl minus: smaller-vt-font() \n\ Ctrl plus: larger-vt-font() \n\ Ctrl 0: set-vt-font(d) XTerm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48 ! Only select text xterm*highlightSelection: true ! Remove trailing spaces xterm*trimSelection: true !If you want your terminal to scroll down anytime you press a key, use this setting: XTerm*ScrollKey: true ! Do not scroll when there is new input e.g. tail -f /var/syslog !xterm*scrollTtyOutput: false XTerm*fullscreen: never XTerm.vt100.scrollBar: true xterm*rightScrollBar: true !XTerm.vt100.scrollbar.width: 8 XTerm*cursorBlink: false ``` 가상머신 종료 후 Settings - Network - Adapter 2 탭에서 Attached to: _[Host-only Adapter][Host-only Adapter]_ 선택 - OK - 가상머신 구동 ![vbox-adapter](/assets/blog/03-linux-03/vbox-adapter.png) xterm 실행 - `ip addr` 를 실행해서 방금 추가한 어댑터의 주소를 확인한다. 보통 _enp0s8_ 인터페이스에 `192.168.56.101` 로 할당 받는다. ![xubuntu-ip](/assets/blog/03-linux-03/xubuntu-ip.png) - `apt search openssh` 로 검색 - `sudo apt install openssh-server` 로 [openssh][openssh] 서버 설치 - `systemctl status sshd` 로 [데몬][데몬] 구동 상태 확인 ![apt-inst-sshd](/assets/blog/03-linux-03/apt-inst-sshd.png) ![sys-stat-sshd](/assets/blog/03-linux-03/sys-stat-sshd.png) Cygwin에서 [scp][scp]로 위에서 저장한 `.Xresources` 파일을 가상머신에 복사해 보도록 한다. - `scp .Xresources xubuntu@192.168.56.101:~` 실행 ![scp](/assets/blog/03-linux-03/scp.png) 복사가 끝나면 가상머신의 xterm에서 `xrdb ~/.Xresources` 를 실행해서 적용 ![xrdb](/assets/blog/03-linux-03/xrdb.png) 새 터미널을 시작해서 적용 여부 확인 ![xrdb-applied](/assets/blog/03-linux-03/xrdb-applied.png) 현재 .Xresources의 설정에서는 font size는 _Ctrl_ 를 숫자0과 백스페이스 사이에 있는 -기호 또는 +기호를 눌러서 줄이거나 키울 수 있다. https://invisible-island.net/xterm/manpage/xterm.html https://stuff.mit.edu/afs/sipb/project/doc/ixresources/xres.html https://wiki.debian.org/Xresources xterm 대신 다른 터미널을 쓰려면 _Ctrl Alt t_ 를 눌러서 [xfce4-terminal][xfce4-terminal] 을 실행하면 된다. ![xfce4-terminal](/assets/blog/03-linux-03/xfce4-terminal.png) 또는 리눅스 내부에서 터미널을 쓰는 대신 Cygwin으로 [ssh][ssh] 접속을 할 수도 있다. - _scp_ 명령과 비슷한 방식으로 `ssh xubuntu@192.168.56.101` 실행 - 패스워드 입력 - `exit` 로 종료 ![ssh](/assets/blog/03-linux-03/ssh.png) --- `ip addr` 은 [iproute2][iproute2]에 포함된 커맨드 중 하나로써 리눅스에서는 [`ifconfig`][`ifconfig`] 대신 사용하는 커맨드이다. _ifconfig_ 은 [net-tools][net-tools] 프로젝트에 포함된 커맨드인데 [BSD][BSD]에서는 계속 _ifconfig_ 을 기본으로 설정해 놓고 있다. _Host-only Adapter_ 는 처음에 VirtualBox를 설치할 때 같이 설치되었다. ![/assets/blog/03-linux-03/vbox-inst-2.png](/assets/blog/03-linux-03/vbox-inst-2.png) ![vbox-host](/assets/blog/03-linux-03/vbox-host.png) ### [Advanced Package Tool][Advanced Package Tool] 상단에서 `sudo apt purge apport* whoopsie*` 라는 명령으로 apt를 처음 사용해 보았는데 apt는 [데비안][데비안] 계열에서 채택하고 있는 패키지 매니저이다. Microsoft의 운영체제에서는 2012년 Windows 8이 나오기 전까지는 주로 [exe][exe]나 [msi][msi]를 확보해서 [프로그램 추가/제거][프로그램 추가/제거]를 수행했는데 이런 방식으로 소프트웨어를 배포하면 [DLL 지옥][DLL 지옥]이라고도 하는 구성요소 손망실 문제가 발생하기 쉽다. 이런 문제로 인해 소프트웨어 배포 및 관리를 체계적으로 수행하는 패키지 매니저가 개발되기 시작했고 APT 외에도 [레드햇][레드햇] 계열에서 사용하는 [yum][yum]과 [dnf][dnf], 아치 계열에서 사용하는 [pacman][pacman] 정도가 널리 알려져 있다. 패키지 매니저가 수행하는 체계적 관리라 함은 소프트웨어 일괄 업데이트, [ELF][ELF] 등 연관 [라이브러리][라이브러리] 탐색/업데이트/제거 등을 자동으로 수행하는 것이다. 최근에는 [AppImage][AppImage]나 [flatpak][flatpak]처럼 플랫폼 독립적인 배포 방식 또한 이용저변을 넓혀가고 있다. [Google Play Store][Google Play Store]나 Apple [App Store][App Store] 또한 일종의 패키지 매니저라고 할 수 있다. --- - `apt search midnight` 로 [Midnight Commander][Midnight Commander] 검색 - `sudo apt install mc` 로 해당 패키지 설치 - `mc` 실행 - _F10_ 으로 종료 _apt search 패키지명_ 형식으로 현재 설정된 [저장소][저장소]로부터 내려받아 설치할 수 있는지 확인할 수 있다. _sudo apt install 패키지명_ 으로는 해당 패키지를 설치할 수 있다. 패키지 설치 직전에 `[Y/n]` 으로 여부를 확인하는데 대문자가 기본 동작으로 지정되어 있기 때문에 `y` 를 입력하지 않고 그대로 엔터를 쳐도 y를 입력한 것과 똑같이 진행한다. 패키지 설치는 시스템을 변경시키는 행위이기 때문에 관리자의 권한이 필요한데, [sudo][sudo]를 어떤 명령어 앞에 붙여서 실행하면 [최소 권한의 원칙][최소 권한의 원칙]을 유지하면서 시스템에 변동을 줄 수 있다. 원래 sudo를 사용하기 전에 [visudo][visudo]로 sudoer 추가를 해 줘야 하는데 ubuntu에는 해당 설정이 미리 되어 있기 때문에 본 자습서에서는 따로 다루지 않았다. 예시로 설치한 _mc_ 는 [ncurses][ncurses] 기반 파일탐색기이다. ![mc-1](/assets/blog/03-linux-03/mc-1.png) ![mc-2](/assets/blog/03-linux-03/mc-2.png) ![mc-3](/assets/blog/03-linux-03/mc-3.png) 필요에 따라서 `sudo apt install gcc make perl` 처럼 여러 패키지를 한꺼번에 설치할 수도 있다. {/* repo 설정 PS1 mv/rm _._ / touch {1..5} mv . - cd로 이동하지 않고 타겟을 현재 디렉토리로 이동하는 방법 스크립트 bash프롬프트 - export, PATH 등 source sha ps / top ip / ss nmcli / dig nginx -s / hosts systemctl mount dd git mc / ncdu / cmus users who vm2(bind9) - ubuntu server -> Windows host - DNS query ddns-confgen */} {/* https://www.gnu.org/gnu/gnu-linux-faq.html#whyslash */} [qBittorrent]: https://www.qbittorrent.org/download.php [Xubuntu]: https://xubuntu.org/download/ [curl]: https://curl.se/docs/manual.html [서드파티]: https://wiki.ubuntu.com/ThirdPartyPackages "Third-party" [LTS]: https://en.wikipedia.org/wiki/Long-term_support "Long-term support" [코드네임]: https://en.wikipedia.org/wiki/Code_name "Code name" [xfce]: https://en.wikipedia.org/wiki/Xfce [리눅스 배포판]: https://en.wikipedia.org/wiki/Linux_distribution "Linux distribution" [Nautilus]: https://en.wikipedia.org/wiki/GNOME_Files [spindle]: https://en.wikipedia.org/wiki/Hard_disk_drive#Spindle "스핀들" [하이퍼바이저]: https://en.wikipedia.org/wiki/Hypervisor "Hypervisor" [QEMU]: https://en.wikipedia.org/wiki/QEMU [virt-manager]: https://en.wikipedia.org/wiki/Virtual_Machine_Manager "Virtual Machine Manager" [아키텍처]: https://en.wikipedia.org/wiki/Computer_architecture "Computer Architecture" [프로세서]: https://en.wikipedia.org/wiki/Processor_(computing) "Processor" [디스플레이 서버]: https://en.wikipedia.org/wiki/Windowing_system#Display_server "Display Server" [패키지 매니저]: https://en.wikipedia.org/wiki/Package_manager "Package Manager" [컨테이너]: https://en.wikipedia.org/wiki/Containerization_(computing) [RAID]: https://en.wikipedia.org/wiki/RAID "레이드" [부트로더]: https://en.wikipedia.org/wiki/Bootloader "Bootloader" [sysctl]: https://en.wikipedia.org/wiki/Sysctl [WSLg]: https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux#WSLg "Windows Subsystem for Linux GUI" [VcXsrv]: https://sourceforge.net/projects/vcxsrv/ [세션 관리자]: https://en.wikipedia.org/wiki/Session_(computer_science)#Desktop_session_management [xterm]: https://en.wikipedia.org/wiki/Xterm [whiskermenu]: https://docs.xfce.org/panel-plugins/xfce4-whiskermenu-plugin/start [Guest Additions]: https://www.virtualbox.org/manual/ch04.html [마운트]: https://en.wikipedia.org/wiki/Mount_(computing) "mount" [gcc]: https://en.wikipedia.org/wiki/GNU_Compiler_Collection "GNU Compiler Collection" [make]: https://en.wikipedia.org/wiki/Make_(software) [perl]: https://en.wikipedia.org/wiki/Perl [의존성]: https://en.wikipedia.org/wiki/Coupling_(computer_programming) "커플링" [Host-only Adapter]: https://www.virtualbox.org/manual/ch06.html#network_hostonly [openssh]: https://en.wikipedia.org/wiki/OpenSSH [데몬]: https://en.wikipedia.org/wiki/Daemon_(computing) "Daemon" [scp]: https://en.wikipedia.org/wiki/Secure_copy_protocol "Secure copy protocol" [iproute2]: https://en.wikipedia.org/wiki/Iproute2 [`ifconfig`]: https://en.wikipedia.org/wiki/Ifconfig "interface config" [net-tools]: https://wiki.linuxfoundation.org/networking/net-tools [BSD]: https://en.wikipedia.org/wiki/Berkeley_Software_Distribution "Berkeley Software Distribution" [Advanced Package Tool]: https://en.wikipedia.org/wiki/APT_(software) "APT" [xfce4-terminal]: https://docs.xfce.org/apps/xfce4-terminal [ssh]: https://en.wikipedia.org/wiki/Secure_Shell "Secure Shell" [데비안]: https://en.wikipedia.org/wiki/Debian#APT_tools "Debian" [exe]: https://en.wikipedia.org/wiki/.exe [msi]: https://en.wikipedia.org/wiki/Windows_Installer "Windows Installer" [프로그램 추가/제거]: https://en.wikipedia.org/wiki/Control_Panel_(Windows)#Standard_applets "appwiz.cpl" [DLL 지옥]: https://en.wikipedia.org/wiki/DLL_Hell "DLL Hell" [레드햇]: https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux "RHEL" [yum]: https://en.wikipedia.org/wiki/Yum_(software) [dnf]: https://en.wikipedia.org/wiki/DNF_(software) [pacman]: https://en.wikipedia.org/wiki/Arch_Linux#Pacman [ELF]: https://en.wikipedia.org/wiki/Executable_and_Linkable_Format "Executable and Linkable Format" [라이브러리]: https://en.wikipedia.org/wiki/Library_(computing) "Library" [AppImage]: https://en.wikipedia.org/wiki/AppImage [flatpak]: https://en.wikipedia.org/wiki/Flatpak [Google Play Store]: https://en.wikipedia.org/wiki/Google_Play "구글 플레이" [App Store]: https://en.wikipedia.org/wiki/App_Store_(iOS/iPadOS) "앱스토어" [Midnight Commander]: https://en.wikipedia.org/wiki/Midnight_Commander [저장소]: https://en.wikipedia.org/wiki/Software_repository "Software Repository" [sudo]: https://en.wikipedia.org/wiki/Sudo "substitute user, do" [최소 권한의 원칙]: https://en.wikipedia.org/wiki/Principle_of_least_privilege "Principle Of Least Privilege" [visudo]: https://www.sudo.ws/docs/man/visudo.man/ [ncurses]: https://en.wikipedia.org/wiki/Ncurses "new curses"