15 'pwd' (Print Working Directory) ตัวอย่างคำสั่งใน Linux
สำหรับผู้ที่ทำงานกับบรรทัดคำสั่ง Linux คำสั่ง 'pwd' มีประโยชน์มาก ซึ่งจะบอกว่าคุณอยู่ที่ไหน - ในไดเร็กทอรีใด โดยเริ่มจากรูท (/) พิเศษสำหรับมือใหม่ Linux ที่อาจหลงทางท่ามกลางไดเร็กทอรีในอินเทอร์เฟซบรรทัดคำสั่งขณะนำทาง คำสั่ง 'pwd' เข้ามาช่วยเหลือ
pwd คืออะไร?
'pwd' ย่อมาจาก 'Print Working Directory' ตามที่ระบุไว้ในชื่อ คำสั่ง 'pwd' จะพิมพ์ไดเร็กทอรีการทำงานปัจจุบันหรือเพียงผู้ใช้ไดเร็กทอรีที่มีอยู่ในปัจจุบัน จะพิมพ์ชื่อไดเร็กทอรีปัจจุบันพร้อมเส้นทางที่สมบูรณ์โดยเริ่มต้นจาก root (/) คำสั่งนี้สร้างขึ้นในคำสั่งเชลล์และพร้อมใช้งานบนเชลล์ส่วนใหญ่ - bash, บอร์นเชลล์, ksh, zsh ฯลฯ
ไวยากรณ์พื้นฐานของ pwd:
pwd [OPTION]
ตัวเลือกที่ใช้กับ pwd
- Options
คำอธิบาย
- -L (logical)
ใช้ PWD จากสภาพแวดล้อม แม้ว่าจะมีลิงก์สัญลักษณ์ก็ตาม
- -P (physical)
-
หลีกเลี่ยงลิงก์สัญลักษณ์ทั้งหมด
- –help
แสดงวิธีใช้นี้และออก
- –version
ข้อมูลเวอร์ชันเอาต์พุตและออก
หากใช้ทั้งตัวเลือก '-L' และ '-P' ตัวเลือก 'L' จะถูกนำมาให้ความสำคัญ หากไม่มีการระบุตัวเลือกที่พรอมต์ pwd จะหลีกเลี่ยงการเชื่อมโยงสัญลักษณ์ทั้งหมด กล่าวคือ คำนึงถึงตัวเลือก '-P'
สถานะทางออกของคำสั่ง pwd:
- 0
ความสำเร็จ
- Non-zero
ล้มเหลว
บทความนี้มีจุดมุ่งหมายเพื่อให้คุณได้รับข้อมูลเชิงลึกเกี่ยวกับคำสั่ง Linux 'pwd' พร้อมตัวอย่างที่เป็นประโยชน์
1. พิมพ์ไดเร็กทอรีการทำงานปัจจุบันของคุณ
avi@tecmint:~$ /bin/pwd
/home/avi
2. สร้างลิงก์สัญลักษณ์ของโฟลเดอร์ (พูด /var/www/html ลงในโฮมไดเร็กตอรี่ของคุณเป็น htm) ย้ายไปยังไดเร็กทอรีที่สร้างขึ้นใหม่และพิมพ์ไดเร็กทอรีการทำงานที่มีลิงก์สัญลักษณ์และไม่มีลิงก์สัญลักษณ์
สร้างลิงก์สัญลักษณ์ของโฟลเดอร์ /var/www/html เป็น htm ในโฮมไดเร็กตอรี่ของคุณแล้วย้ายไปที่ไดเร็กตอรี่นั้น
avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm
3. พิมพ์ไดเร็กทอรีการทำงานจากสภาพแวดล้อมแม้ว่าจะมีลิงก์สัญลักษณ์ก็ตาม
avi@tecmint:~$ /bin/pwd -L
/home/avi/htm
4. พิมพ์ไดเร็กทอรีการทำงานจริงในปัจจุบันโดยการแก้ไขลิงก์สัญลักษณ์ทั้งหมด
avi@tecmint:~$ /bin/pwd -P
/var/www/html
5. ตรวจสอบว่าเอาต์พุตของคำสั่ง “pwd ” และ “pwd -P ” เหมือนกันหรือไม่ กล่าวคือ หากไม่มีการกำหนดตัวเลือกไว้ที่ รันไทม์จะ “pwd ” คำนึงถึงตัวเลือก -P หรือไม่โดยอัตโนมัติ
avi@tecmint:~$ /bin/pwd
/var/www/html
ผลลัพธ์: ชัดเจนจากผลลัพธ์ด้านบนของตัวอย่างที่ 4 และ 5 (ผลลัพธ์ทั้งคู่เหมือนกัน) ดังนั้น เมื่อไม่ได้ระบุตัวเลือกด้วยคำสั่ง “pwd ” จะนำตัวเลือก “-P ” มาพิจารณาโดยอัตโนมัติ
6. เวอร์ชันพิมพ์ของคำสั่ง 'pwd' ของคุณ
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.
หมายเหตุ: คำสั่ง 'pwd' มักใช้โดยไม่มีตัวเลือกและไม่เคยใช้กับอาร์กิวเมนต์
ข้อสำคัญ: คุณอาจสังเกตเห็นว่าเรากำลังดำเนินการคำสั่งข้างต้นเป็น “/bin/pwd ” ไม่ใช่ “pwd< /ข> ”.
แล้วความแตกต่างคืออะไร? “pwd เพียงอย่างเดียวหมายถึงเชลล์ในตัว pwd เชลล์ของคุณอาจมี pwd เวอร์ชันอื่น โปรดดูคู่มือ เมื่อเราใช้ /bin/pwd เรากำลังเรียกคำสั่งนั้นในรูปแบบไบนารี ทั้งคำสั่งเชลล์และเวอร์ชันไบนารี่จะพิมพ์ Current Working Directory แม้ว่าเวอร์ชันไบนารีจะมีตัวเลือกมากกว่าก็ตาม
7. พิมพ์ตำแหน่งทั้งหมดที่มีไฟล์ปฏิบัติการชื่อ pwd
avi@tecmint:~$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
8. เก็บค่าของคำสั่ง “pwd ” ในตัวแปร (พูดว่า a) และพิมพ์ค่าจากตัวแปร (สำคัญสำหรับการเขียนสคริปต์เชลล์ ทัศนคติ).
avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"
Current working directory is : /home/avi
หรืออีกทางหนึ่ง เราสามารถใช้ printf ในตัวอย่างข้างต้น
9. เปลี่ยนไดเร็กทอรีการทำงานปัจจุบันเป็นอะไรก็ได้ (พูด /home) และแสดงในบรรทัดคำสั่ง ดำเนินการคำสั่ง (พูดว่า 'ls') เพื่อตรวจสอบว่าทุกอย่างตกลง
avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> ' [Notice single quotes in the example]
> ls
10. ตั้งค่าพรอมต์บรรทัดคำสั่งหลายบรรทัด (พูดประมาณนี้ด้านล่าง)
/home
123#Hello#!
จากนั้นดำเนินการคำสั่ง (พูด ls) เพื่อตรวจสอบว่าทุกอย่าง OK
avi@tecmint:~$ PS1='
> $PWD
123#Hello#!
'
/home
123#Hello#!
11. ตรวจสอบไดเร็กทอรีการทำงานปัจจุบันและไดเร็กทอรีการทำงานก่อนหน้าใน GO!
avi@tecmint:~$ echo “$PWD $OLDPWD”
/home /home/avi
12. อะไรคือพาธสัมบูรณ์ (เริ่มต้นจาก /) ของไฟล์ไบนารี่ pwd
/bin/pwd
13. อะไรคือพาธสัมบูรณ์ (เริ่มต้นจาก /) ของไฟล์ต้นฉบับ pwd
/usr/include/pwd.h
14. พิมพ์เส้นทางสัมบูรณ์ (เริ่มต้นจาก /) ของไฟล์หน้าคู่มือ pwd
/usr/share/man/man1/pwd.1.gz
15. เขียนเชลล์สคริปต์เพื่อวิเคราะห์ไดเร็กทอรีปัจจุบัน (เช่น tecmint) ในโฮมไดเร็กตอรี่ของคุณ หากคุณอยู่ภายใต้ไดเร็กทอรี tecmint ผลลัพธ์จะเป็น "Well! คุณอยู่ในไดเร็กทอรี tecmint ” จากนั้นพิมพ์ “Good Bye ” หรือสร้างไดเร็กทอรี tecmint ใต้โฮมไดเร็กทอรีของคุณและขอให้คุณ cdข> ถึงมัน
ก่อนอื่นเรามาสร้างไดเร็กทอรี 'tecmint' โดยสร้างไฟล์เชลล์สคริปต์ต่อไปนี้ชื่อ 'pwd.sh'
avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh
ถัดไป เพิ่มสคริปต์ต่อไปนี้ลงในไฟล์ pwd.sh
#!/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
ให้สิทธิ์ดำเนินการและเรียกใช้
avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh
Well you are in tecmint directory
Good Bye
บทสรุป
pwd เป็นหนึ่งในคำสั่งที่ง่ายที่สุดแต่ได้รับความนิยมและใช้กันอย่างแพร่หลายที่สุด คำสั่งที่ดีบน pwd นั้นเป็นพื้นฐานในการใช้เทอร์มินัล Linux นั่นคือทั้งหมดที่สำหรับตอนนี้. ฉันจะมาที่นี่อีกครั้งพร้อมกับบทความที่น่าสนใจอีกในเร็วๆ นี้ จนกว่าจะถึงตอนนั้น โปรดคอยติดตามและเชื่อมต่อกับ Tecmint