Jak przeskoczyć do konkretnej flagi na stronie uniksowej?


23

Jak czytając stronę uniksową na terminalu, jak łatwo przejść do opisu konkretnej flagi?

Na przykład muszę znać znaczenie -oflagi dla mount. Biegnę man mounti chcę wskoczyć do miejsca, w którym -ojest opisane. Obecnie szukam /-ojednak tej opcji wymienionej w kilku miejscach przed sekcją, która ją faktycznie opisuje, więc muszę trochę skakać.

Dzięki.

Odpowiedzi:


27

To, co robię, to umieszczenie kilku pustych miejsc przed flagą, tak:

/     -o

To nie jest w 100% niezawodne, ale przeskakujesz przez znacznie mniej obręczy. Jeśli chcesz mieć jeszcze lepszy wskaźnik sukcesu, spróbuj "/^ +-o". Znalazłoby to linie zaczynające się od spacji, a następnie -o. Jednak nie chciałbym często wpisywać tego dziwnego łańcucha.


11

Zdefiniowałem tę funkcję w moim .bashrc

function manswitch () { man $1 | less -p "^ +$2"; }

którego możesz użyć w następujący sposób

manswitch grep -r

Mam to z tej linii poleceń .

Uwaga: argumentem -pprzełącznika lessjest wyrażenie regularne, które mówi mniej, aby szukał linii rozpoczynającej się od ( ^) co najmniej jednej spacji ( +), a następnie przełącznika (drugi argument tak. $2), Więc ma tę zaletę, że pracuje z innym formatowaniem.


5

Możesz także otworzyć stronę man na określonej pozycji z wiersza poleceń za pomocą

man -P 'less -p "     -o"' mount

Pozytywnie oceniany za to, że jest możliwy, ale jest to o wiele więcej do pisania niż do wyszukiwania z poziomu człowieka. W każdym razie dzięki!
dotancohen

Bardzo przydatne jest wysłanie kogoś do konkretnego miejsca na stronie podręcznika użytkownika :)
pęd

Tak, myślałem tylko, że gdybym musiał otworzyć stronę podręcznika w skrypcie z jakiegoś powodu, to też byłoby przydatne. Dziękuję Ci!
dotancohen

3

Odpowiedź @ piccobello jest świetna, ale zjadała kolory na moich stronach podręcznika. Zamiast przesyłać do less(ponieważ zwykle manużywa już lessdomyślnie), po prostu przekazuję zmodyfikowane lesspolecenie do man:

function manswitch() { man -P "less -p \"^ +$2\"" $1 }

To zachowuje funkcjonalność @piccobello w swojej funkcji, ale zachowuje kolory.


1

Inne rozwiązania są całkiem dobre, ale pamiętaj również, że strony podręcznika man to tylko dane i możesz łatwo zrobić z nimi prawie wszystko w Linuksie.

man some-command> plik.txt

konwertuje stronę na zwykły plik tekstowy, którym można manipulować. Trzymam kopię instrukcji bash jako tekst w katalogu bin, więc mogę po prostu załadować ją do mojego edytora tekstowego, aby wyszukiwać rzeczy oraz kopiować i wklejać podczas edytowania skryptów.

Możesz też podłączyć go do filtrów takich jak

man some-command | grep -A linie-po „jakiś wzór”

Chociaż nie działałoby to w terminalu, ja (z pomocą przyjaciela) napisałem nawet skrypt, który pobiera stronę podręcznika użytkownika i wyświetla ją w przeglądarce internetowej, dzięki czemu mogę korzystać z jej funkcji nawigacji / wyszukiwania, które są znacznie lepsze niż mniej. Jest to nieco zależne od KDE, ale łatwe do modyfikacji.

http://dl.dropbox.com/u/54584985/kman


3
Możesz spróbować man://w Konquerorze. KDE ma stronę podręcznika KIOSLAVE!
dotancohen

@dotancohen - Cool. Nie wiedziałem o tym.
Joe

@dotancohen - Właśnie wypróbowałem to w Dolphin i działa, ale wyświetla strony podręcznika jako katalogi i pliki i uruchamia domyślną przeglądarkę po kliknięciu pliku. Nie rozumiem części o KIOSLAVE. Próbowałem man: // kioslave i było tak samo jak man: //.
Joe

@dotancohen - Nieważne - szukałem kiosków na wikipedii. en.wikipedia.org/wiki/KIO
Joe

Tak, KDE ma prawie wszystko. Cieszyć się!
dotancohen

1

Napisałem narzędzie, które właśnie to robi, o nazwie flagman . Wciąż w fazie rozwoju, ale już nadaje się do użytku. Na przykład:

$ ./flagman mount -o
       -o, --options opts
              Use the specified mount options.  The opts argument is a comma-separated list.  For example:

                     mount LABEL=mydisk -o noatime,nodev,nosuid


              For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.