Unix & Linux

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

5
Shell Script: คว้าสตริงที่อยู่ตรงกลางของข้อความบางครั้งในตอนเริ่มต้น
ฉันมีไฟล์ข้อความขนาดใหญ่ที่ส่วนหนึ่งของมันมีลักษณะเช่นนี้ (ค่าที่แก้ไข): JULIANA XXXX006060 LI1033322 THC BRL 730.00 XXXX006296 AA1004737 THC BRL 1,740.00 SANTOS JULIANA XXXX006668 AA1004786 THC BRL 8,150.00 SANTOS JULIANA CABINDA XXXX006697 AA1004777 THC BRL 2,325.00 SANTOS JULIANA XXXX006699 AA1004790 THC BRL 2,325.00 JULIANA BATA XXXX006141 CCC012946 THC BRL 1,460.00 JULIANA BATA XXXX006153 CCC013054 THC BRL 870.00 JULIANA …

5
วิธีย่อ / path / to / file ไปยัง / p / t / file
ฉันกำลังมองหาซับในที่สง่างาม (เช่นawk) ที่จะทำให้สตริงของเส้นทาง Unix สั้นลงโดยใช้อักขระตัวแรกของผู้ปกครองแต่ละคน / ระดับกลาง แต่เป็นชื่อเต็ม ง่ายต่อการแสดงโดยตัวอย่าง: /path/to/file → /p/t/file /tmp → /tmp /foo/bar/.config/wizard_magic → /f/b/./wizard_magic /foo/bar/.config/wizard_magic→ /f/b/.c/wizard_magic จากจุดที่ดีโดย @ MichaelKjörlingและ @ChrisH ด้านล่างตัวอย่างนี้แสดงให้เห็นว่าเราจะแสดงตัวละครสองตัวแรกอย่างไรเมื่อตัวอักษรตัวแรกเป็นจุด
9 sed  awk  string 

2
ฉันจะป้องกัน tmux ไม่ให้บล็อคได้อย่างไรเมื่อฉันเลื่อนขึ้น?
tmux นั้นยอดเยี่ยม แต่ฉันมักจะอยู่ในสถานการณ์ที่การเลื่อนขึ้นทำให้เกิดปัญหา (เล็กน้อยที่ยอมรับ แต่ยังไม่พึงประสงค์) ตัวอย่างเช่นฉันมีเซิร์ฟเวอร์ node.js ที่ทำงานในหน้าต่างเดียวและ BrowserSync พยายามโหลดแอพใหม่ทุกครั้งที่ฉันเปลี่ยนไฟล์ หากฉันเลื่อนขึ้นเพื่ออ่านconsole.logเอาต์พุตบางส่วน(แต่ลืมไปว่าฉันกำลังบล็อกเซิร์ฟเวอร์) และจากนั้นฉันทำการเปลี่ยนแปลงในเครื่องมือแก้ไขของฉันไม่มีอะไรเกิดขึ้น มีวิธีที่จะทำให้ tmux ไม่บล็อกเซิร์ฟเวอร์ แต่เพียงหยุดเพิ่มเอาต์พุตใหม่ที่ด้านล่างของ scroll buffer และให้ฉันดูส่วนเดิมของ buffer ที่ฉันเลื่อนไปก่อนหน้านี้หรือไม่
9 tmux 

4
การขยายตัวของค้ำยันจากขวาไปซ้าย
ใน zsh (และเชลล์อื่น ๆ ) ถ้าฉันมีอาร์กิวเมนต์เช่น (ตัวอย่าง): {a,b,c}{d,e,f} การขยายรั้งเปลี่ยนเป็น: ad ae af bd be bf cd ce cf สำหรับวัตถุประสงค์ของฉันลำดับการโต้แย้งมีความสำคัญและฉันต้องการเครื่องมือจัดฟันเพื่อขยายจากขวาไปซ้ายแทนซ้ายไปขวา นั่นคือฉันต้องการขยายตัวเป็น: ad bd cd ae be ce af bf cf มีวิธีควบคุมลำดับของการจัดฟันหลายชุดหรือไม่? ฉันกำลังมองหาบางสิ่งบางอย่างที่จะทำงานในสถานการณ์ใด ๆ ไม่เพียง แต่มีข้อโต้แย้งเหล่านี้

2
นามแฝงใหม่ไม่สามารถใช้ได้หลังจาก
ถึงตอนนี้ฉันคิดว่าเซมิโคลอนในเชลล์มีความหมายเดียวกับตัวแบ่งบรรทัด (อย่างใด) ดังนั้นฉันจึงแปลกใจที่สำหรับ alias <name>=<replacement text>; <name> <name>ไม่เป็นที่รู้จักในขณะที่มันเป็นที่รู้จักในบรรทัดถัดไป csh, tcsh, sh, kshและbashประพฤติเดียวกัน อย่างน้อยcshก็ไม่สำคัญว่าจะใช้นามแฝงโดยตรงหรือหากสคริปต์มีที่มาก่อนเซมิโคลอน - นามแฝงจะไม่รู้จัก;แต่จะรู้จักในบรรทัดคำสั่งถัดไป นี่เป็นข้อบกพร่องหรือพฤติกรรมนี้ตั้งใจหรือไม่
9 shell  alias 

2
ความแตกต่างระหว่าง chronyd และ ntpd
ความแตกต่างระหว่างchronydและntpdคืออะไร? ฉันรู้ว่าntpdสามารถปรับเวลาให้ค่อย ๆ เพื่อให้สามารถมาบรรจบกันเป็นนาฬิกาอ้างอิงได้ สามารถทำได้ด้วยchronyหรือไม่
9 ntp  ntpd  chrony 

1
ctrl + alt + backspace เลิกใช้งานแล้วหรือไม่
ฉันกำลังค้นคว้าวิธีเปิดใช้งานปุ่มลัด kill X ที่รู้จักกันในอดีตว่าเป็นCtrlAltBackspaceและสะดุดกับการสนทนานี้: https://bbs.archlinux.org/viewtopic.php?id=73617 ที่นั่นในโพสต์ # 7 มีการกล่าวต่อไปนี้: ในเวอร์ชันของ X.org-server> 1.6.0 พวกเขาได้ปิดการใช้งาน 'Zapping' ในการอธิบายนั้นมีการประกาศว่า alt-sysreq-k นั้น "ดีกว่า" [กว่า zap] เพราะมันยากที่จะถูกโจมตีโดยบังเอิญและเชื่อถือได้มากขึ้นเนื่องจากมีการใช้งานในเคอร์เนลและไม่ใช่ X นั่นหมายความว่าCtrlAltBackspaceเลิกอย่างเป็นทางการหรือไม่ และการแทนที่คือการใช้AltSysrqK(ฆ่ากระบวนการทั้งหมดบนคอนโซลเสมือนปัจจุบัน) แทน? ฉันไม่สามารถหาแหล่งที่มาของการสนทนาดังกล่าวได้ น่าเศร้าที่มันไม่ได้เชื่อมโยง โปรดทราบว่าการสนทนามาจาก 2009 CtrlAltBackspaceยังทราบว่าผมไม่ได้ถามถึงวิธีการเปิดใช้งาน ฉันกำลังถามว่าCtrlAltBackspaceเลิกอย่างเป็นทางการ
9 xorg 

2
จะลบไดเรกทอรีที่มี subvolumes หลาย btrfs ได้อย่างไร
ระบบไฟล์รูทของฉันอยู่ในพาร์ติชัน btrfs /chrootไดเรกทอรีของฉันมีไดรฟ์ย่อย btrfs อยู่จำนวนหนึ่งซึ่งทำให้ฉันไม่สามารถลบออกrm -rf /chrootได้ ในความพยายามที่จะลบไดรฟ์ย่อยทั้งหมดฉันพยายามแสดงรายการเฉพาะไดรฟ์ย่อยด้านล่าง/chrootโดยใช้-o, ซึ่งหน้าคนบอกว่า "พิมพ์เฉพาะไดรฟ์ย่อยด้านล่างเส้นทางที่ระบุ" # btrfs subvolume list -o /chroot ID 593 gen 6616 top level 5 path chroot/base-devel/root ID 594 gen 6618 top level 5 path chroot/multilib-devel/root ID 595 gen 6620 top level 5 path chroot/base/root ID 597 gen 6624 top level 5 …
9 rm  btrfs 

1
ซอฟต์แวร์กึ่งกรรมสิทธิ์สามารถใช้ Linux Kernel ได้อย่างไร
หากฉันเข้าใจอย่างถูกต้องเคอร์เนล Linux ได้รับอนุญาตภายใต้ GPL ซึ่งหมายความว่าหากใครก็ตามมีสิ่งใดอยู่ในนั้นพวกเขาจะต้องอนุญาตให้ใช้งานตราสารอนุพันธ์ทั้งหมดภายใต้ GPL ทำให้ทุกคนมีอิสระในการแก้ไขและ / หรือแจกจ่ายงานต่อเนื่อง ตัวอย่างเช่นทุกรุ่น Android จะขึ้นอยู่กับ LK ไม่ได้หมายความว่าจะต้องมีการปล่อยทั้งหมดและส่วนประกอบทั้งหมดภายใต้ GPL หรือไม่ ตัวอย่างเช่น Android ส่วนใหญ่วางจำหน่ายพร้อมส่วนประกอบที่เป็นกรรมสิทธิ์ นั่นไม่ได้เป็นการละเมิด GPL หรือไม่? ไม่จำเป็นต้องมีการดัดแปลงงานทั้งหมดภายใต้ GPL หรือไม่ สำหรับ Ubuntu คุณต้องดาวน์โหลดตัวแปลงสัญญาณ MPEG หลังจากติดตั้งแล้ว ฉันคิดว่านี่เป็นเพราะ MPEG เป็นกรรมสิทธิ์และใบอนุญาตของ MPEG นั้นเข้ากันไม่ได้กับ GPL ดังนั้นจึงไม่สามารถรวมในรุ่นเดียวกันได้ Android จะเผยแพร่ได้อย่างไร

2
เป็นไปได้ที่จะปลอมเส้นทางเฉพาะสำหรับกระบวนการหรือไม่?
ฉันกำลังพยายามเรียกใช้ ADB บนเซิร์ฟเวอร์ linux ที่มีผู้ใช้หลายคนที่ฉันไม่ได้รูท (เล่นกับ android emulator ของฉัน) ภูต adb เขียนบันทึกของระบบไปยังแฟ้ม/tmp/adb.logซึ่งน่าเสียดายที่ดูเหมือนว่าจะยากเขียนเป็น ADB และสถานการณ์เช่นนี้จะไม่เกิดการเปลี่ยนแปลง ดังนั้น adb cannot open '/tmp/adb.log': Permission deniedเป็นความล้มเหลวในการทำงานให้เกิดข้อผิดพลาดที่เห็นได้ชัด: ไฟล์นี้สร้างโดยผู้ใช้รายอื่นและ/tmpมีบิตติดอยู่ ถ้าฉันเริ่ม adb ด้วยadb nodaemon serverการทำให้มันเขียนถึง stdout จะไม่มีข้อผิดพลาดเกิดขึ้น (ฉันยังตั้งค่าพอร์ตเป็นค่าที่ไม่ซ้ำกันเพื่อหลีกเลี่ยงความขัดแย้ง) คำถามของฉันคือ: มีวิธีทำให้ ADB เขียนไปยังไฟล์อื่นกว่า/tmp/adb.log? โดยทั่วไปแล้วจะมีวิธีสร้าง symlink เฉพาะกระบวนการหรือไม่ ฉันต้องการที่จะเปลี่ยนเส้นทางการเข้าถึงไฟล์ทั้งหมดเพื่อที่จะบอกว่าแฟ้ม/tmp/adb.log~/tmp/adb.log อีกครั้งผมไม่ได้รากบนเซิร์ฟเวอร์ดังนั้นchroot, mount -o rbindและchmodไม่ได้เป็นตัวเลือกที่ถูกต้อง ถ้าเป็นไปได้ฉันไม่ต้องการแก้ไขแหล่งที่มาของ ADB แต่แน่นอนว่าถ้าไม่มีวิธีแก้ไขปัญหาอื่น ๆ ฉันจะทำเช่นนั้น ป.ล. สำหรับกรณี ADB …
9 linux  filenames  adb 

1
ฉันจะสร้างบัญชีด้วยสำเนาของโฮมโฟลเดอร์เดียวกันได้อย่างไร
ฉันมีบัญชี 'user1' โดยมีการตั้งค่าโฮมโฟลเดอร์ ฉันต้องการสร้างบัญชี 'user2' ด้วยสำเนาของการตั้งค่าโฮมโฟลเดอร์เดียวกัน เป็นไปได้ที่จะทำเช่นนี้?
9 centos  users  home 


1
นิรุกติศาสตร์ของ "descriptor" ใน "file descriptor"
การเลือกคำอธิบายให้ฉันเป็นคี่เสมอ "ดัชนี" หรือ "id" ดูเหมือนเป็นทางเลือกที่ชัดเจนกว่า มีเหตุผลที่รู้จักกันดีสำหรับการเลือกคำว่า "descriptor" หรือไม่? ฉันเดาว่า "ผู้ให้คำอธิบาย" เข้าใจว่าบ่อยครั้งที่มันเป็นแนวคิดที่สำคัญกว่า ish มากกว่า number-ish แต่บางครั้งมันก็เป็นตัวเลขที่มากจริงๆ

2
วิธีเชื่อมต่อกล้อง Sony ผ่าน Wifi จาก Linux
กล้อง Sony มาพร้อมกับการเชื่อมต่อ Wifi แต่ซอฟต์แวร์ของพวกเขานั้นมีการแจกจ่ายสำหรับ Mac และ Windows เท่านั้น (www.sony.net/pm/) ฉันจะเชื่อมต่อจาก Linux ได้อย่างไร (โดยเฉพาะ Fedora 22 <--> DSC-HX60) เมื่อฉันเปิดใช้งาน Wifi พุชกล้องบอกฉันว่าฉันต้องเพิ่มข้อมูลอุปกรณ์ผ่านทาง USB ก่อน ดูเหมือนว่าจะเป็นไปได้เฉพาะกับซอฟต์แวร์ PlayMemories ที่กล่าวถึงข้างต้น มีใครคิดวิธีการทำเช่นเดียวกันใน Linux? แดกดันดูเหมือนว่ากล้องจะทำงานบน BusyBox: / http://oss.sony.net/Products/Linux/DI/DSC-HX60V.html ps ฉันไม่ต้องการใช้ Wine หรือ VM เพื่อเรียกใช้ซอฟต์แวร์ Windows
9 linux  wifi  camera 

3
ลดระดับการบันทึกล็อกเคอร์เนลของเคอร์เนล
เมื่อเคอร์เนลของฉันบูทนอกเหนือจากข้อมูลสำคัญที่มีประโยชน์มันจะพิมพ์ข้อมูลการดีบักจำนวนมากเช่น .... kernel: [0.00000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable kernel: [0.00000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved kernel: [0.00000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved ... kernel: [0.00000] MTRR variable ranges enabled: kernel: [0.00000] 0 base 0000000000 mask 7E00000000 write-back ... kernel: [0.00000] init_memory_mapping: [mem 0x00100000-0xcf414fff] kernel: [0.00000] [mem 0x00100000-0x001fffff] page 4k kernel: [0.00000] [mem …
9 kernel  boot  logs  rsyslog  dmesg 

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