Миналата седмица стартирахме нашата серия Linux Hands-On, за да създадем структурирана поредица, която информира и образова читателя за това какво представлява Linux, как работи и в същото време се уверява, че те си цапат ръцете, като изпробват терминални команди.
Както беше споменато в първата част на поредицата, цялата серия ще бъде логична прогресия всяка седмица. Това означава, че тази част ще има смисъл само ако сте преминали през първата част и сте изпробвали всички команди, или ако сте основни познания за Linux и можете да го заобиколите. Ако не сте запознати с тези понятия, уверете се прочетете първата част, и тогава можете да скочите направо.
В публикацията от тази седмица ще надградим това, което разгледахме в предишната публикация, и ще ви кажем как можете да правите някои по-сложни неща. Ако сте имали въпроси като как да редактирате файлове в Linux? Как да видите процес в Linux и т.н. тази публикация ще отговори на тези. Така че, без да губим повече време, нека преминем направо към командите.
Ще разделим командите на секции, така че да има смисъл да ги преминаваме една по една.
Какво ще научите
- Работа с файлове
- Съвпадащ модел
- Процес: Гледане и убиване
- Редактиране на текстови файлове
Добре, така че сега, когато имаме изложена основна структура, нека ги преминем един по един.
В предишната публикация трябва да научите как да създавате файлове в Linux и как да ги премахвате. Нека надградим върху това и първо да видим как да видите съдържанието на файл.
котешка команда
За да видим съдържанието на файл, използваме командата cat. Дефиницията в учебника на тази команда е, че – командата cat последователно чете файл и отпечатва изхода в стандартния изход. С прости думи това означава, че файлът отпечатва съдържанието на файл ред по ред.
Нека използваме пример, за да видим как работи командата cat?
Ето синтаксиса:
котка FILENAME
Сменете ИМЕ НА ФАЙЛ с един от вашите. Както можете да видите по-долу, командата току-що отпечата съдържанието на файловете ghost.txt във формат ред по ред:

Сега, когато знаем как да преглеждаме съдържанието на файл, нека се научим как всъщност да добавяме съдържание към файл направо от терминала, без да използваме никакви редактори (не се притеснявайте, това ще дойде много скоро).
Оператори за пренасочване в Linux
Един от начините, по които можете да добавите (презаписване или добавяне) съдържанието към файл е чрез използване на един от операторите за пренасочване. С прости думи, операторите за пренасочване позволяват на потребителите да контролират въвеждането и изхода на команда.
Ето един по-свързан пример. Помните ли какво направи командата ехо? Той отпечата низ към терминала. Низът беше изходът на командата echo. Като използвате един от операторите за пренасочване, вие всъщност можете да използвате този изход и да го запишете във файл.
Стига приказки, нека да видим как работи операторът за пренасочване с пример.
Ето синтаксиса на оператора за пренасочване:
команда пренасочване_оператор файл
Тук командата е терминалната команда, която ще изведе низ, а файлът е действителният файл, който ще приеме този изход. Има няколко налични оператора за пренасочване, но нека ограничим обхвата си до писане във файлове.
За целта можем да използваме един от двата оператора за пренасочване, т.е. > намлява >>
На следващата екранна снимка можете да видите как работи. Показах в терминала, че файлът първоначално е празен с командата cat, след това добавих съдържание към файла с помощта на командата echo и накрая разпечатах съдържанието с командата cat.
- > Операторът работи в режим на презаписване. Това означава, че ако използвате > оператор за записване на съдържание във файл, предишното му съдържание ще бъде презаписано. Това е показано на екранната снимка по-долу. Както можете да видите, предишното съдържание беше заменено с ново.

Сега очевидният въпрос е какво, ако не искате да замените съществуващото съдържание? Е, има версия на оператора за пренасочване, която прави точно това.
За да добавите към файл, вместо да използваме >, ние използваме >>
Ето синтаксиса:
команда >> име на файл
И можете да видите примерна употреба на екранната снимка по-долу, към която е добавено съдържанието. Доста спретнато нали? Съгласен съм, че не предлага същата гъвкавост като текстов редактор, но за по-малки случаи на използване върши работата доста добре.

Добре се движи!
Сега, когато знаем как да добавяме съдържание към файл и как да го преглеждаме, какво ще кажете да научите как да намирате файлове във файловата система?
намерете команда
За да търсим файлове във вашата файлова система, използваме командата find. Командата прави основно това, което твърди, че прави. Той намира дадено име на файл или модел на регулярен израз.
Основният синтаксис за същото би бил както следва:
намери израз на име на път
Както винаги заменете заместителите със свои собствени стойности.
- път казва на командата find в коя директория да търси дадения файл. В име опцията посочва модел, срещу който трябва да се съпостави търсенето.
Нека видим как работи командата find в примерна употреба.

Както се вижда по-долу в примерния изход, командата търси произволен . Exe файлове в моята файлова система и ги извежда на конзолата. Сега, когато имаме някои от по-сложните команди за манипулиране под колана си, нека да отидем още една стъпка.
Сега ще разгледаме как можем да търсим неща във файл.
команда grep
grep означава Глобален регулярен израз и макар че ще покрием това в бъдеща публикация, основното обяснение за това какво означава е, че това е просто шаблон, който grep използва, за да провери низовете, за да намери съвпадение. Не се притеснявайте, ако няма много смисъл. Ще го покрием подробно в част 3.
Добре, така че нека тестваме grep. Ето синтаксиса на нашия тест:
grep -i "низ за съвпадение" име на файл.разширение
- - i опцията ще каже на grep да игнорира главни и малки букви, така че „HO“ „ho“ и „hO“ ще се считат за еднакви. Низът за съвпадение е посочен в кавички, които след това са последвани от името на файла.

Добре, нека да видим как командата grep в демонстрация. Както се вижда по-горе, моят пример показва използването на grep както в режимите, чувствителни към главни и малки букви, така и в режим, който не е чувствителен.
В този момент си струва да се отбележи, че има n различни комбинации за една команда и няколко опции, които да вървят с нея. Това, което правя тук, е да ви дам общ закръглен случай на употреба, който ще работи за повечето прости случаи, но в случай, че искате да влезете всичко, определено можете да направите човек на командата, за да разбере всички налични опции, които да използвате с команда.
След това нека видим как всъщност можем да сравним 2 различни файла по ред по ред.
команда diff
За да видим как се различават 2 файла (разбра ли?), използваме командата diff. По-добре е да го видите в действие, за да разберете как всъщност работи, така че нека да влезем веднага.
Ето синтаксиса на командата diff:
diff файл1 файл2
И ето пример за използване на командата diff Linux:

На пръв поглед може да няма пълен смисъл, така че нека разбием изхода надолу.
Първият ред на изхода diff ще съдържа:
- номера на редовете, съответстващи на първия файл
- буква (a за добавяне, c за промяна или d за изтриване)
- номера на редове, съответстващи на втория файл.
В нашия изход по-горе, „1,3c1“ означава: „Редове от 1 до 3 в първия файл трябва да бъдат променени, за да съответстват на редове 1 във втория файл.“ След това ни казва какви са тези редове във всеки файл:
- Редовете, предшествани от <, са редове от първия файл
- Редове, предшествани от > са редове от втория файл.
Продължавайки нататък, ще видим как можем да разберем за повтарящи се редове в даден файл.
uniq команда
Командата uniq се използва за откриване на повтарящите се редове заедно с техния брой и други подобни подробности. Ако го направите, той казва, че се използва за филтриране или докладване на повтарящи се редове във файл. Както при почти всички команди, командата uniq също има куп опции, които да вървят заедно с нея.
Но с цел краткост и за да сме сигурни, че научавате по-голям брой команди, вместо да научавате твърде много за една команда, просто ще извадим минимален пример и можете да копаете повече, като използвате командата man.
Добре, ето синтаксиса на командата uniq:
uniq -options име на файл
Сега нека видим извадка, за да научим как работи командата uniq в Linux.

Нека бързо да разбием извадката. В -c опция казва на командата uniq да отпечата a броя заедно с изхода и следващата опция е име на файл който се доставя на uniq.
Както можете да видите в примера по-горе, той отпечата броя на повтарящите се редове, който в нашия случай беше 2.
Това би трябвало да го направи за всички команди, които трябва да знаете, за да сте сигурни, че можете да работите около файлове, но има една много важна част, която не обхванахме досега и е около правата за достъп.
Виждате в реалния свят, не искате всичките ви файлове да имат глобален достъп за четене и запис, което означава, че всеки може просто да ходи и да редактира файл. Някои файлове трябва да бъдат защитени от подправяне. Тук идва контролът на достъпа и Linux и Unix го управляват изненадващо добре с тази следваща команда.
chmod команда
Командата chmod означава режим на промяна и основно ви позволява да промените начина, по който файлът може да бъде достъпен и от кого може да бъде достъпен.
Синтаксисът за chmod е доста прост и изглежда така:
chmod -опции разрешения файл име
Въпреки че опциите и името на файла не се нуждаят от уточняване, разрешения част се нуждае от известно обяснение.
Разрешенията за файлове в Linux се въртят около 3 обхват, потребител, група, намлява др. Разрешенията са на свой ред 3 вида прочетени пиши, намлява изпълнявам. Това означава, че всеки обхват има 3 разрешения, което прави общо 3 набора от обхвати с по 3 разрешения във всеки.
Имайки това предвид, ето примерна употреба, за да ви покажем как работи chmod:
chmod u=rwx, g=rx, o=r име на файл.txt
Тук u стойки за потребител, g за група намлява o за други, И = знакът се използва за присвояване на разрешението четене (r), пишете (w), намлява изпълни (x) към всеки обхват. Запетаята разделя всяко задание.

Има стенография за присвояване на разрешения и използва осмична нотация. В осмична нотация:
- 4 означава четене
- 2 означава писане
- 1 означава изпълнение
- 0 означава липса на разрешение
Така че според горната нотация числото 7 ще предостави разрешение за четене на запис и изпълнение (4 + 2 + 1). Можете да го смесвате и съпоставяте съответно и ето примерен случай на използване, използвайки осмичната нотация:
chmod 755 starwars.txt

В тази извадка файлът starwars има:
- разрешение за четене, писане и изпълнение за потребителя.
- прочетете и изпълнете за групата.
- екзекутира други.
Добре! наближаваме края на частта от публикацията за обработка на файлове. Тази последна команда ще ви позволи да архивирате файл/компресирате файл. Архивирането на файл е полезно, когато искате да придвижвате куп файлове между системи, като същевременно се уверите, че избягвате да ги повредите.
tar команда
Командата tar означава архив на лентата и ви позволява да създавате манипулиране и извличане на архивираните файлове.
Ето основния синтаксис на командата, за да видите как работи:
tar -опции име на файл1 име на файл1 .... име на файл N
Нека видим примерна употреба с няколко опции. Силно се препоръчва да си поиграете с извадката и след това да я проучите сами, за да откриете по-интересни случаи на употреба.
tar -c -f компресиран.zip ghost.txt starwars.txt

Нека го разбием. В -c намлява -f командите са само няколко сред списъка от много, но ето какво правят. В -c опцията казва на командата да създайте нов архив намлява -f се използва за посочете името на файла за архива, който в този случай е компресиран.zip, командата tar може да създава архиви в .zip, .tar, .rar и други формати, така че не забравяйте да изберете този, който отговаря на вашите нужди
Сега, когато знаете как да компресирате файлове, нека да видим как да ги извлечете. Ние използваме -x намлява -f опции на командата tar за извличане на файл, -x опцията казва на tar да извлечете файла намлява -f се използва за посочете името на файла както е показано в примера по-долу:

Добре, най-накрая преминахме частта за обработка на файлове от публикацията. Ура! Свършихте страхотна работа, стигайки дотук. Сега ще говорим за процеси.
В терминологията на Linux процесът е програма, която в момента се изпълнява, изпълняваща конкретна задача. Процесите са динамични и постоянно се променят, когато потребителят превключва между приложения.
- Linux документация говори за процесите много подробно и ви насърчавам да прочетете, след като приключите с тази публикация.
Сега, когато знаем какво е процес, нека видим как да ги видим.
ps командване
Командата ps ни позволява да видим какви процеси се изпълняват в момента на дадена машина. Той идва с различни опции, но ето минимално използване, което показва всички процеси, които в момента се изпълняват като root.
Синтаксисът е следният
ps - опция
В нашия случай ще използваме -u опция, която ще покаже процеси, работещи като root.

Сега, когато знаете как да преглеждате процеси, какво ще кажете да научите как да ги убивате?
убийте команда
Командата kill се използва за убиване или прекратяване на даден процес без излизане или рестартиране на компютъра. Струва си да се отбележи, че командата kill всъщност не убива процес, тя само изпраща сигнал към процес и сигналът казва на процеса какво трябва да се направи. По подразбиране, когато не е посочен сигнал, сигнал 15 нарича СИГТЕРМ се изпраща към процеса и ако това не успее, по-силен сигнал 9 SIGKILL се изпраща на процеса, но за повечето нормални случаи на използване всичко, което трябва да посочите, за да убиете процес, е това PID.
Ето синтаксиса на командата kill:
kill [сигнал или опции] PIDs
А ето и демонстрация:

Бъдете много внимателни, докато убивате процес. Прекратяването на критичен за системата процес може да накара вашата машина да се държи необичайно. Ако все пак успеете да го направите, уверете се, че рестартирате системата си веднъж, за да възстановите нормалното й изпълнение.
Добре, сега, след като покрихме някои основания с командите на терминала, нека поговорим за лесен начин за извършване на промени/добавяне на съдържание към файл. Всички използваме текстови редактори като Visual Studio Code или Atom, но тъй като целта на тази поредица е да ви накара да се чувствате комфортно и уютно с терминала, защо да не проучите основен редактор в самия терминал?
нано команда
Nano (повярвайте ми) означава Nano's ГОДИНАther редактор и това е безплатен, лек редактор с отворен код, който ви позволява да редактирате файлове в терминала, е естествен текстов редактор като среда с обичайните команди, с които сте запознати.
За да извикате nano/отворете файл в nano, въведете командата в следния синтаксис:
nano ИМЕ НА ФАЙЛ
Ако файлът съществува, nano ще го отвори и в случай, че не го направи, ще създаде нов файл с това име и ще го отвори. Редакторът сам по себе си е доста минимален и за разлика от по-големия си (и мразен) брат Vim/Vi не ви подлудява с известните трудни команди. За да навигирате във файла, използвате обичайните клавиши със стрелки. За да премахнете съдържание, все още използвате клавиша delete/backspace, а за да управлявате клипборда си, използвате познатите Ctrl+C, Ctrl+V и т.н.

Редакторът излага най-използваните операции като излизане от редактора вместо вас в долната половина на екрана. Преди да излезете с помощта на Ctrl+X, ще бъдете подканени да запазите направените промени. Разбира се, Vim съществува по-дълго, но според личното ми мнение това не е нищо повече от пропуск към хипи културата. Най-много, което можете да извлечете от това, че сте професионалист във Vim, би било да се хвалите и то само свършва там. Няма абсолютно никаква причина човек да губи ценното си време, за да научи как да използва Vim. Като се има предвид, че най-накрая стигнахме до края на част 2.
Linux команди за междинни потребители: Резюме
В част 2 от серията Linux Hands On изградихме върху основата, която положихме Част 1. Обработихме файловете и ги манипулирахме. Научихме и една изцяло нова концепция, наречена процеси и как да ги убием. И ние приключихме тази част с преглед на текстовия редактор Nano. Това би било всичко за тази седмица. Докато се върнем следващата седмица с част 3, уверете се, че сте си дали достатъчно време да играете с командата, споделена в тази публикация. Не се претоварвайте от броя на командите, необходимо е много време, докато тези неща се превърнат в мускулна памет. Докато това се случи, практическият опит е вашият най-добър приятел.
Манас Чаудхари
Благодаря ви за тези серии за Linux. Преминах през това напълно и го намерих за наистина полезен. Особено видеоклипове. Понякога е трудно да се следва статията, затова изтеглих видеото и го науча. Сега чувствам, че познавам доста Linux, за да започна да правя нещо в него. Благодаря ви за тези публикации много ми помогнаха.