cd — kretanje kroz direktorijume
cd menja tekući direktorijum. Skraćeno od change
directory.
$ pwd /home/alen $ cd dokumenti $ pwd /home/alen/dokumenti
Oblici koje ćeš koristiti svakodnevno
$ cd /var/log # apsolutna putanja, radi odasvud $ cd dokumenti # relativna, od mesta gde si $ cd .. # nivo iznad $ cd ../.. # dva nivoa iznad $ cd ~ # kući $ cd # takođe kući $ cd - # nazad u prethodni direktorijum
Golo cd bez ičega je najbrži povratak u kućni direktorijum,
odakle god da si zalutao.
cd - te vrti između dve lokacije i usput ispiše gde si
stigao:
$ pwd /home/alen/projekti/sajt $ cd /etc/nginx $ cd - /home/alen/projekti/sajt
Neprocenjivo kad upoređuješ konfiguraciju u /etc sa nečim u
svom projektu. Prethodnu lokaciju shell čuva u promenljivoj
OLDPWD.
Značenje putanja i oznaka ., .., ~
detaljno je objašnjeno u lekciji
Apsolutne i relativne
putanje.
Ime sa razmakom
$ cd moji dokumenti bash: cd: too many arguments
Shell je razmak protumačio kao granicu između dva argumenta. Ispravno je pod navodnicima ili sa obrnutom kosom crtom:
$ cd "moji dokumenti" $ cd moji\ dokumenti
Najlakše je pritisnuti Tab posle prvih par slova — shell sam doda ono što treba.
Tri poruke i šta znače
$ cd podaci bash: cd: podaci: No such file or directory
Nema tog direktorijuma odavde. Proveri gde si sa pwd i šta postoji sa ls.
$ cd /root bash: cd: /root: Permission denied
Za ulazak u direktorijum potrebno je pravo x, ne
r. O tome piše u lekciji
Pregled prava pristupa.
$ cd beleske.txt bash: cd: beleske.txt: Not a directory
To je fajl, ne direktorijum.
Zašto cd nije program
$ which cd $ type cd cd is a shell builtin
cd je ugrađen u sam shell, i mora biti. Program se izvršava u
zasebnom procesu; kad bi cd bio program, promenio bi direktorijum
sebi i završio — a tvoj shell bi ostao gde je bio.
Ista logika objašnjava zašto skripta sa cd ne menja tvoj
direktorijum:
$ cat idi.sh #!/bin/bash cd /var/log $ ./idi.sh $ pwd /home/alen
Skripta se izvršila u potprocesu. Ako želiš da promena ostane, skriptu
pokreni sa source:
$ source idi.sh $ pwd /var/log
Sitnice koje se isplate
Tab dopunjava
$ cd /var/lo[Tab] $ cd /var/log/
Dva pritiska na Tab prikazuju sve mogućnosti kad ih ima više. Ovo je najkorisnija navika u terminalu.
Ispravljanje sitnih grešaka
$ shopt -s cdspell $ cd /vra/log /var/log
Red ide u ~/.bashrc. Više takvih podešavanja na stranici
.bashrc u praksi.
Direktorijum i ulazak u njega odjednom
mkcd() {
mkdir -p "$1" && cd "$1"
}
$ mkcd projekti/novi/test
Slaganje direktorijuma na stek
$ pushd /etc/nginx /etc/nginx ~ $ pushd /var/log /var/log /etc/nginx ~ $ popd /etc/nginx ~
Za više od dve lokacije, gde cd - nije dovoljan.
Simbolički linkovi
$ cd tekuci $ pwd /home/alen/tekuci $ pwd -P /home/alen/verzije/2.4
pwd prikazuje put kojim si došao, a pwd -P stvarno
mesto. Isto važi i za cd .. iz linkovanog direktorijuma — vraća
te tamo odakle si došao, ne u stvarni roditeljski. Vidi
Inode-ovi i linkovi.
Kratka referenca
cd putanja— idi tamocdilicd ~— kućicd ..— nivo iznad ·cd ../..— dva nivoacd -— nazad u prethodnicd ~korisnik— tuđi kućni direktorijumpushd/popd— stek direktorijumapwd -P— stvarna putanja, bez linkova- Tab dopunjava imena · navodnici za imena sa razmakom
Vežba
- Iz kućnog direktorijuma pređi u
/var/log, pa se vrati nazad jednom komandom. - Napravi direktorijum sa razmakom u imenu i uđi u njega na dva različita načina.
- Napravi skriptu koja radi
cd /tmp, pokreni je i objasni sebi zašto se tvoj direktorijum nije promenio. - Iz direktorijuma tri nivoa duboko vrati se u kućni, bez kucanja
/home.
Gde se trenutno nalaziš, pokazuje pwd, šta je tu — ls, a značenje putanja objašnjava lekcija Apsolutne i relativne putanje.
Cela lekcija je deo vodiča Linux osnove.
Comments
Post a Comment