Sử dụng peco giúp tìm kiếm trên terminal dễ dàng hơn
Linux
77
White

huydx viết ngày 27/05/2015

Chắc hẳn những bạn nào làm việc với linux terminal sẽ thấy bất tiện khi phải thao tác với các hàm như ls hay history, khi mà kết quả hiện ra quá dài. Một số bạn thành thạo với bash hơn sẽ biết cách sử dụng hàm grep, ví dụ như:

ls | grep folder_name
history | grep folder_name

Vậy ví dụ như khi bạn muốn làm một việc là,

tìm kiếm lệnh ssh gần đây nhất vào server bạn không nhớ rõ tên, chỉ nhớ là nó có bắt đầu bằng foo

thì bạn sẽ phải thông qua 2 bước:

history | grep "ssh foo"
//copy bằng tay ww
//paste và enter

quá thủ công!!!!

Đây chính là lúc peco sẽ giúp bạn. Peco là một tiện ích giúp pipe output vào một màn hình mà ở đó bạn có thể filter được các chuỗi kí tự tuỳ ý!
Source code của peco được đặt tại github:
https://github.com/peco/peco

Cài đặt peco

peco được viết bằng go nên đầu tiên bạn cần cài đặt go đã
Với mac os thì bạn chỉ cần sử dụng brew cho cả cài đặt go và peco

$ brew install go
$ brew install peco

Với linux user thì sẽ cần thêm một chút công sức vì không có brew:

install go

$ cd
$ mkdir -p local/src
$ cd local/src
$ wget http://golang.org/dl/go1.3.linux-amd64.tar.gz
$ tar -C /home/*****/local -xzf go1.3.linux-amd64.tar.gz

install peco

$ cd
$ mkdir -p local/src
$ cd local/src
$ wget https://github.com/peco/peco/releases/download/v0.1.12/peco_linux_amd64.tar.gz
$ tar -C /home/*****/local -xzf peco_linux_amd64.tar.gz

Sử dụng peco

Peco dễ sử dụng đến mức bạn chỉ cần pipe mọi thứ vào nó, bắt đầu từ ls

ls | peco

peco

Quá dễ dàng đúng không!!!
Bạn có thể sử dụng peco để lấy thông tin từ history, với việc thêm đoạn code sau vào zshrc (cho bạn nào đang sử dụng zsh)

function peco-select-history() {
    local tac
    if which tac > /dev/null; then
        tac="tac"
    else
        tac="tail -r"
    fi
    BUFFER=$(\history -n 1 | \
        eval $tac | \
        peco --query "$LBUFFER")
    CURSOR=$#BUFFER
    zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history

Đoạn code trên đã alias phím ctrl + r để select history, kết quả là chúng ta có một tiện ích để select từ history một cách dễ dàng!

peco2}

happy hacking :D

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

huydx

115 bài viết.
858 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
135 8
Introduction (Link) là một cuộc thi ở Nhật, và cũng chỉ có riêng ở Nhật. Đây là một cuộc thi khá đặc trưng bởi sự thú vị của cách thi của nó, những...
huydx viết hơn 1 năm trước
135 8
White
109 14
Happy programmer là gì nhỉ, chắc ai đọc xong title của bài post này cũng không hiểu ý mình định nói đến là gì :D. Đầu tiên với cá nhân mình thì hap...
huydx viết gần 3 năm trước
109 14
White
86 10
(Ảnh) Mở đầu Chắc nhiều bạn đã nghe đến khái niệm oauth. Về cơ bản thì oauth là một phương thức chứng thực, mà nhờ đó một web service hay một ap...
huydx viết hơn 2 năm trước
86 10
Bài viết liên quan
White
1 0
sudo du sh
t viết gần 2 năm trước
1 0
Male avatar
32 10
Thời kỳ mới đi làm tôi nghĩ cứ phải gõ thật nhiều cho quen cho nhớ nhưng lâu dần việc đó cho cảm giác thật nhàm chán. Hiện giờ, những gì tôi hay là...
manhdung viết gần 3 năm trước
32 10
White
1 0
Sử dụng option I với xargs Với option I thì bạn có thể sử dụng place holder với biến được lấy ra từ xargs man của option này: I replacestr R...
LinhPT viết gần 2 năm trước
1 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
115 bài viết.
858 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!