Unix & Linux

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

3
เหตุใดพีซีของฉันค้างในขณะที่ฉันกำลังคัดลอกไฟล์ไปยัง pendrive
ฉันมีสถานการณ์แปลก ๆ ที่นี่ พีซีของฉันทำงานได้ดีอย่างน้อยในกรณีส่วนใหญ่ แต่มีสิ่งหนึ่งที่ฉันไม่สามารถจัดการได้ เมื่อฉันพยายามที่จะคัดลอกไฟล์จาก pendrive ของฉันทุกอย่างก็โอเค - ฉันได้ 16-19M / s มันใช้งานได้ดี แต่เมื่อฉันพยายามคัดลอกบางสิ่งไปยัง pendrive เดียวกันพีซีของฉันค้าง ตัวชี้เมาส์หยุดเคลื่อนไหวเป็นเวลาหนึ่งวินาทีหรือสองวินาทีจากนั้นมันขยับเล็กน้อยและจะหยุดอีกครั้ง ตัวอย่างเช่นเมื่อเล่นใน Amarok เสียงจะทำหน้าที่เหมือนปืนกล ความเร็วกระโดดจาก 500K / s เป็น 15M / s เฉลี่ย 8M / s สิ่งนี้เกิดขึ้นเมื่อฉันกำลังคัดลอกบางสิ่งไปยังเพนไดรฟ เมื่อกระบวนการคัดลอกเสร็จสิ้นทุกอย่างจะกลับสู่ปกติ ฉันลองทุกอย่าง - pendrive อื่น ๆ , พอร์ต USB ที่แตกต่างกันบนแผงด้านหน้าหรือพอร์ตเหล่านั้นจากด้านหลัง, ฉันยังเปลี่ยนพิน USB บนแผงวงจรหลัก (แผงด้านหน้า), แต่ไม่ว่าฉันจะใส่ USB …

2
สัญลักษณ์ที่แสดงโดย ls -F หมายถึงอะไร
ฉันสังเกตเห็นว่าถ้าฉันรัน ls -F ในไดเรกทอรีบางรายการมี * หรือ @ ตามหลังพวกเขา spuder@ubuntu:~$ ls -F /sbin acpi_available* getpcaps* lvmconf* ntfscp* start-stop-daemon* agetty* getty* lvmdiskscan@ ntfslabel* status@ alsa* halt@ lvmdump* ntfsresize* stop@ alsactl* hdparm* lvmsadc@ spuder@ubuntu:~$ ls -F ~ daq-0.6.1/ examples.desktop noname-cache.lib snort-2.9.1/ Templates/ Desktop/ jpgraph-1.27.1/ noname.sch snortfiles/ Ubuntu One/ Documents/ อ้างอิงจาก ls man pages …
61 ls 

6
ความแตกต่างระหว่างปริมาณพาร์ติชันและไดรฟ์
คำเหล่านี้มีความหมายว่าอะไรกันแน่? กั้น ปริมาณ ขับรถ ใน Windows หนึ่งอาจพูดไดรฟ์ C: หรือพาร์ทิชัน C: บน Linux ฉันไม่แน่ใจว่าควรใช้พาร์ติชันอะไรเพราะไม่มีชื่อ
61 hard-disk 

1
เปลี่ยนเส้นทางทั้ง stderr และ stdout เป็น / dev / null ด้วย / bin / sh
ฉันได้ลองทุกวิธีเพื่อเปลี่ยนเส้นทางทั้งไปstdoutและไม่ประสบความสำเร็จ ผมมีเกือบทั้งทุบตีชีวิตการทำงานของฉันที่ฉันไม่เคยมีปัญหานี้ด้วย แต่เป็นครั้งแรกใน BSD ฉันติดอยู่กับstderr/dev/null/bin/sh สิ่งที่ฉันได้ลอง: if ls ./python* 2> /dev/null; then echo found Python fi ... ซึ่งใช้งานได้; ถ้า Python ไม่มีอยู่มันจะปิดข้อความแสดงข้อผิดพลาดจาก ls อย่างไรก็ตามถ้าpython.tgzมีอยู่บรรทัดที่มีเอาต์พุตซึ่งมีลักษณะดังนี้: # ./test.sh ./python-2.7.3p1.tgz ฉันได้ลองแล้ว: if ls ./python* &> /dev/null; then echo found Python fi และ if ls ./python* 2>1 > /dev/null; then echo found Python fi และ …

11
มีวิธีที่จะทำให้ "mv" ล้มเหลวอย่างเงียบ ๆ หรือไม่?
คำสั่งเช่นmv foo* ~/bar/ผลิตข้อความนี้ในการ stderr foo*ถ้ามีไฟล์ที่ตรงกับ mv: cannot stat `foo*': No such file or directory อย่างไรก็ตามในสคริปต์ฉันกำลังทำงานในกรณีนั้นจะไม่เป็นไรและฉันต้องการละเว้นข้อความนั้นจากบันทึกของเรา มีวิธีใดที่ดีที่จะบอกmvให้เงียบแม้ว่าจะไม่มีสิ่งใดเคลื่อนไหว
61 bash  mv 

7
จะทำให้ kernel ตกใจด้วยคำสั่งเดียวได้อย่างไร
เป็นไปได้หรือไม่ที่จะทำให้เคอร์เนลตกใจด้วยคำสั่งบรรทัดเดียว? อะไรจะเป็นคำสั่งที่ตรงไปตรงมาที่สุดสำหรับผู้ใช้ sudoing และสิ่งที่จะเป็นสำหรับผู้ใช้ปกติถ้ามี? สถานการณ์ที่แนะนำให้ดาวน์โหลดบางสิ่งบางอย่างเป็นส่วนหนึ่งของคำสั่งจะไม่ถูกนับ

6
เคยมีเหตุผลที่จะใช้ SCP แทน rsync หรือไม่?
มีเหตุผลที่จะใช้scpแทนrsyncหรือไม่? ฉันไม่เห็นเหตุผลที่จะใช้scpอีกครั้งrsyncทำทุกอย่างที่scpทำได้ด้วยความปลอดภัยมากขึ้น (สามารถรักษา symlink ได้ ฯลฯ )
61 ssh  rsync  scp 

3
ความแตกต่างระหว่าง sed บน Mac OSX และ sed“ มาตรฐาน” อื่น ๆ หรือไม่?
ฉันมีปัญหาบางอย่างในการใช้คำตอบที่ให้ไว้ในเว็บไซต์นี้สำหรับคำถามนี้เกี่ยวกับคำสั่ง sed เพื่อแทนที่บรรทัดว่างด้วยเนื้อหาอีกสองบรรทัดและมันก็เกิดขึ้นถ้าคำสั่ง sed บน Mac OS (10.6.7 สำหรับฉัน ) แตกต่างกัน ฉันไม่คิดว่ามันเป็น แต่สงสัยว่าคนอื่น ๆ ในเว็บไซต์นี้คิดแตกต่างกันหรือไม่
61 osx  sed  standard 

2
ต้องการคำอธิบายเกี่ยวกับขนาดชุดที่อยู่อาศัย / ขนาดเสมือน
ฉันพบว่าpidstatจะเป็นเครื่องมือที่ดีในการตรวจสอบกระบวนการ ฉันต้องการคำนวณการใช้หน่วยความจำเฉลี่ยของกระบวนการเฉพาะ นี่คือตัวอย่างผลลัพธ์: 02:34:36 PM PID minflt/s majflt/s VSZ RSS %MEM Command 02:34:37 PM 7276 2.00 0.00 349212 210176 7.14 scalpel (นี่เป็นส่วนหนึ่งของผลลัพธ์จากpidstat -r -p 7276) ฉันควรใช้ข้อมูล Resident Set Size (RSS) หรือ Virtual Size (VSZ) เพื่อคำนวณปริมาณการใช้หน่วยความจำเฉลี่ยหรือไม่ ฉันได้อ่านบางสิ่งเกี่ยวกับ Wikipedia และในกระดานสนทนา แต่ฉันไม่แน่ใจว่าจะเข้าใจความแตกต่างอย่างสมบูรณ์ นอกจากนี้ดูเหมือนว่าไม่มีใครเชื่อถือได้ ดังนั้นฉันจะตรวจสอบกระบวนการเพื่อให้ได้ใช้หน่วยความจำได้อย่างไร ความช่วยเหลือใด ๆ ในเรื่องนี้จะเป็นประโยชน์
61 linux  process  memory 

7
วิธีที่ดีที่สุดในการลบไบต์จากจุดเริ่มต้นของไฟล์?
วันนี้ฉันต้องลบ 1131 ไบต์แรกออกจากไฟล์ข้อความ / ไบนารีผสม 800MB ซึ่งเป็นการถ่ายโอนข้อมูลการโค่นล้มที่กรองแล้วที่ฉันกำลังแฮกสำหรับพื้นที่เก็บข้อมูลใหม่ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? เริ่มต้นด้วยฉันพยายาม dd bs=1 skip=1131 if=filtered.dump of=trimmed.dump แต่หลังจากข้ามการคัดลอกนี้ส่วนที่เหลือของไฟล์ไบต์ในเวลาคือช้ามาก ในตอนท้ายฉันออกกำลังกายฉันต้องการ 405 ไบต์เพื่อปัดเศษนี้ขึ้นไปสามบล็อกจาก 512 ซึ่งฉันสามารถข้าม dd if=/dev/zero of=405zeros bs=1 count=405 cat 405zeros filtered.dump | dd bs=512 skip=3 of=trimmed.dump สิ่งใดเสร็จสมบูรณ์อย่างรวดเร็ว แต่ต้องมีวิธีที่ง่ายกว่า / ดีกว่า มีเครื่องมืออื่นที่ฉันลืมไปหรือไม่? ขอบคุณ!
61 dd 

9
วิธีการวัดเวลาของการดำเนินการของโปรแกรมและเก็บไว้ในตัวแปร
เพื่อค้นหาว่าการดำเนินการบางอย่างภายในสคริปต์ Bash (v4 +) ใช้เวลานานเท่าใดฉันต้องการแยกเอาต์พุตจากtimeคำสั่ง "แยก" และ (ท้ายที่สุด) จับภาพภายในตัวแปร Bash ( let VARNAME=...) ตอนนี้ฉันกำลังใช้time -f '%e' ...(หรือมากกว่าcommand time -f '%e' ...เพราะในตัวของ Bash) แต่เนื่องจากฉันเปลี่ยนเส้นทางเอาต์พุตของคำสั่งที่ดำเนินการไปtimeแล้ว โดยทั่วไปปัญหาที่นี่คือที่จะแยกการส่งออกของtimeจากผลลัพธ์ของคำสั่งประหารชีวิต (s) สิ่งที่ฉันต้องการคือฟังก์ชั่นการนับจำนวนเวลาเป็นวินาที (จำนวนเต็ม) ระหว่างการเริ่มต้นคำสั่งและความสมบูรณ์ มันไม่จำเป็นต้องเป็นtimeคำสั่งหรือในตัวที่เกี่ยวข้อง แก้ไข:เนื่องจากคำตอบที่มีประโยชน์สองคำตอบด้านล่างนี้ฉันต้องการเพิ่มคำอธิบายสองคำ ฉันไม่ต้องการทิ้งเอาต์พุตของคำสั่งที่เรียกใช้แล้ว แต่มันจะไม่สำคัญว่ามันจะจบลงด้วย stdout หรือ stderr ฉันต้องการวิธีการโดยตรงมากกว่าหนึ่งทางอ้อม (เช่นการจับเอาท์พุทโดยตรงแทนที่จะเก็บไว้ในไฟล์ระดับกลาง) การแก้ปัญหาโดยใช้dateมาไกลถึงสิ่งที่ฉันต้องการ

1
ประวัติคำสั่งใน Zsh
Zsh ติดตามประวัติคำสั่งอย่างไร ผมเห็นสองไฟล์ในไดเรกทอรีบ้านของฉัน: และ.zhistory .zsh_historyความแตกต่างระหว่างพวกเขาคืออะไร? ไฟล์ดูเหมือนจะมีประวัติทั้งหมดของฉัน Zsh จะเพิ่มบรรทัดต่อท้ายให้กับหนึ่งในนั้นตลอดไปหรือไม่? นั่นจะทำให้การค้นหาประวัติช้าเกินไปหรือไม่ ฉันสามารถสร้างลิงก์สัญลักษณ์ไฟล์เหล่านี้ไปยังตำแหน่งอื่นได้อย่างปลอดภัยหรือไม่? (เช่นที่เก็บ git เพื่อติดตามการเปลี่ยนแปลงประวัติ)

1
คำสั่งนี้ถูกกฎหมายอย่างไร “> file1 <file2 cat”
สมมติว่าfile2มีอยู่แล้วคำสั่ง &gt; file1 &lt; file2 cat ดูเหมือนจะคัดลอกเนื้อหาของการfile2file1 แต่ฉันไม่เข้าใจโครงสร้างนี้ ฉันเข้าใจว่า "ไม่มีสิ่งใด" กำลังถูกนำไปสู่file1(สร้างหรือลบเนื้อหา) แล้วเนื้อหาของจะถูกนำไปยังfile2file1 เป็นเพราะเหตุใดcatหลังจากที่file2? จะทราบได้อย่างไรcat file2ว่าตัวถูกดำเนินการไม่ได้อยู่ในลำดับที่ถูกต้อง?

2
บันทึกเอาต์พุตของเทอร์มินัลทั้งหมดเป็นไฟล์
มีวิธีการบันทึกผลลัพธ์ของเทอร์มินัลทั้งหมดไปยังไฟล์ด้วยคำสั่งหรือไม่? ฉันไม่ได้พูดถึงการเปลี่ยนเส้นทาง command &gt; file.txt ไม่ใช่ประวัติhistory &gt; file.txtฉันต้องการข้อความเทอร์มินัลแบบเต็ม ไม่ได้อยู่กับปุ่มลัด! สิ่งที่ต้องการ terminal_text &gt; file.txt
61 terminal  output 

1
มีหน้าจอในรายการ แต่ "ไม่มีหน้าจอที่จะดำเนินการต่อ"
เมื่อฉันพิมพ์screen -rฉันคาดว่าจะเห็น: รายการของหน้าจอที่จะดำเนินการต่อหรือข้อความ "ไม่มีหน้าจอที่จะดำเนินการต่อ" วันนี้ฉันเห็นว่ามีหนึ่งหน้าจอ แต่ฉันยังได้รับข้อความว่าไม่มีหน้าจอที่จะดำเนินการต่อ: [root@server chiliNUT]# screen -r There is a screen on: 27863.pts-1.server (Attached) There is no screen to be resumed. [root@server chiliNUT]# screen -rx 27863 [detached] [root@server chiliNUT]# screen -r There is a screen on: 27863.pts-1.server (Attached) There is no screen to be resumed. เหตุใดจึงรายงานว่ามีการแนบหน้าจอ ฉันเพิ่งแยกมันออกมาในบรรทัดด้านบน …
61 gnu-screen 

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