Khởi tạo hệ điều hành Debian Linux

Đây là những cài đặt ban đầu cho Linux Mint LMDE trên PC của tôi. Hầu hết những setup này cũng được áp dụng trên các server Debian Linux và các thiết bị Raspberry Pi chạy Raspbian/Raspberry Pi OS.

Khởi tạo hệ điều hành Debian Linux
Hướng dẫn khởi tao Debian/Ubuntu

Các thiết lập ban đầu sau khi cài đặt Debian Linux

Cập nhật toàn bộ các phần mềm

Tôi tạo một shell script để thực hiện quá trình update các phần mềm và toàn bộ hệ thống thông qua apt như sau:

/usr/local/bin/deb_update.sh

#!/bin/bash
for cmd in update upgrade full-upgrade autoremove autoclean; do
    sudo apt ${cmd} -y || exit 1
done
# Reboot the system if required
[ -f /var/run/reboot-required ] && reboot

Khởi chạy script như sau

sudo chmod +x /usr/local/bin/deb_update.sh
sudo deb_update.sh

Ta có thể để đoạn script này vào cron để tự động hóa quá trình này.

sudo crontab -e

Ví dụ, tự động update hệ thống lúc 03:00 (sáng) ngày thứ Hai hàng tuần.

0 3 * * 1 /usr/local/bin/deb_update.sh >/dev/null 2>&1

Sửa lỗi hiển thị thời gian khi dual boot với Windows

Nếu cài Debian dual boot với Windows sẽ có xung đột về hiển thị thời gian giữa 2 OS này, vì Windows dùng local time trong khi Debian mặc định lại dùng UTC. Cách fix đơn giản nhất là yêu cầu Debian sử dụng local time như Windows.

sudo timedatectl set-local-rtc 1

Tăng tốc độ tải app với preload

Preload là một daemon ngầm phân tích hành vi sử dụng các app, từ đó tối ưu tải trước các app thường dùng nhất. Cài đặt preload như sau

sudo apt install preload -y

Cho phép sử dụng rc.local

Từ Debian Bulleyes, ta không còn thấy file /etc/rc.local nữa, nhưng không có nghĩa chức năng này đã bị loại bỏ. Dịch vụ rc-local mặc định đang bị tắt, chúng ta chỉ cần bật nó lên thôi.

Trước hết ta sẽ tạo file /etc/rc.local có nội dung như dưới đây.

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

Cấp phép executable cho script này.

sudo chmod +x /etc/rc.local

Khởi động lại systemd manager rồi bật rc-local service là xong.

sudo systemctl daemon-reload
systemctl start rc-local

Thiết lập máy chủ

Cài đặt SSH server

Tham khảo cách cài đặt Secure Shell (SSH) tại ĐÂY.

Cài đặt máy chủ web LAMP

LAMP là viết tắt của Linux Apache, MariaDB, PHP. Xem thêm cách cài đặt LAMP cho Server Debian Linux tại ĐÂY.

Cài đặt Node.js

Xem thêm những cách cài đặt Node.js trên Debian Linux hoặc build từ mã nguồn tại ĐÂY.

Thiết lập tường lửa với ufw

Ufw viết tắt của Uncomplicated Firewall – Tường lửa không phức tạp – nhằm đơn giản hóa các thao tác trên lệnh iptables.

Thận trọng về thông tin các cổng (port) và địa chỉ IP khi setup tường lửa trong lúc truy cập từ xa (ví dụ SSH) vì bạn có thể bị ngắt kết nối nếu thiết lập sai và phải truy cập trực tiếp thiết bị.

Cài đặt ufw như sau

sudo apt install ufw

Thiết lập ufw theo kiểu Whitelist. (Cấm tất cả, chỉ cho phép truy cập từ những thiết bị được lựa chọn).

sudo ufw default deny incoming
sudo ufw default allow outgoing

Cho phép SSH và Web server truy cập được từ bên ngoài. Bạn có thể bổ sung rule cho các application khác.

sudo ufw allow 2022/tcp
sudo ufw allow http
sudo ufw allow https

Kích hoạt tường lửa hoạt động

sudo ufw enable

Các phần mềm dùng hàng ngày

Trình soạn thảo văn bản vim

Vim là editor yêu thích của tôi khi làm việc qua dòng lệnh vì những phím tắt quá nhanh và tiện, quan trọng hơn là tôi dùng nó gần 20 năm rồi.

Trình editor mặc định là nano dù dễ dùng hơn hẳn nhưng tiếc chỉ là “người đến sau” mà thôi.

sudo apt install vim

Chọn vim.basic làm editor chính bằng lệnh sau

sudo update-alternatives --config editor

Một vài thiết đặt linh tinh cho vim.

~/.vimrc

syntax on
set number
set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab
set backup
set paste
set mouse-=a

Trình duyệt Google Chrome

Tải bộ cài (.deb) của trình duyệt Google Chrome bằng wget như sau:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

Ta có thể double click vào file .deb vừa tải về hoặc thực hiện lệnh cài đặt như sau:

sudo apt install ./google-chrome-stable_current_amd64.deb

Sau khi cài đặt thành công, ta có thể mở trình duyệt Google Chrome từ Menu.

Ngoài ra thông tin về repository của Google Chrome cũng tự động được thêm vào hệ thống và sau này ta có thể cập nhật phiên bản mới bằng lệnh apt. Bạn có thể kiểm tra bằng lệnh:

cat /etc/apt/sources.list.d/google-chrome.list

Nội dung của file đâu đó sẽ như sau:

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main

Bộ gõ tiếng Việt ibus-bamboo

Đây là một bộ gõ Tiếng Việt khá tốt, hỗ trợ các kiểu gõ và bảng mã thông dụng và icon cũng khá hợp mắt khi có icon riêng cho bộ gõ Tiếng Việt và Tiếng Anh. Như cái tên của nó, ibus-bamboo chạy trên IBus framework.

Trên repository của Debian Linux hoặc Raspberry Pi OS (kiến trúc ARM) không có phần mềm này. Ngoài ra ta cũng không thể cài đặt bộ gõ này thông qua ppa mà cần build từ mã nguồn.

Bộ gõ ibus-bamboo được viết bằng ngôn ngữ Go nên trước tiên ta phải cài đặt compiler này:

sudo apt install -y make golang libx11-dev libxtst-dev libgtk-3-dev

Tải mã nguồn ibus-bamboo để build và cài đặt như sau

git clone https://github.com/BambooEngine/ibus-bamboo.git
cd ibus-bamboo
sudo make install
ibus restart

Mount các dịch vụ chia sẻ file qua mạng với Rclone

Rclone là ứng dụng dòng lệnh giúp quản lý file trên các Cloud Storage như DropBox, OneDrive, Google Drive v.v…

Frontend của rclone là Rclone Browser (rclone-browser) lại khá cơ bản chẳng có gì ngoài duyệt file và mount. Việc phức tạp nhất đáng ra phải có Wizard UI là thêm bớt dịch vụ thì lại phải dùng giao diện CLI.

Cài đặt lệnh rclone và Rclone Browser như sau:

sudo apt install rclone rclone-browser

Tự động mount các Cloud storage vào các thư mục cùng tên:

#!/bin/bash
# 
#
do_mount() {
  local TMP=/tmp/rclone.${UID}
  local REMOTE_PATH="${1}:${2}"
  local MOUNT_TARGET="${HOME}/Remotes/${1}"

  if [ -d "${MOUNT_TARGET}" ]; then
    umount -q "${MOUNT_TARGET}" || return 1
  else
    mkdir -p "${MOUNT_TARGET}" || return 2
  fi

  rclone \
    --vfs-cache-mode \
    writes mount \
    --cache-tmp-upload-path=${TMP}/upload \
    --cache-chunk-path=${TMP}/chunks \
    --cache-workers=8 \
    --cache-writes \
    --cache-dir=${TMP}/vfs \
    --cache-db-path=${TMP}/db \
    --no-modtime \
    --drive-use-trash \
    --stats=0 \
    --checkers=16 \
    --bwlimit=10M \
    --dir-cache-time=60m \
    --cache-info-age=60m \
    "${REMOTE_PATH}" "${MOUNT_TARGET}" &
}

# Give a short delay before mounting
sleep 5

# Mount all remotes
grep -E "^\[(.*)\]$" ~/.config/rclone/rclone.conf | \
  sed -r "s/\[(.*)\]/\1/" | \
  while IFS=$'\n' read remote; do
    do_mount "${remote}" /
  done

Soạn thảo mã nguồn với Visual Studio Code

Thêm repository của Visual Studio Code của Microsoft vào hệ thống để tải về bằng apt.

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"

Sau đó tiến hành cài đặt code như sau:

sudo apt update
sudo apt install code

Chia sẻ bàn phím và chuột với những máy tính khác bằng Synergy

Xem cách cài đặt Synergy trên Debian Linux bằng cách build từ mã nguồn tại ĐÂY.

(To be continued…)

Thiết lập đặc thù cho Raspberry Pi OS

Thay đổi screen blanking timeout

Raspberry Pi OS chức năng là Screen Blanking, tự động tắt màn hình sau 10 phút khi không có hoạt động giống như screen saver. Ta chỉ có thể bật/tắt tính năng này bằng raspi-config (Display > Screen Blanking) mà không có cấu hình khoảng thời gian timeout này.

Script dưới đây sẽ thiết lập Screen Blanking timeout một cách tạm thời bằng xset với tham số đầu vào là số phút. Thiết lập này sẽ bị mất sau khi reboot.

~/bin/scrto.sh

#!/bin/bash
#
# scrto.sh [TIMEOUT]
#
DISPLAY=:0
[[ ${1} =~ ^[0-9]$ ]] && mins=${1} || mins=10
secs=$((mins*60))
xset s ${secs} ${secs}
xset dpms ${secs} ${secs} ${secs}

Tạo một shortcut trong thư mục ~/.config/autostart như dưới đây để tự động thay đổi screen blanking timeout thành 5 phút mỗi khi đăng nhập vào giao diện người dùng (thay số 5 bằng số phút bạn muốn).

~/.config/autostart/scrto.desktop

[Desktop Entry]
Type=Application
Name=ScreenBlankingTimeout
Exec=/home/pi/bin/scrto.sh 5

Phản hồi về bài viết

Cùng thảo luận chút nhỉ!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.