Friday, 5 April 2013

[SmartUsing] Tất cả là bởi user

Bạn có thể có một tốc độ gõ phím kinh hồn :x bạn có thể chạy lệnh ầm ầm trên 1 terminal xanh lét (yeah). Đã đến lúc dừng lại một chút để xem bạn có hơi bị "chăm" quá không!

Có kỹ năng là điều tuyệt vời, tốc độ gõ phím cực kỳ quan trọng, nhưng có thể bạn đã làm sai 1 điều gì đó chăng? hãy nhìn vào các "thói quen xấu" mà rất nhiều người mắc phải sau. (Ít ra tớ đã thấy > 2 người làm thế)

Tớ sẽ dùng các lệnh cơ bản nhất để minh họa!

1. ls
thú thật tớ chính là người mắc cái bệnh này nhiều nhất. Câu lệnh đầu tiên khi tớ gõ vào terminal là gì? Luôn là ls. Miễn cứ mở shell ra là ls vài phát. Và tớ nhận ra đây là một thói quen xấu. Why?
Nếu bạn từng ấn F5 (hay chuột phải > refresh) trên Window, điều này cũng tương tự. Đó chỉ là do thói quen, đôi lúc bạn có thể cần nó, nhưng nhiều khi không. Thử hỏi xem bạn sẽ thu được gì khi gõ ls, có thực sự đó là điều bạn muốn không?

Với 1 bash shell được cấu hình mặc định trên các máy cài ubuntu, bạn luôn biết mình đang ở thư mục nào khi nhìn vào PS1:
hvn@lappy: /tmp () $

nhìn là biết đang ở /tmp

Nếu muốn edit file nào đó, gõ vim/nano/whatever rồi tab, tính năng autocomplete của bash sẽ giúp liệt kê tất cả các file tại thư mục đó. Vậy tại sao phải ls?
Khi vừa sờ vào 1 cái máy, bạn sẽ muốn biết gì? ít nhất sẽ là cấu hình, phiên bản hệ điều hành, chứ không phải những gì đang có trong thư mục hiện tại. Gõ vài câu lệnh như sau giúp bạn thu thập được kha khá thông tin, ít ra cũng bổ ích hơn là ls:

hvn@lappy: ~ () $ df -h; free -m; lsb_release -a; uname -a
Giải thích:
hvn@lappy: ~ () $ for p in df free lsb_release uname; do whatis $p; done
df (1)               - report file system disk space usage
free (1)             - Display amount of free and used memory in the system
lsb_release (1)      - print distribution-specific information
uname (1)            - print system information

2. cd
Lại một ví dụ xấu về sự kết hợp của ls và cd!

Giả sử giờ bạn đang ở $HOME, và muốn chuyển đến thư mục /usr/share/doc
Cách nhanh nhất là :
cd /usr/share/doc (kết hợp bấm tab khi gõ để auto-complete)

Nhưng cách mọi người (và tớ) hay làm là:
hvn@lappy: ~ () $ cd /usr/
hvn@lappy: /usr () $ ls
bin  games  include  lib  lib32  lib64  local  sbin  share  src
hvn@lappy: /usr () $ cd share/
hvn@lappy: /usr/share () $ ls
hvn@lappy: /usr/share () $ cd doc
hvn@lappy: /usr/share/doc () $

rất lãng phí, rất thừa thãi, rất thủ công!

Còn rất nhiều "thói quen xấu" dễ mắc phải có thể liệt kê ra đây. Nhưng 2 ví dụ trên đủ cơ bản và rõ ràng để bạn nhận thấy: đôi khi cần dừng lại và nghĩ xem mình đã làm đúng chưa.
Happy weekends!