Terminal Cheat Sheet

Terminal gần như là 1 tools không thể thiếu trong công việc hàng ngày của một lập trình viên.
Mình là 1 fan cuồng của terminal nhưng trí nhớ không được tốt lắm, dẫn đến cực kỳ hay quên lệnh.
Bài viết này chủ yếu note lại các tools mình hay dùng, các commands cần thiết, ít dùng, dễ quên, khi cần toàn phải search. Có gì hay ho thì các bạn cứ merge request nhé

Cheatsheet

Muốn lục lại 1 lệnh đã gõ nhưng chỉ nhớ mang máng?
1
$ history | grep keyword

Ví dụ: history | grep 'git commit'

Gen ssh key
1
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
Tunnel một port qua server trung gian
1
2
3
4
# vào port 22 của server 10. thông qua server 139.
$ ssh -L 22:10.10.56.30:2022 -N [email protected]
# tiếp tục ssh vào sau khi đã tunnel
$ ssh root@localhost -p 2022
Xem xem domain phân giải thế nào, đã thông hết chưa
1
$ dig google.com +trace
Generate nginx password
1
2
3
# thay sammy bằng username muốn tạo 
$ sudo sh -c "echo -n 'sammy:' >> /etc/nginx/.htpasswd"
$ sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

Mysql

Backup 1 database
1
$ mysqldump -u username -pPassword dbname > /path/to/file.sql

Restore database

1
$ mysql -u username -pPassword dbname < /path/to/file.sql

Tools

Oh my ZSH

Download: http://ohmyz.sh/
Zsh thì khỏi nói về độ thần thánh. Bổ sung màu mè cho đẹp, autocomplete thông minh, cơ số plugin để hiện đại hoá terminal.

Gopass

Download: https://www.justwatch.com/gopass/
Thường nếu bạn quản trị hệ thống nhiều thì lưu trữ password là việc khá đau đầu. Lưu trong file text thì rõ ràng là cực kỳ không an toàn. Gopass cho phép bạn lưu trữ password, mã hoá bằng GPG key, lưu trữ dùng git nên rất tiện, nhất là trường hợp cần share cho team.

Mycli

Download: https://www.mycli.net/
Nếu bạn không thích dùng UI để connect đến mysql mà thích dùng terminal thì tools này đảm bảo bao phê. Autocomplete, syntax highlight, pager, còn cần gì hơn nữa :D

Httpie

Download: https://httpie.org/
Nếu bạn thường xuyên dev api và thì bạn cũng biết CURL củ khoai thế nào, mình gần như không thể nhớ nổi mấy cái command của CURL. Httpie có thể nói là life saver.

Jq

Download: https://stedolan.github.io/jq/
Httpie vẫn có 1 điểm yếu khi response trả về rất dài thì việc cuộn và kiểm tra data trong đống đó không thể nào tiện bằng UI (ví dụ Postman). Tool JQ này khá đơn giản, bổ trợ luôn cho bạn query data trong json để chỉ hiển thị hoặc format cho đẹp response.