Unix & Linux

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

3
หมายเลขมายากลที่ไม่ดีในการถอดรหัส
ในเดือนเมษายนฉันเข้ารหัสไฟล์โดยใช้คำสั่ง openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil ตอนนี้ฉันต้องการถอดรหัสด้วย openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2 แต่ฉันได้รับหมายเลขเวทย์มนตร์ที่ไม่ดี ไฟล์ที่เข้ารหัสเมื่อวานนี้ด้วยพารามิเตอร์เดียวกันถอดรหัสตกลง อาจเกิดอะไรขึ้น และมีอยู่แล้วฉันสามารถดึงไฟล์ที่เก็บถาวรนี้ได้หรือไม่
12 openssl 

1
- สลับสวิตช์ของ "systemctl"
ตามที่ระบุไว้ในหน้าคน systemctl --now enable servicename ควรเปิดใช้งานและเริ่มบริการ แต่มันก็ไม่ได้ผลสำหรับฉัน ในขณะที่การส่งออกของ: systemctl is-enabled เปิดใช้งาน systemctl is-active ยังคงไม่ทำงานสำหรับบริการ สวิตช์นี้เหมาะกับอะไร? ฉันได้ลองชุดค่าผสมอื่น ๆ เช่น: systemctl enable --now servicename และ: systemctl enable servicename --now แต่ยังคงเหมือนเดิม ผมได้ด้วยตนเองsystemctl start servicenameทุกครั้งแม้ว่าคำสั่งก่อนหน้า (เช่นenableบางส่วน) ดำเนินการประสบความสำเร็จ มันคือการที่การ implentation ของบริการ systemd ของแอพพลิเคชั่นควรสนับสนุนการใช้คุณสมบัตินี้ในไฟล์หน่วย; บริการที่มีชื่อเสียงหลายคนไม่ปฏิบัติตามนั่นทำให้ฉันคิดว่ามันไร้ประโยชน์อย่างสิ้นเชิง ฉันคิดว่ามันมากกว่า

3
ป้องกัน EOF อัตโนมัติไปที่ไปป์ที่มีชื่อและส่ง EOF เมื่อฉันต้องการ
ฉันมีโปรแกรมที่ออกโดยอัตโนมัติเมื่ออ่าน EOF ในสตรีมที่กำหนด (ในกรณีต่อไปนี้ stdin) ตอนนี้ฉันต้องการสร้างเชลล์สคริปต์ซึ่งสร้างไพพ์ที่มีชื่อและเชื่อมต่อ stdin ของโปรแกรม จากนั้นสคริปต์จะเขียนไปยังไพพ์หลายครั้งโดยใช้echoและcat(และเครื่องมืออื่น ๆ ที่สร้าง EOF โดยอัตโนมัติเมื่อพวกเขาออก) ปัญหาที่ฉันเผชิญคือเมื่อสิ่งแรกechoเสร็จแล้วมันจะส่ง EOF ไปที่ไพพ์และทำให้โปรแกรมออกจาก ถ้าฉันใช้บางอย่างเช่นtail -fนั้นฉันจะไม่สามารถส่ง EOF เมื่อฉันตั้งใจจะออกจากโปรแกรม ฉันกำลังค้นคว้าวิธีแก้ปัญหาที่สมดุล แต่ก็ไม่มีประโยชน์ ฉันพบวิธีป้องกัน EOF และวิธีส่ง EOF ด้วยตนเองแล้ว แต่ไม่สามารถรวมเข้าด้วยกันได้ มีคำใบ้อะไรบ้าง? #!/bin/sh mkfifo P program < P & : # Run in background # < P tail -n +1 -f | program …

3
แสดงรายการแพ็คเกจที่ติดตั้งด้วยตนเองระดับสูงสุดโดยไม่มีการอ้างอิง
มีหลายวิธีในการแสดงแพ็คเกจที่ติดตั้งด้วยตนเองโดยใช้aptเช่น: apt-mark showmanual แต่บางครั้งผลลัพธ์นั้นมากเกินไป ตัวอย่างเช่นถ้าผู้ใช้ติดตั้งแพ็กเกจด้วยตนเองfoo: apt-get install foo ... และfooขึ้นอยู่กับbarและbazจากนั้นapt-mark showmanualจะส่งออก: bar baz foo เราจะแสดงรายการเฉพาะแพ็คเกจระดับบนสุดที่ติดตั้งด้วยตนเองได้ ( เช่น foo ) โดยไม่มีการขึ้นต่อกัน ( เช่นไม่ใช่bazหรือbar) ดูเหมือนว่ารหัสต่อไปนี้จะทำงานได้ แต่GNU ที่ parallelเรียกapt-rdependsสองสามร้อยครั้งช้าเกินไป (สามชั่วโมงด้วย CPU 4 คอร์): apt-mark showmanual | tee /tmp/foo | parallel "apt-rdepends -f Depends,PreDepends,Suggests,Recommends {} | tail +2" 2> /dev/null | tr -s ' …
12 debian  ubuntu  apt  deb 

1
ฉันจะกำหนดค่าบริดจ์เชื่อมต่อเครือข่ายจาก WiFi ไปยัง Ethernet ด้วย Debian ได้อย่างไร
ฉันใช้ Raspberry Pi โดยใช้ Raspbian ซึ่งเป็นเพียง Debian ฉันต้องการเชื่อมต่อจากเราเตอร์เครือข่าย WiFi หลักที่เชื่อมต่อกับ Cox Cable กับเราเตอร์ที่มีสายเคเบิลของฉันที่นี่เพื่อให้เครือข่ายย่อยของฉันมีอินเทอร์เน็ตที่เชื่อถือได้ มันจะต้องเป็นสะพาน WiFi-to-Ethernet ฉันได้ตั้งค่า / etc / Networks สำหรับที่อยู่คงที่สำหรับ USB wlan1 ที่มีอะแดปเตอร์ภายนอกและเสาอากาศ hi-gain wpa_supplicant ถูกกำหนดค่าให้ล็อกอินเข้าสู่เราเตอร์หลักอย่างถูกต้อง ดังนั้นตอนนี้มันถูกตั้งค่าเพื่อให้ฉันสามารถเข้าสู่เครือข่ายที่เหมาะสมด้วยรหัสผ่านในภายนอก wlan1 ที่อยู่คงที่ตั้งอยู่ใน / etc / เครือข่าย Gateway และ Nameserver นั้นใช้ได้ ฉันสามารถท่องเว็บเพจเป็นต้น การเชื่อมโยงที่ขาดหายไปคือการเชื่อมโยงสิ่งนี้กับพอร์ต eth0 เพื่อให้เราเตอร์ของฉันสามารถเชื่อมต่อได้เพื่อให้บริการกับซับเน็ต ไม่จำเป็นต้องใช้บริการเครือข่ายพิเศษใด ๆ เช่นการกำหนดเส้นทางหรือ nat หรือ dhcp เป็นต้นเพียงแค่เชื่อมต่อกับบริดจ์ที่เรียบง่าย ใครช่วยชี้ฉันในทิศทางที่ถูกต้องเพื่อให้สิ่งนี้เกิดขึ้นได้ไหม?
12 debian  wifi  ethernet  bridge 

2
เหตุใดฉันจึงไม่สามารถเปลี่ยนเชลล์ด้วยคำสั่ง chsh ได้
ฉันเรียนรู้คำสั่งใหม่อย่างน้อยฉันก็คิดว่าเพราะคำสั่งนี้: chshไม่ทำงานตามที่อธิบายไว้ มันอธิบายว่าทำงานเช่นนี้: cat /etc/shells รู้ว่าเชลล์ใดติดตั้งอยู่แล้วเพื่อให้คุณสามารถเลือกได้ ทำอย่างไรecho $SHELLให้รู้ว่าคุณใช้เชลล์ตัวไหน เลือกหนึ่งในเปลือกหอยและประเภท chsh -s /path/to/shell ป้อนรหัสผ่านและยืนยันecho $SHELLด้วยว่าคุณอยู่ในเชลล์ใหม่ ฉันได้ทำสิ่งนี้แล้วและฉันไม่ได้รับข้อความแสดงข้อผิดพลาดเมื่อป้อนรหัสผ่าน แต่ฉันยังอยู่ในเชลล์เดียวกัน % echo $SHELL /bin/bash % cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash % chsh -s /bin/sh Password: % echo $SHELL /bin/bash

2
avahi-daemon และปัญหาโดเมน“. local”
ฉันมีUbuntu 16.04 HTPC วิชาชีพ / Media Server ที่ทำงาน24/7 เท่าที่ฉันจำได้ว่าใช้งาน Ubuntu อย่างเป็นทางการฉันมีปัญหากับavahi-daemonเสมอ ปัญหาได้รับการกล่าวถึงทางออนไลน์บ่อยครั้ง บางคนตัดสินใจที่จะลบ daemon แต่ฉันต้องการจริง ๆ เพราะฉันใช้เซิร์ฟเวอร์ CUPS และใช้ Kodi เป็นตัวรับ AirPlay ของฉัน ปัญหา mDNS / DNS-SD เป็นอย่างโดยเนื้อแท้เข้ากันกับโซน DNS unicast .local เราขอแนะนำไม่ให้ใช้ Avahi หรือ nss-mdns ในการตั้งค่าเครือข่าย หมายเหตุ: nss-mdns โดยทั่วไปแล้วจะไม่รวมกับ Avahi และจำเป็นต้องมีการดาวน์โหลดและติดตั้งแยกต่างหาก (avahi.org) อาการง่าย - หลังจากผ่านไปประมาณ 2-4 วันการเชื่อมต่อเครือข่ายจะลดลงและสิ่งนี้จะถูกบันทึกไว้ Mar 17 18:33:27 …
12 linux  dns  avahi 

10
ลบคำที่ซ้ำกันทั้งหมดออกจากสตริงโดยใช้เชลล์สคริปต์
ฉันมีสตริงเหมือน "aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc" ฉันต้องการลบคำที่ซ้ำกันออกจากสตริงจากนั้นผลลัพธ์จะเป็นเช่นนั้น "aaa,bbb,ccc" ฉันลองรหัสนี้แหล่งที่มา $ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs มันทำงานได้ดีกับค่าเดียวกัน แต่เมื่อฉันให้ค่าตัวแปรแล้วมันจะแสดงคำที่ซ้ำกันทั้งหมดด้วย ฉันจะลบค่าที่ซ้ำกันได้อย่างไร UPDATE คำถามของฉันคือการเพิ่มค่าที่สอดคล้องกันทั้งหมดลงในสตริงเดียวถ้าผู้ใช้เหมือนกันฉันมีข้อมูลเช่นนี้ -> user name | colour AAA | red AAA | black BBB | red BBB | blue AAA | blue AAA | red …

4
เป็นไปได้หรือไม่ที่จะแก้ไขไฟล์ yml ผ่าน shell script?
นี่คือลักษณะที่นักเทียบท่าของฉัน-compose.yml ดูเหมือน nginx: container_name: 'nginx' image: 'nginx:1.11' restart: 'always' ports: - '80:80' - '443:443' volumes: - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro' links: - 'anything' ตอนนี้ฉันต้องเพิ่มเนื้อหาผ่านเชลล์สคริปต์ (บนเซิร์ฟเวอร์ ubuntu) ฉันไม่แน่ใจว่ามันจะเป็นไปได้ทั้งหมด: เพิ่มองค์ประกอบใหม่ให้กับnginx/linksหากไม่มีอยู่ ผนวกnewthingบล็อกถ้าไม่มีสิ่งบล็อกใหม่อยู่ เนื้อหาใหม่ควรมีลักษณะเช่นนี้: nginx: container_name: 'nginx' image: 'nginx:1.11' restart: 'always' ports: - '80:80' - '443:443' volumes: - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro' - '/etc/letsencrypt:/etc/letsencrypt' links: - 'anything' - 'newthing' newthing: …

1
วิธีเปลี่ยนข้อความรหัสผ่านสำหรับ pass (ตัวจัดการรหัสผ่าน)
ฉันเปลี่ยนรหัสผ่านสำหรับคีย์ gpg ของฉัน อย่างไรก็ตามก่อนหน้านี้ฉันได้สร้างที่เก็บรหัสผ่านผ่านรหัสผ่านด้วยคีย์ gpg แบบเดียวกัน ตอนนี้เมื่อใดก็ตามที่ฉันค้นหารหัสผ่านฉันยังคงถูกขอรหัสผ่าน gpg เดิมของฉัน แอปพลิเคชันอื่น ๆ ต้องการวลีรหัสผ่านใหม่ ฉันจะเปลี่ยนวลีรหัสผ่านเป็น pass ได้อย่างไร ฉันต้องเรียกใช้ "init" อีกครั้งหรือไม่

3
ตั้งค่าเบราว์เซอร์ไฟล์มาตรฐานสำหรับ“ เปิดโฟลเดอร์ที่มี”
ตั้งแต่ฉันติดตั้ง EasyTag บน Arch Linux ของฉันหลายโปรแกรมอื่น ๆ ใช้ EasyTag แทน Nautilus เป็น filebrowser ตัวอย่างเช่น Firefox เริ่ม EasyTag หากฉันคลิกที่ "เปิดโฟลเดอร์ที่มี" ฉันจะตั้ง Nautilus เป็น "เบราว์เซอร์ไฟล์มาตรฐาน" ได้อย่างไร

3
วิธีตั้งค่าสคริปต์ให้ทำงานเมื่อพอร์ตได้รับข้อความ
ฉันสงสัยว่าจะได้รับเชลล์สคริปต์เพื่อฟังบนพอร์ตบางอย่าง (อาจใช้ netcat?) หวังว่าเมื่อข้อความถูกส่งไปยังพอร์ตนั้นสคริปต์จะบันทึกข้อความและเรียกใช้ฟังก์ชัน ตัวอย่าง: คอมพิวเตอร์ 1 มีสคริปต์ที่ทำงานในพื้นหลังสคริปต์เปิดพอร์ต 1234 เพื่อรับส่งข้อมูลขาเข้า คอมพิวเตอร์ 2 ส่งข้อความ "hello world" ไปยังพอร์ต 1234 ของคอมพิวเตอร์ 1 สคริปต์บนคอมพิวเตอร์ 1 บันทึกข้อความ "hello world" ไปยังตัวแปร $ MESSAGE สคริปต์เรียกใช้ฟังก์ชันตอนนี้ตัวแปร $ MESSAGE ถูกตั้งค่าแล้ว ฉันจะบริจาคได้อย่างไร

7
ฉันจะพิมพ์อักขระ ASCII ด้วยจุดรหัสที่แตกต่างใน Bash ได้อย่างไร
ในตาราง ASCII มีอักขระ 'J' อยู่ซึ่งมีจุดรหัสในระบบตัวเลขต่าง ๆ : Oct Dec Hex Char 112 74 4A J มันเป็นไปได้ที่จะพิมพ์ถ่านนี้โดยจุดรหัสเลขฐานแปดโดยการพิมพ์ หรือprintf '\112' echo $'\112'ฉันจะพิมพ์ตัวละครเดียวกันโดยนำเสนอทศนิยมและเลขฐานสิบหกจุดได้อย่างไร?
12 bash  shell  ascii 

5
วิธีให้สิทธิ์ในการอ่านเขียน แต่ไม่ลบไฟล์
ฉันต้องการให้ผู้ใช้สามารถสร้างการเขียนและอ่านไฟล์ในไดเรกทอรีผู้ใช้อื่น ๆ แต่ไม่มีตัวเลือกในการลบไฟล์หลังจากที่สร้าง (ตัวอย่างเช่นไม่สามารถใช้งานได้ที่นี่ ... ): ฉันมีผู้ใช้ที่manager มีไดเรกทอรีrepository ฉันมีผู้ใช้worker1ที่ต้องเขียนไฟล์ไป/manager/repositoryแต่ไม่สามารถลบไฟล์ ฉันมีผู้ใช้worker2ที่ต้องเขียนไฟล์ไป/manager/repository แต่ไม่สามารถลบไฟล์ที่ ฉันมีผู้ใช้worker3ที่ต้องเขียนไฟล์ไป/manager/repository แต่ไม่สามารถ ลบไฟล์ แต่worker 1-2-3ไม่สามารถลบไฟล์หลังจากที่สร้างขึ้นเท่านั้นmanagerและrootสามารถลบไฟล์ที่worker 1-2-3สร้างขึ้นได้ ฉันลองใช้chownและใช้chmodกลเม็ดน้อยในการใช้บิตที่ไม่สำเร็จ

2
มาตรฐาน / แบบแผนอย่างเป็นทางการสำหรับส่วนขยายไฟล์สำหรับเชลล์สคริปต์ไปยังแหล่งที่มา
ฉันสงสัยว่ามีการประชุมสำหรับส่วนขยายประเภทไฟล์สำหรับเชลล์สคริปต์ที่คุณต้องการแหล่งที่มาแทนที่จะเรียกใช้ ตัวอย่างเช่น: ถ้าฉันต้องการเรียกใช้สคริปต์นี้ใน subshell ./script.sh ถ้าฉันต้องการจำรันสคริปต์นี้จากเปลือกปัจจุบัน . script.source มีแบบแผน (เช่น POSIX เป็นต้น) สำหรับประเภทไฟล์ในตัวอย่างที่สองหรือไม่? สิ่งที่ต้องการ.sourceหรือ.sourceme? ปรับปรุง คำถามนี้ไม่ได้ถามเกี่ยวกับความคิดเห็นใด ๆ ฉันระบุชัดเจนว่าฉันต้องการทราบว่ามีนามสกุลไฟล์มาตรฐานสำหรับสคริปต์ประเภทนี้หรือไม่ คำถามนี้ใช้ความคิดเห็นน้อยกว่าคำถามที่ได้รับการตอบรับดีในประเด็นที่คล้ายกัน ( ใช้ส่วนขยาย. sh หรือ. bash สำหรับสคริปต์ทุบตี? )

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