Giới thiệu công cụ Fig.io - chuyên gia nhắc lệnh cho bạn!

Giới thiệu công cụ Fig.io - chuyên gia nhắc lệnh cho bạn!

Những mẩu tin ngắn hàng ngày dành cho bạn
  • Hẳn là nhiều người ở đây đã nghe đến kiểu tấn công bảo mật Clickjacking rồi nhỉ. Kẻ tấn công thường nhúng một website (thường là mục tiêu) vào trong một iframe trên website của chúng, sau đó làm mờ hoặc ẩn nó đi rồi đặt vào vị trí các nút bấm trên web, ví dụ "Bấm vào để nhận quà". Đâu ai ngờ rằng phía trên nút bấm đó là một nút bấm khác trong iframe. Khá nguy hiểm!

    Nhưng trình duyệt đã có cách ngăn chặn kiểu tấn công này bằng các quy tắc như tiêu đề X-Frame-Options, frame-ancestors của CSP và SameSite: Lax/Strict của Cookies...

    Mới đây, đã xuất hiện thêm kiểu tấn công mới - "DoubleClickjacking" 😨. Đại ý là "hắn" lợi dụng hành động double click để lừa người dùng bấm vào một nút mà hắn muốn. Chi tiết hơn trong bài viết này: DoubleClickjacking: A New Era of UI Redressing.

    » Xem thêm
  • Mọi người đã nghe nói đến Jujutsu - jj - một dạng quản lý phiên bản cho mã nguồn (version control system) chưa? Có vẻ như nó đang nhận được nhiều sự quan tâm.

    Chờ xíu! Chẳng phải git đã quá tốt rồi sao? Thế thì chế ra thằng jj để làm gì nữa? Cũng hơi khó trả lời nhỉ? Mỗi công cụ sinh ra chắc chắn phải cải thiện hoặc khắc phục được nhược điểm của cái trước. Cho nên jj ắt hẳn phải làm được điều gì đó mà git chưa làm được nên mới nổi lên như vậy.

    Thật ra mình đã nghe nói đến jj từ vài tháng trước rồi, nhưng vào đọc thì toàn kiến thức cao siêu. Hoặc là đang mang nặng cái lối suy nghĩ của git vào trong đầu rồi nên chưa lĩnh hội ra được điều gì cả.

    Mình hay có kiểu cái gì đọc lần 1 mà không hiểu thì đọc tiếp lần 2, lần 2 không hiểu thì đọc tiếp lần 3... đến lần thứ n mà vẫn không hiểu thì bỏ. Cơ mà không phải là từ bỏ mà một thời gian sau đó quay lại đọc tiếp. Đến một lúc nào đó khả năng mình sẽ hiểu ra một ít vấn đề, thế mới tài 😆.

    Thì cái jj này có vẻ như nó đang mở ra được tính linh hoạt trong việc "cam kết" mã. Tưởng tượng bạn đang làm việc trên một dự án, đang ở nhánh này, muốn sang nhánh khác để sửa, nhưng mà lại đang viết dở ở nhánh này, thế là phải stash, rồi checkout, rồi commit, rồi merge hoặc rebase lại vào nhánh cũ... nhìn chung quá trình làm việc với git nghiêm ngặt đến mức cứng nhắc, cần nhiều thao tác để giải quyết một vấn đề, chưa kể cái cây commit (commit-tree) nữa thì ôi thôi, khỏi xem cho đỡ nhức mắt. Thế nên ông jj này đang làm cách nào đó để bạn khỏi cần phải quan tâm đến các nhánh luôn, sửa trực tiếp vào commit. Nghe ảo nhỉ 😂.

    Đấy mới lĩnh hội được đến đấy, hy vọng sau n lần đọc lại nữa mình sẽ viết được một bài chi tiết hơn về công cụ này.

    » Xem thêm
  • Gòi gòi tới công chiện gòi 🤤🤤🤤

    » Xem thêm

Vấn đề

Nhớ lại nhiều năm về trước, khi mới bắt đầu học cách sử dụng Linux, điều tôi sợ nhất đó chính là sử dụng lệnh. Sợ vì không biết phải dùng lệnh gì tiếp theo hay kí ức về lệnh gần như là bằng con số 0. Nhiều lần cảm thấy chán nản định thôi không dùng nữa, nhưng một động lực nào đó lại khiến mình phải quyết tâm ở lại.

Đa số hướng dẫn khi thiết lập một công cụ hay phần mềm nào đó đều xuất hiện những dòng lệnh. Ban đầu thì cứ làm theo những gì họ bảo, "copy" và "paste" theo đúng nghĩa, miễn là chạy hoặc cài đặt thành công là được. Dần dần cũng quen, tôi có thể gõ lại được một số lệnh theo thói quen đó. Ví dụ sudo để sử dụng quyền Admin, sudo apt-get update để cập nhật repository của Ubuntu, sudo apt-get install xyz để cài một phần mềm "xyz" nào đó...

Trên đà đó, tôi bắt đầu quen hơn với những câu lệnh khác của Linux. Ví dụ như cd để di chuyển vào thư mục, ls -l hay ll để hiển thị danh sách các thư mục và tệp tin có trong thư mục, rm để xóa, mkdir để tạo, cp để copy, mv để di chuyển... Tôi nhận ra rằng phương pháp học hiệu quả nhất là lặp đi lặp lại cho đến khi bạn thông thạo nó. "Trăm hay không bằng tay quen" quả là một kinh nghiệm quý báu mà các cụ để lại.

Nếu thế tôi đã nhớ tất cả lệnh của Linux? Không đâu! Chắc chắn là không rồi. Số lượng lệnh của Linux là rất nhiều, chưa kể các cờ (flag) khi sử dụng chúng nữa. Ví dụ một lệnh rm thôi chúng ta sẽ có thêm rất nhiều flag kèm theo, thường hay sử dụng là rm -rf để xóa thư mục "cứng đầu" mà không cần xác nhận. Một mẹo để xem các flag của lệnh chính là sử dụng một lệnh khác: man. Ví dụ man rm:

man command

Lệnh man có vẻ sẽ hữu ích trong một số trường hợp. Khi nào chúng ta quên gì đó, hãy dùng man để xem lại tất cả tùy chọn. Dĩ nhiên nếu đang gõ lệnh mà "quên" mất thì sao? Tôi cá là bạn phải xóa hết đi để gõ man, hoặc...mở một tab mới. Vậy thì còn cách nào hay hơn không?

Fig.io là một công cụ trợ giúp gõ lệnh tiến tới đa nền tảng. Với nó, bạn có thể giảm được thời gian phải đi tìm kiếm sự trợ giúp vì nó sẽ nhắc cho bạn cú pháp tiếp theo cần gõ là gì. Fig.io cung cấp cho người dùng một giao diện dòng lệnh tương tự như Terminal hoặc Command Prompt trên hệ điều hành, nhưng có khả năng tự động hoàn thiện lệnh và cung cấp cho người dùng các gợi ý lệnh dựa trên lịch sử và tên lệnh đang được gõ.

Một điểm đặc biệt của Fig là tính năng hoàn thiện lệnh tự động. Khi người dùng bắt đầu gõ một lệnh, nó sẽ tự động hoàn thiện các từ và đưa ra các gợi ý lệnh phù hợp với lịch sử và tên lệnh đang được gõ. Điều này giúp người dùng tiết kiệm thời gian và giảm thiểu lỗi trong quá trình gõ lệnh.

Bạn có thể thấy, tôi chỉ cần gõ docker lập tức Fig sẽ nhắc cho tôi tất cả tham số tiếp theo kèm theo cả lời giải thích. Qua đó tôi có thể nhanh chóng lướt qua và nhớ ngay ra cú pháp tiếp theo cần dùng là gì.

Fig docker

Cài đặt và sử dụng cơ bản

Hiện tại Fig chỉ mới hỗ trợ MacOS, các bản dành cho Windows hay Linux đang được phát triển, có thể sẽ phải đợi thêm một thời gian nếu như bạn không sử dụng Mac.

Cài đặt Fig thông qua homebrew:

$ brew install --cask fig

Hoặc bạn cũng có thể tải về bản cài đặt trên trang chủ của Fig.

Mở Fig lên, bạn sẽ cần phải đăng nhập và làm theo một số hướng dẫn để nó có quyền truy cập vào các phần mềm Shell. Sau khi hoàn thành, thử mở Terminal lên và gõ bất kì một lệnh nào mà bạn nhớ. Ví dụ tôi thường xuyên sử dụng docker và khi gõ docker nó sẽ nhắc cho tôi hết các tùy chọn tiếp theo.

Ngoài gợi ý lệnh ra, Fig còn hỗ trợ các tính năng khác như lưu trữ lịch sử lệnh, tạo và sử dụng các biến môi trường, quản lý các lệnh yêu thích và tính năng đa tab.

Một lưu ý là không phải tất cả lệnh Fig đều biết. Theo tài liệu, Fig hiện có hơn 500 CLI tools được hỗ trợ tự động hoàn thành. Ngoài ra bạn cũng có thể tìm kiếm thêm thông qua kho Plugin nếu CLI của bạn không hỗ trợ điều này.

Tổng kết

Với Fig, việc gõ lệnh sẽ trở nên dễ dàng hơn và giúp cho các lập trình viên tiết kiệm được nhiều thời gian trong quá trình làm việc. Fig cung cấp cho người dùng nhiều tính năng tiện ích, đặc biệt là tính năng gợi ý cũng như tự động hoàn thành và các lệnh tắt. Việc sử dụng fig.io cũng giúp cho người dùng có thể quản lý được lịch sử lệnh, các biến môi trường và các lệnh yêu thích.

Cao cấp
Hello

Tôi & khao khát "chơi chữ"

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (1)

Nội dung bình luận...
Avatar
Xuân Hoài Tống1 năm trước
Hoàn thành nâng cấp lên Serverless 😜
Trả lời
Bấm hoặc cuộn mạnh để sang bài mới