본문 바로가기
IT & 전자기기/소프트웨어

아치 리눅스로 돌아가다 (6): Linux-LTS와 유용한 CLI 프로그램들, CUPS 인쇄와 스캔

by 카루 (Rolling Ress) 2020. 12. 7.
반응형

환영합니다, Rolling Ress의 카루입니다.

 

저번까지는 아치리눅스 설치를 완료하고 본격적인 사용을 위해 데스크탑 환경을 조금 예쁘게 꾸며보았죠. 오늘은 이제 마무리 단계에 접어들도록 하겠습니다. 안정적인 사용을 위한 LTS 커널 설치와 시스템 관리 및 뻘짓(...?)에 유용한 CLI 프로그램들을 설치해보도록 하겠습니다. 바로 시작해보도록 합시다.

 

https://kernel.org 은 리눅스 커널을 모아둔 곳입니다. 대부분의 배포판들은 리눅스 커널을 가져다가 커스텀하거나 해서 사용하죠. 아치와 젠투는 조금 사정이 다릅니다. 둘은 커스터마이징에 최적화 되어있기 때문에 마음에 드는 커널을 골라서 사용하는 게 훨씬 쉽습니다. 특히 아치의 경우엔 kernel.org에 있는 모든 커널을 AUR또는 기본 저장소에서 받을 수 있습니다.

 

The Linux Kernel Archives

 

www.kernel.org

Mainline은 현재 개발중인 커널입니다. 아직 안정화 전이므로 고급 사용자가 아니라면 함부로 다운받지 않는 것을 추천드립니다. AUR에 linux-mainline이라는 패키지로 들어있습니다. 이 외에도 실제로 우리가 사용하는 리눅스 커널은 stable 버전, 현재로써는 5.9.12버전이네요. 아치의 저장소에는 새로운 커널이 정말 놀랄 만큼 빨리 업데이트됩니다. 젠투보다 빨리 올라오는 걸로 알고 있어요. 늦어도 1주일 안에는 업데이트가 되는 듯 해요. 지금 최신 버전은 5.9.1.11.arch2-1인데, Testing 저장소에는 새 커널이 올라오자마자 5.9.12.arch1-1 커널이 등록되었습니다. 최소한의 안정화만 거치고 Core 저장소로 내려오는 거죠. 업데이트로 인해 버그가 생기면 어떡하냐고요? 그 버그를 해결하기 위해 '업데이트'를 하면 됩니다! 역시 이래서 제가 Rolling Release 프로그램을 좋아합니다. 제 블로그 이름이 Rolling Ress인 것도 롤링 릴리즈에서 따온 겁니다.

 

잡소리가 길었네요. 다만 stable 버전 또한 bleeding-edge(너무 최신)인 탓에 가끔씩 버그가 일어나는 경우가 있습니다. 저같은 경우에는 커널 업데이트 이후에 lightdm이 시작되지 않아서 그냥 콘솔창에 커서만 깜빡거리더라고요. 그냥 tty3로 로그인해서 sudo systemctl start lightdm 한방이면 끝나는데 매번 그럴 수는 없죠. 그리고 뭐 이런저런 문제가 있어서 더 안정적인 커널을 다운받고자 했습니다. 그게 바로 longterm, 즉 LTS(Long Term Support) 커널입니다. 아치리눅스에서는 공식적으로 가장 최신 버전의 LTS, 즉 5.4 버전의 커널만 지원합니다. 제가 알기로는 끝자리가 4, 9인 커널들은 LTS라 이번에 5.10 커널이 stable로 내려오면 5.9 커널이 lts가 되고, 아치리눅스 저장소의 linux-lts는 5.9 버전을 지원할겁니다. 아무튼, 조금 더 안정적인 사용을 위해 linux-lts 패키지를 설치해보죠. 사실 아치는 말이 lts지, 다른 배포판과 비교하면 굉장히 최신 커널을 탑재하고 있습니다. 데비안 10은 아직도 4.19 커널을 사용하거든요.

$ sudo pacman -Syu linux-lts linux-lts-headers

 

여기서는 보이지 않지만 역시 Zsh로 바꾸니 예쁘네요. 컴퓨터를 하는 맛이 납니다. 아주 좋아요. 아, 그리고 GRUB을 사용하시는 분들은 큰 문제가 없습니다만(설정파일 업데이트만 하면 됩니다) 저처럼 systemd-boot을 사용하시는 분들께서는 조금 까다로워집니다. 새 커널을 등록하고, 이걸 기본값으로 설정해주어야 해요. 우선 우리가 아치리눅스를 갓 설치했을 때를 떠올려봅시다. /boot/loader/entries/archlts.conf 파일을 새로 생성해주세요. 루트 권한이 필요합니다.

title Arch Linux LTS
linux /vmlinuz-linux-lts
initrd /intel-ucode.img
initrd /initramfs-linux-lts.img
options root=/dev/nvme0n1p3 rw

 

사실 입력이 귀찮다면 그냥 같은 폴더의 arch.conf를 복사해서 편집하면 됩니다. 주의하실 점은 구분을 위해 title에 반드시 LTS를 붙여주시고 (혹은 다른 표시를 해 주시고) 3째 줄은 AMD cpu를 사용하신다면 amd-ucode로 바꿔야 할 겁니다. 그리고 마지막 줄은 루트 파티션을 알맞게 지정해주셔야 합니다.

 

다 되었다면 부트로더를 설정하겠습니다. /boot/loader/loader.conf 파일을 수정해주세요.

default archlts
timeout 3
console-mode max
editor no

 

혹시 몰라 타임아웃을 3초로 증가시켰습니다. 나중에 정상적으로 LTS 커널로 부팅이 된다면 그 때 0으로 다시 돌려놔도 좋습니다. 그 다음에 이제 진짜 부트로더를 건드리겠습니다. 아래 명령어를 통해 현재 부트로더의 설정값을 봅시다.

$ bootctl list
Boot Loader Entries:
title: Arch Linux LTS
id: archlts.conf
source: /boot/loader/entries/archlts.conf
linux: /vmlinuz-linux-lts
initrd: /intel-ucode.img /initramfs-linux-lts.img
options: root=/dev/nvme0n1p3 rw

title: Arch Linux (default) 
id: arch.conf 
source: /boot/loader/entries/arch.conf 
linux: /vmlinuz-linux 
initrd: /intel-ucode.img /initramfs-linux.img 
options: root=/dev/nvme0n1p3 rw 

title: Reboot Into Firmware Interface 
id: auto-reboot-to-firmware-setup 
source: /sys/firmware/efi/efivars/LoaderEntries-((각자 다름))

 

Arch Linux LTS가 추가되었긴 합니다만, 기본값은 아닙니다. 이걸 이제 기본값으로 설정하겠습니다.

$ sudo bootctl set-default archlts.conf

 

이 명령어를 입력하고 다시 list를 하면 Arch Linux LTS가 default로 지정되어 있는 모습을 확인하실 수 있습니다. reboot을 입력하여 재부팅을 하고, VirtualBox를 이용하신다면 아래 명령어를 입력하여 버추얼박스를 사용하기 위한 호스트 모듈을 설치합니다. linux (아치 공식 커널) 커널과 linux-lts (공식 LTS 커널) 커널이 사용하는 모듈이 서로 달라요. 그래서 다시 설치해주어야 합니다.

$ uname -r 5.4.80-2-lts
$ sudo pacman -S virtualbox-host-dkms

 

이렇게만 하면 더 이상 건들 건 없습니다. pacman hook 덕분에 linux-headers가 설치되어있는 커널은 몽땅 다 찾아내서 모듈을 빌드해주거든요. 우리는 이제 버추얼박스를 계속해서 사용할 수 있습니다.

 

그 다음은 이제 CLI로 넘어가겠습니다.

 

터미널에서 사용할 수 있는 유용한 프로그램들에 대해 정리해 놓은 글을 가져왔으니, 읽어보시는 것도 도움이 될 겁니다.

 

20 Funny Commands of Linux or Linux is Fun in Terminal

Linux is fun! Huhhh. OK so you don’t believe me. Mind me at the end of this article you will have to believe that Linux is actually a fun box. 20 Linux Funny Commands 1. Command: sl (Steam Locomotive) You might be aware of command ‘ls‘ the list comma

www.tecmint.com

비주얼적으로 가장 좋은 프로그램은 역시 cmatrix가 아닐까 합니다.

$ pacman -S cmatrix
$ fuck
$ cmatrix

 

....sudo를 잊어버렸네요. 잃어버린 sudo까지 찾아주는 저 fu** 프로그램이 개인적으로 참 마음에 듭니다. 설치 방법은 지난번에 포스팅한 (5)번 글을 참고하세요. 아무튼, 저렇게 실행하면 터미널에 매트릭스 화면을 뿌려줍니다.

이렇게 터미널에서 글자가 주르르륵 내려옵니다. 리눅스를 모르는 사람에게 터미널을 실행시키고 이 화면을 보여준다면 굉장한 해커로 보일 수 있어요. 멋있죠. 저는 제 친구들을 모조리 낚아보겠습니다.

 

그 다음은 cups입니다. 저번에 이야기한 것 같기는 한데, 본격적으로 사용하려면 조금 더 까다롭기는 합니다.

$ sudo pacman -S cups cups-pdf splix
$ yay -S samsung-unified-driver{,-{common,printer,scanner}}
$ sudo systemctl enable cups
$ sudo systemctl start cups

 

뭐가 좀 복잡하네요. 아무튼 설치를 마친 다음, 아무 인터넷 창이나 열어서 'localhost:631'에 접속합니다. 역시 cups 프린터를 추가하실 수 있습니다. 참고로 네트워크 프린터는 조금 더 까다로운데,

$ sudo pacamn -S nss-mdns
$ sudo systemctl enable avahi-daemon
$ sudo systemctl start !$

 

이렇게 호스트네임 설정을 해 주고 /etc/nsswitch.conf 파일을 편집합니다. resolve 앞에 'mdns_minmal [NOTFOUND=return]'을 추가해주세요. 따옴표는 입력하지 않습니다. 스캐너는 cups에서 잡히지 않으므로 다른 프로그램을 써야 합니다.

$ sudo pacman -S sane-airscan $ sudo pacman -S ipp-usb # USB인 경우에만 $ sudo systemctl enable ipp-usb

$ sudo pacman -S sane-airscan
$ sudo pacman -S ipp-usb # USB인 경우에만
$ sudo systemctl enable ipp-usb

 

이제 simple scan등의 프론트엔드를 설치하여 자유롭게 스캔이 가능합니다.

 

다음은 위험한 명령어입니다 포크 폭탄(Folk Bomb)이라고 해서, 재귀 함수를 이용하여 시스템을 마비시키는 명령어입니다. 웬만하면 하지 마세요. 주변에 어떤 친구가 리눅스를 쓰는데 나는 그 친구가 정말 꼴도 보기 싫다! 라고 하면 역시 가장 좋은 건 sudo rm -rf / --no-preserve-root이 좋지만 골려주기 좋습니다. 내가 당하겠다.

$ :(){ :|:& }:

 

수족관도 있습니다. 아무 것도 아니고 그냥 보기만 할 수 있는 수족관입니다. 물론, CLI 기반이에요.

$ sudo pacman -S asciiquarium
$ asciiquarium

 

자, 이제 리눅스 팁입니다. 개조식으로 작성하겠습니다.

1. 제가 설정한 대로 ZSH과 그 확장을 올바르게 설치했다면, TAB키를 통해 명령어를 자동완성시킬 수 있습니다. 이 외에도 잘못된 명령을 Zsh 내부에서 바로잡아줄 수도 있으며, fuck을 통해 빼먹은 sudo를 입력하는 등 편리한 CLI 환경을 만들 수 있습니다.

2. cd는 단순히 주어진 디렉터리로 옮기는 기능이 아닙니다. 몇 가지 고급 기능이 더 있습니다.

$ cd - # 이전 작업 디렉터리로 이동
$ cd ~ # 홈 디렉터리로 이동
$ cd # 위와 같음

 

3. bashrc 또는 zshrc에 alias ll='ls -l'을 입력해두면 다른 리눅스와 비슷하게 ll 사용이 가능합니다.

4. 쉘에는 연산자 기능이 있습니다. 여러 명령어를 한 번에 실행할 수 있는 기능을 제공합니다.

$ cmd1; cmd2 # 세미콜론: cmd1을 실행하고, cmd2를 실행한다.
$ cmd1 && cmd2 # 앰퍼센드: cmd1을 실행하고, 성공했을 경우에만 cmd2를 실행한다.

 

5. 가끔가다 터미널이 멈추는 경우가 있습니다. 특히 Nano를 쓰다 무심코 Ctrl+S를 눌렀을 때 발생하는데, Ctrl+Q를 누르면 해제시킬 수 있습니다.

6. 파일을 읽는 프로그램은 몇 가지가 있습니다. cat은 통째로 보여주고, less 또는 more은 한 화면에 다 나오지 않는 파일을 볼 때 유용하게 쓸 수 있습니다. 아주 짧은 파일을 잠깐 보기만 할 때, 혹은 grep을 사용할 때는 cat이 좋고, 텍스트를 읽기만 할 때는 less나 more, 편집까지 할 때는 nano가 좋습니다.

7. 제가 늘 하는 거, !$이죠. 윗 줄에서 사용한 마지막 매개변수를 그대로 사용할 때 씁니다. 이 외에도 Alt 키를 누른 상태에서 '.'을 몇 번 눌러도 비슷한 효고를 볼 수 있습니다. 만약 윗 줄 전체를 사용해야 할 때는 !!을 사용합니다. 예를 들어 아래와 같습니다.

$ pacman -Syu # 에러나겠죠. 루트 권한 필요하다고.
$ fuck # 무식하지만 확실한 방법
==================================
$ pacman -Syu # 에러나겠죠?
$ sudo !! # 이렇게도 가능합니다.

 

8. 터미널에서 복사, 붙여넣기는 Ctrl+Shift+C, Ctrl+Shift+V를 사용합니다. 검색은 Ctrl+Shift+F입니다. 그냥 Ctrl+C는 프로그램을 죽여버려요.

9. 파일을 지우지 않고 비워버릴 수 있습니다. 특히 아주 큰 파일을 삭제할 때 유용합니다. 다만 파일을 잘 확인하고 사용하세요.

$ > file

 

네, 이상으로 리눅스 터미널 팁과 프린터/스캐너 설정 및 리눅스 LTS 커널 설치에 대해 알아보았습니다. 조금 복잡하죠. 이제 슬슬 마무리할 때가 되었네요. 이제 다음에는 윈도우 프로그램을 아치리눅스에서 돌리기 위해 가상머신을 사용하는 방법을 알아보겠습니다.

 

반응형


같이 보면 좋은 글


댓글