Unele URL-uri pot avea caractere interpretate special în shell rezultând într-un comportament ciudat la descărcare.
Pentru a evidenția acest lucru, pe stația host
folosiți pentru a descărca resursa de la link-ul http://localhost/login.php?name=Lab10&email=rl@upb.ro
:
root@host:~# wget http://localhost/login.php?name=Lab10&email=rl@upb.ro [1] 3284 root@host:~# --2013-12-05 09:02:10-- http://localhost/login.php?name=Lab10 Resolving localhost (localhost)... 127.0.0.1 Connecting to localhost (localhost)|127.0.0.1|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 72 [text/html] Saving to: `login.php?name=Lab10' 100%[======================================>] 72 --.-K/s in 0s 2013-12-05 09:02:10 (13.3 MB/s) - `login.php?name=Lab10' saved [72/72] [1]+ Done wget http://localhost/login.php?name=Lab10 root@host:~#
Enter
ca să vă reapară prompt-ul.
Observați că procesul intră în background (linia cu [1] 3284
înseamnă că a fost pornit un job). Acest lucru se întâmplă întrucât simbolul &
(ampersand) nu este escapat și se folosește rolul său special din shell: pornirea unui proces în background. Se observă din output că este separată comanda înainte de &
, adică rezultă comanda wget http://localhost/login.php?name=Lab10
.
Ștergeți fișierul descărcat prin comanda de mai sus:
root@host:~# ls PacketTracer5 folder login.php?name=Lab10 root@host:~# rm login.php\?name\=Lab10 root@host:~# ls PacketTracer5 folder
Folosiți escaping în shell pentru a folosi în mod corect URL-ul și pentru a descărca resursa disponibilă la acel link.
Fișierul final descărcat trebuie să arate în acest fel (să conțină Lab10 și rl@upb.ro). Folosiți cat log<TAB>
pentru rula comanda de mai jos, ca să obțineți autocompletion din partea shell-ului (<TAB>
înseamnă apăsarea tastei TAB
):
root@host:~# cat login.php\?name\=Lab10\&email\=rl@upb.ro <html> <body> Welcome Lab10<br> Your email address is: rl@upb.ro </body> </html>