Potok Unix łączy deskryptory plików dwóch procesów. Potok jest tworzony za pomocą funkcji potoku POSIX zadeklarowanej w <unistd.h>. Powłoki umożliwiają tworzenie potoków między procesami za pomocą „|”.
Istnieje polecenie powłoki, które pozwala zmierzyć szybkość przechodzenia przez nie danych, dzięki czemu można zmierzyć prędkość wydawania poleceń w potoku. Więc zamiast: $ somecommand | anothercommand możesz zrobić coś takiego: $ somecommand | ??? | anothercommand I myślę, że statystyki przepustowości (bajty / s) są drukowane do stderr. Ale nie …
Chciałem poznać różnicę między następującymi dwoma poleceniami 2>&1 > output.log i 2>&1 | tee output.log Widziałem, jak jeden z moich kolegów używa drugiej opcji przekierowania. Wiem, co robi 2> i 1, moje jedyne pytanie brzmi: jaki jest cel używania tee, w którym można użyć prostego przekierowania „>”?
Czasami muszę napisać tekst, a następnie potokować ten tekst do innego polecenia. Mój zwykły przepływ pracy wygląda mniej więcej tak: vim # I edit and save my file as file.txt cat file.txt | pandoc -o file.pdf # pandoc is an example rm file.txt Uważam to za kłopotliwe i staram się …
Mam plik wykonywalny, który uruchamia powłokę interaktywną dla użytkownika. Chciałbym, po uruchomieniu powłoki, najpierw wstrzyknąć kilka poleceń, a następnie pozwolić użytkownikowi na interaktywną sesję. Mogę to łatwo zrobić za pomocą echo: echo "command 1\ncommand 2\ncommand3" | ./shell_executable To prawie działa. Problem polega na tym, że polecenie echa, które zasila standardowe …
Gdybyś pomagał komuś nauczyć się pojęcia potoków w wierszu poleceń, jakiego przykładu byś użył? Przykład, który się pojawił, był następujący: cat whatever.txt | less Wydaje mi się, że nie jest to najlepszy przykład, ponieważ jest tylko jeden krok. Jakie jest dobre, ale fundamentalne zastosowanie |? Idealnie w przykładzie, który przedstawię, …
Chciałem usunąć część pakietu z mojego pliku domowego, ale nazwa pliku była zbyt długa ( google-chrome-stable_current_i386.deb). Dlatego postanowiłem użyć polecenia ls|grep chrome|rmdo potokowania plików, aby grep odfiltrował plik chrome, a następnie go usunął. Nie działało, więc chciałbym zobaczyć, jak to zrobić.
Na przykład utworzyłem nazwany potok podobny do następującego: mknod myPipe p I czytam z niego z jakiegoś procesu (na przykład z jakiegoś serwera). Na przykład użyłem ogona: tail -f myPipe Jeśli kilka procesów klienckich zapisuje w nim niektóre wiadomości (na przykład echo "msg" >> myPipe, czy istnieje szansa, że wiadomości …
Rozumiem, że -execmożna wybrać +opcję naśladowania zachowania xargs. Czy jest jakaś sytuacja, w której wolisz jedną formę od drugiej? Osobiście wolę pierwszą formę, choćby po to, by uniknąć używania rury. Myślę, że z pewnością programiści findmusieli dokonać odpowiednich optymalizacji. Mam rację?
Mam plik o nazwie Element_queryzawierający wynik zapytania: SQL> select count (*) from element; [Output of the query which I want to keep in my file] SQL> spool off; Chcę usunąć 1. linię i ostatnią linię za pomocą polecenia powłoki.
Plik jest kolejno pobierany przez wget. Jeśli zacznę go rozpakowywać cat myfile.tar.bz2 | tar -xj, może rozpakować się poprawnie lub nie powieść z „Nieoczekiwanym EOF”, w zależności od tego, co jest szybsze. Jak „cat and follow” pliku, tj. Wyprowadzać zawartość pliku na standardowe wyjście, ale nie wychodzić z EOF, zamiast …
Zauważyłem, że |służy do przesyłania wyników pierwszego polecenia do drugiego. Chciałbym zabić wszystkie procesy, które pasują do nazwy. Oto co zwykle robi pgrep: $ pgrep name 5089 5105 Wydaje się, że działa wiele argumentów kill: sudo kill 5089 5105 Ale to źle: pgrep name | kill Jak to zrobić poprawnie?
Próbuję uzyskać każde polecenie grep, aby podświetlić jego wyniki w innym kolorze. Mogę to zrobić ręcznie za pomocą takiej linii: ls -l GREP_COLORS='mt=01;32' grep c | GREP_COLORS='mt=01;31' grep o | GREP_COLORS='mt=01;34' grep n | GREP_COLORS='mt=01;36' grep f Każda cpostać zostanie podświetlona na zielono, a każda opostać zostanie wyróżniona na czerwono …
Wiem, że najlepiej jest tworzyć pliki tymczasowe mktemp, ale co z nazwanymi potokami? Wolę, aby rzeczy były jak najbardziej zgodne z POSIX, ale tylko Linux jest akceptowalny. Unikanie bashism jest moim jedynym trudnym kryterium, kiedy piszę dash.
Oto kilka opcji, o których myślałem, ale nie jestem pewien, która z nich jest właściwa. Wystąpił błąd we / wy podczas odczytu z potoku. Proces zapisu na drugim końcu potoku umarł z powodu awarii. Wszystkie procesy, które mogły pisać do potoku, zamknęły go. Bufor zapisu potoku jest pełny. Element równorzędny …
Słyszałem, że FIFO są nazwane fajkami. I mają dokładnie taką samą semantykę. Z drugiej strony, myślę, że gniazdo domeny Unix jest dość podobne do potoku (chociaż nigdy z niego nie korzystałem). Zastanawiam się więc, czy wszystkie odnoszą się do tej samej implementacji w jądrze Linuksa. Dowolny pomysł?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.