Unix & Linux

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

6
สร้าง ID เฉพาะของเครื่องที่สอดคล้องกัน
เราสามารถสร้าง id ที่ไม่ซ้ำกันสำหรับพีซีแต่ละเครื่องเช่น uuuidgen แต่มันจะไม่เปลี่ยนแปลงเว้นแต่จะมีการเปลี่ยนแปลงฮาร์ดแวร์หรือไม่? ฉันกำลังคิดเกี่ยวกับการรวม CPUID และ MACADDR และแฮชพวกเขาเพื่อสร้าง ID ที่สอดคล้องกัน แต่ฉันไม่มีความคิดวิธีแยกวิเคราะห์พวกเขาโดยใช้ bash script สิ่งที่ฉันรู้คือฉันจะได้รับ CPUID จาก dmidecode -t 4 | grep ID และ ifconfig | grep ether จากนั้นฉันต้องรวมสตริง hex เหล่านั้นและแฮชใช้ sha1 หรือ md5 เพื่อสร้างสตริง hex ความยาวคงที่ ฉันจะแยกวิเคราะห์ผลลัพธ์นั้นได้อย่างไร

5
ความหมายของคอลัมน์ที่อยู่โลคัล Netstat
เมื่อฉันnetstat -ntlpมีคอลัมน์เรียกว่าLocal Address: บางครั้งมันจะเอาท์พุทที่อยู่ IP เป็น 0.0.0.0:7180 และบางเวลา 127.0.0.1:9001 ความหมายของสัญลักษณ์ทั้งสองคืออะไร ที่อยู่ IP ที่เฉพาะเจาะจงทำหน้าที่เหมือนตัวกรองสำหรับการเชื่อมต่อขาเข้าหรือไม่? เช่น127.0.0.1:9001นั้นจะยอมรับการเชื่อมต่อจาก localhost บนพอร์ต 9001 เท่านั้น?
20 netstat 

1
ดึงไฟล์จากคอนเทนเนอร์ Docker หรือไม่?
ฉันเห็นว่าเป็นไปได้ที่จะแทรกไฟล์ลงในคอนเทนเนอร์ Docker ผ่านinsert: docker insert IMAGE URL PATH มีวิธีการดึงเนื้อหาของไฟล์ในคอนเทนเนอร์ Docker และบันทึกไว้ที่ใดที่หนึ่งบนระบบปฏิบัติการโฮสต์หรือไม่ ฉันต้องการแยกค่าของไฟล์การกำหนดค่าและเก็บไว้ในระบบปฏิบัติการโฮสต์ของฉัน
20 linux  docker 

2
ความสามารถในการพกพาของลิงค์ไฟล์อธิบาย
ฉันสงสัยอยู่เสมอ แต่ไม่เคยใช้เวลาในการค้นหาดังนั้นฉันจะทำตอนนี้ - การใช้งานแบบพกพาแสดงได้อย่างไรจากที่นี่/proc/$$/fd/$Nหรือ /dev/fd/$Nฉันเข้าใจการรับประกัน POSIX /dev/null, /dev/tty, and /dev/console (แม้ว่าฉันจะพบว่าในวันอื่น ๆ หลังจากอ่านความคิดเห็นในคำตอบนี้ )แต่แล้วคนอื่น ๆ เหล่านี้ล่ะ? เท่าที่ฉันสามารถบอกได้ว่าพวกเขาเป็นเรื่องธรรมดา แต่ในระบบใดที่ฉันไม่สามารถคาดหวังว่าจะพบพวกเขา ทำไมจะไม่ล่ะ? มีแนวโน้มที่จะพบหนึ่งมากกว่าอื่น ๆ ? พวกเขาจะแสดงเหมือนแอตทริบิวต์เสมอหรือไม่ ฉันมักจะใช้อุปกรณ์เหล่านี้อย่างกว้างขวางในทุกรูปแบบและฉันอยากจะรู้ว่าถ้ามีโอกาสฉันจะลองสั้น ๆ ควรเข้าใจคำถามข้างต้นเป็นเพียงสิ่งที่ฉันคิดว่าฉันอยากรู้ แต่เนื่องจากฉันต้องถามตั้งแต่แรกฉันอาจไม่ทราบดีที่สุดในเรื่องนี้และพวกเขาไม่ควรพิจารณาข้อกำหนดที่เข้มงวดสำหรับ คำตอบ. กรุณาช่วยฉันด้วยถ้าทำได้โปรดเถอะ

4
เส้นทาง shebangs อิสระ
ฉันมีสคริปต์ที่ฉันต้องการให้สามารถทำงานในสองเครื่อง เครื่องทั้งสองนี้รับสำเนาของสคริปต์จากที่เก็บ git เดียวกัน สคริปต์ต้องทำงานด้วยล่ามที่ถูกต้อง (เช่นzsh) น่าเสียดายที่ทั้งคู่ envและzshอาศัยอยู่ในสถานที่ต่าง ๆ ในเครื่องท้องถิ่นและระยะไกล: เครื่องรีโมต $ which env /bin/env $ which zsh /some/long/path/to/the/right/zsh เครื่องท้องถิ่น $ which env /usr/bin/env $which zsh /usr/local/bin/zsh ฉันสามารถตั้งค่า shebang เพื่อให้การทำงานสคริปต์ที่เป็น/path/to/script.shมักจะใช้Zshในที่มีอยู่PATH?
20 shell  zsh  cron  path 

2
เรียกใช้ตัวช่วยสร้างการใช้งาน Zsh ครั้งแรก
ฉันได้เลือกที่ไม่ถูกต้องเมื่อตั้งค่า Zsh เป็นครั้งแรกดังนั้นตอนนี้ฉันต้องการเรียกใช้ตัวช่วยสร้างการกำหนดค่า (สิ่งที่รันครั้งแรกที่คุณเข้าสู่ระบบ) อีกครั้ง ฉันจะทำสิ่งนี้ได้อย่างไร

4
อาร์กิวเมนต์ 'find' ใน command dd
บางคนสามารถอธิบายว่าเกิดอะไรขึ้นในบรรทัดต่อไปนี้ dd if=/dev/urandom bs=4096 seek=7 count=2 of=file_with_holes โดยเฉพาะการค้นหาส่วนที่ไม่ชัดเจน หน้าคนพูดว่า: seek=BLOCKS skip BLOCKS obs-sized blocks at start of output บล็อกขนาด obs คืออะไร?
20 dd 

5
วิธีรับ EDID สำหรับจอภาพเดียว
รอดำเนินการคำตอบกับผู้ตรวจ xrandr Amplifier เป็นตรวจสอบวิธีแก้ปัญหาที่เป็นไปได้กับอุปกรณ์ที่มีบัญชีดำเฉพาะEDID s แต่น่าเสียดายที่xrandr --verboseพิมพ์ทุกอย่างในรูปแบบที่ยุ่งยากในการแยกวิเคราะห์และไม่สนับสนุนการสืบค้นอุปกรณ์เดียวและget-edidผลลัพธ์ของมันดูเหมือนจะไม่ง่ายในการจับคู่กับxrandrID การตรวจสอบของ (เช่นDVI-1) มีวิธีรับEDID ที่แยกวิเคราะห์ได้ง่ายสำหรับจอภาพเดียวหรือไม่?
20 xrandr  edid 

5
Udev: เปลี่ยนชื่ออินเทอร์เฟซเครือข่ายของฉัน
ฉันเพิ่งติดตั้งRHEL 6.3บนเซิร์ฟเวอร์ Dell 1950 เซิร์ฟเวอร์นี้เป็นพอร์ตสอง GBit, Gb0 และ Gb1 ด้วยเหตุปิดบังบางส่วนudevเลือกที่จะตั้งชื่อGb0 eth1และgB1 eth0นี่ไม่ใช่สิ่งที่ดีสำหรับฉันและทำให้เกิดความสับสน ดังนั้นฉันจึงปรับเปลี่ยนการกำหนดค่าใน/etc/udev/rules.d/70-persistent-net.rules: # PCI device 0x14e4:0x164c (bnx2) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \ ATTR{address}=="00:20:19:52:d3:c0", \ ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x14e4:0x164c (bnx2) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \ ATTR{address}=="00:20:19:52:d3:be", \ ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" ฉันเพิ่งเปลี่ยนฟิลด์ "NAME" ในไฟล์เพื่อสะท้อนสิ่งที่ฉันต้องการ ฉันรีบูทเซิร์ฟเวอร์และมันไม่ทำงาน ในdmesgบันทึกที่ฉันสามารถอ่านต่อไปนี้: udev: renamed network interface …
20 linux  rhel  udev 

6
เทอร์มินัล - คัดลอกจาก CLI โดยไม่ต้องใช้เมาส์
ในขณะที่ยิงคำสั่งใน CLI ฉันต้องการคัดลอกคำสั่งที่ฉันเพิ่งไล่ออกหรือสิ่งที่ฉันเขียนใน terminal และวางไว้ที่อื่นโดยไม่ต้องใช้เมาส์ เหมือนในภาพต่อไปนี้ฉันต้องการคัดลอกคำสั่ง update (ทั้งหมดหรือบางส่วน) โดยไม่ต้องใช้เมาส์และวางไว้ที่ใดที่หนึ่ง

3
หลีกเลี่ยงลำดับด้วย "echo -e" ในกระสุนที่แตกต่างกัน
ฉันเพิ่งสังเกตเห็นว่าดูเหมือนว่าแฟล็ก-eไม่มีอยู่สำหรับechoคำสั่งในเชลล์ของฉันบน Linux นี่เป็นเพียงการตั้งค่าที่สับสนหรือเป็น "ปกติ" หรือไม่ ตัวอย่างรหัสบางส่วน: #!/bin/sh echo -e "\e[3;12r\e[3H" พิมพ์: -e \e[3;12r\e[3H ก่อนหน้านี้ทำงานได้! ฉันเดาว่าsttyคำสั่งบางอย่างผิดพลาดไปอย่างมากและตอนนี้มันไม่ทำงานอีกต่อไป ใครบางคนบอกว่าฉันเป็นจริงเพียงshbash

5
วิธีการแสดงชื่อของ Virtualenv ปัจจุบัน?
ฉันใช้virtualenv, virtualenvwrapper, zsh, oh-my-zsh, เทอร์มิบน Crunchbang ฉันพยายามแสดงชื่อของกระแสvirtualenvเช่นนั้น workon example (example)... ฉันลองใช้วิธีแก้ปัญหาหลายอย่างแล้วดูเหมือนว่าจะไม่ทำงานนี่คือไฟล์. zshrc ของฉันฉันรู้ว่ามันไม่ใช่เรื่องใหญ่ที่จะแก้ไข แต่ฉันไม่สามารถหาโซลูชันที่เหมาะสมได้ เป็นเวลานานแล้วนับตั้งแต่ครั้งสุดท้ายที่ฉันใช้ Linux สำหรับการพัฒนา Django ฉันลืมสิ่งที่ฉันเคยทำ ตอนนี้ฉันเห็นusername@crunchbangแล้วฉันไม่สามารถบอกได้ว่า virtualenv ที่ฉันใช้อยู่

4
แยกเอาท์พุทยาวเป็นสองคอลัมน์
มียูทิลิตี้หรือสคริปต์ง่าย ๆ ที่จะจัดเรียงผลลัพธ์จากหนึ่งในสคริปต์ของฉันหรือไม่ ฉันมีข้อมูลในบางรูปแบบ: A aldkhasdfljhaf B klajsdfhalsdfh C salkjsdjkladdag D lseuiorlhisnflkc E sdjklfhnslkdfhn F kjhnakjshddnaskjdh แต่ถ้าสิ่งนี้กลายเป็นสองความยาวให้เขียนข้อมูลในรูปแบบต่อไปนี้ (ซึ่งยังคงเรียงตามแนวตั้ง): A aldkhasdfljhaf D lseuiorlhisnflkc B klajsdfhalsdfh E sdjklfhnslkdfhn C salkjsdjkladdag F kjhnakjshddnaskjdh จากการอ่าน manpage ฉันไม่คิดว่านี่จะเป็นสิ่งcolumnที่เหมาะสม แต่ฉันไม่แน่ใจ มันง่ายที่จะแยกในรูปแบบ: A B C D E F โดยพิมพ์เฉพาะ\nทุกบรรทัดที่สอง (สิ่งที่สคริปต์ปัจจุบันของฉันทำ) ความคิดใด ๆ ขอบคุณ!

2
systemd: ทำให้คำสั่ง modprobe เป็นอัตโนมัติในเวลาบูต
การแจกจ่ายของฉันคือ Fedora 17 Gnome ทุกครั้งที่ฉันรีบูต / รีสตาร์ทคอมพิวเตอร์ฉันต้องเรียกใช้คำสั่งนี้ในฐานะรูท: modprobe rt2800usb ฉันจะทำให้มันถาวรได้อย่างไร

2
การตั้งค่าตัวแปรเชลล์ในแบบรวมศูนย์เป็นโมฆะ
ฉันชอบ "null coalescing" จริง ๆ ซึ่งคุณสามารถตั้งค่าตัวแปรเป็นค่า "ไม่ใช่ null" ครั้งแรกในรายการของสิ่งต่าง ๆ หลายภาษารองรับสิ่งนี้เช่น: ค#: String myStr = string1 ?? string2 ?? "default"; JavaScript: var myStr = string1 || string2 || "default"; ... ฯลฯ ฉันแค่อยากรู้ว่าสิ่งนี้สามารถทำได้ใน Bash เพื่อตั้งค่าตัวแปรหรือไม่? หลอก: MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
20 bash  shell  variable 

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