Skip to content

Linux основе – рад у командној линији (Bash шел)

Командни промпт:
sysadmin@localhost:~$

Корисничко име:
sysadmin@localhost:~$

Име система:
sysadmin@localhost:~$

Тренутни директоријум:
sysadmin@localhost:~$ (user’s home directory /home/sysadmin)

Команде

Узећемо као пример команду ls која исписује садржај тренутног директоријума:
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

Команде могу да имају опције и аргументе:
command [options] [arguments]

На пример, аргумент команде ls може бити директоријум чији садржај желимо да видимо:
sysadmin@localhost:~$ ls /etc/ppp
ip-down.d ip-up.d

Команда ls може да има и више аргумената:
sysadmin@localhost:~$ ls /etc/ppp /etc/ssh
/etc/ppp:
ip-down.d ip-up.d
/etc/ssh:
moduli ssh_host_dsa_key.pub ssh_host_rsa_key sshd_config
ssh_config ssh_host_ecdsa_key ssh_host_rsa_key.pub ssh_host_dsa_key
ssh_host_ecdsa_key.pub ssh_import_id

Опција команде ls може да излиста садржај директоријума са више информација:
sysadmin@localhost:~$ ls -l
total 32
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Desktop
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Documents
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Downloads
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Music
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Pictures
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Public
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Templates
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Videos

Нека друга опција команде ls може да прикаже садржај директоријума обрнутим редоследом (од Z до A):
sysadmin@localhost:~$ ls -r
Videos Templates Public Pictures Music Downloads Documents Desktop

Опције се могу и комбиновати:
sysadmin@localhost:~$ ls -lr
total 32
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 20:13 Videos
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 20:13 Templates
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 20:13 Public
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 20:13 Pictures
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 20:13 Music
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 20:13 Downloads
drwxr-xr-x 4 sysadmin sysadmin 4096 Oct 31 20:13 Documents
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 20:13 Desktop

На крају, опције и аргументи се могу комбиновати:
sysadmin@localhost:~$ ls -l /usr/bin/perl
-rwxr-xr-x 2 root root 10376 Feb 4 2018 /usr/bin/perl

Све извршене команде чувају се у “историји” и могу се излистати једна по једна притиском на тастер , или исписати све извршавањем команде history.

Променљиве

Као и у програмским језицима, у шелу могу да се користе променљиве. Локалне (шел) променљиве користе се само у активном шелу. Задају се у формату variable=value и позивају са $variable. На пример:
sysadmin@localhost:~$ direktorijum=/etc/ppp
sysadmin@localhost:~$ ls $direktorijum
ip-down.d ip-up.d

Постоје и глобалне променљиве (променљиве окружења) које се користе на нивоу оперативног система, попут PATH, HOME итд. Списак глобалних променљивих добија се извршавањем команде env. Ако желите да експортујете локалну променљиву на глобални ниво унесите команду у формату export variable. На пример:
sysadmin@localhost:~$ export direktorijum=/etc/ppp

Једна од битних глобалних променљивих је променљива PATH. У њој се налази списак директоријума који се претражују приликом уноса команди. Ако се команда налази у директоријуму који није на том списку онда неће бити пронађена – јавиће се грешка command not found. Уносом команде echo $PATH можемо видети комплетан списак директоријума раздвојених двотачком. Ако желите да додате неки директоријум у променљуву PATH, нпр. /usr/bin/custom, па потом проверите да ли је додат, унесите следећу команду:
sysadmin@localhost:~$ PATH=/usr/bin/custom:$PATH
sysadmin@localhost:~$ echo $PATH
/usr/bin/custom:/home/sysadmin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Функције

Bash подржава и рад са функцијама у формату:
function_name ()
{
commands
}

На пример:

my_report () {
    ls Documents
    date
    echo "Document directory report"
}

Позивом ове функције исписаће се следеће:

radlovacki@MAINFRAME:/mnt/c/Users/velim$ my_report
 cache                      GitHub                'My Music'       'Scanned Documents'             'Visual Studio 2019'
'Custom Office Templates'   IISExpress            'My Pictures'    'Sound recordings'              'Visual Studio 2022'
 Default.rdp                JDownloader           'My Videos'      'SQL Server Management Studio'   WindowsPowerShell
 desktop.ini               'My Data Sources'      'My Web Sites'    ViberDownloads                  Zoom
 Epubsoft                  'My Digital Editions'  'Outlook Files'  'Visual Studio 2017'
Mon 07 Nov 2022 08:43:38 PM CET
Document directory report

Специјални карактери

Неки од важних специјалних карактера су:
'израз' апострофи спречавају извршавање свих карактера и команди у изразу
"израз" наводници спречавају извршавање карактера * ? [ ] у изразу, али дозвољавају извршавање команди у изразу
\израз спречава извршавање првог карактера у извразу
`израз` дозвољава извршавање команде унутар команде, нпр. echo Danas je `date`
command1; command2; command3 дозвољава извршавање команди редом како су написане
command1 && command2 ако је прва команда успешна онда ће се извршити и друга, а ако није онда неће (логичко И)
command1 || command2 ако је прва команда неуспешна онда ће се извршити друга (логичко ИЛИ)