여기서는 리눅스 사용시 설치하여야 할 것들에 대해서 정리해 보자.

dockviz

Docker 이미지 레이어를 트리 형태로 표현해 준다.

$ dockviz images --tree 
├─<missing> Virtual Size: 126.8 MB
│ └─<missing> Virtual Size: 126.8 MB
│   └─<missing> Virtual Size: 127.1 MB
│     └─<missing> Virtual Size: 127.1 MB
│       └─<missing> Virtual Size: 130.2 MB
│         └─<missing> Virtual Size: 130.2 MB
│           └─<missing> Virtual Size: 141.1 MB
│             └─<missing> Virtual Size: 141.1 MB
│               └─<missing> Virtual Size: 141.1 MB
│                 └─<missing> Virtual Size: 141.1 MB
│                   └─<missing> Virtual Size: 141.1 MB
│                     └─<missing> Virtual Size: 141.1 MB
│                       └─<missing> Virtual Size: 141.1 MB
│                         └─<missing> Virtual Size: 403.4 MB
│                           └─<missing> Virtual Size: 403.4 MB
│                             └─<missing> Virtual Size: 403.4 MB
│                               └─<missing> Virtual Size: 403.4 MB
│                                 └─<missing> Virtual Size: 403.4 MB
│                                   └─<missing> Virtual Size: 403.4 MB
│                                     └─520fc647a087 Virtual Size: 403.4 MB Tags: mariadb:latest
├─<missing> Virtual Size: 79.2 MB
│ └─<missing> Virtual Size: 79.2 MB
│   └─<missing> Virtual Size: 79.5 MB
│     └─<missing> Virtual Size: 79.5 MB
│       └─<missing> Virtual Size: 82.6 MB
│         └─<missing> Virtual Size: 82.6 MB
│           └─<missing> Virtual Size: 82.6 MB
│             └─<missing> Virtual Size: 82.6 MB
│               └─<missing> Virtual Size: 106.7 MB
│                 └─<missing> Virtual Size: 106.7 MB
│                   └─<missing> Virtual Size: 106.7 MB
│                     └─<missing> Virtual Size: 106.7 MB
│                       └─<missing> Virtual Size: 106.7 MB
│                         └─<missing> Virtual Size: 106.7 MB
│                           └─<missing> Virtual Size: 106.7 MB
│                             └─c5355f8853e4 Virtual Size: 106.7 MB Tags: redis:latest
└─<missing> Virtual Size: 936.5 MB
  └─<missing> Virtual Size: 936.5 MB
    └─<missing> Virtual Size: 936.5 MB
      └─<missing> Virtual Size: 936.5 MB
        └─<missing> Virtual Size: 936.5 MB
          └─<missing> Virtual Size: 936.5 MB
            └─<missing> Virtual Size: 945.0 MB
              └─<missing> Virtual Size: 954.1 MB
                └─<missing> Virtual Size: 954.1 MB
                  └─3f0eaedadec5 Virtual Size: 954.1 MB Tags: lambci/lambda:go1.x

bat

cat의 alternative. cat의 모든 기능을 가지고 있으면서 여러 편의 기능이 포함되었다. 예를 들어 bat의 결과 화면 왼쪽에 라인 넘버를 함께 출력해 준다거나(파라미터를 사용하여 없앨 수도 있다.), 한 화면보다 긴 출력일 경우, 자동으로 less처리를 해 준다거나 하는 기능을 포함한다.

$ cat lorem.ipsum
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus nunc urna,
lacinia at congue at, porttitor et urna. Nulla condimentum dapibus nisl,
ac aliquam enim auctor id. Vestibulum fermentum at nibh ac pellentesque.
Morbi quis ex enim. Nunc tempus odio et ipsum mollis, non pellentesque
tellus vulputate. Praesent pellentesque nibh id pulvinar fringilla.
Praesent sollicitudin scelerisque aliquet. Integer in lacinia neque.
Suspendisse ut sagittis tellus, sed porttitor orci. Quisque ipsum odio,
rhoncus vitae tristique sit amet, pulvinar at enim. Suspendisse sed tempor orci.
Phasellus in sapien nec enim fermentum sodales ac in diam. Quisque ac varius
massa. Sed enim ipsum, laoreet ac enim at, faucibus pharetra felis. Pellentesque
quis velit vitae turpis fringilla fermentum. Suspendisse erat massa,
sollicitudin rhoncus dapibus ac, commodo ac ipsum.

Sed non cursus leo. Maecenas at lacus magna. Morbi lacinia id urna vitae
placerat. Integer in tellus ipsum. Quisque vehicula lacinia massa non consequat.
Mauris viverra convallis velit, eget rutrum nisl vehicula nec. Sed lobortis
pulvinar suscipit. Quisque molestie tempus diam ac porta. Pellentesque ultrices
venenatis sem, quis pulvinar ligula fringilla vel. Mauris ac lectus vel ante
efficitur rhoncus. Suspendisse laoreet ac tellus vel elementum. Sed vulputate
odio nec libero pulvinar elementum. Aliquam vitae quam sed enim consectetur
finibus vel ut libero. Suspendisse nisl enim, posuere et rutrum eu, euismod a
risus. Proin sem dolor, maximus id semper at, congue sit amet leo.
Quisque imperdiet congue nisl sed dictum.

$ bat lorem.ipsum
───────┬──────────────────────────────────────────────────────────────────────────────────
       │ File: lorem.ipsum
───────┼──────────────────────────────────────────────────────────────────────────────────
   1   │ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus nunc urna,
   2   │ lacinia at congue at, porttitor et urna. Nulla condimentum dapibus nisl,
   3   │ ac aliquam enim auctor id. Vestibulum fermentum at nibh ac pellentesque.
   4   │ Morbi quis ex enim. Nunc tempus odio et ipsum mollis, non pellentesque
   5   │ tellus vulputate. Praesent pellentesque nibh id pulvinar fringilla.
   6   │ Praesent sollicitudin scelerisque aliquet. Integer in lacinia neque.
   7   │ Suspendisse ut sagittis tellus, sed porttitor orci. Quisque ipsum odio,
   8   │ rhoncus vitae tristique sit amet, pulvinar at enim. Suspendisse sed tempor orci.
   9   │ Phasellus in sapien nec enim fermentum sodales ac in diam. Quisque ac varius
  10   │ massa. Sed enim ipsum, laoreet ac enim at, faucibus pharetra felis. Pellentesque
  11   │ quis velit vitae turpis fringilla fermentum. Suspendisse erat massa,
  12   │ sollicitudin rhoncus dapibus ac, commodo ac ipsum.
  13  14   │ Sed non cursus leo. Maecenas at lacus magna. Morbi lacinia id urna vitae
  15   │ placerat. Integer in tellus ipsum. Quisque vehicula lacinia massa non consequat.
  16   │ Mauris viverra convallis velit, eget rutrum nisl vehicula nec. Sed lobortis
  17   │ pulvinar suscipit. Quisque molestie tempus diam ac porta. Pellentesque ultrices
  18   │ venenatis sem, quis pulvinar ligula fringilla vel. Mauris ac lectus vel ante
  19   │ efficitur rhoncus. Suspendisse laoreet ac tellus vel elementum. Sed vulputate
  20   │ odio nec libero pulvinar elementum. Aliquam vitae quam sed enim consectetur
  21   │ finibus vel ut libero. Suspendisse nisl enim, posuere et rutrum eu, euismod a
  22   │ risus. Proin sem dolor, maximus id semper at, congue sit amet leo.
  23   │ Quisque imperdiet congue nisl sed dictum.
───────┴──────────────────────────────────────────────────────────────────────────────────

jq

바로 가기

bash 등의 쉘에서 파이썬이나 다른 것을 사용하지 않고 json을 포맷팅하거나 루프를 돌거나 하는 등의 처리를 위해 사용하는 프로그램이다. jq 배포 페이지에 가 보면 다음과 같이 간단하게 설명하고 있다.

jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.

가장 간단하게 사용하는 방법은 json의 출력을 파이프를 사용하여 jq로 보내버리는 것이다.

$ bat dummy.json
───────┬────────────────────────────────────────────────────────────────────────
       │ File: dummy.json
───────┼────────────────────────────────────────────────────────────────────────
   1{"users":[{"id":0,"name":"Adam Carter","work":"Unilogic","email":"adam.
       │ carter@unilogic.com","dob":"1978","address":"83 Warner Street","city":"
       │ Boston","optedin":true},{"id":1,"name":"Leanne Brier","work":"Connic","
       │ email":"leanne.brier@connic.org","dob":"13/05/1987","address":"9 Colema
       │ n Avenue","city":"Toronto","optedin":false}],"images":["img0.png","img1
       │ .png","img2.png"],"coordinates":{"x":35.12,"y":-21.49},"price":"$59,395
       │ "}
───────┴────────────────────────────────────────────────────────────────────────

bat은 위에 설명되어 있는 부분을 참고하자. 어쨌든 indent가 되어 있지 않은 결과를 파이프로 보내면 다음과 같다.

$ bat dummy.json | jq
{
  "users": [
    {
      "id": 0,
      "name": "Adam Carter",
      "work": "Unilogic",
      "email": "adam.carter@unilogic.com",
      "dob": "1978",
      "address": "83 Warner Street",
      "city": "Boston",
      "optedin": true
    },
    {
      "id": 1,
      "name": "Leanne Brier",
      "work": "Connic",
      "email": "leanne.brier@connic.org",
      "dob": "13/05/1987",
      "address": "9 Coleman Avenue",
      "city": "Toronto",
      "optedin": false
    }
  ],
  "images": [
    "img0.png",
    "img1.png",
    "img2.png"
  ],
  "coordinates": {
    "x": 35.12,
    "y": -21.49
  },
  "price": "$59,395"
}

jq가 설치되어 있다면, vim과의 연동으로 json을 포맷팅할 수 있다. 다음과 같이 사용한다.

%!jq '.'

리더 키에 등록해 놓고 사용할 수도 있다. 자세한 내용은 추후 정리.

fzf

출력을 탐색할 수 있다. 설명이 애매한데, less와 같이 출력 자체를 쥐고서 다른 포맷으로 보여준다. 보여주는 것 뿐 아니라 incremental search를 통해 편리한 탐색을 지원하고 다양한 방식으로 사용할 수 있다.

Albert

맥에서의 그 프로그램 런처랑 같다. 리눅스용으로는 제일 간편하고 쓰기 좋다. Ctrl + Space에 맵핑해서 쓰는 중

Terminator

리눅스 최고의 터미널. tmux는 vim과 단축키가 겹치는게 많아서 직접 쓰기는 조금 그렇고 이 터미널을 사용한다. 맥으로 치면 투박한 iterm2라고 봐도 무방하다. 창을 나누고 브로드캐스팅이 가능하다.