Debian

The ULTIMATE OS

Get Adobe Flash player

Потребителски рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

BASH накратко и чести команди

Тази прекрасна абревиатура прозилизаща от първите букви на BornAgainSHel е теминален емулатор за Linux.

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

-Командите са "универсални" за всички дистрибуции на Линукс и е най-лесно когато се обяснява нещо да се покаже защо и как се прави съответното нещо през BASH

-Могат да се правят и изпълняват сложни команди, комбиниращи много действия и операции бързо и "лесно". Лесно е защото понякога е наистина лесно, но понякога не чaк толкова.

Е в тази статия ще разгледам основните команди за работа с файлове, папки и др. при работата с BASH. Ще се опитам да опиша и разясня в яколко примера как се правят комбинации от командите. И така да започваме.

Какво показват знаците и буквите $, # и т.н., който се изписват в лявата страна и се очаква команда.

Ще разгледаме

piuser@pi$

От  този текст може да видим няколко неща точно в редът в който ги описвам:

-в системата сме влезнали с потребителско име (потребител) "piuser"

-намираме се на/в система с име pi

-$ означава, че сме  обикновен потребител а не root (супер потребителят ако щете аналогът на Administrator в Windows)

Това е. По принцип имаме няколко промпта. Ето това са основните и кой какво символизира и означава:

$ - когато пуснем конзолата и видим този знак, означава че сме влезнали в системата с обикновен потребител, който няма супер права (не е root)

# - когато виждаме този знам, означава, че сме/изпълняваме команди като супер потребител или root. За да стамен root трябва или да сме се влезнали в системата като root със съответната парола, да сме въвели командата "super su", при положение, че съответният потребител има право да е супер потребител или сме използвали su root, при положение, че знаем паролата на root потребителят .

> - този промпт/символ основно се ползва, когато сме в трета/друга конзола. Такава например е тази на MySQL сървърът

 

А сега малко от основните команди и как се ползват те.

pwd - команда, която показва в коя директория се намираме. Произлиза от Print Working Directory

cp - команда за копиране (от copy очевидно). Работи се с нея по сленият начин

$ cp /originalna/cel/file.xxyy /kadeto/da/se/kopira/novoime.yyxx

Междо другото в Linux директориите (папките) се разделят с дясно наклонена черта. Тук /originalna/cel/file.xxx e местонаходждението на основният фаил а /kadeto/da/se/kopira/novoime.xxx е дсетинацията, в която искаме да копираме съответният фаил.
Тук трябва да спомена и още 2 важни неща:
-когато копираме новият файл може да не бъде със същото име а с различно. Ако забележите оригиналният файл се казва file.xxyy, но ще му бъде направено копие като novoime.yyxx
-в Линукс, файловете не е задължително да имат някакво разширение или ако имат такова да бъде от 3 символа. Един фаил с инструкция да кажем може да бъде както ReadMe.txt така и ReadmMe или ReadMe.important

mv - команда за преместване на фаил. Работи се с нея както и с , само с разликата, че след изпълнение, оригиналният фаил се изтрива. Пример

ls - показва съдърцанието на текущата папка. ls както и много други команди в Linux поддържат допълнителни атрибути, които можете да комбинирате. Какво имам предвид. Ако напишете:

$ ls - ще ви се покаже текущото съдържание на папката, в която се намирате

$ ls -a - ще покаже текущото съдържание + скритите папки и файлове и техните атрибути ( по подразбиране всички файлове и папки започващи с "." са скрити)

$ ls -l - ще покаже съдържанието на папката във вид LIST

Можете да правите и комбинация, например:

$ ls -l -a - ще покаже съдържанието на папката + скритите файлове, техните атрибути и всичко това във формат на лист

cd - команда за избиране на директория. Пример:
$ cd /home/pi ще отидем в папка /home/pi

mkdir - създаване на папка
$ mkdir /var/www/pi - ще създаде папка pi в директория /var/www

Командата отгоре работи, само когато /var/www/ съществува. Когато това не е така и искаме да се създаде /var/www/pi , със целият път пишем:

$ mkdir -p /var/www/pi

rm - триене (от remove) Примери:

$ rm /var/www/pi/123 - ще изтрие файл 123
$ rm -R /var/www/pi ще изтрие папката pi и цялото нейно съдържание (-R - рекурсивно)

$ du -s - показва големината на определена от вас папка. Пример:

$ du -sh /home - ще покаже големината на папка /home

 

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

$ ./ ime.na.skript - служи за изпълнение на скрипт от директорията, в която се намираме в момента

Повече информация и всички команди за bash можете да намерите на следният адрес: http://www.ss64.com/bash/

 

P.S.

Понеже понякога не е много удобно да се работи дълго на BASH можете да си инсталирате някой файлове менъджър като Midnight Comander. Той наподобява NortonCommander от "време оно", но спестява доста време.
За инсталацията му просто изпълнете :
# apt-get install mc
За да го пуснете след инсталация просто изпълнете:
$ mc

P.S.2 Ето един пример, за дълга команда, която спестява много работа "на ръка"

# grep -lr --include=*.php "eval(base64_decode" /var/www

В частност тази команда "преравя" всеки файл с разширение PHP, намиращ се в директория /var/www отваря го и показва в промпта, къде и в кой файл има съдържание eval(base64_decode

Друга подобна команда е :

# find . \( -name "*.php" \) -exec grep -Hn "[\t]*eval(base64_decode(.*));" {} \; -exec sed -i 's/[\t]*eval(base64_decode(.*));//g' {} \;

Тази команда/комбинация пък изпълнява следното. Проверява в целият компютър за файлове с име PHP, проверява всеки от тях за  съдържание "eval(base64_decode", ако намери такова го маха и запаметява файлът. А сега си представете, че трябва да намерите "на ръка" всеки файл, да го отворите, да го прегледате и ако съдържа "eval(base64_decode", да намерите къде точно се намира, да изтриете стойността и да запаметите файлът. Да сама по себе си командата изглежда "сложна" и наистина е такава. Не си мислете, че уцелих точният синтаксис от първият път, но определено в един прекрасен момента се свиква и нещата започват да ти идват " от вътре".

Търсене

Точно време

Кой е на линия

В момента има 100  гости и няма потребители и в сайта