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

Công Nghệ
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á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 ()

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

Bài viết liên quan

Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bài viết được sự cho phép của tác giả Chung Nguyễn Hôm nay, nhóm Laravel đã phát hành một phiên bản chính mới của “ laravel/installer ” bao gồm hỗ trợ khởi động nhanh các dự án Jetstream. Với phiên bản mới này khi bạn chạy laravel new project-name , bạn sẽ nhận được các tùy chọn Jetstream. Ví dụ: API Authentication trong Laravel-Vue SPA sử dụng Jwt-auth Cách sử dụng Laravel với Socket.IO laravel new foo --jet --dev Sau đó, nó sẽ hỏi bạn thích stack Jetstream nào hơn: Which Jetstream stack do you prefer? [0] Livewire [1] inertia > livewire Will your application use teams? (yes/no) [no]: ... Nếu bạn đã cài bộ Laravel Installer, để nâng cấp lên phiên bản mới bạn chạy lệnh: composer global update Một số trường hợp cập nhật bị thất bại, bạn hãy thử, gỡ đi và cài đặt lại nha composer global remove laravel/installer composer global require laravel/installer Bài viết gốc được đăng tải tại chungnguyen.xyz Có thể bạn quan tâm: Cài đặt Laravel Làm thế nào để chạy Sql Server Installation Center sau khi đã cài đặt xong Sql Server? Quản lý các Laravel route gọn hơn và dễ dàng hơn Xem thêm Tuyển dụng lập trình Laravel hấp dẫn trên Station D

By stationd
Principle thiết kế của các sản phẩm nổi tiếng

Principle thiết kế của các sản phẩm nổi tiếng

Tác giả: Lưu Bình An Phù hợp cho các bạn thiết kế nào ko muốn làm code dạo, design dạo nữa, bạn muốn cái gì đó cao hơn ở tầng khái niệm Nếu lập trình chúng ta có các nguyên tắc chung khi viết code như KISS , DRY , thì trong thiết kế cũng có những nguyên tắc chính khi làm việc. Những nguyên tắc này sẽ là kim chỉ nam, nếu có tranh cãi giữa các member trong team, thì cứ đè nguyên tắc này ra mà giải quyết (nghe hơi có mùi cứng nhắc, mình thì thích tùy cơ ứng biến hơn) Tìm các vị trí tuyển dụng designer lương cao cho bạn Nguyên tắc thiết kế của GOV.UK Đây là danh sách của trang GOV.UK Bắt đầu với thứ user cần Làm ít hơn Thiết kế với dữ liệu Làm mọi thứ thật dễ dàng Lặp. Rồi lặp lại lần nữa Dành cho tất cả mọi người Hiểu ngữ cảnh hiện tại Làm dịch vụ digital, không phải làm website Nhất quán, nhưng không hòa tan (phải có chất riêng với thằng khác) Cởi mở, mọi thứ tốt hơn Bao trừu tượng luôn các bạn, trang Gov.uk này cũng có câu tổng quát rất hay Thiết kế tốt là thiết kế có thể sử dụng. Phục vụ cho nhiều đối tượng sử dụng, dễ đọc nhất nhất có thể. Nếu phải từ bỏ đẹp tinh tế – thì cứ bỏ luôn . Chúng ta tạo sản phẩm cho nhu cầu sử dụng, không phải cho người hâm mộ . Chúng ta thiết kế để cả nước sử dụng, không phải những người đã từng sử dụng web. Những người cần dịch vụ của chúng ta nhất là những người đang cảm thấy khó sử dụng dịch...

By stationd
Hiểu về trình duyệt – How browsers work

Hiểu về trình duyệt – How browsers work

Bài viết được sự cho phép của vntesters.com Khi nhìn từ bên ngoài, trình duyệt web giống như một ứng dụng hiển thị những thông tin và tài nguyên từ server lên màn hình người sử dụng, nhưng để làm được công việc hiển thị đó đòi hỏi trình duyệt phải xử lý rất nhiều thông tin và nhiều tầng phía bên dưới. Việc chúng ta (Developers, Testers) tìm hiểu càng sâu tầng bên dưới để nắm được nguyên tắc hoạt động và xử lý của trình duyệt sẽ rất hữu ích trong công việc viết code, sử dụng các tài nguyên cũng như kiểm thử ứng dụng của mình. Cách để npm packages chạy trong browser Câu hỏi phỏng vấn mẹo về React: Component hay element được render trong browser? Khi hiểu được cách thức hoạt động của trình duyệt chúng ta có thể trả lời được rất nhiều câu hỏi như: Tại sao cùng một trang web lại hiển thị khác nhau trên hai trình duyệt? Tại sao chức năng này đang chạy tốt trên trình duyệt Firefox nhưng qua trình duyệt khác lại bị lỗi? Làm sao để trang web hiển thị nội dung nhanh và tối ưu hơn một chút?… Hy vọng sau bài này sẽ giúp các bạn có một cái nhìn rõ hơn cũng như giúp ích được trong công việc hiện tại. 1. Cấu trúc của một trình duyệt Trước tiên chúng ta đi qua cấu trúc, thành phần chung và cơ bản nhất của một trình duyệt web hiện đại, nó sẽ gồm các thành phần (tầng) như sau: Thành phần nằm phía trên là những thành phần gần với tương tác của người dùng, càng phía dưới thì càng sâu và nặng về xử lý dữ liệu hơn tương tác. Nhiệm...

By stationd
Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Lĩnh vực EdTech (ứng dụng công nghệ vào các sản phẩm giáo dục) trên toàn cầu hiện nay đã tương đối phong phú với nhiều tên tuổi lớn phân phối đều trên các hạng mục như Broad Online Learning Platforms (nền tảng cung cấp khóa học online đại chúng – tiêu biểu như Coursera, Udemy, KhanAcademy,…) Learning Management Systems (hệ thống quản lý lớp học – tiêu biểu như Schoology, Edmodo, ClassDojo,…) Next-Gen Study Tools (công cụ hỗ trợ học tập – tiểu biểu như Kahoot!, Lumosity, Curriculet,…) Tech Learning (đào tạo công nghệ – tiêu biểu như Udacity, Codecademy, PluralSight,…), Enterprise Learning (đào tạo trong doanh nghiệp – tiêu biểu như Edcast, ExecOnline, Grovo,..),… Hiện nay thị trường EdTech tại Việt Nam đã đón nhận khoảng đầu tư khoảng 55 triệu đô cho lĩnh vực này nhiều đơn vị nước ngoài đang quan tâm mạnh đến thị trường này ngày càng nhiều hơn. Là một trong những xu hướng phát triển tốt, và có doanh nghiệp đã hoạt động khá lâu trong ngành nêu tại infographic như Topica, nhưng EdTech vẫn chỉ đang trong giai đoạn sơ khai tại Việt Nam. Tại Việt Nam, hệ sinh thái EdTech trong nước vẫn còn rất non trẻ và thiếu vắng nhiều tên tuổi trong các hạng mục như Enterprise Learning (mới chỉ có MANA), School Administration (hệ thống quản lý trường học) hay Search (tìm kiếm, so sánh trường và khóa học),… Với chỉ dưới 5% số dân công sở có sử dụng một trong các dịch vụ giáo dục online, EdTech cho thấy vẫn còn một thị trường rộng lớn đang chờ được khai phá. *** Vừa qua Station D đã công bố Báo cáo Vietnam IT Landscape 2019 đem đến cái nhìn toàn cảnh về các ứng dụng công...

By stationd