Командни редове: Защо хората все още се занимават с тях?

Командният ред е на почти 50 години, но не е остарял. Текстовите терминали все още са най-добрият начин за изпълнение на много задачи, дори в ерата на графичните настолни компютри и джаджи със сензорен екран.

Всъщност командният ред става все по-уважаван от всякога, когато Microsoft създава мощно ново приложение за терминал на Windows. Средата PowerShell на Windows 10 е изненадващо мощна, но Microsoft все пак положи усилия да добави поддръжка за основно пълната среда на командния ред на Linux към Windows 10.

Командният ред някога беше единствената опция

Едно време, ако сте искали да взаимодействате с компютър, вие сте написали. Това беше. Нямаше нищо друго. Това може да звучи ограничаващо и архаично, но като стъпка напред от използването на перфорирани карти или перфорирани хартиени ленти, писането беше радикално и трансформиращо. И мигриране от телетипни машини с техните ролки хартия към терминали с електроннолъчева тръба (CRT) екраните бяха друга промяна на земята във взаимодействието между хората и компютъра.

Тази стъпка проправи пътя за интерактивната обвивка наистина да влезе в своя собствена. Сега можете да изпращате инструкции на компютъра и много бързо да получавате отговори, показвани на екрана. Няма повече клак-клак-клак, докато чакахте хартиената ви разпечатка да се измъкне от вашата телетипна машина.

Достатъчно справедливо, но това беше тогава, това е сега. Компютърът е съвсем различна игра с топка. Освен очевидните заключени случаи като използване на компютър, който няма инсталирана графична среда на работния плот, или използване на отдалечен компютър чрез SSH през връзка с ниска честотна лента или контролиране на a без глава или вградени система, защо да използвате командния ред над графичен работен плот?

Обяснено на жаргона

Термини като команден ред, терминален прозорец и обвивка се използват почти взаимозаменяемо от някои хора. Това е неправилен жаргон. Всички те са доста различни. Те са свързани, но не са едно и също нещо.

Прозорецът на терминала е прозорец в a графична среда на работния плот който изпълнява емулация на телетайп терминал.

Shell е програмата, която се изпълнява в прозореца на терминала. Той взема вашите данни и в зависимост от това, което сте въвели, се опитва да интерпретира и изпълни самите инструкции, да ги предаде на някои от другите помощни програми, които съставляват операционната система, или да намери скрипт или програма, която съответства на това, което сте въвели.

  Защо Google казва, че Chrome е по-сигурен от Edge?

Командният ред е мястото, където пишете. Това е подкана, който обвивката представя, когато чака да въведете някои инструкции. Терминът „команден ред“ също се използва за обозначаване на действителното съдържание на това, което сте въвели. Например, ако говорите с друг потребител на компютър за трудност, която сте имали при опит да накарате програма да стартира, той може да ви попита: „Какъв команден ред използвахте?“ Те не питат каква обвивка сте използвали; те искат да знаят каква команда сте въвели.

Като цяло, те се комбинират, за да образуват интерфейс на командния ред (CLI).

Защо да използвате командния ред през 2019 г.?

CLI може да изглежда ретрограден и объркващ за тези, които не са запознати с него. Със сигурност няма място в една съвременна операционна система за толкова остарял и маниакален начин на използване на компютър? Не се ли отказахме от всичко това преди десетилетия, когато се появиха прозорци, икони и мишки и графични среди на работния плот с графични потребителски интерфейси (GUI) станаха достъпни?

Да, GUI съществува от десетилетия. Първата версия на Microsoft Windows беше издаден през далечната 1985 г и се превърна в норма за настолни компютри с пускането на Windows 3.0 през 1990 г.

Системата X Window, използвана в Unix и Linux, беше въведена през 1984 г. Това донесе графични настолни среди в Unix и многобройните му производни, клонинги и издънки.

Но пускането на Unix предшества тези събития от a повече от десетилетие. И тъй като нямаше друг вариант, всичко трябваше да е възможно чрез командния ред. Цялото човешко взаимодействие, цялата конфигурация, всяка употреба на компютъра трябваше да може да се извършва чрез скромната клавиатура.

Така че, ipso facto, CLI може да направи всичко. GUI все още не може да направи всичко, което може да направи CLI. И дори за частите, които може да прави, CLI обикновено е по-бърз, по-гъвкав, може да бъде написан на скриптове и е мащабируем.

И има стандарт.

Те са стандартизирани благодарение на POSIX

POSIX е a стандарт за Unix-подобни операционни системи—по принцип всичко, което не е Windows. И дори Windows има подсистема Windows за Linux (WSL). Отворете терминален прозорец на всяка POSIX съвместима (или близка до съвместима) операционна система и ще се озовете в обвивка. Дори ако обвивката или дистрибуцията предоставят свои собствени разширения и подобрения, стига да предоставят основната POSIX функционалност, вие ще можете да я използвате веднага. И вашите скриптове ще се изпълняват.

  Как да изтриете акаунт в Microsoft Teams

Командният ред е най-малкият общ знаменател. Научете как да го използвате и, независимо от дистрибуцията на Linux и графичната среда на работния плот, ще можете да изпълнявате всички задачи, от които се нуждаете. Различните настолни компютри имат свой собствен начин на работа. Различните дистрибуции на Linux обединяват различни помощни програми и програми.

Но отворете прозорец на терминала и ще се почувствате като у дома си.

Командите са проектирани да работят заедно

Всяка от командите на Linux е предназначена да прави определено нещо и да прави това нещо добре. Основната философия на дизайна е да се добави повече функционалност чрез добавяне на друга помощна програма, която може да бъде свързана или свързана заедно със съществуващите, за да се постигне желаният резултат.

Това е толкова полезно, че Microsoft направи всичко възможно да добави поддръжка за пълния команден ред на Linux към Windows 10!

Например, командата за сортиране се използва от други команди за сортиране на текст по азбучен ред. Няма нужда да вграждате способност за сортиране във всяка от другите команди на Linux. Обикновено GUI приложенията не позволяват този тип съвместна работа.

Вижте следния пример. Това използва командата ls за изброяване на файловете в текущата директория. Резултатите се предават в командата за сортиране и сортирани в петата колона с данни (който е размерът на файла). След това сортираният списък се прехвърля в командата head, която по подразбиране изброява първите десет реда от неговия вход.

ls -l | sort -nk5,5 | head

Получаваме изряден списък с най-малките файлове в текущата директория.

Чрез промяна на една команда – използвайки опашка вместо глава – можем да получим списък с десетте най-големи файла в текущата директория.

ls -l | sort -nk5,5 | tail

Това ни дава нашия списък с десетте най-големи файла, както се очаква.

Резултатът от командите може да бъде пренасочен и заловен във файлове. Редовният изход (stdin) и съобщенията за грешки (stderr) могат да бъдат заснети отделно.

Командите могат да включват променливи на средата. Следната команда ще изброи съдържанието на вашата домашна директория:

ls $HOME

Това работи от където и да се намирате в дървото на директориите.

Ако идеята за всичко това да пишете все още ви притеснява, техники като завършване на раздел могат да намалят количеството писане, което трябва да направите.

  Как да премахнете воден знак в Microsoft Word

Скриптовете позволяват автоматизация и повторяемост

Хората са склонни към грешки.

Скриптовете ви позволяват да стандартизирате набор от инструкции, за които знаете, че ще се изпълняват по същия начин всеки път, когато скриптът се изпълнява. Това внася последователност в поддръжката на системата. Проверките за безопасност могат да бъдат вградени в скриптовете, които позволяват на скрипта да определи дали трябва да продължи. Това премахва необходимостта потребителят да има достатъчно познания, за да вземе сам решението.

Тъй като можете да автоматизирате задачите с помощта на cron в Linux и други подобни на Unix системи, дългите, сложни и повтарящи се задачи могат да бъдат опростени или поне веднъж разгадани и след това автоматизирани за бъдещето.

Скриптовете на PowerShell предлагат подобна мощност на Windows и можете да планирате изпълнението им от планировчика на задачи. Защо да щракнете върху 50 различни опции всеки път, когато настройвате компютър, когато можете да изпълните команда, която автоматично променя всичко?

Най-доброто от двата свята

За да извлечете най-доброто от Linux – или която и да е операционна система като опитен потребител – наистина трябва да използвате CLI и GUI.

GUI е ненадминат за използване на приложения. Дори упоритите защитници на командния ред трябва да излизат от прозореца на терминала и да използват пакети за офис производителност, среди за разработка и програми за графична манипулация от време на време.

Зависимите от командния ред не мразят GUI. Те просто предпочитат ползите от използването на CLI – за съответните задачи. За администриране CLI печели ръцете. Можете да използвате CLI, за да правите промени в един файл, една директория, селекция от файлове и директории или напълно глобални промени с еднакво усилие. Опитът да направите това с графичния интерфейс често се нуждае от продължителни и повтарящи се действия с клавиатура и мишка, тъй като броят на засегнатите обекти се увеличава.

Командният ред ви дава най-висока прецизност. Всяка опция на всяка команда е достъпна за вас. И много от командите на Linux имат много опции. За да вземем само един пример, разгледайте командата lsof. Разгледайте го man страница и след това помислете как бихте го увили в GUI.

Има твърде много опции за представяне на потребителя в ефективен GUI. Би било непосилно, непривлекателно и тромаво за използване. И това е пълна противоположност на това, което GUI цели да бъде.

Това са коне за курсове. Не се плаши от коня на CLI. Често това е по-бързият и по-пъргав кон. Спечелете шпорите си и никога няма да съжалявате.