Unix & Linux

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

3
ตรวจสอบว่าไดเรกทอรีทำงาน Git สะอาดจากสคริปต์
ฉันมีสคริปต์ที่ทำงานrsyncกับไดเรกทอรีการทำงานของ Git เป็นปลายทาง ฉันต้องการให้สคริปต์มีพฤติกรรมที่แตกต่างกันไปขึ้นอยู่กับว่าไดเรกทอรีทำงานนั้นสะอาด (ไม่มีการเปลี่ยนแปลงที่จะกระทำ) หรือไม่ ตัวอย่างเช่นหากผลลัพธ์ของgit statusด้านล่างเป็นฉันต้องการสคริปต์เพื่อออก: git status Already up-to-date. # On branch master nothing to commit (working directory clean) Everything up-to-date หากไดเรกทอรีไม่สะอาดฉันก็อยากให้มันรันคำสั่งเพิ่มเติม ฉันจะตรวจสอบเอาต์พุตเช่นด้านบนในเชลล์สคริปต์ได้อย่างไร
82 shell-script  git 

3
ถ้าคุณ ^ Z จากกระบวนการมันจะ "หยุด" คุณจะสลับกลับมาได้อย่างไร
ฉันตั้งใจ "หยุด" telnetกระบวนการของฉัน ตอนนี้ฉันไม่สามารถ "เปลี่ยนกลับ" เป็นมันและฉันไม่สามารถฆ่ามันได้ (มันจะไม่ตอบสนองkill 92929โดยที่ 92929 เป็นกระบวนการ) ดังนั้นคำถามของฉันคือถ้าคุณมีกระบวนการหยุดในบรรทัดคำสั่ง linux อย่างไรคุณเปลี่ยนกลับเป็นมันหรือฆ่ามันโดยไม่ต้องหันไปkill -9?

6
ฉันจะตรวจสอบสัญญาณที่กระบวนการกำลังรับฟังได้อย่างไร?
ฉันจะตรวจสอบว่ากระบวนการที่กำลังทำงานอยู่จะจับสัญญาณหรือเพิกเฉยหรือบล็อกได้อย่างไร โดยหลักการแล้วฉันต้องการดูรายการสัญญาณหรืออย่างน้อยก็ไม่จำเป็นต้องส่งสัญญาณเพื่อตรวจสอบ
81 process  signals 

3
มันหมายความว่าอะไรที่จะมี $“ ดอลลาร์ - นำหน้าสตริง” ในสคริปต์?
ฉันเพิ่งเห็นสิ่งนี้ในสคริปต์ init: echo $"Stopping Apache" เครื่องหมายดอลลาร์คืออะไร การวิจัยของฉันจนถึงขณะนี้: ฉันพบสิ่งนี้ในคู่มือทุบตี: extquote หากตั้งค่า$'string'และการ$"string"อ้างอิงจะดำเนินการภายในส่วน${parameter}ขยายที่อยู่ในเครื่องหมายคำพูดคู่ ตัวเลือกนี้เปิดใช้งานโดยค่าเริ่มต้น ... แต่ฉันไม่พบความแตกต่างระหว่างสตริงที่มีและไม่มีส่วน$นำหน้า: $ echo "I am in $PWD" I am in /var/shared/home/southworth/qed $ echo $"I am in $PWD" I am in /var/shared/home/southworth/qed $ echo $"I am in ${PWD}" I am in /var/shared/home/southworth/qed $ echo "I am in ${PWD}" I …


3
สัญลักษณ์และตัวอักษรที่ยอดเยี่ยมในรูปแบบการทุบตี
ฉันวิ่งข้ามภาพหน้าจอของเทอร์มินัลของใครบางคน: มีรายการของตัวละครทั้งหมดที่สามารถใช้ได้ใน Bash prompt หรือใครบางคนสามารถรับตัวละครสำหรับดาวและลูกศรขวาได้ไหม?
81 bash  prompt  unicode 

4
เหตุใด `ในขณะที่ IFS = read` ใช้บ่อยๆแทนที่จะเป็น 'IFS =; ในขณะที่อ่าน ..
ดูเหมือนว่าการปฏิบัติตามปกติจะทำให้การตั้งค่าของ IFS อยู่นอกวงขณะที่เพื่อไม่ให้ซ้ำการตั้งค่าสำหรับการวนซ้ำแต่ละครั้ง ... นี่เป็นเพียงลักษณะ "ลิงดูลิงทำ" เป็นนิสัยเพราะมันเป็นลิงนี้จนกระทั่ง ฉันอ่านman readหรือว่าฉันขาดกับดักบางอย่าง (หรือโจ่งแจ้งชัดเจน) ที่นี่?

3
วิธีการคัดลอกเค้าโครงพาร์ติชันของดิสก์ทั้งหมดโดยใช้เครื่องมือมาตรฐาน
ฉันต้องการสำรองข้อมูลโครงร่างพาร์ติชันทั้งหมดของฮาร์ดไดรฟ์รวมถึงไดรฟ์แบบลอจิคัลเพื่อที่ฉันจะสามารถเรียกคืนโครงร่างนั้นไปยังดิสก์อื่น ฉันไม่ต้องการคัดลอกเนื้อหาของพาร์ติชั่นเพียงแค่เลย์เอาต์ สำหรับพาร์ติชันหลักและพาร์ติชันเสริมมันง่าย: dd if=/dev/sda of=partitiontable.bin bs=1 skip=446 count=64 # backup dd if=partitiontable.bin of=/dev/sda bs=1 seek=446 count=64 # restore แต่เมื่อพูดถึงเลย์เอาต์ของโลจิคัลพาร์ติชั่นฉันสงสัยว่ามีเครื่องมือมาตรฐานในรูปแบบที่คล้ายกันในการบันทึกเลย์เอาต์หรือไม่? ฉันเดาว่าปัญหาหลักคือการหาค่าชดเชยให้กับสถานที่ตั้งของ EBRs เพราะสิ่งนั้นddจะทำส่วนที่เหลือ โปรดทราบว่าฉันต้องสามารถนำทุกสิ่งกลับไปยังดิสก์เปล่า (อาจ) และจึงกู้คืนโครงร่างเดียวกัน การใช้เครื่องมือแบ่งพาร์ติชันเช่นfdiskหรือใช้ได้partedแต่ฉันต้องสามารถใช้งานอัตโนมัติ (การเขียนสคริปต์) และไม่ควรขึ้นอยู่กับแพ็คเกจ X ที่เกี่ยวข้อง - บรรทัดคำสั่งเท่านั้น แผนการสำรองข้อมูลของฉันทำด้วยตนเองในสคริปต์ไพ ธ อนตัวเล็ก ๆ โดยใช้โมดูล struct แต่ฉันหวังว่าจะมีวิธีที่ง่ายกว่า

4
เปิดหน้าต่างบนจอแสดงผล X ระยะไกล (ทำไม“ ไม่สามารถเปิดจอแสดงผล”)
กาลครั้งหนึ่ง, DISPLAY=:0.0 totem /path/to/movie.avi หลังจากเข้าสู่เดสก์ท็อปจากแล็ปท็อปของฉันจะทำให้โทเท็มเล่นmovie.aviบนเดสก์ท็อป ตอนนี้มันทำให้เกิดข้อผิดพลาด: No protocol specified Cannot open display: ฉันติดตั้ง Debian squeeze ใหม่อีกครั้งเมื่อมันเสถียรในคอมพิวเตอร์ทั้งสองเครื่องและฉันเดาว่าตัวเองยากจน config ฉันทำสิ่งนี้และไม่สามารถใช้ชีวิตของฉันเพื่อค้นหาสิ่งที่ฉันควรจะทำ (VLC มีอินเตอร์เฟส HTTP ที่ใช้งานได้ แต่ไม่สะดวกเท่ากับ ssh) ปัญหาเดียวกันเกิดขึ้นเมื่อฉันพยายามเรียกใช้จากงาน cron
81 ssh  x11  cron 

6
ฉันจะสร้างไดเร็กตอรี่ / dev / null ที่คล้ายกันได้อย่างไร?
ฉันต้องการสร้าง/dev/nullไดเรกทอรี "" (หรือไดเรกทอรี "blackhole") เพื่อให้ไฟล์ใด ๆ ที่เขียนลงไปนั้นไม่ได้ถูกเขียนขึ้นจริงๆ แต่เพิ่งหายไป ฉันมีแอปพลิเคชันที่เขียนไฟล์ชั่วคราวขนาดใหญ่ไปยังไดเรกทอรี ฉันไม่สามารถควบคุมชื่อไฟล์และฉันไม่สนใจเนื้อหาของไฟล์เหล่านี้จริงๆ ฉันสามารถเขียนสคริปต์ที่อุดตันไฟล์เหล่านี้เป็นระยะ แต่ไฟล์นั้นเขียนออกมาอย่างรวดเร็วและเติมดิสก์ของฉัน ฉันกำลังมองหาบางสิ่งที่ฉลาดกว่า ฉันต้องการให้แอปพลิเคชัน "คิด" ว่ามันกำลังเขียนไฟล์เหล่านี้ แต่ในความเป็นจริงการเขียนจะถูกยกเลิกไปที่ส่วนอื่น ๆ ดูหัวข้อนี้ที่เกี่ยวข้องเก่า

2
ทำไม '/' มีรายการ '.. '
นี่ทำให้ฉันงงอยู่เสมอ เหตุใดไดเรกทอรีรากจึงมีการอ้างอิงถึงไดเรกทอรีหลัก bob @ bob: / $ ls -a . สร้างบ้าน lib32 mnt. รอบต่อนาที sys vmlinuz .. cdrom initrd.img lib64 opt sbin tmp vmlinuz.old bin dev initrd.img.old เสีย + พบ proc selinux usr boot etc lib สื่อรูท srv var ฉันเข้าใจวิธีจัดการไดเรกทอรีในระบบแฟ้ม - แต่ละไดเรกทอรีมีตัวชี้ n + 2 ให้ตัวเอง (n = จำนวนไดเรกทอรีย่อยภายในไดเรกทอรี) หนึ่งสำหรับแต่ละไดเรกทอรีย่อยทันทีหนึ่งสำหรับผู้ปกครองของมันและหนึ่งสำหรับตัวเอง …

11
เครื่องมือ Linux สำหรับจัดการไฟล์เป็นชุดและดำเนินการกับชุดไฟล์
ไม่มีใครรู้เครื่องมือ linux ใด ๆ ที่ออกแบบมาโดยเฉพาะเพื่อรักษาไฟล์เป็นชุดและดำเนินการชุดพวกเขา? ชอบความแตกต่างทางแยก ฯลฯ ใช่ไหม

5
อะไรคือความแตกต่างระหว่าง eval และ exec?
evalและexecทั้งสองอยู่ในคำสั่งของ bash (1) ที่รันคำสั่ง ฉันเห็นด้วยexecมีตัวเลือกน้อย แต่นั่นคือความแตกต่างเท่านั้น? เกิดอะไรขึ้นกับบริบทของพวกเขา

2
ชื่อ> org.freedesktop.PolicyKit1 ไม่ได้ถูกจัดเตรียมโดยไฟล์. services ใด ๆ
เมื่อพยายามเรียกใช้system-config-usersจากบรรทัดคำสั่งฉันได้รับคำเตือนต่อไปนี้และเครื่องมือไม่เปิดขึ้นมา ฉันใช้ CentOS 7 กับ Mate 1.8.1 คำเตือน **: เกิดข้อผิดพลาดในการแจกแจงการกระทำ: GDBus.Error: org.freedesktop.DBus.Error.ServiceUnknown: ชื่อ org.freedesktop.PolicyKit1 ไม่ได้ระบุชื่อโดยไฟล์. services ใด ๆ ข้อผิดพลาดในการตรวจสอบการให้สิทธิ์ org.freedesktop.policykit.exec: GDBus.Error: org.freedesktop.DBus.Error.ServiceUnknown: ชื่อ org.freedesktop.PolicyKit1 ไม่ได้ถูกจัดเตรียมโดยไฟล์. services ใด ๆ polkit รายการยำ * Installed Packages polkit.x86_64 0.112-5.el7 @anaconda polkit-devel.x86_64 0.112-5.el7 @base polkit-docs.noarch 0.112-5.el7 @base polkit-gnome.x86_64 0.105-6.el7 @epel polkit-pkla-compat.x86_64 0.1-4.el7 @anaconda อะไรคือสิ่งที่ระบบของฉันหายไปทำให้เกิดข้อผิดพลาดนี้?
81 centos  users  polkit 


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