Câu trả lời:
Trong tệp $ HOME / .bashrc của bạn, hãy thêm:
export GREP_OPTIONS="-n --color"
Điều này sẽ làm việc với egrep
quá và trong các bí danh sử dụng grep.
Cập nhật : GREP_OPTIONS không được dùng từ grep 2.21 trở đi và nếu bạn sử dụng giải pháp này, bạn sẽ thấy cảnh báo sau:
grep: warning: GREP_OPTIONS is deprecated; please use an alias or script
Do đó, giải pháp tốt nhất là làm theo lời khuyên của maco trong câu trả lời của anh ấy . Hoặc chuyển sang sử dụng ag , đầu ra có màu theo mặc định.
Chỉnh sửa ~ / .bash_aliases Thêm một dòng có nội dung:
alias grep='grep -n --color'
~ / .bash_aliases được tự động bao gồm bởi ~ / .bashrc nếu nó tồn tại
.profile
nếu bạn muốn nó hoạt động trong tất cả các shell chứ không chỉ bash.
find /usr/share -name '*.txt' |xargs grep testing
bạn có thể sửa đổi tệp .bashrc trong thư mục chính của bạn xác định bí danh, sẽ ghi đè mọi cài đặt mặc định:
bí danh grep = 'grep -n --color'
sau khi thay đổi đóng và mở lại thiết bị đầu cuối vì tệp chỉ được đọc khi bạn mở thiết bị đầu cuối.
Nếu bạn xem tệp .bashrc, bạn sẽ tìm thấy nhiều bí danh mặc định như:
bí danh ll = 'ls -l'
bí danh la = 'ls -A'
bí danh l = 'ls -CF'
Tạo một tập lệnh ngoài một bí danh được đề cập trong các câu trả lời khác. Một bí danh tự nó sẽ không luôn hoạt động và một lớp script đủ nhanh để có thể đọc được mọi người.
Chọn một tên ngắn, như cgrep
:
#!/bin/sh
grep --color -n "$@"
Đặt nó trong đường dẫn của bạn, giả sử ~/bin
(nếu bạn đọc UPE thì đây là đường dẫn của bạn :). Sau đó, những thứ như thế này sẽ hoạt động:
find /usr/share -name '*.txt' | xargs cgrep testing
Tôi vẫn không vui lắm, tôi cũng muốn grep luôn luôn tô màu khi xuất ra thiết bị đầu cuối mà không cần chọn cgrep.