Krótkie pytanie. Czy możliwe jest utworzenie zakładki danych wyjściowych w systemie Ubuntu 16.04 LTS? Utworzyłem dwa zdjęcia poniżej, aby zilustrować, co mam na myśli.
Krótkie pytanie. Czy możliwe jest utworzenie zakładki danych wyjściowych w systemie Ubuntu 16.04 LTS? Utworzyłem dwa zdjęcia poniżej, aby zilustrować, co mam na myśli.
Odpowiedzi:
Możesz zrobić coś takiego - z deskryptorami plików:
zapisz bieżący deskryptor wyjściowy, abyśmy mogli go później przywrócić
exec 3>&1przekieruj strumień wyjściowy do podstawienia procesu, który wstawia kartę - na przykład
exec 1> >(paste /dev/null -)Od tego momentu każdy proces, który zapisuje na standardowe wyjście, będzie filtrował dane wyjściowe za pomocą pastepolecenia wstawiania tabulatorów na początku.
Po zakończeniu możesz przywrócić normalne zachowanie, przywracając zapisany deskryptor pliku i zamykając tymczasowy
exec 1>&3 3>&-lesslub podobnych narzędzi, aby umożliwić przewijanie danych wyjściowych, takich jak np man.
Rozumiem, że ta odpowiedź nie jest dla ciebie optymalna, ale możesz utworzyć funkcję Bash o prostej nazwie _(lub cokolwiek, co nie jest jeszcze używane), która uruchamia komendę, którą otrzymuje jako argumenty i wcina wszystkie wyniki za pomocą tabulacji.
Przykład:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
Kod tej funkcji będzie taki:
_(){ sed "s/^/\t/" <($*); }
Możesz dołączyć go do swojego ~/.bashrcpliku, aby był dostępny we wszystkich sesjach Bash użytkownika, uruchamiając:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Jeśli chcesz udostępnić go wszystkim użytkownikom, dołącz go /etc/bash.bashrczamiast tego (wymaga uprawnień administratora):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
Alternatywnie możesz również utworzyć plik skryptu /usr/local/bin/_z następującą zawartością, aby osiągnąć to samo bez funkcji Bash i dla wszystkich użytkowników:
#!/bin/bash
sed "s/^/\t/" <($*)
Po zapisaniu pliku należy wykonać skrypt
sudo chmod +x /usr/local/bin/_
Za pomocą przełącznika echomożesz w szczególności interpretować zmiany ukośnika odwrotnego, takie jak \t( tabulator ) -e:
echo -e "\tHello World"
Ale modyfikacja wyniku każdego polecenia w ten sposób byłaby praktycznie niemożliwa (lub prawdopodobnie możliwa). Jeśli Twoim celem jest łatwość czytania, możesz spróbować dostosować wygląd (np. Kolorystykę) wiersza polecenia, jak pokazano poniżej:

Możesz dostosować monit, zmieniając zawartość zmiennej środowiskowej PS1. Możesz zobaczyć mały przykład tego, jak to zrobić w blogu, z którego pochodzi powyższy zrzut ekranu. Jak szczegółowo korzystać z tak zwanych sekwencji ucieczki ANSI, jak korzystać z wygodniejszych narzędzi, jak domyślnie stosować zmiany w nowych terminalach itp., Wykracza poza zakres tej odpowiedzi. Ale jeśli zdecydujesz się użyć tej techniki, w sieci jest wiele samouczków i innych informacji.
YOUR COMMAND | indentlub jeśli musisz wpisać inne polecenie przed nim (może to być tylko podkreślenie), takie jak_ YOUR COMMAND?