Wednesday, 2 October 2013

[bash] Mỗi ngày biết thêm 1 câu lệnh - whatis

Đây là sản phẩm tớ nghĩ ra hôm nay, thêm dòng này  vào ~/.bashrc và mỗi khi mở bash lên, bạn sẽ được học 1 câu lệnh (chương trình).
Sản phẩm là sự kết hợp vài câu lệnh đơn giản trong đó có whatis
NOTE: câu lệnh trong 1 số trường hợp sẽ trả về "nothing appropriate" - giống như khi bạn gõ:
hvn@archhvn: ~ () $ whatis familug
familug: nothing appropriate.
hvn@archhvn: ~ () $

Để giữ cho câu lệnh ngắn gọn, tớ bỏ qua xử lý trường hợp này.

Phiên bản dài:
whatis $(basename $(find $(echo "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" | tr ':' ' ') | shuf | head -n1))

Phiên bản ngắn hơn:

whatis $(basename $(find $(echo $PATH | tr ':' ' ') | shuf | head -n1))


Test
hvn@archhvn: ~ () $ whatis $(basename $(find $(echo "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" | tr ':' ' ') | shuf | head -n1))
ldconfig (8)         - configure dynamic linker run-time bindings

hvn@archhvn: ~ () $ whatis $(basename $(find $(echo $PATH | tr ':' ' ') | shuf | head -n1)) 
ldapmodify: nothing appropriate.
hvn@archhvn: ~ () $ whatis $(basename $(find $(echo $PATH | tr ':' ' ') | shuf | head -n1))
ionice (1)           - set or get process I/O scheduling class and priority
Cuối cùng, bạn có thể nhét vào bashrc những dòng sau:

command_today=$(find $(echo $PATH | tr ':' ' ') | shuf | head -n1)
echo Command for today: $command_today
whatis $(basename $command_today)
https://github.com/hvnsweeting/hvnrc/commit/8b18df15777358d6316d51477901b12a19f97232


Do lười nên tớ không giải thích câu lệnh ở đây, mọi người cứ thoải mái phát biểu cách hiểu của mình.
Happy learning!