Linux е операционна система с отворен код, базирана на Linux kernel. Тя е от семейството на Unix, a дистрибуциите й са многобройни, с насоченост към различни потребителски нужди. Едни от най-популярните включват Debian, Ubuntu, Fedora и Red Hat. Достъпността на Linux прави операционната система предпочитано решение. Нейни сървърни дистрибуции са най-често използвани и за управление на виртуален частен сървър (VPS).
Работата с Linux, се извършва чрез програмата “Shell”, която предоставя интерфейс за комуникация с операционната система. През нея могат да се изпълняват от елементарни команди до по-сложен програмен код. Командите се подават през два вида интерфейс - графичен (GUI) или през команден ред (CLI). Вторият, въпреки че може да изглежда по-сложен и неинтуитивен, е по-бърз и с повече възможности за контрол на заявките.
За да работите с Linux по-ефективно и да се възползвате от всички функционалности на средата, е препоръчително да се запознаете с начина на комуникация с операционната система и основните команди.
Комуникация с Linux и команди
Командите могат да се разглеждат като текстови фрагменти за комуникация с операционната система. За да се въведат, е необходимо отваряне на терминал.
Стъпките за достигане до него могат да се различават при различните Linux дистрибуции, но в общия случай приложението Terminal се намира в секцията Utilities.
Въвежда се команда на командния ред, а след натискане на бутон “Enter”, програмата Shell прочита информацията. При спазване на точен синтаксис, заявката се изпълнява. При грешка, неточно подадена команда или липса на права, получавате съответното съобщение.
Какво всъщност представлява командата?
Тя има няколко основни компонента - име, опции и параметри. Основен синтаксис:
Име-на-команда [опция(и)/ флаг] [параметър(и)]
Име-на-команда | Задачата, която искате да се изпълни. |
опция(и)/ флаг | Условие за промяна при изпълнение на командата. |
параметър(и) | Важна информация, която е необходима за изпълнение на командата. |
Изключително важно е да се спазват интервали, главни букви и последователност от символи.
Основните 35 команди сме разпределили в няколко категории, които не са строго дефинирани и служат за удобство на читателя.
Информационни команди
Нека започнем с информационните команди.
Командата uname или unix name
Командата uname или unix name извежда подробна информация за текущата Linux система. Това включва:
- име на машината;
- операционната система:
- версия на ядрото.
За изпълнение на тази команда, е достатъчно да се въведе uname в CLI.
Базов синтаксис:
uname [опция]
Опциите, които я съпровождат са:
Опция | Действие |
-а | Извежда цялата системна информация. |
-s | Извежда версията на ядрото. |
-n | Извежда името на сървъра. |
Командата date
Тази команда може да зададе системни дата и час или да изведе информация за същото, в различни формати. С date се изчисляват и дати в минал или бъдещ период от време.
Базов синтаксис:
date [опция] [+формат]
date без параметри извежда текущия ден от седмицата, месец, година, час и часова зона.
Командата ping
Това е една от най-използваните команди в Linux. Чрез нея може да се провери дали дадена мрежа или сървър е достъпен. Използва се и за установяване или отстраняване на проблеми със свързаността.
Базов синтаксис:
ping [опция] [име-на-хост или IP адрес]
Ако желаете да проверите дали можете да се свържете с нашия сайт и да измерите времето за реакция, въведете:
ping delta.bg
Аналогична проверка може да се извърши и с други сървъри.
Системни команди
На следващо място - ето и по-значими системни команди, които е важно да знаете.
Командата hostname
Командата hostname извежда уникалното име на системата в конкретна мрежа. Може да се изпълни с или без опция.
Базов синтаксис:
hostname [опция]
Командата разполага с богат набор от флагове
Флаг | Действие |
-a | Извежда псевдоним на хоста. |
-A | Извежда всички адреси на мрежовите интерфейси или FQDNs(Fully Qualified Domain Name). |
-i | Извежда IP адреса на машината. |
Ако желаете да проверите IP адреса на своя компютър, въведете:
hostname -i
Командата top
Командата top в Linux връща всички работещи процеси в реално време на текущата система. Върнатият резултат е в табличен вид и съдържа полезна информация за процесите и ресурсите, които те използват.
Командата df
Командата df ( абревиатура на disk free - свободен диск) се използва за получаване на информация относно колко пространство е заето в системата. Стойността се връща в Килобайти (KB).
Базов синтаксис:
df [опция]
Има голям набор от опции, които помагат върнатата информация да е по-специфична, представена по разбираем начин и дори сортирана.
Командата jobs
Тази команда показва всички изпълнявани процеси, заедно с техните състояния. Те могат да са работещи на преден и заден план. Ако няма активни процеси, не се връща никакъв резултат.
Базов синтаксис:
jobs [опция] jobID
В Linux една “работа”(job) може да представлява процес или група от процеси. За да проверите състоянието на тези процеси, е необходимо да въведете командатата jobs в CLI.
Някои от опциите са:
Опция | Действие |
-l | Връща идентификатори на процесите. |
-n | Изброява задачи, чиито статуси са се променили след последното известие. |
Командата ps
Linux предоставя помощна програма, за наблюдение на всички процеси. Тази команда връща списък с настоящите активни процеси, заедно с допълнителна информация. Процесите се дефинират с уникален идентификационен номер PID.
Базов синтаксис:
ps [опция]
Командата kill
Тази команда има много по-задълбочена функционалност от просто да “убие” процес. Тя изпраща сигнал към даден процес. А сигналите са цели 64, под формата на опции и от тях зависи как точно да се спре процеса.
За прилагане на kill командата е необходимо да знаете PID на избрания процес.
Базов синтаксис:
kill [сигнал] pid
Команди за права и достъп
Следват командите, чред които се регламентират права и достъп:
Командата sudo
Името на командата sudo произлиза от съкращение “super user do”. Както се досещате от името ѝ, тя позволява изпълнение на задачи, за които е необходим административен или root достъп. Едва ли е изненада, че sudo е сред най-популярните Linux команди.
При използването ѝ, системата изисква потребителят да се удостовери с парола. По подразбиране сесията, в която всеки root потребител може да изпълнява sudo команди е с продължителност 15 минути.
Базов синтаксис:
sudo (команда)
sudo се използва като префикс на други команди, които изискват административен достъп. Аналог на тази функция е “Изпълни като администратор” в Windows.
Командата chmod
Тази команда се отнася за файлове и директории и по-конкретно промяна в разрешенията им. Всеки файл/директория има индивидуални разрешения за четене, писане и изпълнение.
Базов синтаксис:
chmod [опция][разрешение] име-на-файл
Командата поддържа много опции.
Командата chown
Различните групи с потребители имат и различни нива на достъп до файлове и директории. С помощта на chown можете да промените собствеността на файл, директория или символна връзка за определено потребителско име.
Базов синтаксис:
chown [опция] [собственик] [:група] файл/файлове
Ако решим за собственик на файл file.txt да направим user1, то командата ще бъде структурирана по следния начин:
chown user1 file.txt
Помощни команди
А ето и основните помощни команди, които е добре да познавате:
Командата grep
Това е още една много популярна Linux команда. Чрез нея можете да търсите последователност от символи в конкретен файл.
При съвпадение, като резултат, се извеждат всички редове, които съдържат търсения низ.
Базов синтаксис:
grep [опция] символен-низ [файлове]
Ако целта е да се намери символния низ “hosting” във file.txt, то командата трябва да бъде:
grep hosting file.txt
Върнатият резултат ще представлява всички редове, които съдържат “hosting”.
Командата поддържа голям набор от опции.
Командата head
Командата head дава възможност да видите първите десет реда от конкретен текст във файл.
Базов синтаксис:
head [опция] файл
С добавянето на опция можете да промените броя на показаните редове.
Командата tail
Командата tail може да се разглежда като обратна на head. Тя визуализира последните десет реда конкретен текст във файл.
Тази команда дава възможност на потребителите да проверяват дали в даден файл има нови данни.
Базов синтаксис:
tail [опция] файл
Командата diff
Командата diff е съкращение от difference. При нейното изпълнение се сравнява съдържанието на файл в два масива ред по ред. След анализа, се визуализират частите, при които няма съвпадение.
diff е предпочитана команда сред програмистите, които желаят да променят фрагмент от програмен код, без да го пренаписват изцяло.
Базов синтаксис:
diff [опция] файл1 файл2
Опциите, които могат да се добавят, биха променили изхода от сравняване, според допълнителни критерии. Пример за това е
-i опция, която прави командата diff нечувствителна към малки и големи букви.
Командата history
Ако използваме често голям набор от команди, то history би била много полезна. Тя извежда вече изпълнени команди, през командния ред. Така потребителите ще спестят време.
Базов синтаксис:
history [опция]
И тази команда поддържа голям набор от опции. Може да бъде използвана в комбинация с grep.
Командата man
Командите в Linux са толкова много, че понякога имаме нужда от помощ. man се грижи за извеждане на ръководство за всички команди, помощни програми и техните опции, които можете да стартирате в терминала.
С помощта на man може да достъпите описание на командата, приложими опции, флагове, примери и още полезна информация.
Базов синтаксис:
man [име-на-команда]
Команди за работа с файлове и директории
А ето и основните команди в Linux, които ще са Ви нужни за работа с файлове и директории:
Командата pwd
Командата връща пътя на текущата работна директория. С въвеждането на pwd ще бъдат изброени всички директории от начална до текущата, като за разделител се използва наклонена черта ( / ). С този символ започва и целият път.
Базов синтаксис:
pwd [флаг]
Пример:
/home/folder
Към тази команда се използват два флага, които дефинират вида на върнатия път.
Командата cd
Използва се, за преминаване през директории в Linux.
При въвеждане на командата cd без опция, се навигира към началната потребителска папка.
Базов синтаксис:
cd [директория]
Известна употреба на тази операция е с наклонена черта ( / ).
cd /
Само потребители със sudo права могат да изпълняват командата така, защото пренасочването е към основната директория на операционната система.
Навигиране
Ако сте в /home/music и желаете да достъпите поддиректория на music, е достатъчно да въведете:
cd classic
В случай, че искате да достъпите директория, различна от текущата, е необходимо да въведете целия път до там:
cd home/images/folder/folder1
Командата ls
Това е една много полезна и използвана команда. Чрез нея могат да се видят файлове и директории в системата.
Базов синтаксис:
ls [опция] директория
Изпълнението на командата без флаг и посочена директория показва съдържанието на текущата такава, под формата на списък.
За да бъде изведено съдържанието на други директории, следва да въведете ls и желания път.
Пример
ls /home/Documents
ще върне списък със съдържанието на Documents
Някои от опциите са:
Опция | Действие |
-a | Показва и скрити файлове. |
-R | Показва всички файлове в поддиректориите. |
Командата cat
Наименованието на тази команда произлиза от понятието concatenate (съединявам/свързвам). Чрез нея може да се изведе, комбинира или запише съдържанието на файл.
Базов синтаксис:
cat [опция] име-на-файл.разширение
Ако файлът се намира в различна от текущата работна директория, е необходимо въвеждане на целия път до него.
cat има широко приложение, при работата с файлове.
Няколко полезни употреби:
Пълна команда | Действие |
cat > file.txt | Създава се нов файл с име “file” и разширение “txt”. |
cat file1.txt > file2.txt | Копира съдържанието на file1 във file2. |
cat file1.txt file2.txt > file3.txt | Обединява file1 и file2, като резултатът съхранява във file3. |
Командата cp
Тази команда се използва както за файлове, така и за директории. Тя служи за копиране на информация от едно място на друго.
Базов синтаксис:
cp [опция] [име-на-файл/файлове] директория
За да се копира един файл от текущата директория в друга, въведете cp, последвано от името на файла и целевата директория. Например:
cp file1.txt /home/user/files
За копиране на цяла директория, е необходима употребата на флаг -R
cp -R /home/user/files /home/user/files_backup
Командата wget
Често се налага изтеглянето на файлове от интернет. Това може да се случи и през конзола, с помощта на команда wget. Тя работи във фонов режим, без да възпрепятства други работещи процеси.
Командата wget извлича файлове чрез HTTP, HTTPS и FTP протоколи. Чрез нея могат да се осъществяват рекурсивни изтегляния (първо документа, а след това свързаните с него други документи). Така могат да се прехвърлят фрагменти от уеб страници, като се следва структурата на техните директории и връзки.
Базов синтаксис:
wget [опция] [url]
Например, за да изтеглите най-новата версия на WordPress, въведете следната команда:
wget https://wordpress.org/latest.zip
Командата zip
Тази команда се използва за компресиране на файлове или цели директории в ZIP формат. Това е практика при по-удобно трансфериране на големи файлове, както и за спестяване на дисково пространство.
Базов синтаксис:
zip [опция] име-на-архив файл-1 файл-2…файл-n
Например, ако желаете да компресирате файл с име doc.txt в myarchive.zip следва да въведете:
zip myarchive.zip doc.txt
Архивът ще бъде създаден в текущата директория.
С помощта на опциите могат да се извършват допълнителни операции върху архива, като да се обновят или премахнат файлове.
Командата unzip
След като със zip сме направили архив, е логично Linux да разполага и с обратната операция. За това служи unzip. Тази команда извлича компресираните файлове.
Базов синтаксис:
unzip [опция] име-на-архив.zip
Да вземем направеният архив myarchive.zip. Разархивирането му ще се извърши в активната директория, със следната команда:
unzip myarchive.zip
Командата tar
Командата tar архивира и разархивира множество файлове в TAR – общ формат на Linux, подобен на ZIP, но с опционална компресия.
Ето какъв е основният синтаксис:
tar [опция] [архив] [файл-или-директория]
Опция | Действие |
-cvf | Създаване на архив. |
-x | Извличане на файл. |
-u | Архивиране и добавяне към съществуващ архив. |
За създаване на TAR архив myarchive.tar в директория /home/files, е необходимо да въведете следното необходимата опция, последвана от името на архива и желаната директория.
tar -cvf myarchive.tar /home/files
Командата mv
Понятието, от което произлиза тази команда, е move (местя). Такова е и основното приложение на mv. Командата се използва за преместване на файлове и директории. Друга нейна функция е преименуване на файл или папка.
Базов синтаксис за преместване:
mv [опция] файл директория
Базов синтаксис за преименуване:
mv [опция] старо-име.разширение ново-име.разширение
Например ако желаете да преместите file.txt в директорията /home/Documents, въведете следното:
mv file.txt /home/Documents.
Командата mkdir
Командата позволява създаване на една или повече директории, както и правила за достъп към тях. За създаване на директории е необходимо потребителят, който го извършва, да има достатъчно права.
Базов синтаксис:
mkdir [опция] име-на-директория
Част от опциите и флаговете към тази команда са:
Опция/Флаг | Действие |
-v | Извежда съобщение за всяка създадена директория. |
-p | Създаване на родителски директории. |
-m | Задаване на права. |
Командата rmdir
Чрез тази команда завинаги се изтриват една или повече празни директории. За изтриването на директории е необходимо потребителят, който го извършва, да има достатъчно права.
Когато за изтриване са посочени директории, които съдържат файлове, процесът не може да бъде завършен.
Командата rm
Командата се използва за премахване на файлове и директории. Може да бъде изпълнена само от потребители с достатъчно права.
Трябва да се внимава, защото премахването на файловете не подлежи на отмяна.
Базов синтаксис:
rm [опция] име-на-файл
За премахване на повече от един файл следва да ги изредите в командния ред.
Пример
rm file1 file2 file3
Известни опции, които поддържа командата:
Опция | Действие |
-f | Позволява на системата да премахне файл, без предупреждение. |
-r | Рекурсивно изтриване. |
Командата touch
Тази стандартна команда е подобна на cat. Разликата с нея е ,че touch се използва за създаване на ПРАЗЕН файл.
Базов синтаксис:
touch [опция] име-на-файл
За да създадете повече от един празни файлове, следва да ги изредите в командния ред.
Пример
touch file1 file2 file3
За създаване на специфични файлове, в различна от работната директория, е необходимо да опишете целия път, името и разширението на файла:
touch /home/Documents/site.html
В този случай в директория /home/Documents се създава празен файл site.html
Командата locate
Командата се използва за намиране файлове по тяхното име. locate извършва бързо търсене в бази данни на системата.
Базов синтаксис:
locate [опция] шаблон-за-търсене
Използва се с богат набор от опции, които да помогнат за конкретизиране на търсенето. Една от най-известните е -i, като чрез нея се изключва чувствителността към големи и малки букви. Полезно е, когато не сте сигурни за точното име на търсения файл.
Командата find
Чрез find се търсят файлове и директории, за извършване на допълнителни операции с тях. С командата се преминава през файловата система, като търсенето може да се реализира по различни критерии.
Базов синтаксис:
find [директория-за-търсене] [израз] [опция]
Например, ако Ви е необходимо да потърсите файл, наречен file.txt в директорията docs и във всички нейни дъщерни папки, въведете в командния ред:
find /docs -name file.txt
Командата du
Командата du прави проверка на заетото пространство от даден файл или директория. Благодарение на нея, лесно може да се провери коя част от системата използва много дисково пространство.
Базов синтаксис:
du [опция] файл
Проверката се изпълнява, при въвеждане на път до директорията.
Командата поддържа редица опции, които са определящи за връщания резултат.
Командата compgen
Като бонус добавяме и командата compgen. Тя показва списък с всички команди, функции и други, които можете да изпълните.
Практични съвети и трикове
Ето още няколко съвета и трика, които можете да използвате в Linux:
- Стрелка нагоре и надолу се използват за лесно преминаване на вече написани команди
- Командата clear почиства екрана на терминала.
- Натиснете бутона Tab за автоматично попълване след въвеждане на команда с аргумент.
- Използвайте Ctrl + C, за да прекратите изпълнявана команда.
- Използвайте Ctrl + A , за да се придвижите до началото на реда.
- Натиснете Ctrl + E, за да стигнете до края на реда.
Linux не спира да набира популярност, превръщайки се в предпочитана операционна система сред обикновени потребители и системни администратори. Тя е гъвкава, развиваща се и с висока производителност.