Unix & Linux

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

3
วิธีการจัดเรียงไฟล์ขนาดใหญ่?
ฉันมีพีซีที่ใช้ Intel (R) Pentium (R) CPU G640 @ 2.80 GHz และ RAM 8 GB ฉันใช้ Scientific Linux 6.5 บนระบบไฟล์ EXT3 ในการตั้งค่านี้วิธีที่เร็วที่สุดที่ฉันสามารถทำได้sort -uบนไฟล์ 200 กิกะไบต์คืออะไร? ฉันควรแบ่งไฟล์ออกเป็นไฟล์ที่เล็กกว่า (เล็กกว่า 8 GB) sort -uรวมเข้าด้วยกันแล้วแยกเป็นขนาดอื่นsort -uอีกครั้งหรือไม่ หรือมีสคริปต์การเรียงลำดับโปรแกรมที่สามารถจัดการไฟล์ขนาดใหญ่นี้ด้วย RAM ที่มีจำนวน จำกัด ของฉันได้หรือไม่
35 sort 

3
เหตุใดการเมานท์จึงไม่เคารพตัวเลือกแบบอ่านอย่างเดียวสำหรับการเชื่อมการเชื่อมโยง?
บนระบบ Arch Linux ของฉัน (Linux Kernel 3.14.2) การเชื่อมต่อผูกไม่เคารพตัวเลือกอ่านอย่างเดียว # mkdir test # mount --bind -o ro test/ /mnt # touch /mnt/foo /mnt/fooสร้างไฟล์ รายการที่เกี่ยวข้องใน/proc/mountsคือ /dev/sda2 /mnt ext4 rw,noatime,data=ordered 0 0 ตัวเลือกการติดตั้งไม่ตรงกับตัวเลือกที่ร้องขอของฉัน แต่ทำตรงทั้งพฤติกรรมการอ่าน / เขียนของผูกติดและตัวเลือกที่ใช้ในการติดเดิม/dev/sda2บน/ /dev/sda2 / ext4 rw,noatime,data=ordered 0 0 อย่างไรก็ตามถ้าฉันเมานต์ใหม่ก็จะเคารพตัวเลือกการอ่านอย่างเดียว # mount --bind -o remount,ro test/ /mnt # touch /mnt/bar …

3
สร้างภาพ iso จากโฟลเดอร์ผ่านคำสั่งเทอร์มินัล
วิธีการสร้างอิมเมจ iso จากโฟลเดอร์หรือไฟล์เดียวผ่านคำสั่งเทอร์มินัล ขณะนี้ฉันกำลังทำสิ่งนี้ผ่านBraseros GUI แต่ฉันต้องการทำด้วยเชลล์สคริปต์
35 iso 

8
วิธี cd โดยอัตโนมัติหลังจาก git clone?
ฉันต้องการcdไดเรกทอรีที่สร้างขึ้นโดยcloneคำสั่งโดยอัตโนมัติหลังจากที่ฉันทำgit cloneบางสิ่งบางอย่าง สำคัญ:ฉันไม่ต้องการแก้ไขไวยากรณ์สำหรับคำสั่ง (เช่นใช้นามแฝง / ฟังก์ชั่น) เพราะมันจะทำลาย zsh-completions ที่ฉันได้รับโดยอัตโนมัติจากPretzoโครงการ แก้ไข : เหตุผลที่ฉันไม่ได้เลือกคำตอบที่ถูกต้องเป็นเพราะไม่มีคำตอบที่ได้ปฏิบัติตามเงื่อนไขข้างต้น ฉันใช้ ZSH แต่คำตอบในเชลล์อื่น ๆ ก็เป็นที่ยอมรับเช่นกัน
35 shell  zsh 

6
ฉันจะตั้งค่าความไวของเมาส์ไม่ใช่แค่การเร่งความเร็วของเมาส์ได้อย่างไร
ฉันไม่พบสภาพแวดล้อมเดสก์ท็อปเดียวที่รองรับการตั้งค่าทั้งการเร่งความเร็วเมาส์และความไวของเมาส์ ฉันไม่ต้องการเร่งความเร็วของเมาส์ แต่ต้องการเพิ่มความเร็วของเมาส์ นั่นหมายความว่าถ้าฉันเลื่อนเมาส์ในระยะทางเดียวกันตัวชี้จะเคลื่อนที่ในระยะทางเดียวกันทุกครั้งไม่ว่าฉันจะขยับเมาส์เร็วแค่ไหนก็ตาม KDE จะให้ฉันตั้งค่าการเร่งความเร็วของเมาส์เป็น 1x แต่เลื่อนเมาส์ช้าเกินไปและฉันไม่สามารถหาวิธีเพิ่มความเร็วได้ ฉันยินดีที่จะยอมรับโซลูชัน CLI แต่ฉันสามารถxinputเปลี่ยนการเร่งความเร็วได้เท่านั้น ฉันจำไม่ได้ว่ามีโชคมากxsetเช่นกัน
35 x11  kde  mouse  xinput 

3
ฉันจะทำให้ไฟล์ไม่สามารถแก้ไขได้อย่างไร
ในขณะที่เข้าสู่ระบบฉันสามารถทำสิ่งต่อไปนี้: mkdir foo touch foo/bar chmod 400 foo/bar chmod 500 foo จากนั้นฉันสามารถเปิดเป็นกลุ่ม (ไม่เป็นroot) แก้ไขbarบังคับให้เขียนด้วยw!และไฟล์จะถูกแก้ไข ฉันจะทำให้ระบบปฏิบัติการไม่อนุญาตให้แก้ไขไฟล์ได้อย่างไร? อัพเดท 02 มี.ค. 2560 chmod 500 foo เป็นปลาเฮอริ่งแดง: สิทธิ์ในการเขียนในไดเรกทอรีไม่มีส่วนเกี่ยวข้องกับความสามารถในการปรับเปลี่ยนเนื้อหาของไฟล์ - เฉพาะความสามารถในการสร้างและลบไฟล์ chmod 400 foo/barในความเป็นจริงจะป้องกันเนื้อหาของไฟล์จากการเปลี่ยนแปลง แต่ไม่ได้ป้องกันการอนุญาตของไฟล์จากการเปลี่ยนแปลง - เจ้าของไฟล์สามารถเปลี่ยนแปลงการอนุญาตของไฟล์ได้ตลอดเวลา (สมมติว่าพวกเขาสามารถเข้าถึงไฟล์ได้เช่นเรียกใช้งานการอนุญาตในไดเรกทอรีบรรพบุรุษทั้งหมด) ในความเป็นจริง strace (1) แสดงให้เห็นว่านี่คือสิ่งที่กลุ่ม (7.4.576 Debian Jessie) กำลังทำอยู่ - vim เรียก chmod (2) เพื่อเพิ่มสิทธิ์การเขียนสำหรับเจ้าของไฟล์ชั่วคราวแก้ไขไฟล์แล้วเรียก chmod ( 2) …

3
ฉันจะใช้ wget กับรายการ URL และไฟล์เอาต์พุตที่เกี่ยวข้องได้อย่างไร
สมมติว่าlist_of_urlsมีลักษณะเช่นนี้: http://www.url1.com/some.txt http://www.url2.com/video.mp4 ฉันรู้วิธีใช้สิ่งนั้นด้วย: wget -i list_of_urls แต่ถ้าฉันlist_of_urlsมีสิ่งนี้และพวกเขาทั้งหมดกลับไฟล์ที่เหมาะสมเช่น PDF หรือวิดีโอ: http://www.url1.com/app?q=123&gibb=erish&gar=ble http://www.url2.com/app?q=111&wha=tcha&mac=allit สำหรับไฟล์เดียวฉันสามารถทำได้: wget -O some.txt "http://www.url1.com/app?q=123&gibb=erish&gar=ble" ฉันจะใช้wgetเพื่อดาวน์โหลดรายการ URL นั้นและบันทึกข้อมูลที่ส่งคืนไปยังไฟล์ในเครื่องที่เหมาะสมได้อย่างไร
35 files  wget  download  links 

3
การทำความเข้าใจ backtick (`)
ฉันลองคำสั่ง $ b=5; echo `$b`; -bash: 5: command not found แต่จะไม่พิมพ์ 5 อย่างที่ควรจะเป็น สิ่งที่ฉันหายไปที่นี่? `(backquote / backtick) หมายถึงอะไรในคำสั่ง? ดูเหมือนว่าจะ`ประเมินคำสั่งภายในและแทนที่พวกเขาด้วยการส่งออก

10
การประมวลผลข้อความ - เข้าร่วมทุก ๆ สองบรรทัดด้วยเครื่องหมายจุลภาค
ฉันมีมากกว่า 1,000 บรรทัดในไฟล์ ไฟล์เริ่มต้นดังต่อไปนี้ (เพิ่มหมายเลขบรรทัด): Station Name Station Code A N DEV NAGAR ACND ABHAIPUR AHA ABOHAR ABS ABU ROAD ABR ฉันต้องแปลงไฟล์นี้เป็นไฟล์โดยคั่นรายการด้วยเครื่องหมายจุลภาคโดยเข้าร่วมทุกสองบรรทัด ข้อมูลสุดท้ายควรมีลักษณะดังนี้ Station Name,Station Code A N DEV NAGAR,ACND ABHAIPUR,AHA ABOHAR,ABS ABU ROAD,ABR ... สิ่งที่ฉันพยายามคือ - พยายามเขียนเชลล์สคริปแล้วก็echoใช้คอมม่าคั่นกลาง แต่ผมคิดว่าง่ายมีประสิทธิภาพหนึ่งซับจะทำผลงานได้ที่นี่อาจจะอยู่ใน/sedawk ความคิดใด ๆ

6
เหตุใดจึงไม่สามารถอ่านจาก / dev / urandom บน OSX ได้
เพื่อนร่วมงานแนะนำให้สร้างคีย์สุ่มผ่านคำสั่งต่อไปนี้: tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)-+= < /dev/urandom | head -c 32 | xargs มันทำให้ฉันมีข้อผิดพลาด: tr: ลำดับไบต์ที่ผิดกฎหมาย ฉันกังวลว่าฉันไม่มี/dev/urandomในระบบของฉัน ฉันลองใช้ googling เพื่อหาวิธีติดตั้งไฟล์นี้ แต่ฉันว่างเปล่า ฉันลองlocate urandomแล้วก็ว่างเปล่า (อันที่จริงแล้วพบหน้าคน แต่ไม่ได้ช่วย) ฉันจะให้urandomบริการบนระบบ Mac OSX ของฉันได้อย่างไร (สิงโต)
35 osx  random  tr 

5
จะแนะนำการหมดเวลาใช้งานของสคริปต์เชลล์ได้อย่างไร
ฉันต้องการรันเชลล์สคริปต์ที่มีลูปในนั้นและสามารถไปได้ตลอดซึ่งฉันไม่ต้องการที่จะเกิดขึ้น ดังนั้นฉันต้องแนะนำการหยุดพักชั่วคราวสำหรับสคริปต์ทั้งหมด ฉันจะแนะนำการหมดเวลาสำหรับเชลล์สคริปต์ทั้งหมดภายใต้ SuSE ได้อย่างไร

7
ฉันจะเชื่อมโยงอุปกรณ์ / dev / sd กับฮาร์ดแวร์ที่พวกเขาเป็นตัวแทนได้อย่างไร
ไดรฟ์เริ่มล้มเหลวและฉันรู้จักอุปกรณ์โดยการ/dev/sdbกำหนดไฟล์อุปกรณ์เท่านั้น อะไรคือวิธีที่ฉันสามารถใช้เชื่อมโยงไฟล์อุปกรณ์นั้นกับอุปกรณ์ฮาร์ดแวร์จริงเพื่อให้รู้ว่าไดรฟ์ใดที่จะแทนที่ทางกายภาพ โบนัส:จะทำอย่างไรถ้าฉันไม่มี/dev/disk/และไดเรกทอรีย่อยในการติดตั้งนี้ (อันไหนน่าเศร้าฉันไม่ได้)

3
เอาท์พุท SSH ไม่บัฟเฟอร์บรรทัด?
ฉันกำลังเรียกใช้สคริปต์บนเครื่องระยะไกลเช่นนี้: ssh $host "pip install -r /path/to/requirements.txt" แต่ผลลัพธ์ไม่ใช่บรรทัดที่บัฟเฟอร์ แทนที่จะเห็นการส่งคืนครั้งละหนึ่งบรรทัดทุกบรรทัด (~ 10) จะถูกพิมพ์ทั้งหมดพร้อมกันเมื่อการเชื่อมต่อสิ้นสุดลง เกิดอะไรขึ้นกับสิ่งนี้? มีวิธีใดที่จะบังคับให้พวกเขาเป็นบัฟเฟอร์บรรทัด? (เช่นในการระบุชัดเจน: เมื่อฉัน ssh เข้า$hostและเรียกใช้คำสั่ง“ ด้วยตนเอง” ผลลัพธ์จะถูกบัฟเฟอร์บรรทัดตามที่คาดไว้
35 ssh 

4
แตกไฟล์. tar.gz หลายไฟล์ด้วยการเรียก tar เดียว
ฉันสงสัยว่า (และแน่นอนอย่างไร) เป็นไปได้ที่จะบอกtarให้แตกไฟล์หลายไฟล์ในการทำงานครั้งเดียว ฉันเป็นผู้ใช้ Unix ที่มีประสบการณ์มาหลายปีและแน่นอนฉันรู้ว่าคุณสามารถใช้forหรือfindสิ่งต่าง ๆ เช่นนั้นเรียกtarครั้งเดียวสำหรับแต่ละไฟล์เก็บถาวรที่คุณต้องการแยก แต่ฉันไม่สามารถหาบรรทัดคำสั่งที่ใช้งานได้ซึ่งทำให้ฉันtarเพื่อแยกไฟล์. tar.gz สองไฟล์พร้อมกัน (และไม่ไม่มีอะไรผิดปกติกับforฉันแค่ถามว่าเป็นไปได้ที่จะทำโดยไม่) ฉันถามคำถามนี้ค่อนข้างอยากรู้อยากเห็นบางที มีทางแยกแปลก ๆtarที่สนับสนุนสิ่งนี้ บางคนรู้วิธีใช้-Mพารามิเตอร์ที่tarแนะนำให้ฉันเมื่อฉันพยายามtar -zxv -f a.tgz -f b.tgz เราทุกคนตาบอดและเป็นเรื่องง่ายมากที่จะทำ - แต่ฉันไม่พบคำใบ้ใด ๆ ในเว็บที่ไม่ได้ใช้forหรือfindไม่xargsชอบ โปรดอย่าตอบกลับด้วยtar -zxvf *.tar.gz(เพราะนั่นไม่ได้ผล) และตอบกลับด้วย“ ไม่ทำงาน” เท่านั้นหากคุณแน่ใจอย่างแน่นอน (และอาจมีคำอธิบายที่ดีว่าทำไมเช่นกัน) แก้ไข:ฉันถูกชี้ไปที่คำตอบสำหรับคำถามนี้ใน Stack Overflowซึ่งระบุในรายละเอียดอย่างมากว่าเป็นไปไม่ได้หากไม่มีการทำลายtarไวยากรณ์ปัจจุบันแต่ฉันไม่คิดว่ามันจะเป็นเรื่องจริง การใช้tar -zxv -f a.tgz -f b.tgzหรือtar -zxv --all-args-are-archives *.tar.gzไม่แบ่งไวยากรณ์ที่มีอยู่ imho
35 tar 

1
X, Xorg และ D-Bus: ความแตกต่างคืออะไร?
ในกระบวนการของการเรียนรู้ที่จะทำบางสิ่งในการเขียนโปรแกรม GUI (เช่นการจองพื้นที่บนหน้าจอสำหรับแอปพลิเคชัน) ฉันต้องเรียนรู้เพิ่มเติมเกี่ยวกับ Window Manager โดยปกติคือ X11 บน Linux (ฉันไม่แน่ใจว่ามีของ distro ซึ่งใช้อย่างอื่นนอกเหนือจาก X11 ถึงแม้ว่าฉันเคยได้ยินเกี่ยวกับWaylandซึ่งยังไม่ได้นำมาใช้เลย) ฉันค่อนข้างใหม่กับการเขียนโปรแกรมและใจร้อน ดังนั้นฉันแค่ดำน้ำเข้าไป ตอนนี้ฉันกำลังอ่าน ICCCM ด้วยความหวังว่าจะได้เรียนรู้เพิ่มเติม อย่างไรก็ตามเอกสารนี้มีจุดมุ่งหมายเพื่อสาธารณะที่รู้ (ทาง) มากกว่าฉัน ดังนั้นฉันจึงพบข้อมูลบางอย่างและฉันชอบที่จะรับการชี้แจงบางอย่าง ส่วนที่ 2ของคำพูดของ ICCCM: โปรดทราบว่าข้อมูลทั้งหมดที่ถ่ายโอนระหว่างเจ้าของและผู้ร้องขอจะต้องผ่านเซิร์ฟเวอร์ในสภาพแวดล้อม X Version 11 ลูกค้าไม่สามารถคิดได้ว่าลูกค้ารายอื่นสามารถเปิดไฟล์เดียวกันหรือแม้กระทั่งสื่อสารโดยตรง ไคลเอ็นต์อื่นอาจกำลังพูดคุยกับเซิร์ฟเวอร์โดยใช้กลไกเครือข่ายที่แตกต่างกันโดยสิ้นเชิง (ตัวอย่างเช่นไคลเอ็นต์หนึ่งอาจเป็น DECnet และ TCP / IP อื่น) ดังนั้นการส่งผ่านการอ้างอิงทางอ้อมไปยังข้อมูล (เช่นชื่อไฟล์ชื่อโฮสต์และหมายเลขพอร์ตและอื่น ๆ ) จะได้รับอนุญาตเฉพาะในกรณีที่ลูกค้าทั้งสองตกลงกันเป็นพิเศษ เท่าที่ฉันเข้าใจ X Window Manager สร้างขึ้นบนสุดของ …

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