Làm thế nào để terminal trông giống như một Hacker?

Tác giả: Caleb Taylor

Bạn là một hacker. Terminal chính là ngôi nhà của bạn. Bạn biết mỗi tổ hợp phím đều có giá trị. Nếu một cái gì đó ít hơn 100% hiệu quả, bạn sẽ dành nhiều giờ để tìm ra công cụ thích hợp để tiết kiệm cho mình thêm vài giây. 

Nguồn: Pablo Stanley via Twitter

Liệu viêc tìm kiếm thường xuyên của bạn cho những cách thức mới hơn có thực sự làm điều đó tốt hơn chăng? Một số có thể nói có, nhưng khi bạn nói điều này. Không có công việc nào đáng làm, trừ khi bạn có thể thuyết trình đồng nghiệp của mình về lý do tại sao bạn có thể làm điều đó một cách hiệu quả (không bao gồm thời gian thiết lập).

Sau đây là danh sách các công cụ / tính năng mà mọi hacker giỏi đều nên biết.

Dislcaimer: Bài viết này được viết với một liều châm biếm nặng. Đó là một bước ngoặt trên meme “Tôi, một trí thức”. Trong khi các đề xuất là chân thành (và không có nghĩa là hoàn thành), các tài liệu tham khảo để trở thành một “hacker” chỉ là cho vui.

Shell (zsh)

Nhà phát triển trung bình: Một Shell là một Shell Nó không thực sự quan trọng mà tôi sử dụng.

Bạn, một Hacker: Shell là mạch máu của công việc của tôi. Niềm đam mê của tôi với hiệu quả và tính năng không có giới hạn. Shell của tôi phải là một trong những xứng đáng của một hacker thực sự.

Bạn sống trong Terminal, bạn muốn sử dụng một Shell terminal tốt . Đó là lý do tại sao bạn sử dụng zsh.

Nó đi kèm với một loạt các tính năng:

  • Tự động sửa các lệnh sai chính tả
  • Dễ dàng thay thế và kéo thả bash
  • Hoàn thành cd tốt hơn bằng cách sử dụng <tab>
  • Mở rộng đường dẫn: cd / u / c / c / j + <tab> = cd / người dùng / caleb / code / jarvis
  • V.v..

Nó cũng đi kèm với một khuôn khổ tuyệt vời để quản lý cấu hình zsh của bạn: Oh My Zsh. Nó bao gồm hơn 200 plugin và hơn 140 chủ đề để thêm tất cả các loại tính năng tuyệt vời cho thiết bị đầu cuối của bạn. Một mẫu nhỏ:

  • git – bí danh và chức năng hữu ích cho git
  • tmux – bí danh và cài đặt để tích hợp zsh với tmux
  • node – thêm lệnh node-docs để mở tài liệu trang web
  • osx – một số tiện ích để làm việc với OSX
  • Web-search – khởi tạo tìm kiếm trên web từ dòng lệnh
  • Auto suggestion – đề xuất nhanh, không phô trương khi bạn nhập dựa trên lịch sử

Bạn có thể tìm thấy danh sách đầy đủ các plugin ở đây.

Session Management (tmux)

Các developer hạng trung: Ok tôi đã mở các tệp của mình cho lame_project_1. Nhưng tôi cũng cần phải làm việc trong boring_project_2. Tôi cũng cần phải ssh vào một máy chủ và nhìn vào các bản ghi. Tôi đoán tôi sẽ chỉ tạo ra một mớ hỗn độn khổng lồ trong thiết bị đầu cuối của mình có tệp / tab từ nhiều dự án mở theo cách mà cuối cùng tôi sẽ mất quyền kiểm soát và buộc phải đóng và bắt đầu lại.

Bạn, một Hacker: Tôi làm việc trên một số dự án cùng một lúc, vì vậy tôi cần một công cụ để giúp tôi tổ chức nó. Nó sẽ hoạt động trên nhiều nền tảng và cho phép tôi tạo không gian làm việc có tổ chức và có rất nhiều tính năng khác giúp nâng cao năng suất.

Bạn biết rằng coding có thể lộn xộn. Đôi khi, bạn phải làm việc trên một số dự án cùng một lúc. Đó là lý do tại sao bạn sử dụng tmux.

Nó cho phép bạn tạo các phiên. Mỗi phiên có thể được tùy chỉnh theo bố cục chính xác mà bạn cần. Bạn có thể đặt tên phiên để dễ dàng chuyển đổi và thậm chí lưu và khôi phục các phiên nếu thiết bị đầu cuối của bạn bị đóng. Thêm vào đó, nó có dòng trạng thái tùy chỉnh riêng cho phép bạn hiển thị những thứ như thời gian, ngày tháng, mức sử dụng CPU và hơn thế nữa. Và nếu bạn không biết mức sử dụng CPU của mình tại bất kỳ thời điểm nào, bạn có phải là một hacker không?

Tổ chức thiết bị đầu cuối của bạn với các phiên và sử dụng fzf để tạo / tìm / xóa mờ các phiên

Nó thậm chí còn có một trình quản lý plugin và một loạt các plugin và các tính năng tuyệt vời sẽ đưa trình độ hack của bạn lên cấp độ tiếp theo.

Tips cho Super-Pro Hacker:

Sử dụng tmux với fzf thông qua một số script tuyệt vời để nhanh chóng tạo / xóa / điều hướng để đẩy mức độ tin tặc của bạn lên hơn 9000.

Search (ripgrep)

Developer hạng trung: Tôi đã xác định hằng số đó ở đâu? Tôi biết nó ở đâu đó ở đây. Tôi sẽ cố gắng grep cho nó. Các đối số một lần nữa là gì? Hãy để tôi google điều đó. Ah crap, bây giờ nó đang tìm kiếm thư mục node_modules của tôi. Đây là điều tồi tệ nhất.

Bạn, một Hacker: Khi tôi tìm kiếm một cái gì đó, nó phải được blazing nhanh. Ngoài ra, nó nên sử dụng các cài đặt mặc định hợp lý, như bỏ qua các tệp nhị phân hoặc tệp ẩn.

Bạn biết rằng tìm kiếm dự án của bạn là một nhiệm vụ phổ biến. Nó sẽ được nhanh chóng, và nó không nên lãng phí thời gian của bạn. Điều này có nghĩa là những thứ như bỏ qua bất cứ điều gì mà tệp .gitignore của bạn bỏ qua và bỏ qua các tệp nhị phân và tệp ẩn. Đó là lý do tại sao bạn sử dụng ripgrep. Nó giống như grep trên steroid.

ripgrep trong hành động

Cha đẻ của nó đã nói: “Sử dụng ripgrep nếu bạn thích tốc độ, lọc theo mặc định, ít lỗi hơn và hỗ trợ Unicode.”

Fuzzy Finding (fzf)

Developer hạng trung: Chắc chắn khó nhớ vị trí chính xác của quá nhiều tệp trong dự án của tôi. Tôi đoán tôi sẽ gặp sơ sẩy cho đến khi tôi tìm được cái đúng.

Bạn, một Hacker: Tôi sẽ có thể tìm thấy các tập tin(fuzzy-find ). Tôi có thể nhập tên tệp hoặc một số đường dẫn hoặc tất cả đường dẫn và tìm nhanh tệp tôi đang tìm kiếm.

Bạn biết bạn không cần phải gõ nhiều hơn mức bạn cần. Vì vậy, bạn sử dụng fzf, một công cụ tìm kiếm dòng lệnh chung. Nó cũng có thể làm nhiều hơn với các tập tin tìm kiếm ,Nó có thể được sử dụng với bất kỳ danh sách nào: “tệp, lịch sử lệnh, quy trình, tên máy chủ lưu trữ, dấu trang, cam kết git, v.v …”.

Mẹo siêu chuyên nghiệp: Bạn biết rằng bí danh là cách tuyệt vời để tạo lối tắt để tận dụng các tính năng của fzf. Ví dụ: nếu bạn muốn tìm kiếm tệp và sau đó mở lựa chọn trong trình chỉnh sửa mặc định của mình, bạn có thể thêm phần này vào cấu hình zsh của mình:

# fo [FUZZY PATTERN] - Open the selected file with the default editor
#   - Bypass fuzzy finder if there's only one match (--select-1)
#   - Exit if there's no match (--exit-0)
fo() {
  local files
  IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
  [[ -n "$files" ]] && ${EDITOR:-vim} "${files[@]}"
}

Bây giờ bạn có thể chạy “fo” fuzzy-find và mở một tập tin

Có thể tìm thấy nhiều ví dụ khác trên fzf wiki.

Terminal Prompt (Spaceship)

Developer hạng trung: Ai quan tâm đến lời nhắc thiết bị đầu cuối của tôi như thế nào? Không đời nào nó có thể cho tôi bất kỳ thông tin hữu ích nào. Tôi sẽ chỉ để nó làm mặc định.

Bạn, một Hacker: Tôi muốn lời nhắc của tôi thật tuyệt vời. Nó phải là nhận thức ngữ cảnh. Nó sẽ cho tôi thông tin hữu ích và có thể cấu hình được. Ngoài ra, nó sẽ rất ngọt ngào nếu nó liên quan đến không gian.

Chào mừng đến tương lai… nhưng thực sự là hiện tại. Chỉ tin tặc / phi hành gia.

Bạn biết lời nhắc prompt phải đơn giản, rõ ràng và chỉ cung cấp thông tin có liên quan. Nó cũng hiện trong tâm trí của mọi người khi họ nhìn thấy vẻ đẹp của nó. Đó là lý do tại sao bạn sử dụng spaceship-prompt.. Nó cung cấp tích hợp git / mercurial, chỉ báo mức pin, tên máy chủ thông minh và dữ liệu người dùng, số phiên bản cho nhiều thư viện, biểu tượng tuyệt đẹp và hơn thế nữa.

Changing directories (z)

Developer hạng trung: Tôi cần thay đổi thư mục của mình thành dự án “hacker”, nằm trong thư mục của tôi, nằm bên trong thư mục cá nhân của tôi, nằm trong thư mục mã của tôi, nằm trong thư mục chính của tôi.

cd ~/code/personal/cool/hacker

Bạn, một Hacker: Tôi cần thay đổi thư mục của mình thành dự án “hacker”.

z hacker

Gõ đường dẫn tệp đầy đủ là những gì các nhà phát triển trung bình làm. Bạn là một hacker. Bạn dựa vào z. Sau khi cài đặt, nó sẽ bắt đầu học những thư mục bạn truy cập. Sau đó, bạn có thể cung cấp cho nó một regex (hoặc tên thư mục đơn giản) để nhảy tới ứng cử viên có khả năng nhất.

Bonus Hacker Tools

Các công cụ sau đây là những cách bổ sung để thực sự nâng cao trò chơi hack của bạn.

  1. wttr.in – Chỉ có một cách đúng đắn để kiểm tra thời tiết.

  1. Star Wars — Cool people like Star Wars. Hackers xem nó trong terminal.
telnet towel.blinkenlights.nl

3. haxor-news – Bạn thậm chí là một hacker nếu bạn không đọc Hacker News?

4. Spotify – Sử dụng shpotify, bạn có thể chơi nhạc từ thiết bị đầu cuối (chỉ OSX… Hey, ngừng la ó! Đặt cái ghế xuống! Ai ném cà chua đó !?), hoặc mopidy cho cái gì đó là đa nền tảng.

Bài viết đến đây cũng đã kết thúc. Điều này không có nghĩa là đã liệt kê ra một danh sách toàn diện. Bạn có bất kỳ công cụ hacker tuyệt vời nào khác không? Để lại một bình luận và cho tôi biết.

Nếu bạn muốn thấy nhiều công cụ này hoạt động hơn, hãy kiểm tra dotfiles của tôi mà tôi sử dụng để phát triển. Như một phần thưởng, đây là ảnh chụp màn hình của glorious terminal đang hoạt động:

Bài viết gốc được đăng tải tại Medium