Unix & Linux

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


5
ฉันควรคาดหวังอะไรถ้าฉันเปลี่ยนจาก Ubuntu เป็น openSuse [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว อาจจะเป็นพวกคุณส่วนใหญ่ฉันใช้ Ubuntu มานานแล้ว ฉันไม่ใช่ผู้เชี่ยวชาญ แต่ฉันใช้ distros ต่าง ๆ จนกระทั่งฉันตัดสินใจใช้ Ubuntu ฉันเริ่มใช้ SuSE 5.x, Conectiva (ซึ่งต่อมากลายเป็น Mandriva ดังนั้นดูเหมือนว่า), RedHat, Mac OS X (ใช่ฉันรู้ไม่ใช่ Linux) และ Ubuntu ที่ใช้ VM เป็นส่วนใหญ่ในช่วงสองสามปีที่ผ่านมา แต่ตั้งแต่ SUSE เปิดตัว SUSE Studio ฉันถูกล่อลวงให้เปลี่ยนกลับไปใช้มัน มันสะดวกเกินไปที่จะทำให้การติดตั้งของคุณในระบบคลาวด์และดาวน์โหลดระบบของคุณพร้อมใช้งานได้ทันที นี่คือคำถามของฉัน สิ่งที่คาดหวังจากสวิตช์ ฉันรู้ว่า SUSE ใช้ RPM เป็นผู้จัดการแพ็กเกจและฉันไม่มีความคิดเกี่ยวกับความสมบูรณ์ของที่เก็บเทียบกับ Ubuntu …

2
ตั้งค่าภาษาสำหรับการใช้งานโปรแกรมเดียว
ทำตัวอย่าง C ++ i18n gettext ()“ hello world” ตั้งค่าตัวแปรสภาพแวดล้อม LANG โดยใช้การส่งออกก่อนดำเนินการโปรแกรม (Linux): export LANG=es_MX.utf8 ./hellogt มีวิธีการตั้งค่าภาษาในขณะดำเนินการ hellogt เช่นอาร์กิวเมนต์บรรทัดคำสั่งหรือไม่ สิ่งนี้จะเป็นประโยชน์สำหรับโปรแกรมทดสอบ

2
วิธีค้นหา tty ที่มีการดำเนินการ cmd“ scp” ที่เฉพาะเจาะจง
ฉันจะรู้ได้อย่างไรว่าใครรันคำสั่งเฉพาะและเทอร์มินัลใดที่ใช้ในการรัน ต้นฉบับ : ฉันจะรู้ได้อย่างไรว่าคำสั่งเฉพาะเจาะจงถูกเรียกใช้โดยใครและจะรู้เกี่ยวกับเทอร์มินัลของฉัน

7
จอแสดงผลนอกเหนือจาก“: 0” อยู่ที่ไหน
X Power Tools -book มีประโยคเกี่ยวกับ ": 0": แสดง 0 บนเครื่องคอมพิวเตอร์ที่เชื่อมต่อโดยแบบแผนการเชื่อมต่อท้องถิ่น ฉันพยายามเปิดนาฬิกาโดย "xclock -display: 2" แต่ฉันพบข้อผิดพลาด: ไม่สามารถเปิดจอแสดงผล:: 2 ฉันควรจะตั้งโปรแกรมอย่างไรถ้าฉันไม่สามารถแสดงจอภาพได้? คุณสามารถทำทุกอย่างกับมันได้หรือไม่? คุณสามารถรันโปรแกรมเช่น Vim และ gcc บนหน้าจอ 3 และ 999 ได้อย่างไร พวกเขาอยู่ที่ไหน?
11 x11 

3
ค้นหาตำแหน่งแล้วทำการเปลี่ยนแปลงโดยใช้ sed
สคริปต์นี้ใช้ sed เพื่อเปลี่ยน "" ทั้งหมดเป็น "สิ่งใหม่" หนึ่งจะเปลี่ยนเพียงแค่ "" หลังจาก yyy: ใช้ sed หรือสิ่งอื่นได้อย่างไร cat >sample.txt <<EOF xxx: "" yyy: "" } EOF sed --expression='s/""/"new stuff"/' sample.txt
11 sed 

4
ล้อมตัวเลขทั้งหมดใน JSON ด้วยเครื่องหมายคำพูด
มีข้อมูล JSON ซึ่งมีค่าตัวเลขบางค่า จะแปลงตัวเลขทั้งหมดเป็นสตริงได้อย่างไร? (ห่อด้วยคำพูด) ตัวอย่าง: { "id":1, "customer":"user", "plate":"BMT-216-A", "country":"GB", "amount":1000, "pndNumber":20000, "zoneNumber":4 } ควรกลายเป็น { "id":"1", "customer":"user", "plate":"BMT-216-A", "country":"GB", "amount":"1000", "pndNumber":"20000", "zoneNumber":"4" }
11 shell  json  jq 

2
ทำไม pwd ไม่ยอมรับตัวเลือกที่ยาวเช่น - ฟิสิคัล?
เมื่อฉันแสดงคู่มือสำหรับpwdคำสั่งมันบอกว่าตัวเลือกแบบยาวที่--physicalได้รับการสนับสนุน $ man pwd PWD(1) User Commands PWD(1) NAME pwd - print name of current/working directory SYNOPSIS pwd [OPTION]... DESCRIPTION Print the full filename of the current working directory. -L, --logical use PWD from environment, even if it contains symlinks -P, --physical avoid all symlinks อย่างไรก็ตามมันล้มเหลวเมื่อฉันพิมพ์ต่อไปนี้ $ pwd --physical -bash: …
11 bash  rhel  pwd 

1
การใช้วงเล็บปีกกา {} เป็นอาร์กิวเมนต์ของคำสั่งและตัวเลือกต่างๆ
ตัวอย่าง ฉันเพิ่งพบตัวอย่างของการใช้วงเล็บปีกกาคู่{}โดยไม่มีอะไรในระหว่างวงเล็บเปิดและปิดเป็นอาร์กิวเมนต์ของคำสั่งและแม้แต่กับตัวเลือก: cat foo | xargs -I{} echo {} find . -size 0 -exec rm -i {} \; ไม่มีเอกสารประกอบ ปัญหาของฉันคือฉันไม่สามารถหาเอกสารในGNU Bash Manualที่อธิบายการใช้งาน{}ในบริบทเช่นในตัวอย่างข้างต้น ผมไม่คิดว่ามันเป็นขยายตัวพารามิเตอร์${}เพราะเครื่องหมายดอลลาร์ต้องนำหน้าวงเล็บปิดล้อมในการขยายตัวพารามิเตอร์ในขณะที่ มันไม่สามารถเป็นส่วนขยายรั้งได้เช่นกันเพราะใช้รูปแบบของ{x..y[..incr]}ที่ไหนxและyไม่จำเป็น นอกจากนี้ยังไม่สามารถจัดกลุ่มคำสั่งได้เนื่องจาก{}ใช้เป็นอาร์กิวเมนต์ คำถาม วงเล็บปีกกาคู่คู่{}หมายถึงอะไรโดยทั่วไปในฐานะอาร์กิวเมนต์สำหรับคำสั่งใด ๆ ที่ยอมรับมัน ฉันจะหาเอกสารที่อธิบายการใช้งานของ{}อาร์กิวเมนต์ได้ที่ไหน
11 bash  shell 

1
หน่วยความจำแบบ "แคช" ปราศจากความจริงหรือไม่
เมื่อทำงานcat /proc/meminfoคุณจะได้รับ 3 ค่าเหล่านี้ที่ด้านบน: MemTotal: 6291456 kB MemFree: 4038976 kB Cached: 1477948 kB เท่าที่ฉันรู้ค่า "แคช" คือดิสก์แคชที่ทำโดยระบบ Linux ที่จะถูกปล่อยทันทีหากแอปพลิเคชันใด ๆ ที่ต้องการ RAM เพิ่มขึ้นดังนั้น Linux จะไม่หมดหน่วยความจำจนกว่า MemFree และ Cache จะเป็นศูนย์ น่าเสียดายที่ "MemAvailable" ไม่มีการรายงานโดย / proc / meminfo อาจเป็นเพราะมันทำงานในเซิร์ฟเวอร์เสมือน (เวอร์ชั่นเคอร์เนลคือ 4.4) ดังนั้นสำหรับการใช้งานจริง RAM สำหรับแอปพลิเคชันนั้นเป็น MemFree มุมมองนั้นถูกต้องหรือไม่
11 linux  memory  cache  meminfo 

2
อักขระ“ เห็บ” หรือ“ เน้นสำเนียงเฉียบพลัน” ´(ไม่ใช่ `) ใช้สำหรับทุกอย่างในเชลล์ Linux หรือไม่?
เรารู้ว่าตัวอักษร backtick ใช้สำหรับการทดแทนคำสั่ง : chown `id -u` /mydir สิ่งใดที่ทำให้ฉันสงสัย: มีการ´ใช้อักขระติ๊กกับสิ่งใดในเปลือก Linux หรือไม่ หมายเหตุ: โดยบังเอิญการทดแทนคำสั่งยังสามารถเขียนได้ง่ายขึ้นเช่น chown $(id -u) /mydir

1
วิธีค้นหารูปแบบที่มีเครื่องหมายขีดคั่นอยู่ภายในหน้าคนได้อย่างไร
ฉันพยายามค้นหาคำสั่งเพื่อค้นหารูปแบบที่มีเครื่องหมายขีดคั่นอยู่ใน man page ทั้งหมด ฉันดูman manแล้วพบตัวเลือกเหล่านี้ 3: -K, --global-apropos ค้นหาข้อความในหน้าคู่มือทั้งหมด นี่เป็นการค้นหาที่ดุร้ายและอาจใช้เวลาพอสมควร หากทำได้คุณควรระบุส่วนเพื่อลดจำนวนหน้าที่ต้องการค้นหา คำค้นหาอาจเป็นสตริงธรรมดา (ค่าเริ่มต้น) หรือนิพจน์ทั่วไปหากใช้--regexตัวเลือก -w, --where, --path,--location ไม่แสดงหน้าคู่มือจริง แต่พิมพ์ตำแหน่งของไฟล์ nroff ต้นทางที่จะฟอร์แมต -S list, -s list,t--sections=list รายการเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคหรือคั่นด้วยเครื่องหมายจุลภาคของคำสั่งเฉพาะส่วนที่ต้องการค้นหา ตัวเลือกนี้จะแทนที่$MANSECTตัวแปรสภาพแวดล้อม ( -sตัวสะกดใช้เพื่อความเข้ากันได้กับ System V) ฉันพยายามรวมพวกเขาเพื่อค้นหารูปแบบmark-modified-linesซึ่งเป็นตัวเลือก readline ที่อธิบายในman bash: $ man -s1 -Kw mark-modified-lines แต่ไม่พบหน้าใด ๆ : No manual entry for mark-modified-lines 16และออกคำสั่งกับรหัส …
11 man 

2
ทำไม vfork () ตั้งใจที่จะใช้เมื่อกระบวนการลูกเรียก exec () หรือ exit () ทันทีหลังจากการสร้าง?
แนวคิดระบบปฏิบัติการและ APUE พูด ด้วย vfork () กระบวนการหลักถูกระงับและกระบวนการลูกใช้พื้นที่ที่อยู่ของพาเรนต์ เนื่องจาก vfork () ไม่ได้ใช้ copy-on-write ถ้ากระบวนการลูกเปลี่ยนแปลงหน้าใด ๆ ของพื้นที่ที่อยู่ของผู้ปกครองเพจที่ถูกแก้ไขจะปรากฏให้ผู้ปกครองเห็นได้เมื่อดำเนินการต่อ ดังนั้นvfork () ต้องใช้ด้วยความระมัดระวังเพื่อให้แน่ใจว่ากระบวนการลูกไม่ได้แก้ไขพื้นที่ที่อยู่ของผู้ปกครอง vfork () มีวัตถุประสงค์เพื่อใช้เมื่อกระบวนการลูกเรียกใช้ exec () หรือ exit () ทันทีหลังจากการสร้าง ฉันจะเข้าใจประโยคสุดท้ายได้อย่างไร เมื่อกระบวนการลูกสร้างโดยการvfork()โทรexec()ไม่ได้exec()แก้ไขพื้นที่ที่อยู่ของกระบวนการหลักโดยการโหลดโปรแกรมใหม่หรือไม่ เมื่อกระบวนการลูกที่สร้างโดยการvfork()โทรexit()ไม่ exit()ได้แก้ไขพื้นที่ที่อยู่ของกระบวนการหลักเมื่อยกเลิกการเป็นเด็ก? ฉันชอบลีนุกซ์ ขอบคุณ
11 linux  process  exec  exit  vfork 

2
อาร์กิวเมนต์เคอร์เนลทั้งหมดใช้โดยเคอร์เนลจริง ๆ หรือไม่
ทำไมลินุกซ์อนุญาตให้ 'init = / bin / bash' ฉันอ่านสิ่งนี้คำตอบกำลังบอกว่ามันเป็น KERNEL ที่กำลังเรียกใช้โปรแกรมเริ่มต้นนี้ จากนั้นฉันก็เริ่มสงสัยว่า Linux มักจะมาพร้อมกับ initramfs ซึ่งในที่สุดจะเมานต์และ pivot_root กับระบบไฟล์รูทจริง initอาร์กิวเมนต์นี้หมายความว่าอย่างไร เส้นทางใน initramfs หรือไม่ หรืออย่างที่ฉันเดามันไม่ได้อ่านโดยเคอร์เนล แต่โดย init ของ initramfs เพื่อดำเนินการ init จริง นอกจากนี้ยังมีroot=UUID=xxxxข้อโต้แย้งที่ว่าจะอ่านโดยเคอร์เนลหรือเพียงแค่เริ่มต้นของ initramfs เพื่อค้นหาระบบไฟล์รูทจริง? ดูเหมือนว่าฉันสามารถส่งผ่านอาร์กิวเมนต์ใด ๆ ที่ฉันต้องการเป็นอาร์กิวเมนต์ของเคอร์เนลดังนั้นพวกเขาจึงอ่านทั้งหมดโดยเคอร์เนลหรืออย่างน้อยบางส่วนมีความหมายเฉพาะกับโปรแกรม userspace หรือไม่

3
วิธี grep สำหรับ unicode ในสคริปต์ทุบตี
if grep -q "�" out.txt then echo "working" else cat out.txt fi โดยทั่วไปหากไฟล์ "out.txt" มี " " ที่ใดก็ได้ในไฟล์ฉันต้องการให้เสียงก้อง "ทำงาน" และถ้าไฟล์ "out.txt" นั้นไม่มี " " ที่ใดก็ตามในไฟล์ฉันก็อยาก มันเพื่อ cat out.txt แก้ไข: ดังนั้นนี่คือสิ่งที่ฉันทำ ฉันกำลังพยายามที่จะเปิดใช้งานการถอดรหัส openssl openssl enc ส่งคืนค่า 0 เมื่อสำเร็จไม่ใช่ค่าศูนย์ หมายเหตุ: คุณจะได้รับผลบวกปลอมเนื่องจาก AES / CBC สามารถกำหนดได้ว่า "การถอดรหัสทำงานได้" หรือไม่ขึ้นอยู่กับการรับสิทธิ์ ดังนั้นไฟล์ถอดรหัส แต่มันจะไม่เป็นรหัสผ่านที่ถูกต้องดังนั้นมันจะมีซึ่งพูดพล่อยๆในนั้น อักขระทั่วไปในการพูดพล่อยๆคือ " " …

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