Sau hơn 10 năm dùng Ubuntu/OSX/OpenBSD, các combo câu lệnh mình sử dụng đã có nhiều thay đổi, bài này sẽ cập nhật các combo hay dùng nhất:

ls

ls -la vốn là combo ưa thích, thì ngày nay, tay đã quen với 2 combo khác:

ls -Fhtl hiển thị file và sắp xếp theo file mới nhất ở trên đầu

ls -lFS hiển thị file theo size giảm dần (dễ nhớ: LinuxFromScratch)

free -m

free là câu lệnh chỉ có trên Linux như Ubuntu, trên OSX và OpenBSD đều không có, vậy nên dùng top | head sẽ thay thế được cho lệnh free.

Combo sau khi login vào 1 máy sẽ là: w; df -h; top | head

grep

Vẫn là combo grep -Rin pattern dir nhưng ngày nay mình đã thay grep bằng ripgrep nên thường chỉ gõ rg pattern dir ripgrep nhanh hơn grep nhiều lần, chú ý khi tìm file "ẩn"/ignored.

curl

curl vốn phổ biến như 1 CLI HTTP client tiện dùng khi dev, nhưng curl không có sẵn ở nhiều nơi như wget (ubuntu, busybox mặc định, trong các Alpine based container).

$ curl -L -o elm.gz https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz

tương đương với

$ wget -O elm.gz https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz

wget cũng có thể dùng để thực hiện HTTP GET request:

# wget -qO- https://httpbin.org/get
{
  "args": {},
  "headers": {
    "Host": "httpbin.org",
    "User-Agent": "Wget",
    "X-Amzn-Trace-Id": "Root=1-604387fc-24ae289768ff475a730532f7"
  },
  "origin": "171.246.107.102",
  "url": "https://httpbin.org/get"
}

su

Sau vụ lỗ hổng bảo mật của sudo dậy sóng cộng đồng mạng đầu 2021, thật ra chẳng ảnh hưởng gì do mình dùng OpenBSD, nơi mà quyết định thay sudo bằng 1 phần mềm tên là doas.

Sử dụng su khi cần chuyển sang root, combo là su -l để đổi sang ENV của user root (ví dụ chuyển đúng đến $HOME của root chứ không ở thư mục hiện tại)

ss -nltp

Combo này chỉ hoạt động trên Linux với gói iproute. Trên MacOS/OpenBSD, sử dụng: netstat -nl nếu cần chọn tcp thì thêm netstat -nl -p tcp

vi

Thói quen khi dùng vim (không phải vi) là gõ gg để lên đầu file, vi không có phím tắt này. Thay vào đó vi dùng 1G để go to dòng số 1, và G để tới dòng cuối cùng.

bash ^a^b^

Trên OpenBSD, shell mặc định là KSH và nó không giống bash ở việc thay 1 phần câu lệnh cũ:

bash:

$ ls /etc
...
$ ^/etc^/etc/passwd^
sẽ chạy lệnh ls /etc/passwd (thay /etc ở câu lệnh cuối cùng bằng /etc/passwd)

ksh:

$ ls /etc
...
$ r /etc=/etc/passwd
ls /etc/passwd

cho kết quả tương ứng.

fg

Xưa nay sau khi chuyển job về backgroup (ctrl Z), để bật thành foreground sẽ gõ: fg 1 với job 1

Combo này không chạy trên ksh, phải gõ fg %1 , và sử dụng % đảm bảo hoạt động mọi nơi, kể cả bash.

$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=59 time=32.009 ms
^Z
[1]+  Stopped                 ping 1.1.1.1
$ fg %1
ping 1.1.1.1
64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=4161.095 ms

source

source là 1 câu lệnh built-in của bash để đọc và chạy các câu lệnh từ 1 file trong môi trường shell hiện tại. Nhưng source là của riêng bash. Dùng . cho tác dụng tương tự, nhưng chạy trên mọi shell khác.

tail -F

Trên Linux, lệnh tail có 2 option khác nhau là -f-F, -F sẽ theo file mới nếu file cũ bị thay thế (VD: log rotate), nhưng trên OpenBSD, -f hoạt động như -F trên Linux.

The end



Published

Category

frontpage

Tags

Contact