Osnovne komande u Linux-u
Sadržaj:
- Kako se koristi naredba za
diff
- Normalni format
- Oblik konteksta
- Jedinstveni format
- Zanemari slučaj
- Zaključak
diff
je uslužni program naredbenog retka koji vam omogućuje usporedbu dviju datoteka svaki redak. Može i usporediti sadržaj direktorija.
Naredba
diff
najčešće se koristi za stvaranje zakrpe koja sadrži razlike između jedne ili više datoteka koje se mogu primijeniti pomoću naredbe
patch
.
Kako se koristi naredba za
diff
Sintaksa naredbe
diff
je sljedeća:
diff… FILES
Naredba
diff
može prikazati izlaz u nekoliko formata, a najčešći su uobičajeni, kontekstni i objedinjeni format. Izlaz uključuje podatke o tome koji se retci u datotekama moraju promijeniti kako bi postali identični. Ako se datoteke podudaraju, ne proizvodi se izlaz.
Za spremanje naredbenog izlaza u datoteku koristite operatora preusmjeravanja:
diff file1 file2 > patch
sljedeće dvije datoteke objasnit ćemo kako funkcionira naredba
diff
:
Ubuntu Arch Linux Debian CentOS Fedora
file2
Kubuntu Ubuntu Debian Arch Linux Centos Fedora
Normalni format
U svom najjednostavnijem obliku kada se naredba
diff
izvodi na dvije tekstualne datoteke bez ikakvih opcija, ona proizvodi izlaz u normalnom formatu:
diff file1 file2
Izlaz će izgledati ovako:
0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos
Uobičajeni izlazni format sastoji se od jednog ili više odjeljaka koji opisuju razlike. Svaki odjeljak izgleda ovako:
change-command < from-file-line… --- > to-file-line…
0a1
,
2d2
i
4c4, 5
su naredbe za promjenu. Svaka naredba za promjenu sadrži slijeva, slijeva:
- Broj retka ili raspon linija u prvoj datoteci. Posebni znak za promjenu. Broj linije ili raspon linija u drugoj datoteci.
Znak promjene može biti jedan od sljedećih:
-
a
- Dodajte linije.c
- Promjena linija.d
- Brisanje linija.
Naredba za promjenu prati kompletne retke koji se uklanjaju (
<
) i dodaju u datoteku (
>
).
Objasnimo izlaz:
-
0a1
- Dodajte redak1
druge datoteke na početak datoteke1 (nakon retka0
).-
> Kubuntu
- redak iz drugog retka koji se dodaje prvoj datoteci kako je gore opisano.
2d2
- Brisanje retka2
iz prve datoteke. Simbol2
nakond
označava da će se, ako redak ne bude izbrisan, pojaviti na drugom retku2
.-
< Arch Linux
- izbrisana linija.
4c4, 5
- Zamijenite (promijenite) redak5
u prvoj datoteci s linijama4-5
iz druge datoteke.-
< CentOS
- Redak u prvoj datoteci koji treba zamijeniti.---
- separator.> Arch Linux
i> Centos
- Linije iz druge datoteke koje zamjenjuju liniju u prvoj datoteci.
-
Oblik konteksta
Kada se koristi izlazni format konteksta, naredba
diff
prikazuje nekoliko linija konteksta oko redaka koje se razlikuju između datoteka.
Opcija
-c
govori
diff
da proizvede izlaz u kontekstnom formatu:
diff -c file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
Izlaz započinje s imenima i vremenskim oznakama ako se uspoređuju datoteke i jednim ili više odjeljaka koji opisuju razlike. Svaki odjeljak izgleda ovako:
*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…
-
from-file-line-numbers
to-file-line-numbers
- brojevi linija ili raspon linija odvojenih zarezima u prvoj i drugoj datoteci.from-file-line
ito-file-line
- Linije koje se razlikuju i linije konteksta:- Linije koje počinju s dva razmaka su linije konteksta, linije koje su u obje datoteke jednake. Linije koje počinju simbolom minus (
-
) su linije koje u drugoj datoteci ne odgovaraju ničemu. Linije koje nedostaju u drugoj datoteci. Linije koje započinju simbolom plus (+
) su retci koji ne odgovaraju ničemu u prvoj datoteci. Linije koje nedostaju u prvoj datoteci. Linije koje započinju uskličnikom (!
) Retci su koji se mijenjaju između dvije datoteke. Svaka grupa linija koja započinje s!
iz prve datoteke ima odgovarajuće podudaranje u drugoj datoteci.
- Linije koje počinju s dva razmaka su linije konteksta, linije koje su u obje datoteke jednake. Linije koje počinju simbolom minus (
Objasnimo najvažnije dijelove rezultata:
- U ovom primjeru imamo samo jedan odjeljak koji opisuje razlike.
*** 1, 6 ****
i--- 1, 7 ----
govori nam o rasponu redaka iz prve i druge datoteke koji su uključeni u ovaj odjeljak. LinijeUbuntu
,Debian
,Fedora
i zadnji prazni red isti su u obje datoteke. Ove linije počinju s dvostrukim razmakom.Line- Arch Linux
iz prve datoteke ne odgovara ničemu u drugoj datoteci. Iako ova linija postoji i u drugoj datoteci, položaji su različiti.Line+ Kubuntu
iz druge datoteke ne odgovara ničemu u prvoj datoteci.Line! CentOS
! CentOS
iz prve datoteke i redaka! Arch Linux
! Arch Linux
i! CentOS
! CentOS
iz druge datoteke mijenja se između datoteka.
Prema zadanim postavkama, broj kontekstnih linija zadan je na tri. Za određivanje drugog broja koristite opciju
-C
(
--contexts
):
diff -C 1 file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
Jedinstveni format
Jedinstveni izlazni format poboljšana je verzija kontekstnog formata i daje manji izlaz.
Upotrijebite opciju
-u
da kažete
diff
za ispis izlaza u jedinstvenom formatu:
diff -u file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora
Izlaz započinje s imenima i vremenskim oznakama datoteka te jednim ili više odjeljaka koji opisuju razlike. Svaki odjeljak ima oblik:
*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…
-
@@ from-file-line-numbers to-file-line-numbers @@
- Broj retka ili raspon redaka iz prve i druge datoteke uključene u ovaj odjeljak.line-from-files
- Redovi koji se razlikuju i crte konteksta:- Linije koje počinju s dva razmaka su linije konteksta, linije koje su u obje datoteke jednake. Linije koje počinju simbolom minus (
-
) su linije koje se uklanjaju iz prve datoteke. Linije koje počinju sa simbolom plus (+
) su retke koji su dodani iz prve datoteke.
- Linije koje počinju s dva razmaka su linije konteksta, linije koje su u obje datoteke jednake. Linije koje počinju simbolom minus (
Zanemari slučaj
Kao što možete primijetiti u gornjim primjerima, naredba
diff
prema zadanom je osjetljiva na velika i mala slova.
Upotrijebite opciju
-i
za
diff
u slučaju ignoriranja:
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora
Zaključak
Usporedba tekstualnih datoteka za razlike jedan je od najčešćih zadataka za administratore Linux sustava.
Naredba
diff
uspoređuje datoteke po redak. Za više informacija upišite
man diff
na vašem terminalu.
Chmod naredba u Linuxu (dopuštenja datoteka)

U Linuxu pristup datotekama upravlja se putem dozvola, atributa i vlasništva datoteka. Ovaj je vodič opisao kako pomoću naredbe chmod mijenjati dozvole pristupa datotekama i mapama.
Chgrp naredba u linuxu (promjena grupa)

U Linuxu je svaka datoteka povezana s vlasnikom i skupinom te ima dopuštenja koja određuju koji korisnici mogu čitati, pisati ili izvršavati datoteku. Naredba chgrpc mijenja vlasništvo grupe nad datotekama.
Cp naredba u Linuxu (kopiranje datoteka)

cp je uslužni program za kopiranje datoteka i mapa u Unix i Linux sustavima.