Skip to main content

Các combo câu lệnh CLI từ năm 2021

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

Comments

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG