Упатство:Команди

Од Сподели wiki
Прејди на: содржини, барај

Мал вовед во командната линија

Командната линија е најдиректниот начин за праќање наредби на вашата машина. Ако користите GNU/Linux командна линија, наскоро ќе видите дека е многу помоќна и поспособна од другите командни линии што можеби сте ги користеле. Причина за ова е тоа што со неа имате директен пристап, не само до сите Х (графички) апликации, туку и до илјадници услуги во конзолскиот режим на работа (како спротивен на графичкиот режим) кои што немаат графички еквиваленти или мноштвото на опции и комбинации на кои е многу тешко да им се пристапи со копчиња или менија.

Но, признаваме дека е потребна мала помош за да почнете. Прва работа што треба да ја направите е да го стартувате терминалниот емулатор. Било да сте во GNOME или во KDE менијата, ќе го најдете во Terminal. Потоа одберете го оној што го сакате, на пример Terminal, Konsole или Xterm. Исто така имате и икона во облик на монитор која е кратенка за стартување на терминалот.

Кога го стартувате овој терминал, тогаш всушност се наоѓате во shell (школка). Ова е името на програмата со која ќе комуницирате. Ќе се најдете пред командната линија:

 [queen@localhost ~]$

Ова значи дека вашето име е queen и дека вашата машина се вика localhost (во случај ако вашата машина не е дел од некоја мрежа). Обично по промптот се наоѓа празно место каде можете да пишувате што сакате. Забележете дека ако сте логирани како root (администратор), тогаш карактерот $ во промтот ќе се претвори во #. (Ова е така само преддефинирано бидејќи во GNU/Linux се може да се постави како сакате). За да станете root напишете su (substitute user) откако ќе го стартувате shell.

- внесете ја лозинката за root; нема да ја видите на мониторот.

 [queen@localhost ~]$ su 
 Password:

- со exit ќе се вратите како нормален корисник.

 [root@localhost queen] # exit 
 [queen@localhost] ~ $

Секаде во упатството промтот ќе биде симболички претставен со $, кога сте како обичен корисник и кога сте root. Ќе ви биде кажано кога е потребно да станете root за да дадете некоја команда, па ве молиме запаметете го “su”. Како и да е, кога ќе биде присутен карактерот # на почетокот на линијата или кодот, тоа ќе претставува коментар.

Кога го стартувате shell за прв пат, обично се наоѓате во home директориумот. За да се прикаже директориумот во кој сте моментално напишете pwd (Print Working Directory):

 $ pwd /home/queen

Сега ќе погледнеме некои основни команди и наскоро ќе видите дека нема да можете да живеете без нив!

Основни команди за преглед на датотечниот систем

cd: (Change Directory) Смени го директориумот

Командата cd е иста како во DOS, само со неколку екстра функции. Го прави она што го кажува неговиот акроним, го менува работниот директориум. Можете да користите . и .. кои значат сегашен и матичен директориум. Ако напишете само cd тоа ќе ве врати во home директориумот. Ако напишете cd - тоа ќе ве врати во директориумот во кој сте биле последен пат. Ако напишете cd .. тоа ќе ве врати еден директориум наназад. И на крај, можете да го означите питеровиот home директориум со пишување на cd ~peter ( само ~ значи да ве врати во вашиот home). Треба да знаете дека како обичен корисник немате право да одите во home директориум на друг корисник (освен ако тој не ви дал такви права или ако тоа е преддефинирана конфигурација на системот), освен ако сте root. Ајде да станеме root и да повежбаме малку:

  $ pwd
  /root

  $ cd /usr/share/doc/HOWTO

  $ pwd
  /usr/share/doc/HOWTO

  $ cd ../FAQ-Linux

  $ pwd
  /usr/share/doc/FAQ-Linux

  $ cd ../../../lib

  $ pwd
  /usr/lib

  $ cd ~peter

  $ pwd
  /home/peter

  $ cd
  $ pwd
  /root

Сега вратете се назад за да станете обичен корисник.

cat: Прикажување на содржината на една или повеќе датотеки

Нема којзнае што да се каже - оваа команда го прави токму тоа: ја прикажува содржината на една или повеќе датотеки на стандарден излез, обично на екранот:

  $ cat /etc/fstab

/dev/hda5 / ext2 defaults 1 1

/dev/hda6 /home ext2 defaults 1 2

/dev/hda7 swap swap defaults 0 0

/dev/hda8 /usr ext2 defaults 1 2

/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0

none /proc proc defaults 0 0

none /dev/pts devpts mode=0620 0 0

/dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
 $ cd /etc
 $ cat modules.conf shells
alias parport_lowlevel parport_pc

pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq

#pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start

#alias char-major-14 sound

alias sound esssolo1

keep

/bin/zsh

/bin/bash

/bin/sh

/bin/tcsh

/bin/csh

/bin/ash

/bin/bsh

/usr/bin/zsh

less: Пејџер

Ова име е игра на зборови поврзана со првиот пејџер што се користел под UNIX и се викал more. Пејџер е програма која му овозможува на корисникот да гледа долги датотека страница по страница (поточно екран по екран). Овде повеќе зборуваме за less (помалку) отколку за more (повеќе) бидејќи неговата употреба е многу повеќе интуитивна. Треба да ја користите наредбата less ако сакате да видите големи датотеки кои не ги собира на екранот. На пример:

 less /etc/termcap

За да шетате по датотеката користете ги стрелките за горе и долу. Користете го q за да излезете. Но, less може да направи многу повеќе од тоа. Всушност само напишете h за помош и погледнете. Како и да е, целта на овој оддел е да ви овозможи да читате долги датотеки што значи дека целта е веќе постигната . :-)

ls: Прелистување на датотеки

ls (LiSt) командата е еквивалентна на dir командата во DOS (dir работи и во Линукс), но може да прави многу, многу повеќе. Всушност ова е поради тоа што и датотеките можат да прават многу повеќе. Командната синтакса за ls е:

 ls [options] [file|directory] [file|directory...]

Ако нема наведено некоја датотека или директориум во командната линија тогаш ја листа содржината на директориумот во кој се наоѓате моментално. Нејзините опции се многубројни и ние ќе наведеме само некои:

-а: ги листа сите датотеки вклучително и скриените (запаметете дека во UNIX скриени се оние фајлови чие име започнува со точка (.); со опцијата се листаат “речиси” сите датотеки што значи сите датотеки што би се листале со -а опцијата освен овие кои почнуваат со (.) и (..);

-R: листа повратно односно сите датотеки и поддиректориуми на директориумите наведени во командната линија;

-s: ја прикажува големината на датотеката во килобајти веднаш до секоја датотека;

-l: прикажува дополнителни информации за датотеките (како што видовме погоре кај дозволите);

-i: го прикажува инодниот број на секоја датотека (единствениот број на секоја датотека во датотечниот систем);

-d: ги третира директориумите наведени во командната линија како да се обични датотеки, наместо да ја листа нивната содржина.

Еве некои примери:

ls -R: повратно ја листа содржината на моменталниот директориум;

ls -is images/ .. ги листа датотеките во директориумот images/ и во матичниот директориум на моменталниот. Потоа го прикажува инодниот број за секоја датотека и големината во килобајти;

ls -al images/*.png: ги листа сите датотеки (вклучително и скриените) во директориумот images/ чии имиwа завршуваат со .png. Запомнете дека ова го вклучува и фајлот .png, ако постои.

3. Манипулација со датотеките

mkdir и touch: Креирање директориуми и датотеки

mkdir (MaKe DIRectory) се користи за креирање на директориуми (фолдери, папки). Неговата синтакса е едноставна:

mkdir [options] <directory> [directory …]

Една опција е многу битна за споменување опцијата. Таа прави две работи:

  1. Креира матични директориуми ако тие не постоеле порано. Без оваа опција mkdir едноставно нема да успее, велејќи дека споменатиот матичен директориум не постои.
  2. Ве враќа тивко назад ако директориумот што сакате да го креирате веќе постои. Аналогно, ако не ја примените -р опцијата, mkdir ќе прати порака жалејќи се дека директориумот веќе постои.

Еве неколку примери:

mkdir foo: креира директориум со име foo во моменталниот директориум;

mkdir -p images/misc docs: креира misc директориум во images директориумот. Прво го креира вториот ако не постои (-p); исто така креира директориум со име docs во моменталниот директориум.

touch првенствено не е наменета за креирање датотеки туку за ажурирање на времето на влез и модификација на датотеките. Но како и да е, touch ќе ги креира наведените датотеки како празни датотеки ако не постоеле порано. Синтаксата е следнава:

 touch [options] file [file…]

Значи со пишување на командата:

 touch file1 images/file2

ќе креирате празна датотека со име file1 во моменталниот директориум и празна датотека во директориумот images со име file2.

rm: Бришење на директориуми и датотеки

rm командата (ReMove) ја заменува командата del и deltree во DOS и додава нови можности. Синтаксата е следната:

 rm [options] <file|directory> [file|directory…]

Опциите вклучуват: -r или -R: брише неповратно. Оваа опција е обврзувачка за бришење на директориуми без разлика дали се празни или не. Но можете да користите и rmdir за бришење на празни директориуми;

-i: бара потврда пред секое бришење. Запомнете дека во Линукс, rm е преддефинирано поврзана за rm -i, од сигурносни причини (слични врски постојат и за cp и mv). Ако сакате да ги отстраните овие врски потребно е да го смените вашиот .bashrc и да ја додадете оваа линија: unalias rm cp mv;

-f: спротивно на -i го извршува бришењето без да ве праша ништо, дури и ако корисникот нема право за пишување во датотеките.

Некои примери:

rm -i images/*.jpg file1 : ги брише сите датотеки кои завршуваат со .jpg во директориумот images, ја брише и датотеката file1 во моменталниот директориум, барајќи потврда за секое бришење. Одговорете со y ако потврдувате или со n ако се откажувате.

rm -Rf images/misc/ file* : го брише, без да бара потврда, целиот misc/ директориум во images/ директориумот, зеадно со сите датотеки во моменталниот директориум кои започнуваат со file.

користењето на rm ги брише фајловите неповратно. Не се воздржувајте од користењето на -i опцијата за да избегнете бришење на датотеки по грешка.

mv: Преместување или менување на името на датотеките

Синтаксата на командата mv (MoVe) е како што следува:

 mv [options] <file|directory> [file|directory ...] <destination>

Неколку опции: -f: ја извршува командата без да ве предупреди дека веќе има датотека со исто име и дека ќе пишува врз неа; -i: спротивно на претходното - прашува дали сте сигурни дека сакате да пишувате врз датотеката со исто име (ако таква постои);

-v: зборлеста опција: ви дава деталено известување за сите промени и активности.

Некои примери:

mv -i /tmp/pics/*.png . : ги преместува сите датотеки од директориумот /tmp/pics/ чие што име завршува на .png во моменталниот директориум (.), но бара потврда за пишување врз било која датотека со исто име.

mv foo bar: го менува името на датотеката foo во bar. Ако bar веќе постои оваа команда ќе ефектуира со преместување на целиот foo директориум (самиот директориум со сите датотеки во него) во bar директориумот.

mv -fv file* images/ trash/ : ги преместува, без да бара потврда, сите датотеки во моменталниот директориум чие што име започнува со file, заедно со целиот images/ директориум во trash/ директориумот и прикажува како се извршува секоја операција.

cp: Копирање на директориуми и датотеки

cp (CoPy) ја заменува copy, xcopy командата во DOS и додава некои нови опции. Нејзината синтакса е следната:

cp [options] <file|directory> [file|directory ...] <destination>

cp има многу опции. Еве ги најчестите:

-R: повратно копирање; обврзувачко за копирање на директориуми дури и ако се празни;

-i: бара потврда за пишување врз датотеки што веќе постојат;

-f: обратно од -i, ги заменува сите датотеки со исто име со новите без да праша;

-v: зборлест режим: ги прикажува сите акции преземени од cp.

Некои примери:

cp -i /tmp/images/* images/ : ги копира сите датотеки од директориумот /tmp/images/ во директориумот images/ лоциран во моменталниот директориум. Бара потврда ако треба некоја датотека со исто име да биде препишана.

cp -vR docs/ /shared/mp3s/* mystuff/ : го копира целиот docs/ директориум плус сите датотеки од /shared/mp3s/ директориумот во mystuff/ директориумот.

cp foo bar : прави копија на foo датотеката под име bar во моменталниот директориум.

Работење со атрибути на датотеките

Серијата на команди прикажани подолу служат за да се смени сопственикот или сопственичката група на датотеката или нејзините дозволи.


Вовед во атрибутите на датотеките (сопственици, дозволи)

Датотеките се нешто по кое GNU/Linux значително се разликува од Windows и повеќето други оперативни системи. Ние овде ќе ги покриеме најочигледните разлики.

Најголемите разлики произлегуваат од фактот дека Линукс е вистински повеќекориснички систем: секоја датотека е во ексклузивна сопственост на секој корисник или група. И една работа која не ја споменавме, е дека секој корисник или група е сопственик на личен директориум (наречен home директориум). Тој е сопственик на тој директориум и на секоја датотека што понатаму ќе ја креира.

Како и да е, тоа не би било многу корисно ако се заврши само на тоа. Но има уште: како сопственик на датотеката тој има можност да ги поставува дозволите за таа датотека. Тие дозволи прават разлика помеѓу три различни вида на корисници: сопственикот на датотеката; секој корисник кој е член на групата поврзана со датотеката (корисничка група), но кој не е сопственик; други, под што се подразбираат сите други корисници кои не се ниту сопственици на датотеката, ниту членови на групата.

Има три различни дозволи:

  1. Read дозвола (r): дозволува содржината на датотеката да биде читана, за директориум тоа значи неговата содржина да биде листана.
  2. Write дозвола (w): дозволува промени во содржината на датотеката. За директориум тоа значи дека корисникот може да додава и/или да отстранува датотеки од овој директориум, дури иако не е сопственик на тој директориум.
  3. eXecute дозвола (x): дозволува датотеката да биде извршена ( како последица на тоа само извршните датотеки треба да ја имаат поставено таа дозвола). За директориум тоа значи дека корисникот може да патува низ него (да влезе во или низ него). Забележете дека тоа е различно од read дозволата. Може да се случи да можете да влезете во директориумот, но да не можете да ја читате неговата содржина.

Секоја комбинација на овие дозволи е возможна. На пример, можете да поставите содржината на датотеката да можете да ја читате само вие, а на сите останати тоа да им биде забрането. Можете дури да го направите и спротивното, иако на прв поглед тоа не изгледа логично. Како сопственик на датотеката можете да ја смените корисничката група (ако и само ако сте член на новата група), дури можете и да се откажете од таа датотека (да го смените сопственикот). Се разбира ако се откажете од таа датотека, тогаш ги губите сите права на неа.

Да земеме пример на датотека и директориум. Примерот подолу претставува внесување на командата ls -l во командната линија:

$ ls -l
total 1

-rw-r----- 1 queen users 0 Jul 8 14:11 a_file

drwxr-xr-- 2 peter users 1024 Jul 8 14:11 a_directory/

$

Резултат на ls -l командата е (од лево на десно):

првите десет карактери го претставуваат видот на датотеката и дозволите кои се асоцирани со неа. Првиот карактер го претставува видот на датотеката: ако е обична датотека тогаш е претставен со црта (-); ако е директориум тогаш е претставен со (d). Има и други видови на датотеки кои ќе ги обработиме во упатството. Следните девет карактери ги претставуват дозволите асоцирани со неа. Овде можете да ја видите разликата која е направена помеѓу различните корисници на иста датотека: првите три карактери претставуваат дозволи за сопственикот на датотеката, следните три се за членовите на групата кои не се сопственици на датотеката и последните три се за останатите. Цртата (-) значи дека дозволата не е поставена;

следува бројот на врските со таа датотека. Ќе видиме понатаму во упатството дека единствениот идентификатор на датотеката не е неговото име, туку број и дека е можно за една датотека на еден диск да има повеќе имиња. За директориумот бројот на врските има специјално значење, што исто така ќе биде обработено во упатството; потоа следува името на сопственикот и името на групата;

на крајот доаѓа големината на датотеката (во бајти) и времето на нејзината последна промена, проследено со самото име на датотеката или директориумот.

Да ги погледнеме сега одблиску дозволите за секој од овие датотеки. Како прво мораме да го отстраниме првиот карактер кој го претставува типот и за датотеката a_file. Ги добиваме следните дозволи rw-r-----. Интерпретацијата на овие дозволи е следнава:

првите три карактери претставуват дозволи за сопственикот на датотеката, во овој случај queen. Затоа queen има право да ја чита датотеката (r), да ја менува-пишува во неа (w), но нема право да ја извршува (-);

следните три карактери r-- претставуват дозволи за секој корисник кој не е queen, но кој е член на групата users. Таквиот корисник има право да ја чита датотеката (r), но нема право да ја менува или извршува (--);

последните три карактери (---) се за корисник кој не е ниту сопственик на датотеката, ниту е член на групата users. Таквиот корисник нема воопшто никакви права на датотеката.

За директориумот a_directory дозволите се rwxr-xr-- и како такви:

peter како сопственик на директориумот има право да ја листа неговата содржина (r), да додава или брише датотеки во него (w) и да го истражува (x);

секој корисник кој не е peter, но е член на групата users има право да ја листа неговата содржина (r), да истражува во него (x), но нема право да внесува или брише датотеки во него (-);

секој друг корисник има право да ја листа неговата содржина (r) и толку. Тој нема да може ни да влезе во директориумот.

Има само еден исклучок од овие правила, а тоа е администраторот. Root може да ги менува атрибутите (дозволите, сопствениците и сопствениците на групи) на сите датотеки, иако не е нивни сопственик. Тоа значи дека тој може и да си прогласи сопственост на датотеката! Тој може да чита датотеки на кои нема дозвола, да истражува директориуми на кои нормално не би имал право итн. И ако случајно му фали некоја дозвола едноставно ќе ја додаде.

На крај, треба да се споменат разликите помеѓу имињата на датотеките во световите на UNIX и Windows. За нив UNIX дозволува поголема флексибилност и има помалку ограничуваwа:

името на датотеката може да ги содржи сите карактери (освен ASCII-овиот карактер 0, кој означува крај на низата и карактерот /, кој е разделувач на директориумите), дури и карактери кои не можат да се отпечатат. И уште, UNIX е чувствителен на големи и мали букви: датотеките readme и Readme се различни, бидејќи r и R се читаат како посебни карактери во UNIX системите;

како што можеби сте забележале, името на датотеката не мора да содржи екстензија (наставка), освен ако вие така сакате. Наставката на фајлот во UNIX не ја определува неговата содржина и ниту во другите системи. Таканаречените “file extensions” се сепак мошне корисни. Точката (.) под UNIX е само еден карактер меѓу останатите. Треба да се напомене дека датотеките кои почнуваат со точка (.) во UNIX се скриени датотеки.

chown, chgrp: Промена на сопственик или група

Со оваа команда се врши промена на сопственик или група на една или повеќе датотеки. Синтаксата на chown (CHange OWner) е:

 chown [options] <user[.group]> <file|directory> [file|directory...]

Опциите вклучуваат:

-R: повратно ја менува сопственоста на сите датотеки и поддиректориуми во зададениот директориум;

-v: зборлест режим: ги прикажува сите акции преземени од chown; прикажува кои датотеки го смениле сопственикот како резултат на командата, а кои датотеки не се сменети;

-c : како -v, но дава извештај само за оние датотеки кои ја смениле сопственоста.

Некои примери:

chown nobody /shared/book.tex : ја префрлува сопственоста на /shared/book.tex на корисникот nobody.

chown -Rc queen.music *.mid concerts/ : ја менува сопственоста на сите датотеки во моменталниот директориум чие име завршува со .mid и сите датотеки и поддиректориуми во директориумот concerts/ врз корисникот queen и групата music, известувајќи само за датотеките кои се промениле од командата.

chgrp (CHange GRouP) ви дава можност да ја смените групата на која припаѓа датотеката или датотеките. Неговата синтакса е многу слична на chown:

 chgrp [options] <group> <file|directory> [file|directory...]

Опциите за оваа команда се исти како и за chown и се користат на многу сличен начин. Така командата:

 chgrp disk /dev/hd*

ја менува сопственоста на сите datoteki во директориумот /dev/ чие име започнува на hd врз групата disk.

chmod: Менување на дозволите на директориумите и датотеките

chmod (CHange MODe) има многу специфична синтакса. Општата синтакса е:

chmod [options] <change mode> <file|directory> [file|directory...]

A, она што ја разликува се различните форми кои може таа промена на режимот (модот) да ја заземе. Таа може да се специфицира на два начина:

  1. Со броеви:Сопственичките дозволи на корисникот тогаш кореспондираат со бројките во форма <х>00, каде <х> кореспондира со дозволите кои се доделени: 4 за дозвола за читање, 2 за пишување и 1 за извршување. Слично, сопственичките дозволи на групата заземаат форма <х>0, а дозволите за “други” форма на <х>. Потоа се што треба да направите е да ги соберете заедно доделените дозволи за да добиете правилен режим. Затоа, дозволите rwxr-xr-- кореспондираат на 400+200+100 (сопственички дозволи, rwx) +40+10(дозволи на групата r-x) +4(дозволи на “други”, r-- ) = 754. Вака дозволите се изразени на апсолутен начин. Тоа значи дека претходните дозволи се безусловно заменети;
  2. Со изрази: Дозволите се изразени со секвенца на изрази одделени со точка. Оттука изразот ја има следнава форма:
 [category]<+|-|=><permissions>.

Категоријата може да биде една или повеќе од следниве:

u(User, дозволи за сопственикот);

g(Group, дозволи за групата);

о(Other, дозволи за “други”).

Ако ниедна категорија не е наведена, промените ќе се применат врз сите категории. (+) додава дозвола, (-) одзема дозвола, (=) додава дозвола. Најпосле, дозволите се една или повеќе од следниве: r(Read, читање);

w(Write, пишување);

x(eXecute, извршување).

Главните опции се доста слични како кај chown и chgrp:

-R: повратно ги менува дозволите;

-v: зборлест режим: ги прикажува сите акции извршени врз секоја датотека;

-c: како –v, но ги прикажува само датотеките кои се засегнати од командата.


Примери:

chmod -R o-w /shared/docs : повратно ја одзема дозволата за пишување на “други” во сите датотеки и поддиректориуми во /shared/docs/ директориумот.

chmod -R og-w , o-x private/ : повратно ја одзема дозволата за пишување на групата и “други” на целиот private/ директориум и ја одзема дозволата за извршување на “други”.

chmod -c 644 misc/file* : ги менува дозволите врз сите датотеки во директориумот misc/ чие што име започнува со file во rw-r--r-- (т.е. дозвола за читање на сите, а дозвола за пишување само на сопственикот) и ги покажува само оние датотеки врз кои е извршена промената со оваа команда.