Šta je novo?

Komande Unix ?

rade_pg

Poštovan
Učlanjen(a)
11.02.2017
Poruke
127
Poena
70
Moze li mi neko objasniti ove linije komandi ?


mkdir ~/marko.markovic
vi ~/marko.markovic/ispit1
sadržaj fajla:
ls ~/.*t* > ~/marko.markovic/$1
ln -s /etc/passwd ~/slink && echo uspijesno kreiran link
grep "log" ~ -R
ls -ld ~ >> ~/marko.markovic/$1
cat ~/marko.markovic/ispit1
pokretanje fajla:
chmod a+x ~/marko.markovic/ispit1
~/marko.markovic/ispit1 spisak


Pogotovo sto je ovo echo i '%1
 
Rade, ovo su osnovne stvari; da li si probao da guglaš? Da li si pogledao u knjizi iz koje treba da spremiš taj ispit/kolokvijum?

Ajmo redom:

1. ~ je putanja do korisničkog home direktorijuma - https://stackoverflow.com/a/1660054
2. vi je tekst editor. Naredba koju si napisao otvara fajl "ispit1" na putanji "~/marko.markovic/ispit1"
3. lista sve skrivene fajlove i direktorijume koji u imenu imaju slovo "t". > je simbol za redirekciju, u ovom slučaju u fajl. - http://www.penguintutor.com/linux/command-basics-reference
4. kreira softlink u ~ pod imenom "slink" koji pokazuje na /etc/passwd. && povezuje naredbe, odnosno izvršiće naredbu sa desne strane samo ako je naredba sa leve strane uspešna. - https://stackoverflow.com/a/4510655
5. traži reč "log" u home direktorijumu i svim fajlovima i direktorijumima koji se u njemu nalaze (switch -R to uključuje)
6. ls lista fajlove i direktorijume na putanji. U ovom slučaju, -d switch će listanje tako da prikaže samo direktorijum koji listaš, umesto fajlova i direktorijuma u njemu. >> je simbol za redirekciju u fajl kao i >, ali >> dodaje (append) na fajl, dok > prepisuje (overwrite) sadržaj fajla. $1 je prvi pozicioni argument nekoj shell skripti
7. cat ispisuje sadržaj fajla.
8. http://catcode.com/teachmod/chmod_cmd.html
9. nije baš najjasnije, ali rekao bih da izvršava skriptu "ispit1" kojoj prosleđuje argument "spisak" kao prvi argument ($1)
 
Ja sam to davno polozio, nego za koleginicu pokusah da se prisjetim da joj pomognem..

Hvala ti na objasnjenju. Sad je mnogo jasnije.

Reci mi jos, prvi argument je "spisak" ?

Kako bi se obiljezio drugi argument i kako bih pozvao npr ?
 
A kako bih ga prozvao ?

Morao bi nakon prozivanja prvog ?
 
To sa kakvim i koliko argumenta pozivas komandni skript zavisi od same skripte. Mozda ti skripta prima samo taj jedan argument, mozda vise, to se iz ovoga ne vidi.

Ali recimo da imas program cat koji inace sluzi za konkatenaciju fajlova (iako vecina misli da je to program za ispis jer to radi iz prilozenog) njega pozivas sa vise argumenta, tipa:

Kod:
cat file1.txt file2.txt file3.txt

Kao primjer da svaki od ovih fajlova sadrzi po jednu recenicu, rezultat pozivanja programa bi ti bio te tri recenice spojene (iliti ta tri fajla spojena ako ti je lakse).

Recenica iz prvog fajla.\n
Recenica iz drugog fajla.\n
Recenica iz treceg fajla.\n
 
Poslednja izmena:
To sa kakvim i koliko argumenta pozivas komandni skript zavisi od same skripte. Mozda ti skripta prima samo taj jedan argument, mozda vise, to se iz ovoga ne vidi.

Ali recimo da imas program cat koji inace sluzi za konkatenaciju fajlova (iako vecina misli da je to program za ispis jer to radi iz prilozenog) njega pozivas sa vise argumenta, tipa:

Kod:
cat file1.txt file2.txt file3.txt

Kao primjer da svaki od ovih fajlova sadrzi po jednu recenicu, rezultat pozivanja programa bi ti bio te tri recenice spojene (iliti ta tri fajla spojena ako ti je lakse).

Recenica iz prvog fajla.\n
Recenica iz drugog fajla.\n
Recenica iz treceg fajla.\n



Znaci,

prva komnanda linija bi prozvala prvi argiment ($1)
druga bi prozvala drugi ($2)
treca treci ($3) itd
 
U ovom primeru koji je on dao

cat file1.txt file2.txt file3.txt

cat je komada, a onda se catu prosleđuju 3 argumenta.
file1.txt je $1, file2.txt je $2, file3.txt je $3 itd.
 
ispit1.sh:
Kod:
#!/bin/sh

for arg in "$@"
do
echo "$arg"
done

ispit1.c:
Kod:
#include <stdio.h>

int main(int args, char *argv[]) {
  int i = 0;
  for (i = 0; i < args; i++)
  printf("%s\n", argv[i]);
  return 0;
}

gcc ispit1.c -o ispit1
chmod +x ispit1.sh
./ispit1.sh 1 2 3 4
1
2
3
4

./ispit1 1 2 3 4
./ispit1
1
2
3
4
 
Poslednja izmena:
Vrh Dno