Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

4
cd ลงในไดเร็กทอรีทั้งหมดรันคำสั่งบนไฟล์ในไดเร็กทอรีนั้นและกลับไปยังไดเร็กทอรีปัจจุบันก่อนหน้า
ฉันกำลังพยายามเขียนสคริปต์ที่จะทำงานในไดเรกทอรีที่กำหนดพร้อมกับไดเรกทอรีย่อยระดับเดียวหลายรายการ สคริปต์จะ cd ลงในแต่ละไดเรกทอรีย่อยดำเนินการคำสั่งในไฟล์ในไดเรกทอรีและ cd out เพื่อดำเนินการต่อไปยังไดเรกทอรีถัดไป วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?

3
iptables เปลี่ยนเส้นทางนอกคำขอไปยัง 127.0.0.1
ฉันมีบริการที่ทำงานบน 127.0.0.1 ด้วยพอร์ต 2222 ฉันต้องส่งต่อคำขอทั้งหมดไปที่ 192.168.2.2:2222 (นอก IP) จากซับเน็ตเท่านั้น 192.168.1.0/24 ถึง 127.0.0.1:2222 ฉันพยายามใช้สิ่งนี้ แต่มันไม่ทำงาน $ iptables -t nat -I PREROUTING -p tcp -d 192.168.1.0/24 --dport 2222 -j DNAT --to-destination 127.0.0.1:2222 ฉันจะทำให้เรื่องนี้ทำงานได้อย่างไร UPD: แก้ไขรูปแบบที่อยู่

5
การเปลี่ยนเส้นทางเนื้อหาของไฟล์ไปยังคำสั่ง“ echo”
ฉันมีไฟล์ชื่อที่มีเนื้อหาเป็นเพียงสตริงmy_file.txt Helloฉันจะเปลี่ยนเส้นทางเนื้อหาไปยังคำสั่งได้echoอย่างไร ฉันรู้ว่าฉันมีคำสั่งless, cat, more... echoแต่ฉันต้องทำมันด้วย ฉันลองสิ่งนี้: $ cat my_file.txt | echo และสิ่งนี้: $ echo < my_file.txt แต่ในทั้งสองกรณีจะปรากฏเพียงช่องว่างใน stdout ไม่ใช่เนื้อหาของ my_file.txt ฉันจะทำสิ่งนั้นได้อย่างไร

2
ฉันจะคัดลอกลิงก์สัญลักษณ์ได้อย่างไร
ฉันมีลิงก์สัญลักษณ์ไปยังไฟล์ในไดเรกทอรีเดียว ฉันต้องการลิงค์เดียวกันในไดเรกทอรีอื่น ฉันจะคัดลอกลิงก์สัญลักษณ์ได้อย่างไร ฉันพยายาม cp ลิงก์สัญลักษณ์ แต่สิ่งนี้คัดลอกไฟล์ที่ชี้ไปที่แทนที่จะเป็นลิงก์สัญลักษณ์เอง
41 centos  symlink  cp 

3
.bash_profile ไม่ได้มีที่มาเมื่อเรียกใช้ su
ฉันมีผู้พูดuser1ซึ่งมีการปรับเปลี่ยนของ.bash_profileหนึ่งของพวกเขาเปลี่ยนแปลงเช่น:PATH export PATH=/some/place:$PATHการเปลี่ยนแปลงนี้จะทำงานได้ดีถ้าฉันเข้าสู่ระบบเป็นหรือทำuser1su - user1 แต่ถ้าฉันพยายามที่จะเรียกใช้คำสั่งผ่านทางsuเป็นrootเช่น: su -c test.sh oracle (มีการทดสอบecho $PATH) ดูเหมือนว่าจะไม่มีการแก้ไขPATH(หรือรูPATHทสำหรับเรื่องนั้น) ฉันได้ลองคัดลอก.bash_profileไป.profileยังไม่มีประโยชน์ ทำไมสิ่งนี้จึงเกิดขึ้น

6
วิธีแทนที่หนึ่งอักขระด้วยอักขระอื่นในชื่อไฟล์ทั้งหมดของไดเรกทอรีปัจจุบันได้อย่างไร
คุณจะเปลี่ยนชื่อไฟล์ / โฟลเดอร์ย่อยทั้งหมดในโฟลเดอร์ปัจจุบันได้อย่างไร ให้บอกว่าฉันมีหลายไฟล์และส่วนย่อยที่มีช่องว่างและฉันต้องการแทนที่ช่องว่างทั้งหมดด้วยการขีดเส้นใต้ File 1 File 2 File 3 Dir 1 Dir 3 ควรเปลี่ยนชื่อเป็น File_1 File_2 File_3 Dir_1 Dir_3
41 linux  bash  rename 

3
จะหาไฟล์ที่ไม่ได้ติดตั้งแพคเกจ Debian ได้อย่างไร?
ในระบบ Debian (และอนุพันธ์): $ dpkg --search /bin/ls coreutils: /bin/ls นั่นคือไฟล์/bin/lsเป็นแพคเกจ Debian coreutilsชื่อ แต่จะทำงานได้ก็ต่อเมื่อมีการติดตั้งแพ็คเกจ เกิดอะไรขึ้นถ้ามันไม่ได้?

7
รับอักขระ X ตัวแรกจากคำสั่ง cat?
ฉันมีไฟล์ข้อความที่ฉันส่งออกไปยังตัวแปรในเชลล์สคริปต์ของฉัน ฉันต้องการแค่ 50 ตัวอักษรแรกเท่านั้น ฉันลองใช้แล้วcat ${filename} cut -c1-50แต่ได้รับมากกว่า 50 ตัวแรก? อาจเกิดจากการcutมองหาบรรทัด (ไม่แน่ใจ 100%) ในขณะที่ไฟล์ข้อความนี้อาจเป็นหนึ่งในสตริงยาว - มันขึ้นอยู่กับ มียูทิลิตี้ภายนอกที่ฉันสามารถใช้เพื่อรับอักขระ X ตัวแรกจากcatคำสั่งหรือไม่?
41 cat  cut 

6
วิธีการเมานท์ไฟล์ภาพโดยไม่ได้รับอนุญาตรูท?
ฉันสามารถเมานต์อิมเมจระบบไฟล์โดยไม่ได้รับอนุญาตรูทได้หรือไม่? โดยปกติฉันจะทำ: mount -o loop DISK_IMAGE FOLDER โดยไม่ใช้ sudo หรือตั้ง suid บนmountมีวิธีการที่เหมาะสมในการทำเช่นนี้? ฉันรู้ว่าฉันสามารถใช้fusermountกับภาพ ISO บางภาพได้ แต่มันค่อนข้าง จำกัด แม้สำหรับภาพ ISO ภาพบางภาพของฉันไม่สามารถติดตั้งได้ แต่ใช้mountงานได้เสมอ
41 mount 

5
แทนที่ตัวแปรสภาพแวดล้อมในไฟล์ด้วยค่าจริงหรือไม่?
มีวิธีง่าย ๆ ในการทดแทน / ประเมินตัวแปรสภาพแวดล้อมในไฟล์หรือไม่? อย่างสมมติว่าฉันมีไฟล์config.xmlที่มี: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ... ฯลฯ ฉันต้องการแทนที่$INSTANCE_IDในไฟล์ด้วยค่าของINSTANCE_IDตัวแปรสภาพแวดล้อม$SERVICE_NAMEด้วยค่าของSERVICE_NAMEenv var ฉันไม่ทราบว่าจะต้องใช้ vars รุ่นใด (หรือมากกว่านั้นฉันไม่ต้องการอัปเดตสคริปต์หากมีคนเพิ่มตัวแปรสภาพแวดล้อมใหม่ลงในไฟล์ปรับแต่ง) ขอบคุณ!

6
อุปกรณ์ไม่ว่างบน Umount
ฉันมักประสบปัญหาในการเพิ่มไดเรกทอรี: umount / mnt / dir umount: / mnt / dir: อุปกรณ์ไม่ว่าง มีสาเหตุหลายประการที่ทำให้อุปกรณ์ไม่ว่าง บางครั้งมีกระบวนการทำงานที่มีการล็อคเปิดในนั้นบางครั้งมีไดเรกทอรีอื่น ๆ /mnt/dirที่ติดตั้งอยู่ด้านบนของ คำถามของฉัน: ขั้นตอนในการตรวจสอบว่าเหตุใดจึงไม่สามารถถอนติดตั้งไดเรกทอรีได้ ฉันรู้ว่ามีหลายเหตุผล แต่ก็โอเคถ้าคุณอธิบายวิธีแก้ปัญหาเฉพาะ [แก้ไข] [X] กระบวนการที่กำลังทำงานอยู่บนโวลุ่มที่เมานต์ [X] ไดรฟ์ข้อมูลอื่นติดตั้งอยู่ด้านบนของไดรฟ์ข้อมูลที่เราต้องการยกเลิกการเมานท์ [_] NFS ล็อคไดรฟ์ที่เราต้องการยกเลิกการต่อเชื่อม
41 linux  unmounting 

3
วิธีบอก rsync เพื่อรักษาการประทับเวลาของไฟล์เมื่อแผนผังต้นทางมีจุดที่เมาท์
เกี่ยวข้องกับคำถามนี้ คำอธิบายปัญหาโดยย่อ: เมื่อทรีซอร์สมีจุดเมานต์อยู่ภายในดังนั้นการประทับเวลาของไฟล์ภายในจุดเมานต์เมื่อคัดลอกไปยังทรีเป้าหมายจะไม่ถูกรักษาไว้แม้จะใช้-aตัวเลือก คำอธิบายโดยละเอียด: สมมติว่านี่เป็นต้นไม้ต้นกำเนิด: /home/ /home/ | | me/ BACKUP/ | | +----+----------+ +----+-------+ | | | | | | data/ foo.txt boo.txt data/ foo.txt boo.txt | | a.txt a.txt ที่data/ด้านบนติดตั้งดิสก์ USB ภายนอก ทุกอย่างเป็นext4ระบบไฟล์ meทุกอย่างในแหล่งที่เป็นเจ้าของของฉัน BACKUP ยังเกิดขึ้นเป็นจุดเชื่อมต่อดิสก์ USB สำรอง หลังจากออกคำสั่งนี้rsync -av --delete /home/me/ /home/BACKUP/ฉันพบว่า/home/BACKUP/data/และทุกอย่างด้านล่างมีการประทับเวลาปัจจุบันราวกับว่าไฟล์เหล่านี้ถูกสร้างขึ้นในขณะนี้และไม่ได้ประทับเวลาในไฟล์ที่/home/me/data/มา ไฟล์และโฟลเดอร์อื่นข้างนอกdataมีการบันทึกเวลาที่ตกลง คำถามคือวิธีการใช้rsyncในการตั้งค่าข้างต้นเพื่อบอกให้รักษาเวลาประทับในไฟล์และโฟลเดอร์ทั้งหมดแม้ในไฟล์และโฟลเดอร์ในจุดที่เมาท์? ฉันใช้: >uname -a …
41 backup  rsync 

4
บอก SSH ให้ใช้พรอมต์กราฟิกสำหรับคีย์รหัสผ่าน
ฉันจะบังคับให้ SSH ร้องขอข้อความรหัสผ่านโดยใช้กราฟิกแสดงพร้อมท์ (เช่น GTK) แทนมาตรฐานที่ใช้เทอร์มินัลได้อย่างไร ฉันลองตั้งค่าSSH_ASKPASS=/usr/bin/ssh-askpassแต่ดูเหมือนว่าจะไม่มีผลกระทบ ปัญหาคือความจริงที่ว่าเอกสาร openssh พูดว่า หาก ssh ไม่มีเทอร์มินัลที่เชื่อมโยงกับมันแต่ตั้งค่า DISPLAY และ SSH_ASKPASS มันจะรันโปรแกรมที่ระบุโดย SSH_ASKPASS และเปิดหน้าต่าง X11 เพื่ออ่านวลีรหัสผ่าน SSH เปิดตัวจากบรรทัดคำสั่งในกรณีของฉันเป็นผลมาจากที่git push, จะมีขั้วที่เกี่ยวข้องกับมันดังนั้นSSH_ASKPASSตรรกะดูเหมือนว่าจะถูกละเว้น โปรดทราบว่าฉันไม่ได้อ้างถึงssh-addแต่เป็นการอ้างถึงssh ทั่วไปที่มีต่อโฮสต์ซึ่งมีคู่กุญแจอยู่ แต่ได้รับการคุ้มครองโดยข้อความรหัสผ่าน
40 ssh 

3
ทำไมคำสั่ง“ ls” แสดงสิทธิ์ของไฟล์ในพาร์ติชัน FAT32?
ฉันเชื่อว่าระบบไฟล์ FAT32 ไม่รองรับการอนุญาตไฟล์อย่างไรก็ตามเมื่อฉันทำls -lในพาร์ติชัน FAT32 ls -lแสดงว่าไฟล์มีสิทธิ์: -rw-r--r-- 1 john john 11 Mar 20 15:43 file1.txt -rw-r--r-- 1 john john 5 Mar 20 15:49 file2.txt ทำไมls -lแสดงสิทธิ์ของไฟล์?

2
ทำไมฉันไม่สามารถลบ '.' ไดเรกทอรี?
ฉันพยายามลบ '.' ไดเรกทอรี ฉันคิดว่าฉันสามารถลบไดเรกทอรีการทำงานของฉันได้โดยไม่ต้องไปที่ไดเรกทอรีหลัก ประเด็นคำถามของฉันคือการค้นหาข้อมูลเชิงลึกเกี่ยวกับวิธีที่ระบบ linux ทำงานเพื่อลบไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.