Zoeken op website

15 'pwd' (Print Working Directory)-opdrachtvoorbeelden in Linux


Voor degenen die met Linux Command Line werken, is het commando ‘pwd‘ erg nuttig, dat vertelt waar je bent – in welke map, beginnend vanaf de root (/). Speciaal voor Linux-nieuwkomers, die tijdens het navigeren tussen mappen in de opdrachtregelinterface kunnen verdwalen, komt het commando ‘pwd’ te hulp.

Wat is pwd?

pwd‘ staat voor ‘Print Working Directory‘. Zoals de naam al aangeeft, drukt het commando ‘pwd’ de huidige werkmap af, of eenvoudigweg de mapgebruiker die momenteel is. Het drukt de huidige mapnaam af met het volledige pad vanaf root (/). Deze opdracht is ingebouwd in de shell-opdracht en is beschikbaar op de meeste shells: bash, Bourne shell, ksh,zsh, enz.

Basissyntaxis van pwd:
pwd [OPTION]
Opties gebruikt met pwd
 Options

 Beschrijving

 -L (logical)

 Gebruik PWD uit de omgeving, zelfs als deze symbolische links bevat

 -P (physical)

 Vermijd alle symbolische links

 –help

 Deze Help weergeven en afsluiten

 –version

 Versie-informatie uitvoeren en afsluiten

Als zowel de opties ‘-L’ als ‘-P’ worden gebruikt, krijgt optie ‘L’ voorrang. Als er geen optie is opgegeven bij de prompt, zal pwd alle symlinks vermijden, d.w.z. rekening houden met optie ‘-P’.

Afsluitstatus van opdracht pwd:

0

Succes

Non-zero

Fout

Dit artikel is bedoeld om u een diepgaand inzicht te geven in het Linux-commando ‘pwd’ met praktische voorbeelden.

1. Druk uw huidige werkmap af.

avi@tecmint:~$ /bin/pwd

/home/avi

2. Maak een symbolische link naar een map (zeg /var/www/html in uw thuismap als htm). Ga naar de nieuw aangemaakte map en druk de werkmap af met symbolische links en zonder symbolische links.

Maak een symbolische link van de map /var/www/html als htm in uw thuismap en ga ernaartoe.

avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm

3. Druk de werkmap af vanuit de omgeving, zelfs als deze symbolische links bevat.

avi@tecmint:~$ /bin/pwd -L

/home/avi/htm

4. Druk de daadwerkelijke fysieke huidige werkmap af door alle symbolische links op te lossen.

avi@tecmint:~$ /bin/pwd -P

/var/www/html

5. Controleer of de uitvoer van commando “pwd ” en “pwd -P ” hetzelfde is of niet, d.w.z. of er geen opties zijn gegeven runtime houdt “pwd ” automatisch rekening met optie -P of niet.

avi@tecmint:~$ /bin/pwd

/var/www/html

Resultaat: Het is duidelijk uit de bovenstaande uitvoer van voorbeeld 4 en 5 (beide resultaten zijn hetzelfde), dus als er geen opties zijn gespecificeerd met het commando “pwd”, wordt automatisch rekening gehouden met de optie “-P”.

6. Printversie van uw ‘pwd’-opdracht.

avi@tecmint:~$ /bin/pwd --version

pwd (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

Opmerking: een ‘pwd’-commando wordt vaak gebruikt zonder opties en nooit met argumenten.

Belangrijk: het is je misschien opgevallen dat we de bovenstaande opdracht uitvoeren als “/bin/pwd ” en niet als “pwd ”.

Dus wat is het verschil? Welnu, “pwd” alleen al betekent shell-ingebouwde pwd. Uw shell heeft mogelijk een andere versie van pwd. Raadpleeg de handleiding. Wanneer we /bin/pwd gebruiken, roepen we de binaire versie van dat commando aan. Zowel de shell- als de binaire versie van het commando Prints Current Working Directory, hoewel de binaire versie meer opties heeft.

7. Druk alle locaties af die het uitvoerbare bestand pwd bevatten.

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. Bewaar de waarde van het commando “pwd ” in een variabele (zeg a) en druk de waarde ervan af vanuit de variabele (belangrijk voor shell-scripting perspectief).

avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"

Current working directory is : /home/avi

Als alternatief kunnen we in het bovenstaande voorbeeld printf gebruiken.

9. Wijzig de huidige werkmap in een willekeurige map (bijvoorbeeld /home) en geef deze weer in de opdrachtregelprompt. Voer een commando uit (zeg ‘ls‘) om te verifiëren of alles OK is.

avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> '		[Notice single quotes in the example]
> ls

10. Stel een opdrachtregelprompt met meerdere regels in (zeg zoiets als hieronder).

/home
123#Hello#!

En voer dan een commando uit (zeg ls) om te controleren of alles OK is.

avi@tecmint:~$ PS1='
> $PWD
123#Hello#!
'

/home
123#Hello#!

11. Controleer de huidige werkmap en de vorige werkmap in één GO!

avi@tecmint:~$ echo “$PWD $OLDPWD”

/home /home/avi

12. Wat is het absolute pad (beginnend bij /) van het binaire pwd-bestand.

/bin/pwd 

13. Wat is het absolute pad (beginnend bij /) van het pwd-bronbestand.

/usr/include/pwd.h 

14. Druk het absolute pad af (beginnend bij /) van het pwd-manpaginabestand.

/usr/share/man/man1/pwd.1.gz

15. Schrijf een shellscript dat de huidige map (bijvoorbeeld tecmint) in uw thuismap analyseert. Als u zich in de directory tecmint bevindt, wordt er “Nou! U bevindt zich in de tecmint-map ” en drukt vervolgens “Tot ziens” af. Maak anders een map tecmint onder uw thuismap en vraag u om cd b> eraan.

Laten we eerst een ‘tecmint’-map maken, daaronder een volgend shell-scriptbestand maken met de naam ‘pwd.sh’.

avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh

Voeg vervolgens het volgende script toe aan het pwd.sh-bestand.

#!/bin/bash

x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]
then
     {
      echo "Well you are in tecmint directory"
      echo "Good Bye"
     }
else
     {
      mkdir /home/$USER/tecmint
      echo "Created Directory tecmint you may now cd to it"
     }
fi

Geef uitvoeringsrechten en voer het uit.

avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh

Well you are in tecmint directory
Good Bye

Conclusie

pwd is een van de eenvoudigste maar meest populaire en meest gebruikte commando's. Een goede beheersing van pwd is essentieel voor het gebruik van de Linux-terminal. Dat is het voor nu. Ik zal hier binnenkort weer zijn met een ander interessant artikel, tot die tijd blijf op de hoogte en verbonden met Tecmint.