Co to jest standardowe wejście w systemie Linux?

Standardowym wejściem w Linuksie jest klawiatura i mysz.Kiedy piszesz coś na klawiaturze, przechodzi to na standardowe wejście.To samo dzieje się, gdy używasz myszy.Możesz również uzyskać standardowe wejście za pomocą wiersza poleceń.

Jak stworzyć standardowe wejście w Linuksie?

W systemie Linux standardowym wejściem jest klawiatura, a wyjściem jest ekran.Aby utworzyć standardowe wejście w Linuksie, musisz najpierw wiedzieć, co to jest.Standardowe wejście to miejsce, w którym wpisujesz polecenia wysyłane do komputera.To także miejsce, w którym otrzymujesz dane z komputera.Możesz użyć standardowego wejścia do wpisywania poleceń lub pobierania danych z komputera.

Aby utworzyć standardowe wejście w Linuksie, musisz najpierw wiedzieć, co to jest.

Standardowe wejście to miejsce, w którym wpisujesz polecenia wysyłane do komputera.To także miejsce, w którym otrzymujesz dane z komputera.Możesz użyć standardowego wejścia do wpisywania poleceń lub pobierania danych z komputera.

W systemie Linux możesz używać różnych typów plików ze standardowym wejściem: plików tekstowych, plików binarnych i katalogów.Kiedy używasz pliku tekstowego ze standardowym wejściem w systemie Linux, system Windows widzi go tak, jakby był to normalny plik tekstowy na dysku twardym.Kiedy używasz pliku binarnego ze standardowym wejściem w systemie Linux, system Windows widzi go tak, jakby był to plik wykonywalny na dysku twardym (program, który coś robi). Gdy używasz katalogu ze standardowym wejściem w systemie Linux, system Windows widzi katalog na dysku twardym zamiast pliku wykonywalnego. (Jest to przydatne, gdy chcesz skopiować katalog z jednego komputera na inny, nie martwiąc się o programy, które znajdują się w nim.

Jaka jest domyślna lokalizacja standardowego wejścia w systemie Linux?

Domyślna lokalizacja standardowego wejścia w Linuksie to /dev/null.Oznacza to, że wszelkie polecenia, które wpisujesz do terminala, będą ignorowane.

Jak zmienić lokalizację standardowego wejścia w Linuksie?

W systemie Linux standardowe wejście to tekst, który wpisujesz podczas logowania lub uruchamiania polecenia.Możesz zmienić lokalizację standardowego wejścia za pomocą interfejsu wiersza poleceń (CLI) terminala. Aby to zrobić, otwórz okno terminala i wpisz:

cd /usr/local/bin

chmod +x stdin_input.sh

./stdin_input.sh

Pierwsze polecenie zmienia twój bieżący katalog roboczy na /usr/local/bin, a drugie skrypt dodaje nowy plik o nazwie stdin_input.sh do tego katalogu.Trzecie polecenie uruchamia skrypt z bieżącymi uprawnieniami użytkownika (to znaczy, że będzie działał jako Ty, a nie jako root). Jeśli wszystko pójdzie dobrze, zobaczysz komunikat informujący, że standardowe wejście zostało przeniesione do /usr/local/bin/stdin_input.Jeśli nie, zapoznaj się z naszym przewodnikiem rozwiązywania problemów, aby uzyskać dodatkową pomoc.

Dlaczego chcesz zmienić lokalizację standardowego wejścia w Linuksie?

Jest kilka powodów, dla których możesz chcieć zmienić lokalizację standardowego wejścia w Linuksie.Na przykład, jeśli chcesz użyć innego programu emulatora terminala niż domyślny lub jeśli chcesz uruchomić skrypt, który wymaga danych wejściowych użytkownika z pliku tekstowego, a nie z klawiatury.Dodatkowo, jeśli pracujesz nad projektem, który będzie wymagał jednoczesnego udostępniania plików danych i poleceń wejściowych wielu użytkownikom, pomocne może być skonfigurowanie systemu tak, aby wszystkie ich dane wejściowe przechodziły przez tę samą lokalizację.W tym 400-wyrazowym przewodniku omówimy każdy z tych powodów bardziej szczegółowo i wyjaśnimy, jak zmienić lokalizację standardowego wejścia w systemie Linux.

Dlaczego miałbym chcieć używać innego programu emulatora terminala?

Jeśli używasz istniejącego środowiska graficznego, takiego jak GNOME lub KDE, najprawdopodobniej Twój komputer ma preinstalowane programy terminalowe, takie jak xterm lub konsole.Jeśli jednak używasz Ubuntu lub innej dystrybucji Linuksa, która nie jest domyślnie instalowana z takimi programami, dostępnych jest wiele innych opcji.Na przykład niektóre dystrybucje zawierają terminator , który jest emulatorem terminala typu open source opartym na XJak zmienić lokalizację mojego standardowego wejścia?

Zmiana lokalizacji standardowego wejścia jest dość łatwa – wystarczy otworzyć okno Terminal (znajdujące się w Applications > Accessories > Terminal) i wpisać: sudo nano /etc/default/terminal Jeśli wszystko pójdzie zgodnie z planem – zakładając, że nie wystąpią żadne błędy – ty powinien teraz zobaczyć coś podobnego do tego: TERM=xterm-256color Jeśli nie… Nie panikuj!Zwykle istnieją dwa główne powody, dla których to polecenie mogło nie działać zgodnie z oczekiwaniami:

Po sprawdzeniu, że pożądane zmiany zostały wprowadzone poprawnie, musimy zaktualizować konfigurację naszej powłoki, aby te nowe ustawienia działały automatycznie przy każdym logowaniu: sudo sh -c 'echo "TERM=$TERM" >> ~/.bashrc ' && sudo sh -c 'echo "eksportuj TERM="$TERM"" >> ~/.bashrc'Teraz, gdy ponownie zalogujemy się do naszej sesji (po wylogowaniu i ponownym zalogowaniu), oba nasze nowe ustawienia zostaną zastosowane automatycznie, bez konieczności dalszej interwencji!

Co się stanie, jeśli nie mam uprawnień administracyjnych wymaganych do wprowadzania zmian?

Jeśli z jakiegoś powodu nie masz uprawnień administratora wymaganych do wprowadzania zmian w /etc/default/terminal , są jeszcze inne sposoby, aby osiągnąć to, czego chcieliśmy – edytując plik profilu użytkownika (.profile) lub globalny skrypt startowy (.bash_profile). Aby edytować swój profil użytkownika… Wpisz nano ~/.profile … i dodaj przynajmniej jedną linię zawierającą: TERM=xterm-256color Po zapisaniu i zamknięciu Nano , ponowne wczytanie bieżącej sesji przez wpisanie source ~/.profile powinno teraz spowodować, że xterm zostanie uruchomiony używany jako domyślny emulator terminala!Aby edytować globalne skrypty startowe… Otwórz ~/.

  1. Jeśli nie masz żadnych preferencji co do tego, którego programu emulatora terminala chcesz użyć, po prostu zmiana lokalizacji standardowego wejścia nie wpłynie zbytnio na przepływ pracy.Jeśli jednak planujesz używać wielu emulatorów terminali jednocześnie (na przykład podczas pracy nad kilkoma projektami jednocześnie), często łatwiej jest im wszystkim uzyskać dostęp do plików danych i skryptów znajdujących się w tym samym katalogu.W ten sposób każdy może wpisywać polecenia do swoich terminali, nie martwiąc się o sprzeczne ścieżki lub nazwy plików.
  2. Możesz nie mieć uprawnień administratora wymaganych do wprowadzania zmian w /etc/default/terminal ; Plik określony w TERM może nie istnieć w twoim systemie (w takim przypadku spróbuj zamiast tego wpisać sudo nano /etc/default/terminal). Jeśli żadne z tych rozwiązań z jakiegokolwiek powodu nie zadziała, skontaktuj się z nami w celu uzyskania pomocy za pośrednictwem naszych kanałów pomocy .

Jak zmiana lokalizacji standardowego wejścia wpływa na programy, które go używają?

Zmiana lokalizacji standardowego wejścia wpływa na programy, które z niego korzystają.Na przykład, jeśli przeniesiesz standardowe wejście do pliku, wszystkie programy korzystające ze standardowego wejścia będą musiały zamiast tego czytać z tego pliku.Jeśli przeniesiesz standardowe wejście do potoku, wszystkie programy korzystające ze standardowego wejścia wyślą swoje wyjście przez ten potok.

Czy programy korzystające z różnych lokalizacji dla swoich standardowych danych wejściowych mogą nadal komunikować się ze sobą?

Standardowe wejście w systemie Linux to lokalizacja, w której odczytywane są dane wejściowe użytkownika.Programy używające różnych lokalizacji dla swoich standardowych danych wejściowych mogą nadal komunikować się ze sobą, o ile są świadome lokalizacji standardowego wejścia innego programu.

W większości przypadków program użyje tej samej lokalizacji dla swojego standardowego wejścia, niezależnie od tego, czy jest uruchamiany z terminala, czy z innego programu.Od tej reguły są jednak wyjątki.Na przykład, jeśli program jest uruchamiany z interfejsu wiersza poleceń (CLI), użyje domyślnego wyjścia terminala zamiast standardowego wejścia.

Kolejny wyjątek występuje, gdy program odczytuje dane z pliku.W takim przypadku zawartość pliku staje się standardowym wejściem programu.

Co się stanie, jeśli dwa programy spróbują jednocześnie czytać z tego samego standardowego wejścia?

W systemie Linux standardowym wejściem jest klawiatura i terminal.Gdy dwa programy próbują jednocześnie czytać z tego samego standardowego wejścia, mogą powodować konflikty.Może to spowodować błędy lub nieoczekiwane zachowanie.Aby tego uniknąć, powinieneś zawsze określać, który program powinien czytać ze standardowego wejścia podczas jego uruchamiania.

Czy istnieje limit liczby programów, które mogą jednocześnie czytać z jednego standardowego wejścia?Jeśli tak, jaki jest ten limit?Jeśli nie, dlaczego nie?

Nie ma ograniczeń co do liczby programów, które mogą jednocześnie czytać ze standardowego wejścia.Dzieje się tak, ponieważ jądro Linuksa umożliwia wielu procesom współdzielenie tych samych deskryptorów plików, które są ponumerowane od 1.Tak więc, jeśli masz cztery procesy czytające ze standardowego wejścia, każdy proces będzie używał deskryptora pliku o numerach 3, 4, 5 i 6.Jeśli chcesz zezwolić więcej niż czterem procesom na dostęp do standardowego wejścia w tym samym czasie, musisz użyć innego podsystemu I/O, takiego jak potoki lub pamięć współdzielona.