Unix & Linux

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

8
วิธีการ grep หลายบรรทัด
คุณจะทำการ grep สำหรับข้อความที่ปรากฏในสองบรรทัดได้อย่างไร? ตัวอย่างเช่น: pbsnodes เป็นคำสั่งที่ฉันใช้ที่ส่งคืนการใช้ประโยชน์ของคลัสเตอร์ linux root$ pbsnodes node1 state = free procs = 2 bar = foobar node2 state = free procs = 4 bar = foobar node3 state = busy procs = 8 bar = foobar ฉันต้องการกำหนดจำนวนของ procs ที่ตรงกับโหนดที่อยู่ในสถานะ 'ว่าง' จนถึงตอนนี้ฉันสามารถระบุ "จำนวนของ procs" และ "โหนดในสถานะอิสระ" แต่ฉันต้องการรวมพวกมันเป็นคำสั่งเดียวที่แสดง procs …

3
เคอร์เนล: การสนับสนุน Namespaces
ฉันสงสัยว่าคุณสมบัติ“ Namespaces support” ในเคอร์เนลหมายถึงอะไร ฉันใช้เคอร์เนล 3.11.1 (เคอร์เนลที่เสถียรที่สุดในขณะนี้) หากฉันตัดสินใจที่จะปิดการใช้งานฉันจะสังเกตเห็นการเปลี่ยนแปลงในระบบของฉันหรือไม่? และในกรณีที่มีใครบางคนตัดสินใจที่จะใช้ประโยชน์จากเนมสเปซมันก็เพียงพอแล้วที่จะรวบรวมNAMESPACES=Yในเคอร์เนลหรือว่าเขาต้องการเครื่องมือ userspace เช่นกัน?

2
ความแตกต่างระหว่าง \ e และ ^ [
Gilles เขียนว่า : ตัวละคร 27 = 033 = 0x1b = ^[=\e Demizey เขียนว่า : ^ [เป็นเพียงการนำเสนอของ ESCAPE และ \ e ถูกตีความว่าเป็นอักขระ ESCAPE จริง จากนั้นฉันก็พบบรรทัดนี้จากบทความ TechRepublic ตรวจสอบให้แน่ใจว่าคุณเขียนลำดับของคีย์เป็น \ e [24 ~ แทนที่จะเป็น ^ [[24 ~] นี่เป็นเพราะ ^ [ลำดับนั้นเทียบเท่ากับปุ่ม [Esc] ซึ่งแสดงโดย \ e ในเชลล์ ตัวอย่างเช่นถ้าลำดับของคีย์เป็น ^ [[OP ผลการผูกโค้ดที่จะใช้จะเป็น \ e [OP แต่ฉันใช้การแม็พที่ใช้ …

3
ทำไมชื่อไฟล์ที่ขึ้นต้นด้วยจุดถูกซ่อนอยู่? ฉันสามารถซ่อนไฟล์โดยไม่ใช้จุดเป็นตัวอักษรตัวแรกได้หรือไม่?
ตอนแรกฉันคิดว่ามันเป็นเรื่องบังเอิญ แต่ตอนนี้ฉันเห็นว่ามีแท็กอยู่ด้วย: ชื่อไฟล์ที่ซ่อนทั้งหมดเริ่มต้นด้วยจุด นี่คือการประชุมหรือไม่? ทำไมถึงเลือก มันสามารถเปลี่ยนแปลงได้หรือไม่ หรือกล่าวอีกนัยหนึ่ง (ตามคำถามที่เกี่ยวข้อง @evilsoup แนะนำว่าหมายถึงคำตอบของกลุ่มอื่น ๆ ): ฉันสามารถซ่อนไฟล์โดยไม่เปลี่ยนชื่อไฟล์ (ใช้.เป็นอักขระตัวแรกของชื่อ) ได้หรือไม่

3
เพิ่มความเร็วในการบีบอัด gzip
เป็นไปได้หรือไม่ที่จะเร่งความเร็ว gzipหรือไม่ที่จะกระบวนการ ? ฉันกำลังใช้ mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz เพื่อสำรองฐานข้อมูลลงในไดเรกทอรี $BACKUP_DIR . manpage พูดว่า: - # - fast - best ควบคุมความเร็วของการบีบอัดโดยใช้ตัวเลขที่ระบุ # โดยที่ -1 หรือ - fast บ่งบอกถึงวิธีการบีบอัดที่เร็วที่สุด (บีบอัดน้อยกว่า) และ -9 หรือ --best ระบุวิธีบีบอัดที่ช้าที่สุด ( การบีบอัดที่ดีที่สุด) ระดับการบีบอัดเริ่มต้นคือ -6 (นั่นคือเอนเอียงไปสู่การบีบอัดสูงที่ค่าใช้จ่ายความเร็ว) การใช้จะมีประสิทธิภาพแค่ไหน--fast? นี่เป็นการลดการใช้ CPU อย่างมีประสิทธิภาพบนคอมพิวเตอร์ที่ทันสมัยหรือไม่? ผลการทดสอบของฉัน ฉันไม่ได้สังเกตการเร่งความเร็ว: 7 นาที 47 วินาที …

1
ดำเนินการคำสั่งที่จัดทำโดยพารามิเตอร์ฟังก์ชัน
ฉันพยายามที่จะสร้างวิธีการฟังก์ชั่นในสคริปต์ทุบตีที่ดำเนินการคำสั่งซึ่งให้กับวิธีการโดยพารามิเตอร์ ความหมายบางอย่างเช่นนี้: special_execute() { # Some code # Here's the point where the command gets executed $@ # More code } special_execute echo "abc" ฉันพยายามแล้วผม$@, "$@", $*, "$*"วิธีการที่ฉันจะทำเช่นนั้น?

2
วิธีแบ็คกราวน์คำสั่ง?
cp a b && mv b c && rm aฉันต้องการที่จะพื้นหลังห่วงโซ่คำสั่งเช่น ฉันได้ลองทำแล้วcp a b && mv b c && rm a &แต่นี่เป็นเพียงกระบวนการขั้นตอนสุดท้ายเท่านั้น ฉันจะพื้นหลังห่วงโซ่คำสั่งได้อย่างไร

1
umask คำนวณใน Linux อย่างไร?
ดังนั้นฉันรู้ว่าumaskสามารถ จำกัด ผู้ใช้ที่มีสิทธิ์ใช้รูปแบบumask ugoนี้ ผมเข้าใจว่าการอ่าน = 4, เขียน = 2 และ exec = 1 อย่างไรก็ตามเมื่อฉันพิมพ์umaskก็จะส่งกลับ 4 หลักซึ่งเป็นหรือ0022 0073ฉันไม่เข้าใจว่าตอนนี้ทำงานอย่างไรเพราะมีตัวเลขพิเศษ ตัวเลขพิเศษนั้นคืออะไรและ0022หมายความว่าอย่างไร
15 umask 

4
scp จากรีโมตเซิร์ฟเวอร์หนึ่งไปยังรีโมตเซิร์ฟเวอร์อื่น
ฉันมีหนึ่งใหญ่ไฟล์บนเซิร์ฟเวอร์oneและฉันต้องการที่จะคัดลอกไปยังเซิร์ฟเวอร์โดยใช้two scpฉันมีการตั้งค่าคีย์อย่างถูกต้องและฉันสามารถ ssh / scp ไปยังเซิร์ฟเวอร์ทั้งสองจากเดสก์ท็อปของฉัน ไฟล์ที่ฉันต้องการคัดลอกนั้นใหญ่กว่าพื้นที่ว่างบนฮาร์ดดิสก์ของเวิร์กสเตชันของฉันดังนั้นฉันจึงต้องการ: scp one:/opt/bigfile.tar.gz two:/opt/bigfile.tar.gz แต่ฉันได้: ssh: Could not resolve hostname one: Name or service not known เราไม่มี DNS ที่นี่ (อย่าถามฉันว่าทำไม) ดังนั้นฉันจึงมีสิ่งนี้ใน ~ / .ssh / config: Host one Hostname <IP address of server one> User jspurny Host two Hostname <IP address of server two> …
15 debian  scp 

2
ทำไม rsync ของฉันไม่อนุญาตขนาดบล็อก> 128K?
ใช้ rsync ด้วย* ขนาดใหญ่--block-sizeเช่นนี้: rsync -avvz --rsh 'ssh -c arcfour' --block-size 1048576 --inplace --progress example.com:/big.file /big.file ฉันได้รับข้อผิดพลาดต่อไปนี้: Invalid block length 1048576 [sender] ปลายทั้งสองทำงานโดยใช้ 64 บิต CentOS 6.4 จาก Googling ที่ฉันเคยเห็น--block-sizeใช้แล้วด้วยค่าที่สูงกว่ามากเหตุใดจึงไม่ทำงานสำหรับฉัน * ฉันใช้บล็อกขนาดใหญ่เพราะฉันพยายามแก้ไขข้อผิดพลาดที่ rsync เพิ่งหมุน CPU ตลอดกาล 44% เป็นไฟล์ 300GB
15 rsync 

3
เมื่อใดที่จะใช้การเปลี่ยนเส้นทางไปยัง stderr ในเชลล์สคริปต์
ฉันรู้ว่าโปรแกรมอรรถประโยชน์ที่ทำงานได้ดีเช่นข้อความgrep "ปกติ" ไปยัง stdout และข้อความแสดงข้อผิดพลาดไปยัง stderr $ grep '^foo' file1 file2 file1:foo grep: file2: No such file or directory เมื่อฉันเขียนเชลล์สคริปท์ตัวเองฉันมักจะพบว่ามันยากที่จะตัดสินใจว่าเอาต์พุตใดและข้อความใดที่ฉันควรแสดงบน stderr หรือถ้าฉันควรจะใส่ใจ ฉันต้องการทราบเกี่ยวกับแนวปฏิบัติที่ดี: เมื่อใดที่มีการเปลี่ยนเส้นทางข้อความไปยัง stderr ที่ถูกเรียกร้องและสมเหตุสมผลและเมื่อใด "ขึ้นอยู่กับ" แน่นอน แต่คุณมีความเข้าใจที่จะช่วยฉันตัดสินใจเหล่านี้หรือไม่ เพื่อให้คำถามอัตนัยนี้สอดคล้องกับรูปแบบฉันต้องการสนับสนุนคำตอบที่ตอบว่า "ทำไม" และได้รับการแจ้งจากประสบการณ์และหากได้รับการสนับสนุนจากข้อเท็จจริง

3
ตัวเลือกเมานท์ใดที่จะใช้สำหรับระบบไฟล์ ext3 เพื่อลดการสูญหายของข้อมูลหรือความเสียหาย?
ฉันมีการตั้งค่าแบบฝังตัวโดยใช้ initramfs สำหรับระบบไฟล์รูท แต่ใช้พาร์ติชัน ext3 แบบกำหนดเองที่ติดตั้งอยู่บนไดรฟ์ IDE แบบคอมแพคแฟลช เนื่องจากความถูกต้องของข้อมูลเมื่อเผชิญกับการสูญเสียพลังงานเป็นปัจจัยที่สำคัญที่สุดในการตั้งค่าทั้งหมดฉันจึงใช้ตัวเลือกต่อไปนี้เพื่อเมานต์ (ด้านล่างคือรายการจาก/etc/fstabไฟล์ของฉัน <file system> <mount pt> <type> <options> <dump><pass> /dev/sda2 /data ext3 auto,exec,relatime,sync,barrier=1 0 2 ฉันมาจากตัวเลือกเหล่านี้จากการอ่านหนังสือบนอินเทอร์เน็ต สิ่งที่ฉันเป็นห่วงคือเนื้อหาของการ/proc/mountsให้ดังต่อไปนี้: /dev/sda2 /data ext3 rw,sync,relatime,errors=continue,user_xattr,acl, barrier=1,data=writeback 0 0 จากสิ่งที่ฉันเข้าใจจากการอ่านรอบตัวคือฉันต้องการใช้data=journalตัวเลือกสำหรับการเมานต์ของฉันเพราะนี่เป็นการป้องกันที่ดีที่สุดต่อการเสียหายของข้อมูล อย่างไรก็ตามจากหน้า man สำหรับตัวเลือก ext3 ที่เฉพาะเจาะจงซึ่งmountจะกล่าวถึงสิ่งต่อไปนี้เกี่ยวกับตัวเลือก writeback: การเก็บข้อมูลจะไม่ถูกเก็บไว้ - ข้อมูลอาจถูกเขียนลงในระบบไฟล์หลักหลังจากที่เมตาดาต้าของมันถูกส่งไปยังเจอร์นัลแล้ว ข่าวลือนี้เป็นตัวเลือกทรูพุตที่สูงที่สุด มันรับประกันความสมบูรณ์ของระบบแฟ้มภายในอย่างไรก็ตามมันสามารถอนุญาตให้ข้อมูลเก่าที่จะปรากฏในไฟล์หลังจากความผิดพลาดและการกู้คืนวารสาร ฉันสับสนมากเกี่ยวกับเรื่องนี้ - หน้าคนดูเหมือนว่าจะแนะนำว่าสำหรับความสมบูรณ์ของระบบไฟล์ฉันต้องการที่จะระบุdata=writebackตัวเลือกmountแต่อ้างอิงอื่น ๆ มากที่สุดที่ฉันได้พบ (รวมทั้งหนังสือที่ตีพิมพ์บางอย่างเกี่ยวกับลินุกซ์ฝังตัว) …
15 mount  ext3  journaling 

4
รวมชื่อโดเมนหรือไม่อยู่ใน / etc / hosts?
ฉันกำลังตั้งค่าคลัสเตอร์ VMWare ของโหนด CentOS เป็นวิธีที่ดีที่สุดในการรวมชื่อโดเมนหลังจากเครื่องหรือไม่ ปัญหาที่อาจเกิดขึ้นจากการปล่อยให้มันคืออะไร? โดเมนมีการกำหนดค่าที่ซับซ้อนหรือทำให้มันง่ายขึ้นหรือไม่ ตัวอย่างเช่นถ้าโหนดของฉันเป็น192.168.1.93ฉันควรเปลี่ยน/etc/hostsจาก 127.0.0.1 localhost.localdomain localhost ถึง 127.0.0.1 localhost.cluster localhost 192.168.1.93 computernode1.cluster computenode1 หรือ 127.0.0.1 localhost 192.168.1.93 computenode1 หรือ #127.0.0.1 localhost 192.168.1.93 computenode1 หรือ 192.168.1.93 localhost 192.168.1.93 computenode1
15 networking 

4
วิธีฉีก DVD-Video ที่มีรอยขีดข่วน? (a“ cdparanoia สำหรับดีวีดี”)
ผมมักจะใช้ดีมากและง่ายdvdbackupโปรแกรมในการตัดและการสำรองข้อมูลของฉันDVD-Video อย่างไรก็ตามดีวีดีของฉันบางแผ่นมีรอยขีดข่วนเล็กน้อยและไดรฟ์ดีวีดีของฉันมีปัญหาในการอ่านข้อมูลบางส่วน ดังนั้นมีเครื่องมือคล้ายกับcdparanoiaแต่สำหรับดีวีดี
15 backup  video  dvd  ripping 

3
ฉันจะเปลี่ยนขนาดแบบอักษรบนหน้าจอเมื่อใช้คอนโซลเสมือนได้อย่างไร
ใช้ LDXE และ Ubuntu ผมสามารถเข้าสู่คอนโซลเสมือนผ่านCtrl+ +AltF1 ข้อความมีขนาดเล็กเกินไป ฉันจะเปลี่ยนความละเอียดหน้าจอเพื่อรับแบบอักษรที่ใหญ่ขึ้นได้อย่างไร

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