Chỉ là một câu hỏi nhanh. Có thể lập tab đầu ra trên Ubuntu 16.04 LTS không? Tôi đã tạo hai hình ảnh dưới đây để thử và minh họa ý tôi là gì.
Chỉ là một câu hỏi nhanh. Có thể lập tab đầu ra trên Ubuntu 16.04 LTS không? Tôi đã tạo hai hình ảnh dưới đây để thử và minh họa ý tôi là gì.
Câu trả lời:
Bạn có thể làm một cái gì đó như thế này - với mô tả tập tin:
lưu mô tả đầu ra hiện tại để chúng tôi có thể khôi phục nó sau
exec 3>&1
chuyển hướng luồng đầu ra sang một sự thay thế quá trình chèn tab - ví dụ
exec 1> >(paste /dev/null -)
Từ thời điểm này, bất kỳ quá trình nào ghi vào đầu ra tiêu chuẩn sẽ có đầu ra đó được 'lọc' thông qua paste
lệnh để chèn các tab khi bắt đầu.
Khi bạn hoàn tất, bạn có thể tiếp tục hành vi bình thường bằng cách khôi phục bộ mô tả tệp đã lưu và đóng tạm thời
exec 1>&3 3>&-
less
hoặc các công cụ tương tự để cho phép cuộn đầu ra, ví dụ như man
.
Tôi hiểu câu trả lời này không tối ưu cho bạn, nhưng bạn có thể tạo hàm Bash bằng tên đơn giản _
(hoặc bất kỳ thứ gì khác chưa được sử dụng) chạy lệnh mà nó nhận làm đối số và thụt đầu ra tất cả đầu ra của nó bằng một tab.
Một ví dụ:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
Mã của chức năng này sẽ chỉ là thế này:
_(){ sed "s/^/\t/" <($*); }
Bạn có thể nối nó vào ~/.bashrc
tệp của mình để nó sẽ có sẵn trong tất cả các phiên Bash của người dùng của bạn bằng cách chạy:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Nếu bạn muốn làm cho nó có sẵn cho tất cả người dùng, /etc/bash.bashrc
thay vào đó hãy thêm nó vào (yêu cầu quyền quản trị):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
Ngoài ra, bạn cũng có thể tạo một tệp tập lệnh như /usr/local/bin/_
với nội dung sau để đạt được điều tương tự mà không cần chức năng Bash và cho tất cả người dùng:
#!/bin/bash
sed "s/^/\t/" <($*)
Bạn phải làm cho tập lệnh có thể thực thi được sau khi lưu tệp bằng
sudo chmod +x /usr/local/bin/_
Với echo
cụ thể, bạn có thể có nó giải thích thoát xuyệc ngược như \t
(một dừng tab ) với -e
công tắc:
echo -e "\tHello World"
Nhưng nó khó có thể khả thi (hoặc có thể là có thể) để sửa đổi đầu ra của mọi lệnh theo cách đó. Nếu dễ đọc là mục tiêu của bạn, bạn có thể muốn xem xét tùy chỉnh giao diện (ví dụ: tô màu) của dấu nhắc lệnh của bạn, như được hiển thị ở đây:
Bạn có thể tùy chỉnh lời nhắc của mình bằng cách thay đổi nội dung của biến môi trường PS1
. Bạn có thể thấy một ví dụ nhỏ về cách làm điều đó trong bài đăng trên blog , ảnh chụp màn hình ở trên là từ. Cách sử dụng chi tiết các chuỗi thoát ANSI, cách sử dụng các công cụ thoải mái hơn, làm thế nào để thay đổi được áp dụng theo mặc định trong các thiết bị đầu cuối mới, v.v ... nằm ngoài phạm vi của câu trả lời này. Nhưng nếu bạn quyết định sử dụng kỹ thuật đó, có rất nhiều hướng dẫn và thông tin thêm trên web.
YOUR COMMAND | indent
hoặc nếu bạn phải gõ một lệnh khác ở phía trước nó (thậm chí có thể chỉ là một dấu gạch dưới) như thế_ YOUR COMMAND
nào?