
Как да започна…? Добре, ще опитам така:
Поради големият интерес или по-скоро, поради големият страх от конзолата/терминала в Линукс, реших да напиша малко разяснения или въведение за читателите и бъдещи фенове, в това как да използват най-мощното средство в Линукс.

Но първо малко „бла-бла“ приказки, както винаги…
Историята – тип „Имало едно време…“
Bash или съкратеното от Bourne Again Shell е команден интерпретатор, използван за редица операции изпълнявани в конзолен режим или иначе казано в режим без графична среда. В системите, които са UNIX или Linux-базирани, командният интерпретатор изпълнява функцията на „преводач“ между потребителя и ядрото на операционната система, както и за много други неща. Един от първите такива интерпретатори е бил Bourne shell (sh), който се използва и до днес (ще покажа примерчета по-късно). Друг широко разпространен интерпретатор е C shell (csh) и т.н.
Да пристъпим към съществото на приказката, но преди това няколко уточнения… По-надолу в статията ще използвам думата shell (шел за по-бързо) за „обвивката“ на потребителите. Има два, а при някои системи и по няколко вида shell-ове – потребителски и root shell(root – това е най-пълноправният потребител в системата). Тези шелове имат специфични обозначения, като например потребителският шел изглежда така “ ventsi@debian:~$ “ (завършва с $), а root шела така – „root@debian:~#“ ( # накрая).
Всичко в Линукс е или файл или процес. Процеса е извикана програма/код, която се стартира с определен PID (идентификационно номерче). Файл е колекция или сбор от данни, които са написани от потребител използващ някакъв текстов редактор, компилатор и прочее. Всичко това се разпределя в директории, които съдържат информация за нещата в тях.
Цялата идея на горният абзац е да покаже, че в *nix(всичко, де що шава под Linux, Unix и други, ще съкращавам *nix) базираните системи използват така наречената „дървовидна структура“, т.е. всичко е на определени нива (директории и поддиректории, както е при DOS).
Отплеснах се малко от същината на статията, та затова ще започна направо с
Практиката.
Когато един потребител отвори дадено приложение, той просто извиква написан код, който се изпълнява посредством изпратена команда към командният интерпретатор и т.н.
Както казах по-горе, всичко е подредено в „дървовидна структура“.
Нека да започнем с едно примерче. Например искаме да видим какво съдържа текущата директория, посредством конзолен терминал:
Командата е ls (идващо от английското „list“ ).

На картинката се вижда резултата. Както казах по-нагоре, всяка команда е задачка за операционната система, която е предварително дефинирана в различни файлчета или пакети (можем да ги редактираме, защото са OpenSource в превод „Отворен Код“). Когато напишем ls, ние извикваме скрипт/код с предварително зададени възможни опции (буквичките „lsa“ след “ – „). Всяка команда си има така наречените „man pages“ (по-късно ще разкажа и за тях), чрез които можем да разберем повече за дадена команда, нейните опции, създатели и прочее.
В случая ls -lsa казваме на ls командата, да върне всички файлове, подредени в йерархия, като първо са директориите, след това файловете и т.н. Повече можете да прочетете на вашата ситема след като изпълните man ls (отваря manual pages за дадена команда – излизането от man става с натискане на клавиш Q).
Върнатият резултат от командата е големина на файл, битове (дали е файл, кой може да го достъпва/права и други…), собственик, дата на създаване, час и име на файл с разширението му.
Както виждате има две директории (drwxr-xr-x, щом започва с d в първият символ, това значи, че е директория). Едната с име “ . “ е текущата директория. Другата с име “ .. “ е предишната в йерархията/дървовидната структура.
За да влезем в дадена директория с конзолата, правим така cd и името на директорията или пътят до нея (виж на картинката).

За да се върнем назад, т.е. в предната директория правим така cd .. (виж снимката)

Както се вижда на картинката, върнахме се от директория /home/ventsi/Desktop/nixCommands в предната/по-горната в йерархията, а в нашият случай това е /home/ventsi/Desktop .
Това до навигацията по директориите, останалото се учи в практиката, когато потрябва нещо по-сложно, например:
cd ~/Desktop/ && ls -lsah |grep nix*
grep е приложение, което познава/търси даден текст или иначе казано нещо като много мощен филтър и не само (повече в описанието му – man grep).
Сега нека създадем малко файлчета в тази директория и да ги поманипулираме, какво ще кажете?
Създаване на файлче:
touch filename (това ще създаде файл с име filename), нека му зададем и разширение, просто за хубост touch filename.txt и да видим какво има в него посредством cat filename.txt
(виж снимката)
cat filename.txt не върна нищо, което значи, че файлчето е празно – разбира се, нали не сме го напълнили с нито един байт…
Нека вкараме малко текст в този файл:
echo „Това тук е малко текст в този файл.“ > filename.txt
Ето го и резултата на снимка:

Това е просто малко примерче на работа с файлове. Сега нека да „хванем“ няколко думички в даден файл:
(забележка: grep по подразбиране връща реда на който се намира даденият търсен символен низ…)
Както забелязвате на картинката – grep върна само един ред, защото толкова има в даденият файл, който съдържа думата „Това“, а на следващият опит не върна нищо, защото не намира думата „това“.
Инструменти, които улесняват нашата работа с Shell-a.
Тук темата е малко по-обширна и много мога да пиша, но ще направя кратко въведение и описание на инструменти, които помагат за приятна и удобна работа с конзолата.
Файлов редактор vi/Vim
Vim е подобрената версия на vi – файлови редактори, които са мощни, поддържащи голям набор от екстри и улеснения за потребителите.
(снимка на vim и нашето файлче от по-горе)
Файлов мениджър, който съдържа редица команди, които можем да напишем и на ръка, но определено е по-лесно да използваме интерфейс.
(снимка от mc )
Да, наистина съществува и такова животно, което се справя с повечето добре направени сайтове. Е, разбира се, не може да подкара флаш, поне аз не знам метод, ако е възможна такава гимнастика, но се съмнявам дълбоко.
Браузърчето е удобно, ако на отдалечен сървър няма монитор и се достъпва от разстояние – за конзолата е страхотно направено, но си е hardcore, определено.
(снимка от Lynx отворил google.bg)
(снимка от Lynx отворил laptop.bg)
Заключение.
Благодаря, че отделихте време да прочетете тази статия.
Надявам се да Ви е било интересно и полезно, това което написах по-горе. Не мога да обхвана всички неща, които може да ни предложи един shell като bash, затова написах фундаментални и много основни действия, които можем да извършим с всеки един шел. Скоро ще се разгърна в по-големи детайли и ще стане забавно. За ориентиране и книжки, които мога да предложа – повечето са безплатни, други не, но при женалие всичко може да се уреди.
За въпроси винаги съм отворен да отговоря и да помогна във форума на адрес.
За повече информация – скоро с разгърнати темички.
Венцислав Чочев
Още по темата:
- LINUX-BG : „Последната версия на Ubuntu 9.10 (Karmic Koala) вече е достъпна“
Последната версия на Ubuntu 9.10 (Karmic Koala) вече е достъпна. Освен не малкият брой подобрения, както за десктоп, така и за сървъра, това издание включва... - Portable програми за Linux
Portable програмите не се нуждаят от инсталация, могат директно да бъдат стартирани от USB флаш устройство например. PortableApps.com е известен сайт с приложения за Windows,... - Евтините Linux лаптопи ще ударят по OLPC
С падането на цените на компонентите комерсиалните Linux лаптопи могат да затруднят усилията на инициативата „Лаптоп за всяко дете“ (OLPC), целяща да достави евтини компютри...









Простете, че съм невежа, но как да пусна от конзолата lynx и cm?