Unix & Linux

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

1
วิธีการซิงค์ประวัติคำสั่งเซสชันเทอร์มินัลในทุบตี?
ฉันพยายามค้นหา~/.bash_historyคำสั่งล่าสุดของฉันขณะที่อยู่ในเซสชันเทอร์มินัล แต่พวกเขาไม่ได้อยู่ที่นั่น ฉันเดาว่าเป็นเพราะฉันเปิดเซสชันเทอร์มินัลหลายครั้ง มีวิธีที่ฉันสามารถซิงค์ (เช่น sync-push หรือ sync-write-out) ประวัติคำสั่งของเทอร์มินัลเซสชันปัจจุบันลงในไฟล์ bash_history (โดยไม่ต้องปิดเซสชันและสูญเสียสภาพแวดล้อมนั้น) หรือไม่ (มันจะคล้ายกันในระยะไกลในความคิดกับวิธีที่syncคำสั่งเก็บการแก้ไขระบบไฟล์ในบางระบบ) ฉันคิดว่าฉันสามารถตั้งค่า bash เพื่อเก็บรักษาประวัติเซสชันได้หลายครั้ง แต่ความสามารถในการพุชบัฟเฟอร์ประวัติปัจจุบันจะยังคงมีประโยชน์ในสถานการณ์เมื่อคุณทำงานกับเครื่องใหม่และคุณลืมตั้งค่า bash อย่างที่คุณอาจต้องการ .

2
การสื่อสารระหว่างหลายกระบวนการ
ฉันมีสคริปต์ทุบตีซึ่งทำงานเป็นผู้จัดการ () ฟังก์ชั่นเป็นกระบวนการที่แยกต่างหากสำหรับ x- ครั้ง เป็นไปได้อย่างไรที่จะส่งต่อข้อความถึงกระบวนการทั้งหมด () จากผู้จัดการภายในสคริปต์? ฉันได้อ่านเกี่ยวกับไพพ์นิรนามแล้ว แต่ฉันไม่รู้ว่าจะแชร์ข้อความกับมันได้อย่างไรฉันลองทำมันด้วยชื่อไพพ์ แต่ดูเหมือนว่าฉันจะต้องสร้างไพพ์ที่มีชื่อแยกต่างหากสำหรับแต่ละกระบวนการ? วิธีที่สง่างามที่สุดในการทำเช่นนี้คืออะไร? นี่คือรหัสของฉัน: #!/bin/bash manager () { while : do echo "read what has been passed to \$line" done } x=1 while [ $x -le 5 ] do manager x & x=$(( $x + 1 )) done while : do …

3
รับไฟล์. cer จากไฟล์. pem
ฉันสร้างคีย์ส่วนตัว RSA โดยใช้คำสั่งด้านล่าง: openssl genrsa -out privkey.pem 2048 และสร้างใบรับรองที่เซ็นชื่อเองโดยใช้คำสั่งด้านล่าง: openssl req -new -x509 -key privkey.pem -out cacert.pem -days 3650 ตอนนี้ผมกำลังพยายามที่จะแปลง cacert .pemไฟล์ใบรับรอง.cer ความคิดใด ๆ

2
ตรวจสอบการอ้างอิงสคริปต์ bash / shell
มีวิธี / คำสั่งเพื่อตรวจสอบการพึ่งพาของ bash script หรือไม่ กล่าวอีกนัยหนึ่งการตอบคำถามนี้: ผู้ใช้ควรติดตั้งไลบรารีใดเพื่อเรียกใช้สคริปต์ ฉันสามารถทำได้ด้วยตนเองโดยการอ่านสคริปต์และตรวจสอบว่าไลบรารี / คำสั่งอื่น ๆ เรียกใช้ แต่สิ่งนี้ไม่ชัดเจนสำหรับสคริปต์แบบยาว

4
ทำไม * BSD ใช้ชื่อเฉพาะไดรเวอร์สำหรับอินเทอร์เฟซเครือข่าย มันหมายถึงข้อ จำกัด ?
ฉันสังเกตว่าขึ้นอยู่กับยี่ห้อของการ์ดเครือข่ายชื่ออินเตอร์เฟสนั้นต่างกัน ทำไม * BSD ใช้ชื่อเฉพาะไดรเวอร์สำหรับอินเทอร์เฟซเครือข่าย มันหมายความว่าไม่มีเลเยอร์นามธรรมที่อธิบาย "อินเทอร์เฟซเครือข่ายทั่วไป" ในเคอร์เนลดังนั้นแต่ละไดรเวอร์จะได้รับการจัดการภายในผ่าน API ของตัวเอง (อย่างไร) มีผลกับระบบย่อยเช่นการรวมลิงก์การสร้างปริมาณข้อมูล QoS ( ALTQ ) การกรองและอื่น ๆ หรือไม่ ดูเหมือนว่าภายใต้ pfSense ฉันไม่สามารถใช้ ALTQ กับอินเตอร์เฟสเสมือนการรวมลิงก์ (LAG) นี่เป็นข้อ จำกัด ภายใน BSD เนื่องจากไม่มีเลเยอร์นามธรรมที่เหมาะสมหรือไม่

2
เป็นไปได้ที่จะเห็นการตายที่ประสบความสำเร็จ?
ในman psมันชัดเจนว่ารัฐต่าง ๆ กระบวนการสามารถมีบน Linux D Uninterruptible sleep (usually IO) R Running or runnable (on run queue) S Interruptible sleep (waiting for an event to complete) T Stopped, either by a job control signal or because it is being traced. W paging (not valid since the 2.6.xx kernel) X dead …

4
การพิมพ์อาเรย์ไปยังไฟล์ด้วยองค์ประกอบของอาเรย์ในบรรทัดใหม่ในทุบตี
ฉันพยายามเนื้อหาของอาเรย์เป็นไฟล์ที่มีองค์ประกอบของอาเรย์ในแต่ละบรรทัดในบรรทัดใหม่ในไฟล์ IFS=$'\n' echo "${mtches[@]}" > sample1.txt เนื้อหาของ mtches คือ "qwe" และ "asd" แต่sample1.txtไฟล์มีqwe asdอยู่ในบรรทัดเดียว ทำไมการไม่ใช้ค่า IFS ในภาพ
13 bash 

1
ตัวแปรสภาวะแวดล้อม $ HOME ถูกตั้งค่าไว้บนระบบ Linux เสมอหรือไม่?
สมมติว่าเครื่องกำลังใช้เคอร์เนล Linux เซสชันใช้ประโยชน์จาก Bash shell และทุกอย่างใช้การกำหนดค่าเริ่มต้น (ไม่มีผู้ใช้ทำการเปลี่ยนแปลงใด ๆ กับไฟล์กำหนดค่า) เราสามารถสมมติว่า$HOMEตัวแปรสภาพแวดล้อมถูกตั้งค่าเสมอหรือไม่

1
อะไรคือความแตกต่างระหว่าง JAVA_HOME และการปรับปรุงทางเลือก
ฉันพยายามหาวิธีที่ดีที่สุดในการรัน OpenJDK Java Runtime เป็นค่าเริ่มต้น Java สำหรับกล่อง Fedora ของฉันและใช้ Oracle JDK 6 สำหรับการพัฒนา Android สำหรับการใช้ Android SDK Manager, Android Studio และ Eclipse จาก Android Bundle ฉันติดตั้ง OpenJDK Java Runtime จากที่เก็บ Fedora ซึ่งมีทางเลือกในการตั้งค่าดังนี้ [donnie@fedora ~]$ alternatives --list | grep java jre_openjdk auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre jre_1.7.0 auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre java auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/java libjavaplugin.so.x86_64 auto …

3
วิธีทำความเข้าใจรายชื่อการ์ดเสียง ความหมายของ MID, HDMI, PCH
คำสั่งaplay -lสร้างรายการ "การ์ดเสียงและอุปกรณ์เสียงดิจิตอลทั้งหมด" บนเดสก์ทอป Fujitsu Esprimo ใหม่ล่าสุดของฉันฉันได้รับ: **** List of PLAYBACK Hardware Devices **** card 0: MID [HDA Intel MID], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: MID [HDA Intel MID], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 …
13 audio 

1
การใช้ libc สำรองกับ ld-linux.so hacks; วิธีทำความสะอาด?
ฉันมีระบบดั้งเดิมที่มี glibc ที่เก่ามากซึ่งเราไม่สามารถอัพเกรดได้โดยไม่ต้องมีการทดสอบ / ตรวจสอบความถูกต้อง ฉันจำเป็นต้องเรียกใช้โปรแกรมใหม่ (เช่น Java 1.7) บนระบบนั้นหลายครั้งแล้ว ฉันเลือกโซลูชัน chroot ที่ฉันจัดเก็บ libs ที่จำเป็นทั้งหมดและเรียกใช้บริการใน chroot แม้ว่า chroot จะมีข้อ จำกัด มากและฉันอยากจะลองแก้ปัญหาด้วย LD_LIBRARY_PATH น่าเสียดายที่ฉันได้รับข้อผิดพลาดlibc.so.6: cannot handle TLS dataเมื่อฉันลองทำ ปรากฎว่าฉันต้องการ/lib/ld-linux.so.2จาก chroot เช่นกัน งานนี้: LD_LIBRARY_PATH=/home/chroot/lib /home/chroot/lib/ld-linux.so.2 /home/chroot/bin/program อย่างไรก็ตามjavaเกียดเคล็ดลับของฉันโดยการตรวจสอบ/proc/self/cmdlineเพื่อกำหนดที่จะโหลดห้องสมุดจากซึ่งล้มเหลวหากไบนารีไม่ได้ชื่อว่า 'bin / java' นอกจากนี้ java เรียกใช้ตัวเองในระหว่างการเริ่มต้นปัญหาที่ซับซ้อนมากขึ้น ในความพยายามครั้งสุดท้ายที่จะทำให้งานนี้ฉันเปิดไบนารี Java ด้วยโปรแกรมแก้ไขฐานสิบหกและแทนที่สตริง/lib/ld-linux.so.2ด้วย/home/chroot/ld.so(และทำให้ symlink เป็นld-linux.so.2) และทำงานได้! แต่ฉันคิดว่าทุกคนจะเห็นด้วยว่ามันเป็นกระบองขนาดใหญ่ที่จะเขียนเส้นทางของไบนารีใหม่ทุกตัวไปยังเส้นทางที่แน่นอนของระบบซ้อน ไม่มีใครรู้วิธีที่สะอาดกว่าการใช้เส้นทางไลบรารีที่กำหนดเองรวมถึง ld-linux.so …

1
cron เที่ยงคืน 00 24 หรือ 00 00 [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา crontab ปัจจุบันของฉันดูเหมือนว่า: 00 00 * * 1-5 "/home/user/script.sh" แต่ดูเหมือนว่ามันไม่ได้ถูกกระตุ้น ส่วนคนอื่น ๆ ก็เริ่มทำงานได้ดียกเว้นคนที่ทำงานตอนเที่ยงคืน รูปแบบที่เหมาะสมสำหรับเที่ยงคืนคืออะไร 00 00หรือ00 24?
13 cron 

5
เหตุใด“ cat ttyUSB0” จึงไม่สร้างผลผลิต
ฉันเชื่อมต่อตัวรับสัญญาณอินฟราเรดเข้ากับพอร์ต USB ... (บรรทัดสุดท้ายของ dmesg บอกไฟล์อุปกรณ์) $ dmesg [10496.596063] usb 7-2: new full-speed USB device number 2 using uhci_hcd [10496.751112] usb 7-2: New USB device found, idVendor=0df7, idProduct=0620 [10496.751117] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [10496.751120] usb 7-2: Product: USB-Serial Controller [10496.751124] usb 7-2: Manufacturer: Prolific Technology …
13 files  usb  devices  cat  input 

4
ฉันจะรับรองความถูกต้องกับเครือข่าย "เปิด" ของผู้ให้บริการไร้สายโดยไม่ต้องใช้เบราว์เซอร์ได้อย่างไร
การตั้งค่าประเภทนี้ดูเหมือนจะเป็นเรื่องปกติในห้างสรรพสินค้าและสนามบิน ใน Western Canada Shaw ให้บริการดังกล่าวและเรียกมันว่า "Shaw Open" ฉันค่อนข้างมั่นใจว่าสถานที่อื่น ๆ มีบริการที่คล้ายกันจากผู้ให้บริการเช่น T-Mobile เป็นต้น จากบางอย่างเช่นโทรศัพท์มือถือมันไม่ซับซ้อนเลยที่จะทำ ไม่จำเป็นต้องมีการตรวจสอบสิทธิ์เพื่อเชื่อมต่อกับ wifi hotspot เนื่องจากเป็น "เปิด" สำหรับการเข้าถึงสาธารณะ แต่โทรศัพท์มือถือของฉันจะไม่เชื่อมต่อกับเว็บไซต์หรือบริการระยะไกลผ่านแอพจนกว่าฉันจะใช้เบราว์เซอร์ของฉันและลงชื่อเข้าใช้หน้าเว็บเฉพาะที่ ISP ให้ไว้ คำถามของฉันก็คือ: ฉันจะทำขั้นตอนการรับรองความถูกต้องโดยอัตโนมัติจากอุปกรณ์ที่ไม่มีเบราว์เซอร์แบบดั้งเดิมได้อย่างไร โดยเฉพาะอย่างยิ่งในกรณีของฉันราสเบอร์รี่ Pi กำหนดค่าด้วยซอฟต์แวร์ที่ฉันต้องการใช้ที่งานแสดงสินค้า ฯลฯ สถานที่เหล่านี้มีฮอตสปอตแบบ "เปิด" แบบเดียวกัน Raspi นั้นหมายถึงการมีอยู่ในตัวเอง มันทำธุรกิจและพูดคุยกับเว็บไซต์ แต่การเชื่อมต่อขาออกนี้ถูกปิดกั้นโดยการเชื่อมต่อ "เปิด" ของ ISP เพราะฉันไม่ได้ทำหรือฉันไม่สามารถทำส่วนเบราว์เซอร์ให้เสร็จสิ้น สมมติว่าฉันมีหนังสือรับรองให้ทำเช่นนี้ในเครือข่ายของผู้ให้บริการเฉพาะฉันจะทำให้ส่วนนั้นของกระบวนการโดยอัตโนมัติโดยไม่ต้องให้ฉันเปิดเซสชันเทอร์มินัลกับ Pi ได้อย่างไร มีเทคโนโลยีประเภทใดที่ฉันสามารถใช้ค้นหาได้ที่นี่

2
วิธีการตั้งค่าอินเตอร์เฟซเครือข่าย 2 อย่างใน CentOS อย่างเหมาะสม (ทำงานใน VirtualBox)
ฉันมีเครื่อง VirtualBox ที่ใช้งาน CentOS 6.5 ฉันสร้างอะแดปเตอร์เครือข่าย 2 ตัวสำหรับการตั้งค่าเครือข่ายของ VirtualBox สำหรับเครื่อง อย่างแรกคือ NAT ซึ่งฉันต้องการให้แขกใช้เชื่อมต่อกับอินเทอร์เน็ตและครั้งที่สองที่ฉันตั้งไว้ที่ Host-only ซึ่งฉันจะใช้กับ SSH และเข้าถึงเว็บเซิร์ฟเวอร์จากโฮสต์คอมพิวเตอร์ บทช่วยสอนนี้ที่ฟอรัม VirtualBoxคือสิ่งที่ฉันต้องการบรรลุ แต่ฉันไม่สามารถค้นหา/etc/network/interfacesไฟล์บน CentOS 6.5 ได้ดังนั้นฉันจึงสันนิษฐานว่าการกำหนดค่านั้นแตกต่างกัน มีการติดตั้งทั้งอะแดปเตอร์ NAT และโฮสต์เท่านั้นฉันเริ่มต้น VM และทำip addr showและฉันมี 2 อินเทอร์เฟซeth0และeth2(ฉันไม่รู้ว่าทำไมeth1ถูกข้ามอย่างใด) ดังนั้นฉันจึงกำหนดค่าifcfg-ethXไฟล์ทั้งสอง/etc/sysconfig/network-scriptsตั้งeth0เป็น DHCP (สำหรับ NAT) และeth2เป็น IP แบบคงที่ (สำหรับโฮสต์เท่านั้น) สำหรับeth0, ONBOOT=yesในขณะที่สำหรับ,eth2 ONBOOT=noด้วยการตั้งค่านี้ฉันสามารถpingใช้อินเทอร์เน็ตping -c 3 www.google.comและได้รับการตอบสนองดังนั้นฉันจึงรู้ว่าฉันสามารถเชื่อมต่ออินเทอร์เน็ตeth2ได้ ifup eth2ต่อไปผม จากเครื่องโฮสต์ฉันใช้ SSH …

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