Unix & Linux

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

3
ยังไม่มีอินเทอร์เฟซเคอร์เนล Linux เพื่อรับวันที่สร้างไฟล์หรือไม่
เป็นเวลานานที่ Linux ไม่ได้ใส่ใจกับวันที่สร้างไฟล์เพราะไม่มีระบบไฟล์ที่ใช้กันทั่วไป อย่างไรก็ตามตอนนี้ระบบไฟล์ 2 ระบบที่ใช้กันทั่วไป (NTFS และ ext4) ทั้งวันที่สร้างไฟล์บันทึก statคำสั่ง แต่ยังคงเอาท์พุทBirth: -บนระบบไฟล์ ext4 แม้ว่าเราจะเห็น ext4 debugfs -R 'stat <inode_number>' /dev/file_deviceที่ได้เก็บไว้เป็นไฟล์สร้างวันที่ใช้ เมื่อฉันดูสาเหตุของเรื่องนี้ฉันเห็นว่ามีคนอื่นได้ยื่นรายงานข้อผิดพลาดไปแล้วเมื่อเร็ว ๆ นี้และลิงก์การตอบกลับผ่านไปยังปัญหาต้นน้ำที่ระบุว่า "ไม่มี Linux kernel อินเตอร์เฟสในปัจจุบันเพื่อรับข้อมูลนั้น [ไฟล์ วันที่สร้าง]". มันน่าทึ่งสำหรับฉันที่เห็นได้ชัดว่านี่ยังคงเป็นกรณีที่ผู้คนได้รับการร้องขอที่statแสดงข้อมูลนี้มานานหลายปี (และstatเอาท์พุทBirthเขตข้อมูลแม้ว่ามันจะไม่เห็นได้ชัดว่ามันยังไม่สนับสนุน! ดังนั้นยังคงเป็นความจริงหรือที่ว่าไม่มีเคอร์เนลอินเตอร์เฟส Linux ในปัจจุบันเพื่อรับวันที่สร้างไฟล์ มีแผนที่จะใช้สิ่งนี้ตลอดไปหรือไม่?
21 filesystems  stat 

1
ทำไม / etc / shadow ทำให้รหัสผ่านสั้นลงที่ฉันได้ตั้งค่าด้วยคำสั่ง: useradd -p
[root@P-dude dude]# useradd -p $6$Ic2PVlwi$2nf.IRWTMy0FHrPzaCjkahfu9IIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0 bwong20 [root@P-dude dude]# cat /etc/shadow | grep pswayze pswayze:nf.IRWTMy0FHrPzaCjkahfu9IIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0:16924:0:99999:7::: ฉันไม่แน่ใจว่าทำไมระบบลบอักขระสิบสี่ตัวแรกจากรหัสผ่านที่เข้ารหัสของฉัน รหัสผ่านใน/etc/shadowไฟล์ของฉันสั้นกว่าที่ฉันได้ให้ไว้เพื่อเป็นข้อโต้แย้งuseradd -p
21 shell  useradd 

6
เก็บ 50 บรรทัดสุดท้ายใน logfile อย่างไร
ฉันพยายามเก็บ 50 บรรทัดสุดท้ายในไฟล์ของฉันที่ฉันบันทึกอุณหภูมิทุกนาที ฉันใช้คำสั่งนี้: tail -n 50 /home/pi/Documents/test > /home/pi/Documents/test แต่ผลลัพธ์คือไฟล์ทดสอบที่ว่างเปล่า ฉันคิดว่ามันจะแสดงไฟล์ทดสอบ 50 บรรทัดสุดท้ายและใส่ลงในไฟล์ทดสอบ เมื่อฉันใช้คำสั่งนี้: tail -n 50 /home/pi/Documents/test > /home/pi/Documents/test2 มันทำงานได้ดี มี 50 บรรทัดในไฟล์ test2 ใครช่วยอธิบายฉันได้ว่ามีปัญหาอยู่ที่ไหน

4
ฉันจะดูไฟล์ทั้งหมดและรอให้มีการเพิ่มข้อมูลเพิ่มเติมลงในไฟล์นั้นได้อย่างไร
ฉันต้องการอ่านไฟล์ทั้งหมดและทำให้รอการป้อนข้อมูลเหมือนtail -f แต่แสดงไฟล์ที่สมบูรณ์ ความยาวของไฟล์นี้จะเปลี่ยนแปลงเสมอเนื่องจากเป็น.logไฟล์ ฉันจะทำอย่างไรถ้าฉันไม่ทราบความยาวของไฟล์

4
ทำไม apt-get ไม่ใช้ 100% (cpu หรือดิสก์หรือ net)
ทำไมapt-get ไม่ใช้ 100% ของ cpu ดิสก์หรือเครือข่าย - หรือแม้แต่ใกล้เคียงกับมัน? แม้ในระบบช้า (Raspberry Pi 2+) ฉันได้รับ CPU มากถึง 30% ฉันแค่คิดว่าอาจจะมีการควบคุมปริมาณที่ดุ้งดิ้งหรือมันควรจะทำอะไรบางอย่างให้มากที่สุดในขณะที่มันกำลังทำงาน ... หรือมันน่าจะทำได้เร็วกว่าที่คิด แก้ไข: ฉันแค่วัดอย่างคร่าวๆผ่าน cpu / disk / net monitor ในพาเนลของฉันและแอพ System Monitor ของ Ubuntu MATE โปรดอธิบายว่าทำไมฉันถึงผิด :-) อัปเดต: ฉันเข้าใจว่าapt-getต้องดึงข้อมูลอัปเดต (และอาจถูก จำกัด โดยแบนด์วิดธ์อัปสตรีม / ผู้ให้บริการ) แต่เมื่อมีการ "เปิดออก" และอื่น ๆ การใช้งาน CPU ควรจะเพิ่มขึ้นอย่างน้อย(ถ้าไม่ใช่ max …
21 apt  cpu-usage 

4
ฉันจะทำให้“ ls” แสดงดอทไฟล์ได้อย่างไรในขณะที่ไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่?
สร้างไฟล์ต่อไปนี้ในไดเรกทอรี $ touch .a .b a b A B 你好嗎 lsคำสั่งซื้อเริ่มต้นของฉันเพิกเฉยต่อการมีจุดนำอยู่รวมกับไฟล์อื่น ๆ $ ls -Al total 0 -rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 a -rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .a -rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 A -rw-r--r-- 1 sparhawk sparhawk 0 Jun …
21 ls  locale 

4
วิธีการติดตั้ง GCC 5 บนเดเบียนเจสซี 8.1
ฉันลองวิธีแก้ไขปัญหามากมายเพื่อติดตั้งอัปเดตสำหรับคอมไพเลอร์ gcc ของฉันบนเซิร์ฟเวอร์เดเบียน ไม่มีใครทำงานเลย ฉันต้องการการอัปเดตคอมไพเลอร์เพื่อใช้คุณสมบัติใหม่ของ c ++ 11 เนื่องจากนี่เป็น libcxx11 ABI ที่เสถียรและการสนับสนุนที่เสถียรสำหรับ C ++ 11 (ดูที่นี่ ) รับเฉพาะรุ่น `GLIBCXX_3.4.21 'ซึ่งไม่รวมอยู่ในคอมไพเลอร์ปัจจุบันของฉัน gcc เวอร์ชัน 4.9.2 (Debian 4.9.2-10) ตัวชี้วิธีแก้ปัญหาบางอย่างจะมีประโยชน์ ขอบคุณล่วงหน้า. ลิงก์ไปยังฟอรัมที่เกี่ยวข้องกับปัญหาของฉันซึ่งฉันได้ลองไปแล้ว: 1 2 3 (ไม่ใช่โซลูชันที่เกี่ยวข้องทั้งหมดสำหรับอูบุนตู แต่ฉันยังหา gcc-5 ในเซิร์ฟเวอร์ ftp ของ debian ไม่ได้)
21 debian  gcc  c++  g++ 

5
วิธีรันคำสั่งโดยเฉลี่ย 5 ครั้งต่อวินาที
ฉันมีสคริปต์บรรทัดคำสั่งที่ดำเนินการเรียก API และอัปเดตฐานข้อมูลพร้อมผลลัพธ์ ฉันมีขีด จำกัด การเรียก API 5 ครั้งต่อวินาทีกับผู้ให้บริการ API สคริปต์ใช้เวลาดำเนินการมากกว่า 0.2 วินาที หากฉันรันคำสั่งตามลำดับคำสั่งนั้นจะทำงานไม่เร็วพอและฉันจะทำการเรียก API 1 หรือ 2 ครั้งต่อวินาทีเท่านั้น หากฉันรันคำสั่งตามลำดับ แต่พร้อมกันจากหลายเทอร์มินัลฉันอาจเกินขีด จำกัด การโทร 5 ครั้ง / วินาที หากมีวิธีการจัดทำชุดข้อความเพื่อให้สคริปต์บรรทัดคำสั่งของฉันทำงานเกือบ 5 ครั้งต่อวินาที ตัวอย่างเช่นสิ่งที่จะรันด้วย 5 หรือ 10 เธรดและไม่มีเธรดใดที่จะเรียกใช้งานสคริปต์หากเธรดก่อนหน้าได้ดำเนินการน้อยกว่า 200ms ที่ผ่านมา

2
เป็นไปได้หรือไม่ที่จะบันทึกเนื้อหาคอนโซลเสมือนของ Linux และ scrollback ลงในไฟล์?
ฉันมีสคริปต์ที่ทำงานระยะยาวและฉันลืมที่จะเปลี่ยนเส้นทางผลลัพธ์ไปยังไฟล์ ฉันเห็นมันในเทอร์มินัล แต่ฉันสามารถบันทึกลงในไฟล์ได้หรือไม่? ฉันไม่ได้ขอteeเปลี่ยนเส้นทางการส่งออก (เช่น>, >>) ฯลฯ - คำสั่งได้เริ่มต้นและผมก็ไม่สามารถทำงานได้อีกครั้ง ฉันต้องบันทึกผลลัพธ์ที่สร้างไว้แล้ว ถ้าฉันเห็นมันบนจอแสดงผลของฉันมันจะถูกเก็บไว้ / แคช / บัฟเฟอร์ ที่ไหน? screendump, /dev/vcsXและอื่น ๆ ช่วยให้ฉันเพื่อบันทึกหน้าจอเท่านั้นที่ผ่านมาในการส่งออกมินัล (ปัจจุบันไม่ได้! - เลื่อนขั้วไม่ได้ช่วย) นี่คือคอนโซลเสมือน Linux ไม่ใช่เทอร์มินัลอีมูเลเตอร์ X11 เช่นเดียวgnome-terminalกับเมาส์และสินค้าอื่น ๆ
21 linux  console 

2
การป้องกันการเชื่อมต่อ NFS ที่เสียหายจากการแช่แข็งระบบไคลเอ็นต์
เรามีการแบ่งปัน NFS 4 แบ่งปันปริมาณระหว่างเซิร์ฟเวอร์จำนวนหนึ่ง (เซิร์ฟเวอร์ NFS และลูกค้า Debian 8 ทั้งหมด) เรามีปัญหาบางอย่างเมื่อเร็ว ๆ นี้ที่เครือข่ายจะหยุดชะงักระบบไคลเอ็นต์ ตัวเลือก NFS ของเราได้น้อยที่สุดเพียงrw(และอื่น ๆ เริ่มต้นhard, fgฯลฯ ) ตอนนี้ฉันกำลังทดลองกับตัวเลือกเหล่านี้ แต่ฉันไม่ได้รับพฤติกรรมที่ฉันคาดหวัง: rw,soft,bg,retrans=6,timeo=150 (ฉันได้เพิ่มการส่งสัญญาณใหม่เพื่อชดเชยความเสี่ยงอ่อน ๆ ) ขั้นตอนที่ฉันกำลังจะทดสอบคือ: เครื่องบูต cd ไปยัง /mnt/mountpoint ตรวจสอบการเชื่อมต่อ NFS ok cd / ฆ่าเครือข่าย ifdown eth0 cd ไปยัง /mnt/mountpoint ls ณ จุดนี้บรรทัดคำสั่งค้างและฉันไม่สามารถแทรกแซงได้ หลังจากเวลาผ่านไปข้อความ 'nfs: server [servername] ไม่ตอบสนองหมดเวลาใช้งาน' …
21 nfs 

1
/ dev / tcp ไม่พบ
เมื่อฉันพยายามเรียกใช้คำสั่งต่อไปนี้: echo -e "GET / HTTP/1.1\n\n" | /dev/tcp/74.125.225.19/80 ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: bash: /dev/tcp/74.125.225.19/80: No such file or directory คำสั่งต่อไปนี้ทำงานได้อย่างสมบูรณ์ดังนั้นปัญหาเกี่ยวข้องกับวิธีที่ฉันใช้/dev/tcp: echo -e "GET / HTTP/1.1\n\n" | nc 74.125.225.19 80 ฉันอยู่ใน Ubuntu 13.04 ดังนั้นความสามารถควรอยู่ในระบบของฉัน ผมทำอะไรผิดหรือเปล่า? กฎการใช้งาน/dev/tcpอย่างเหมาะสมมีอะไรบ้าง
21 bash  tcp 

2
มีวิธี POSIX ในการตั้งค่าอาร์กิวเมนต์ zeroth ของแอปพลิเคชันเป้าหมายหรือไม่?
ในbashคุณสามารถใช้exec -aและzshคุณสามารถผลัดกันยังตั้งARGV0ในการรันโปรแกรมที่มีการโต้แย้งข้อที่ศูนย์บาง แต่มียังเป็นวิธีที่ POSIX ของการทำเพื่อ? ตามที่แนะนำในความคิดเห็นนี้คุณสามารถสร้างลิงก์สัญลักษณ์ (ชั่วคราว) เพื่อให้ได้สิ่งนี้ แต่วิธีนี้ฉันไม่สามารถตั้งค่าอาร์กิวเมนต์ zeroth ใหม่ให้เป็นค่าใดก็ได้ตามอำเภอใจเช่นคำสั่งที่มีเส้นทางแน่นอน มีวิธีอื่นอีกไหม?

2
สามารถ grep | crontab ทำลายงานทั้งหมดหรือไม่
grep | crontabวิ่งเพื่อนร่วมงานของฉัน หลังจากนั้นงานทั้งหมดก็หายไป crontab -lดูเหมือนว่าเขากำลังพยายามที่จะเรียกใช้ แล้วเกิดอะไรขึ้นหลังจากรันคำสั่งgrep | crontab? มีใครอธิบายได้บ้าง
21 cron 

5
รวมสิ่งที่ดีที่สุดของ 'du' และ 'ต้นไม้'
ฉันสงสัยว่าถ้าเราสามารถรวมความซื่อสัตย์ของ 'du' กับการจัดรูปแบบเยื้องของ 'ต้นไม้' ถ้าฉันต้องการรายการขนาดของไดเรกทอรี: du -hx -d2 ... แสดงสองระดับที่ลึกและสรุปขนาดทั้งหมดนั้นตรงไปตรงมา แต่ไม่มีส่วนของการเยื้อง ในทางกลับกัน: tree --du -shaC -L 2 ... เยื้องและ colorizes อย่างดี แต่ขนาดรายงานเป็นเรื่องโกหก ในการรับขนาดจริงต้อง: tree --du -shaC ... ซึ่งจะบอกว่าคุณจะได้ขนาดที่แท้จริงถ้าคุณให้ 'tree' แสดงโครงสร้างไดเรกทอรีทั้งหมด ฉันต้องการที่จะสามารถสรุปขนาดที่ถูกต้องได้เสมอโดยไม่คำนึงถึงจำนวนระดับย่อยที่ฉันต้องการแสดงจริง ฉันมักจะทำสิ่งนี้: tree -du -shaC | grep "\[01;34m" ... ที่ตัดทุกอย่างยกเว้นไดเรกทอรีและเยื้องมันอย่างดี ... แต่ไม่มีวิธีที่ง่ายในการ จำกัด การแสดงผลให้อยู่ในระดับจำนวนที่กำหนด มีวิธีหรือไม่? บางทีฉันอาจพลาดสวิตช์ที่ถูกต้อง ...
21 disk-usage  tree 

3
จะติดตั้ง GRUB อย่างถูกต้องบน soft RAID 1 ได้อย่างไร?
ในการตั้งค่าของฉันฉันมีดิสก์สองแผ่นที่ฟอร์แมตด้วยวิธีดังต่อไปนี้: (GPT) 1) 1MB BIOS_BOOT 2) 300MB LINUX_RAID 3) * LINUX_RAID พาร์ติชันสำหรับเริ่มระบบถูกแมปใน / dev / md0 รูทใน / dev / md1 md0 ถูกจัดรูปแบบด้วย ext2, md1 ด้วย XFS (ฉันเข้าใจว่าการจัดรูปแบบต้องทำบนอุปกรณ์ md ไม่ใช่ใน sd - โปรดบอกฉันว่านี่เป็นสิ่งที่ผิดหรือเปล่า) ฉันจะตั้งค่า GRUB อย่างถูกต้องได้อย่างไรเพื่อให้หากไดรฟ์ตัวหนึ่งล้มเหลวตัวอื่นจะยังคงบู๊ตอยู่ และด้วยการต่อเติมไดรฟ์ที่เปลี่ยนทดแทนจะรวม GRUB ด้วยหรือไม่ ถ้าเป็นไปได้แน่นอน

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