Ubuntu 20.04 - Cheat sheet

Ubuntu 20.04 를 설치/운영하면서 필요한 팁/트릭과 쓸모있는 사용법을 정리한다.

비슷한 문서:

Timezone 관련

CLI에서 설정을 할 수 있다.

timedatectl timedatectl 명령으로

1
2
3
4
5
6
$ timedatectl list-timezones
...
Asia/Seoul
...

$ sudo timedatectl set-timezone Asia/Seoul

만약 손으로 수정을 한다면,

timedatectl 로 지정되는 설정 Timezone/etc/localtime 이라는 바이너리로 저장되므로
명령행에서 지원하는 timezone을 복사할 수 도 있다고 한다..

1
$ sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime

LCD/Screen off

기존에 글 Ubuntu/시스템 전원관리, 2017년 에서 Ubuntu 18.x 에서 디스플레이(특히 노트북 LCD)를 끄기 위해서 사용되던 직접 vbetool 명령으로 동작하지 않는다.

그래서 Ubuntu 20.04 에서는 링크 ubuntu-20-04-on-a-laptop-is-there-any-way-toturn-off-the-screen 에 있는 방법으로 사용하고 있다.

디스플레이를 끄려면

1
2
3
sudo mount -o remount,exec /dev
sudo vbetool dpms off
sudo mount -o remount,noexec /dev

다시 디스플레이를 켜려면

1
2
3
sudo mount -o remount,exec /dev
sudo vbetool dpms on
sudo mount -o remount,noexec /dev

Network 상태 확인

ss 명령

ss 명령은 Socket Statistics 를 출력해 준다. open 된 소켓에 대한 정보를 표시한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ss [-a -t -u -l -p -n] [filter]

-a:
-t: TCP
-u: UDP
-l: LISTEN 상태 포트
-n: 호스트/포트/사용자 이름을 숫자로 표시
-p: 프로세스 이름
-r, --resolve: resolve host names
-w, --raw : display only RAW sockets
-x, --unix : display only Unix domain sockets
-4, --ipv4 : display only IP version 4 sockets
-6, --ipv6 : display only IP version 6 sockets
-m, --memory : show socket memory usage

LISTEN Port 확이

netstat 같이 LISTEN 상태 프로세스를 확인할 수 있다. 다음은 t: tcp 포트, l: LISTEN 상태의 소켓 정보를 출력한다.

1
2
3
4
5
6
7
8
9
10
$ ss -lntu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 12.42.168.213%enp3s0:68 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 10 127.0.0.1:9000 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:443 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:53000 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:2020 0.0.0.0:*

IPv4, IPv6 소켓

1
2
3
4
5
6
7
8
9
$ ss -tl4
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:http 0.0.0.0:*
LISTEN 0 511 0.0.0.0:https 0.0.0.0:*
$
$ ss -tl6
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 [::]:2020 [::]:*
q

lsof

Linux에서 open file을 확인하는데 사용되는 lsof 명령입니다. Unix/Linux의 모든 것은 파일로 이루어져있기때문에 스트림이나 네트워크 파일도 lsof 로 확인할 수 있습니다.

1
2
$ lsof -i
$ lsof -l

Ubuntu/시스템 전원관리, 2017년

hexo 의 icarus theme 수정하기

git 으로 clone 한 icarus theme 를 사용하고 있다. 스타일과 코드를 수정하려면 아래 2개 사이트의 정보가 필요할 것 같다.

  1. bulma.io
  2. inferno

layout 관련

기본 레이아웃은 layout.jsx 이다.과련해서 bulma 의 CSS 정의를 살펴보면 도움이 된다.

컬럼 수에 따른 조절…

icarus/layout/layout.jsx 에서 컬럼수로 폭을 조절하는 것을 상대적으로 정해주니 좀 더 시원해 졌다.

1
2
3
4
5
6
7
8
9
10
11
12
<div class="columns">
<div class={classname({
column: true,
'order-2': true,
'column-main': true,
'is-four-fifths': columnCount === 1,
//'is-12': columnCount === 1,
'is-four-fifths-tablet is-four-fifths-desktop is-four-fifths-widescreen': columnCount === 2,
'is-three-quarters-tablet is-three-quarters-desktop is-three-quarters-widescreen': columnCount === 3
//'is-8-tablet is-8-desktop is-8-widescreen': columnCount === 2,
//'is-8-tablet is-8-desktop is-6-widescreen': columnCount === 3
})} dangerouslySetInnerHTML={{ __html: body }}></div>

style 관련

responsive.styl

화면 폭 수정

themes/icarus/include/style/responsive.styl

  • Javascript code determines the page width.
1
2
3
4
+fullhd()
.is-2-column .container
max-width: $widescreen - 1 * $gap
width: $widescreen - 1 * $gap

style.styl

전체 스타일 시트는 themes/icarus/source/css/style.styl 에서 외부 .styl 파일을 을 import 해서 적용했다. 변경을 위해서 themes/my_icarus_custom 이란 폴더를 만들어 사용한다.

  • themes/icarus/source/css/style 아래 추가할 스타일 파일을 만들어 사용한다.
1
2
3
4
5
hexo ROOT/
|----- themes
|
|----- icarus/
source/css/my_bg.styl

배경이미지 적용

  1. themes/icarus/source/css/style.styl 파일에 다음을 적용
1
2
// my custums
@import '../../include/style/my_bg'
  1. 배경 이미지는 hexo/source/images/ 아래에 저장했다.

  2. my_icarus_custom/bg.styl 파일에 CSS 스타일 작성

1
2
3
4
5
6
7
body {
background-image: url("/images/vlcsnap-2023-05-16-14h44m58s614.png");
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
background-position: 50% 50%;
}