วิธีคัดลอกไฟล์โดยใช้คำสั่ง “ติดตั้ง” บน Linux
เผยแพร่แล้ว: 2022-01-29 install
เป็นคำสั่งคัดลอกไฟล์อเนกประสงค์ใน Linux และ macOS เหมาะอย่างยิ่งสำหรับผู้ใช้ระดับสูงที่ต้องการประสิทธิภาพ อ่านบทความนี้เพื่อค้นพบวิธีทำงานอย่างชาญฉลาดยิ่งขึ้น—ไม่ยากขึ้น
รอ—ไม่ใช่สำหรับการติดตั้งซอฟต์แวร์ใช่ไหม
คำสั่ง install
อาจมีชื่อคำสั่ง Linux ที่ทำให้เข้าใจผิดมากที่สุด มันไม่ได้ติดตั้งซอฟต์แวร์ใด ๆ เลย หากคุณกำลังพยายามติดตั้งแพ็คเกจซอฟต์แวร์จากบรรทัดคำสั่งใน Ubuntu หรือการแจกจ่ายแบบ Debian อื่น ให้ใช้คำสั่ง apt-get
สำหรับลีนุกซ์รุ่นอื่นๆ ให้ใช้เครื่องมือการจัดการแพ็คเกจของลีนุกซ์รุ่นแจกจ่ายแทน—เช่น dnf
บน Fedora หรือ zypper
บน openSUSE
ดังนั้นการติดตั้งทำอะไร?
สรุปการ install
รวมองค์ประกอบจากคำสั่ง cp
(คัดลอก), chown
(เปลี่ยนเจ้าของ), chmod
(โหมดเปลี่ยน), mkdir
(สร้างไดเรกทอรี) และคำสั่ง strip
(สัญลักษณ์แถบ) ช่วยให้คุณใช้ฟังก์ชันจากฟังก์ชันทั้งหมดได้ในการดำเนินการเดียว
คำสั่ง install
สามารถ:
- คัดลอกไฟล์เช่นคำสั่ง
cp
- เลือกว่าจะเขียนทับไฟล์ที่มีอยู่หรือไม่
- สร้างไดเร็กทอรีเป้าหมายหากไม่มีอยู่ เช่น
mkdir
- ตั้งค่าสถานะการอนุญาตผู้ใช้ของไฟล์ เช่นเดียวกับคำสั่ง
chmod
- ตั้งค่าเจ้าของไฟล์ เช่นเดียวกับคำสั่ง
chown
- นำสัมภาระที่ไม่จำเป็นออกจากไฟล์สั่งการ เช่นเดียวกับคำสั่ง
strip
แม้จะมีฟังก์ชันทั้งหมดนั้น คำสั่ง install
ก็ไม่มีตัวเลือกมากมายให้ต้องต่อสู้ด้วย
เมื่อไหร่ที่คุณจะใช้มัน
คำสั่ง install
อาจจะไม่ได้ใช้ทุกวัน มีประโยชน์ แต่สำหรับบางสถานการณ์เท่านั้น สถานการณ์หนึ่งที่การ install
เกิดขึ้นเองคือการพัฒนาซอฟต์แวร์ สมมติว่าคุณกำลังเขียนโปรแกรมยูทิลิตี้ใหม่ คุณจะต้องทำการทดสอบนอกสภาพแวดล้อมการพัฒนา ในการทำเช่นนั้น คุณต้องคัดลอกไฟล์โปรแกรมใหม่ไปยังไดเร็กทอรีทดสอบ อาจจำเป็นต้องสร้างไดเร็กทอรีทดสอบ และคุณต้องตั้งค่าสิทธิ์และความเป็นเจ้าของไฟล์ที่ถูกต้อง
เนื่องจากการพัฒนาเป็นกิจกรรมที่ต้องทำซ้ำๆ คุณจึงสามารถทำลำดับการกระทำนี้ได้หลายครั้ง หลายๆ ครั้ง คำสั่ง install
จะทำทุกอย่างให้คุณ สุดท้าย เมื่อยูทิลิตี้ใหม่ของคุณพร้อมที่จะปรับใช้ คุณสามารถใช้การ install
เพื่อคัดลอกโดยมีสิทธิ์ที่ถูกต้องไปยังตำแหน่งการทำงานสุดท้าย
ตัวอย่าง
โปรแกรมเมอร์กำลังทำงานกับยูทิลิตี้ใหม่ที่เรียกว่า ana
ประกอบด้วยไฟล์ไบนารีที่ปฏิบัติการได้และฐานข้อมูล หลังจากการทดสอบ จะต้องคัดลอกไฟล์ไปยัง /usr/local/bin
เพื่อให้พร้อมใช้งานสำหรับผู้ใช้ระบบ Linux ทุกคน คุณจะต้องแทนที่ชื่อไฟล์และเส้นทางไดเรกทอรีในตัวอย่างของเราสำหรับไฟล์และเส้นทางที่คุณใช้บนคอมพิวเตอร์ของคุณเมื่อคุณใช้ install
จนกว่ามันจะพร้อมสำหรับการเปิดตัว มันจะทำการทดสอบในไดเร็กทอรีชื่อ ~/test/ana
สมาชิกของกลุ่ม geek
จะมีสิทธิ์ในการอ่านและดำเนินการ ผู้ใช้รายอื่นจะมีสิทธิ์ในการอ่านและดำเนินการด้วย คำสั่ง install
ใช้การแสดงตัวเลขแบบเดียวกันสำหรับการอนุญาตเช่นเดียวกับ chmod
โปรแกรมเมอร์ของเราตัดสินใจว่าต้องตั้งค่าการอนุญาตเป็น:
- เจ้าของ: อ่าน เขียน และดำเนินการ
- กลุ่ม: อ่านและดำเนินการ
- อื่นๆ: ดำเนินการเท่านั้น
วิธีใช้คำสั่ง install
ไดเร็กทอรีการทำงานของโปรแกรมเมอร์สมมติของเราคือ ~/work
เขาได้เขียนโปรแกรม คอมไพล์มัน และสร้างไบนารีที่เรียกว่า ana
เขาได้สร้างไฟล์ฐานข้อมูลที่ ana
ใช้งานได้แล้ว Words.db
ดังนั้นไฟล์ทั้งสองจึงพร้อมสำหรับการทดสอบ ลองดูที่พวกเขา:
ls -l ana Words.db
โปรแกรมอรรถประโยชน์ ana
ที่เขาเพิ่งเขียนสร้างแอนนาแกรมจากวลีที่ให้ไว้ในบรรทัดคำสั่ง การทดสอบยืนยันค่อนข้างตรงไปตรงมา
โปรแกรมเมอร์ของเราเรียก ana
ด้วยวลี "biscuit" และทุกอย่างก็ดูดี ตอนนี้เขาต้องการคัดลอกไฟล์ทั้งสองนี้ไปยังไดเร็กทอรี ~/test/ana
เพื่อดูว่ายูทิลิตี้ใหม่ทำงานอย่างถูกต้องหรือไม่จากสภาพแวดล้อมการพัฒนา เขาออกคำสั่งดังต่อไปนี้:
ติดตั้ง -D -v ana Words.db -t ~/test/ana
ตัวเลือกที่ใช้ในบรรทัดคำสั่งคือ:
- D : สร้างไดเร็กทอรี รวมถึงไดเร็กทอรีหลัก หากจำเป็น
- v : ละเอียด แสดงรายการแต่ละไดเร็กทอรีตามที่สร้างขึ้น และแต่ละไฟล์คัดลอกเมื่อดำเนินการ
- t : ไดเรกทอรีเป้าหมาย
เราจะเห็นว่าการ install
สร้างไดเร็กทอรี ~/test
แล้วสร้างไดเร็กทอรี ~/test/ana
ไฟล์ถูกแสดงรายการทีละรายการเนื่องจากถูกคัดลอกไปยังไดเร็กทอรีเป้าหมาย
การแสดงรายการไฟล์ใน ~/test/ana
ยืนยันว่าไฟล์เหล่านั้นถูกคัดลอกอย่างถูกต้อง
ลส -ล
ขั้นตอนต่อไปคือการทดสอบยูทิลิตี้ ana
โดยเรียกใช้ในไดเร็กทอรี ~/test/ana
ยูทิลิตี้ทำงานตามที่คาดไว้ซึ่งดีมาก อย่างไรก็ตาม การอนุญาตไม่ถูกต้อง ข้อกำหนดคือการตั้งค่าสมาชิกของกลุ่ม geek
ให้มีสิทธิ์ในการอ่านและดำเนินการ และสำหรับผู้ใช้รายอื่นให้ดำเนินการเท่านั้น
เราสามารถแก้ไขปัญหาทั้งสองอย่างง่ายๆ ด้วยคำสั่งต่อไปนี้ สังเกตการใช้ sudo
เพื่อรันคำสั่งด้วยสิทธิ์รูท -o
และ -g
และตัวเลือกต้องการสิ่งนี้ เราจะขอรหัสผ่านเมื่อเราออกคำสั่ง
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
- อ็อพชัน
-b
(backup) จะสร้างการสำรองข้อมูลของไฟล์ก่อนที่จะถูกเขียนทับ - ตัวเลือก
-S
(ส่วนต่อท้าย) กำหนดส่วนต่อท้ายสำหรับไฟล์สำรอง หากคุณไม่ได้ระบุคำต่อท้าย ให้ใช้~
(ตัวหนอน) เรากำลังขอให้install
ใช้คำต่อท้าย.bak
- เราตั้งค่าให้เจ้าของไฟล์เป็น
dave
ฟโดยใช้ตัวเลือก-o
(เจ้าของ) - ตัวเลือก
-g
(กลุ่ม) ต้องการชื่อของกลุ่ม ซึ่งจะกลายเป็นกลุ่มเจ้าของไฟล์ กลุ่มที่เราจะใช้เรียกว่าgeek
- ตัวเลือก
-m
(โหมด) ตั้งค่าโหมดไฟล์สำหรับไฟล์ โดยใช้ไวยากรณ์ตัวเลขchmod
มาตรฐาน
เราไม่จำเป็นต้องใช้ตัวเลือก -D
(สร้างไดเร็กทอรี) อีกต่อไป เพราะเรารู้ว่าไดเร็กทอรีทดสอบมีอยู่แล้ว นอกจากนี้เรายังละเว้นตัวเลือก -v
(verbose) การแสดงรายการไฟล์ในไดเร็กทอรี ~/test/ana
ของเราจะแสดงรายละเอียดไฟล์ให้เราเห็น:
ลส -ล
นี่เป็นการยืนยันว่าเป็นไปตามข้อกำหนดทั้งหมดของเราแล้ว
- ไฟล์ถูกคัดลอกไปยังไดเร็กทอรีการทดสอบ
- สิทธิ์ได้รับการตั้งค่าอย่างถูกต้อง
-
dave
ฟเป็นเจ้าของไฟล์ - กลุ่ม
geek
คือกลุ่มเจ้าของไฟล์ทั้งสอง - สำเนาสำรองของแต่ละไฟล์เรียกว่า ana.bak และ Words.db.bak
ทั้งหมดนี้ทำได้โดยใช้คำสั่งเดียว ประณีต.
โปรแกรมเมอร์ของเราทำการเปลี่ยนแปลงขั้นสุดท้ายกับยูทิลิตี้และคอมไพล์ใหม่ ไฟล์ที่เปลี่ยนแปลงจะต้องถูกคัดลอกไปยังไดเร็กทอรี ~/test/ana
จากไดเร็กทอรี ~/work
เราสามารถทำได้โดยใช้ตัวเลือก -C
(เปรียบเทียบ) หากไฟล์ต้นทางและไฟล์เป้าหมายเหมือนกัน ไฟล์ต้นฉบับจะไม่ถูกคัดลอก
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
รายชื่อไฟล์ในไดเร็กทอรีเป้าหมายแสดงให้เราเห็นว่าขนาดไฟล์ของไฟล์ ana
มีการเปลี่ยนแปลง มีขนาดใหญ่กว่าไฟล์ ana.bak
การประทับเวลาบน ana
ก็เปลี่ยนไปเช่นกัน การเปลี่ยนแปลงเหล่านี้เกิดจากการคัดลอกไฟล์เวอร์ชันใหม่ที่นี่
ลส -ล
ขนาดไฟล์และการประทับเวลาของไฟล์ Words.db
ไม่มีการเปลี่ยนแปลง ไม่มีการเปลี่ยนแปลงใดๆ กับไฟล์ Words.db
ดังนั้นจึงไม่มีการคัดลอกไฟล์ดังกล่าว ในโปรเจ็กต์ที่มีไฟล์จำนวนมาก ตัวเลือก -C
(เปรียบเทียบ) สามารถประหยัดเวลาและการเปลี่ยนฮาร์ดไดรฟ์ได้มาก โดยคัดลอกเฉพาะไฟล์ที่มีการเปลี่ยนแปลงเท่านั้น
โปรแกรมเมอร์ได้ทดสอบอีกครั้งว่ายูทิลิตี้ ana
ยังคงทำงานต่อไป
ถึงเวลาที่จะใช้การ install
เพื่อคัดลอกไฟล์ไปยังไดเร็กทอรี /usr/local/bin
ซึ่งจะทำให้ยูทิลิตี้ใหม่นี้พร้อมใช้งานสำหรับผู้ใช้คอมพิวเตอร์ Linux เครื่องนี้ทุกคน เรารู้ว่า /usr/local/bin
มีอยู่ ดังนั้นเราจึงไม่จำเป็นต้องสร้างไดเร็กทอรีนั้น เราสามารถใช้คำสั่งสุดท้ายของเราในเวอร์ชันที่แก้ไขได้
เราได้เปลี่ยนไดเรกทอรีเป้าหมายเป็น /usr/local/bin
เราได้ลบตัวเลือก -C
(เปรียบเทียบ) เนื่องจากยังไม่มีสำเนาของไฟล์เหล่านี้ในไดเร็กทอรีเป้าหมาย ดังนั้นจึงไม่มีอะไรจะเปรียบเทียบ ในทำนองเดียวกัน ไม่มีอะไรต้องสำรองข้อมูล ดังนั้นเราจึงสามารถลบตัวเลือก -b
(สำรอง) และตัวเลือก -S
(ส่วนต่อท้าย) ได้
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
เราสามารถแสดงรายการไฟล์ที่มาถึง /usr/local/bin
:
ลส -ล
และในการทดสอบขั้นสุดท้าย ให้เปลี่ยนไดเร็กทอรีเป็นโฮมไดเร็กตอรี่ของเรา และดูว่าเราสามารถเรียกใช้ยูทิลิตีใหม่จากที่นั่นได้หรือไม่
โปรดทราบว่าเราไม่จำเป็นต้องนำหน้าคำสั่ง ana
ด้วย ./
/ ซึ่งหมายความว่ากำลังทำงานจาก /usr/local/bin
ภารกิจเสร็จสมบูรณ์.
เรากล่าวว่าการติดตั้งสามารถดึงตารางสัญลักษณ์ที่ซ้ำซ้อนและสัมภาระอื่นๆ ออกจากภายในไฟล์ไบนารี เพื่อลดขนาดลง มาทำกันตอนนี้เลย โปรดทราบว่าคำสั่งด้านล่างไม่มี Words.db เนื่องจาก Words.db เป็นไฟล์ฐานข้อมูล ไม่ใช่ไฟล์ปฏิบัติการแบบไบนารี ในการคัดลอกและลดขนาดไฟล์ไบนารี ana
เราสามารถใช้คำสั่งต่อไปนี้ เราได้เพิ่มตัวเลือก -s (ย่อ) ด้วยตัวพิมพ์เล็ก "s" เราได้เพิ่มกลับเข้าไปในตัวเลือก -b (สำรอง) และตัวเลือก -S (ส่วนต่อท้าย) ด้วยตัวพิมพ์ใหญ่ "S"
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin
การแสดงรายการไฟล์ใน /usr/local/bin
ทำให้เราสามารถเปรียบเทียบขนาดของไฟล์ ana
กับเวอร์ชันสำรองได้ ไฟล์ ana
ถูกลดขนาดลงเหลือเกือบ 60% ของขนาดก่อนหน้า
ls -l /usr/local/bin
สรุป
คำสั่ง install
เหมาะสำหรับการใช้งานเฉพาะกลุ่ม สำหรับคนจำนวนมาก จะไม่มีการใช้งานแบบวันแล้ววันเล่า หรืออาจใช้แบบเดือนต่อเดือน แม้จะเป็นเช่นนั้น คำสั่ง install
เป็นเครื่องมือที่ดีที่คุณคุ้นเคยและมีไว้ในคลังเทคนิคของคุณ สำหรับโอกาสเหล่านั้นเมื่อคุณต้องการ มันจะให้รางวัลแก่ช่วงการเรียนรู้ของคุณด้วยการเพิ่มประสิทธิภาพ ความเรียบง่าย และการกดแป้นพิมพ์ที่น้อยลง
คำสั่งลินุกซ์ | ||
ไฟล์ | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · เข้าร่วม · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · ดู · strings · พิมพ์ · เปลี่ยนชื่อ · zip · unzip · เมานต์ · umount · ติดตั้ง · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · แพทช์ · แปลง · rclone · ฉีก · srm | |
กระบวนการ | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · หมดเวลา · ผนัง · ใช่ · ฆ่า · หลับ · sudo · su · เวลา · groupadd · usermod · กลุ่ม · lshw · ปิดระบบ · รีบูต · หยุด · poweroff · passwd · lscpu · crontab · วันที่ · bg · fg | |
ระบบเครือข่าย | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
ที่เกี่ยวข้อง: แล็ปท็อป Linux ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ