I. 설치

일단, 필요한 프로그램을 다운로드받아서 설치부터 합니다.

1. Windows Terminal 을 설치한다.

2. 유사 Linux 환경인 MSYS2 를 설치한다.

3. Visual Studio Code 를 설치한다.

3. 윈도우용 프로그램을 쉽게 설치/관리할 수 있는 Chocolatey 를 설치한다.

4. 내가 좋아하는 텍스트에디터 neovim 도 설치하자. Chocolatey를 이용한다.

> choco install neovim

 

II. 구성

 

(0) MSYS2에 Windows 환경변수 공유하기

 

C:\msys64\msys2.ini과  C:\msys64\mingw64.ini 파일에서 아래 줄의 주석을 풀어준다.

MSYS2_PATH_TYPE=inherit

 

(1) Visual Studio Code 의 터미널에 MSYS2 bash 설정하기

 

메뉴의 "Files - Preference - Settings" 를 선택한다. 그리고, 아래 스크린샷에 표시된 우측 상단에 있는 버튼을 클릭하면, settings.json 이 나타난다.

settings.json 에 다음을 입력한다.

  "terminal.integrated.defaultProfile.windows": "MSYS2",
  "terminal.integrated.profiles.windows": {
    // "PowerShell": {
    //   "source": "PowerShell",
    //   "icon": "terminal-powershell"
    // },
    // "Command Prompt": {
    //   "path": [
    //     "${env:windir}\\Sysnative\\cmd.exe",
    //     "${env:windir}\\System32\\cmd.exe"
    //   ],
    //   "args": [],
    //   "icon": "terminal-cmd"
    // },
    // "Git Bash": {
    //   "source": "Git Bash"
    // },
    "MSYS2": {
      "path": "C:\\msys64\\usr\\bin\\bash.exe",
      "args": [
        "--login",
        "-i"
      ],
      "env": {
        "MSYSTEM": "MINGW64",
        "CHERE_INVOKING": "1"
      }
    }
  },

이제 Visual Studio Code를 다시 시작한 후 터미널을 열어보면, 아래처럼 MSYS2 Bash로 잘 실행될 것이다.

 

(2) Windows Terminal

 

Windows Terminal 을 실행해보면, 기본 터미널이 PowerShell 이다. 이것을 MSYS2로 변경해보자. 상단에 있는 꺽쇠 아이콘을 클릭하면, 메뉴가 내려온다. 여기에서 설정 메뉴를 선택한다.

이번에는 좌측 하단에 있는 Json 파일 열기를 클릭한다. 그러면, 텍스트에디터에서 Windows Terminal의 settings.json 을 열어줄 것이다.

settings.json 파일에 아래 내용을 추가한다.

    {
      "guid": "{71160544-14d8-4194-af25-d05feeac7233}",
      "name": "MSYS / MSYS2",
      "commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -msys -use-full-path",
      "startingDirectory": "C:/msys64/home/%USERNAME%",
      "icon": "C:/msys64/msys2.ico",
      "fontFace": "Lucida Console"
    }

defaultProfile 도 추가한 항목의 guid로 교체해준다. 이렇게 하면 MSYS2가 기본 터미널로 지정된다.

Windows Terminal을 다시 실행하면 MSYS2 bash가 나오는 것을 확인할 수 있다.

 

(3) MSYS2 패키지 최신 상태로 만들기

MSYS2는 Arch Linux 등에서 사용하던 Pacman 패키지 관리자로 패키지를 관리한다. Pacman 명령어를 통해 필요한 개발 도구들을 설치할 수 있다.

아래 명령어로 최신 패키지들 목록을 가져오면서 설치된 패키지들을 업데이트 할 수 있다. 이 것을 2번 실행한다.

$ pacman -Syu

실행되는 모습은 아래와 같다.

필요한 패키지들은 https://packages.msys2.org/queue 에서 검색해볼 수 있다.

 

아래 명령어로 mingw에서 제공하는 toolchain을 설치합니다. Toolchain을 통해 기본적인 빌드 패키지들을 한 번에 받을 수 있습니다.

$ pacman -S mingw-w64-x86_64-toolchain

 

(4) vim, winpty 설치하기

$ pacman -S vim winpty

 

(5) HOME 디렉토리 변경하기

/etc/nsswitch.conf를 아래처럼 변경한다.

# Begin /etc/nsswitch.conf

passwd: files db
group: files # db

db_enum: cache builtin

db_home: env windows cygwin desc
db_shell: env windows # cygwin desc
db_gecos: env # cygwin desc

# End /etc/nsswitch.conf
$ grep "^${USERNAME}:" /etc/passwd >/dev/null 2>&1 || mkpasswd | grep "^${USERNAME}:" >>/etc/passwd

 

(6) neovim 설정하기

먼저 vim 플러그인 관리 도구인 vim-plug 를 설치합니다. PowerShell 을 열어서, 다음을 실행한다.

iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force

neovim 의 설정 파일은 init.vim 이며, 위치는 아래와 같다.

C:\Users\아이디\AppData\Local\nvim\init.vim

여기에, 아래 내용을 넣어보자.

" Plug-In 시작 (플러그인 설치 경로)
call plug#begin('~/.vim/plugged')

" 설치하고 싶은 플러그인 (예, vim-airline)
Plug 'vim-airline/vim-airline'

" 플러그인 시스템 초기화
call plug#end()

이렇게 저장하고, nvim 을 다시 열고 :Plug<Tab> 을 입력시 아래와 같이 나오면 성공이다.

등록한 플러그인은 nvim 내에서 :PlugInstall 명령어를 입력하여 설치 가능하다. 해보자~!

설치후에, nvim 을 다시 열면... 아래와 같이 조금 더 이쁘게 바뀌어 있을 것이다.

 

 

 

 

 

우분투 mini 이미지에는 기본적인 네트워크 유틸리티들이 설치되어 있지 않은 경우가 있다. 이런 경우 직접 간단하게 설치해주자!

 

$ sudo apt-get install iputils-ping net-tools iproute2

'OS > Linux' 카테고리의 다른 글

ifconfig , netstat 대체 프로그램 (ip, ss)  (0) 2021.08.19

정말 오랜만에 리눅스를 사용하였는데, 기존에 이용하였던 프로그램들이 안되는 것이 좀 있다. 그 중 대표적인 것이 ifconfig와 netstat 이다.

 

먼저, ifconfig 대신 ip addr 을 이용해서 네트워크 인터페이스 정보를 알아보는 방법이다.

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:00:17:00:2c:15 brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.0.0.64/24 brd 10.0.0.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::17ff:fe00:2c15/64 scope link
       valid_lft forever preferred_lft forever
$

 

다음은, netstat 를 대신해서 ss를 이용하여 열려있는 TCP/UDP 포트를 확인한다.

$ ss -4ltp
State       Recv-Q      Send-Q           Local Address:Port              Peer Address:Port      Process
LISTEN      0           4096                   0.0.0.0:sunrpc                 0.0.0.0:*
LISTEN      0           4096             127.0.0.53%lo:domain                 0.0.0.0:*
LISTEN      0           128                    0.0.0.0:ssh                    0.0.0.0:*
$ ss -4lup
State       Recv-Q      Send-Q            Local Address:Port             Peer Address:Port      Process
UNCONN      0           0                 127.0.0.53%lo:domain                0.0.0.0:*
UNCONN      0           0                10.0.0.64%ens3:bootpc                0.0.0.0:*
UNCONN      0           0                       0.0.0.0:sunrpc                0.0.0.0:*
UNCONN      0           0                     10.0.0.64:ntp                   0.0.0.0:*
UNCONN      0           0                     127.0.0.1:ntp                   0.0.0.0:*
UNCONN      0           0                       0.0.0.0:ntp                   0.0.0.0:*
$

프로세스나 사용자명을 숫자로 표시하려면 -n 옵션을 추가하면 됩니다.

'OS > Linux' 카테고리의 다른 글

Ubuntu 에서 ping, ifconfig 설치  (0) 2021.08.21

FreeBSD 10.0 이 릴리즈된 기념으로, OS 설치후에 기본적으로 해야할 작업을 정리하였습니다. 기존에 9.1 에서 했던 것과 거의 비슷하고, 패키지 관리프로그램이 전격적으로 바뀐 것이 큰 특징입니다.

sshd 부팅시 자동시작 설정 : /etc/rc.conf

sshd_enable="yes"


sshd_config 수정 / 재시작 : root로 로그인하는 것은 보안상 문제가 있지만, 편의를 위해 일단 이렇게 해놓자.

# vi /etc/ssh/sshd_config
PasswordAuthentication yes
PermitRootLogin yes
# /etc/rc.d/sshd restart 이제, ssh 로 원격 접속한다.


root, toor 계정쉘을 bash로 변경

# pkg install bash; rehash; chsh -s bash root; chsh -s bash toor
# ln -s /usr/local/bin/bash /bin/bash


쉘을 바꾸었으니, 로그아웃하고 다시 로그인하자. Linux Emulation 적용 (htop 에서 Linux 의 /proc 을 이용한다)

# echo 'linux_enable="YES"' >> /etc/rc.conf
# kldload linux; pkg install linux_base-f10
# echo 'linproc /compat/linux/proc linprocfs rw 0 0' >> /etc/fstab; mount linproc


필요한 패키지 설치

# pkg install tmux vim-lite ntp gnuls htop git curl wget gnu-watch portupgrade readline sqlite3 libxslt libxml2 openssl gmake

ntpd 적용/실행
# echo 'ntpd_enable="yes"' >> /etc/rc.conf; /etc/rc.d/ntpd start

gnuls alias 적용
# echo 'alias ls="gnuls --color=always"' >> /etc/profile; source /etc/profile

vim 적용
# echo 'alias vi="vim"' >> /etc/profile; source /etc/profile

언어 설정
# echo 'export LANG=ko_KR.UTF-8' >> /etc/profile; source /etc/profile

보안패치
# freebsd-update fetch; freebsd-update install


'OS > BSD' 카테고리의 다른 글

NetBSD 커널 컴파일하기  (0) 2013.03.04
NetBSD 설치후 작업  (0) 2013.03.02

+ Recent posts