Unix & Linux

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

10
ฉันจะคัดลอกไฟล์และไดเรกทอรีทั้งหมดยกเว้นบางไฟล์ผ่าน ssh ได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Unix & Linux Stack Exchange อพยพ 8 ปีที่ผ่านมา ใช้บรรทัดคำสั่ง Linux ฉันใช้scpคำสั่งเพื่อคัดลอกไฟล์และโฟลเดอร์ทั้งหมดจากไดเรกทอรีที่แน่นอน อย่างไรก็ตามฉันไม่ชอบใช้แบนด์วิดท์สำหรับการคัดลอกสิ่งที่ฉันไม่ค่อยเปลี่ยนแปลงเหมือนtiny_mceโฟลเดอร์ของฉัน เคล็ดลับในการคัดลอกทุกอย่างคืออะไร แต่ข้ามรายการย่อของโฟลเดอร์

1
หนึ่งคำสั่ง systemctl เพื่อเริ่มและเปิดใช้งาน
การใช้หนึ่งคำสั่งเพื่อเริ่มและเปิดใช้systemctlงานซอฟต์แวร์ที่มีการจัดการจะมีประโยชน์ในการสำรองบางบรรทัดในสคริปต์ไม่กี่ทำให้พวกเขามีความสวยงามมากขึ้นเล็กน้อย (ไม่ใช่ปัญหาจริงๆ แต่เป็นสิ่งที่ดีที่จะมี) มีsystemctlคำสั่งเดียวสำหรับทั้งสองstartและenableโปรแกรมที่ควบคุมโดยsystemctl?

2
คุณจะใช้ Linux เวอร์ชันใดก็ได้เพื่อดู 2018 MacBook Pro SSD
ฉันได้ลอง nvme_load=yes แทน quiet --- Ubuntu 18.04.1 และ Xubuntu 18.04 df -hให้ผลลัพธ์เฉพาะระบบที่สร้างการเมาท์และสื่อการติดตั้ง ภาพสดประจำสัปดาห์รวมทั้งภาพเฟิร์มแวร์ของ Debian ก็ล้มเหลวในการค้นหา ssd ฉันหาข้อมูลเพิ่มเติมเกี่ยวกับ SSD แล้ว ฉันพบข้อมูลนี้ในตัวสร้างโปรไฟล์ระบบบน OS X High Sierra Apple SSD Controller: APPLE SSD AP1024M: Capacity: 1 TB (1,000,555,581,440 bytes) TRIM Support: Yes Model: APPLE SSD AP1024M Revision: 177.77.7 Serial Number: C02829600M9JPD216 Link Width: x4 …
23 linux  macintosh  ssd 

3
อะไรเป็นตัวกำหนดว่าคำสั่ง Linux ใดที่ต้องมีการเข้าถึงรูท
อะไรเป็นตัวกำหนดว่าคำสั่ง Linux ใดที่ต้องมีการเข้าถึงรูท ฉันเข้าใจถึงเหตุผลว่าทำไมจึงเป็นที่พึงปรารถนาที่apt-getควรพูดว่าต้องการrootสิทธิ์ แต่สิ่งที่แตกต่างคำสั่งเหล่านี้จากส่วนที่เหลือ? มันเป็นเพียงเรื่องของการเป็นเจ้าของและดำเนินการสิทธิ์ของปฏิบัติการหรือไม่?
23 linux  root  privileges 

2
ทำไมผู้จัดการแพคเกจจึงไม่มีการติดตั้งและการลงทะเบียนต่อผู้ใช้
ทั้งสองพาร์ทเมนต์และ DNF / ยำทั้งสองได้รับความนิยมมากที่สุดรูปแบบการจัดการแพคเกจสำหรับลินุกซ์ความรู้ของฉันเท่านั้นที่สนับสนุนการติดตั้งทั้งระบบของแพคเกจ: ไฟล์เป็นของรากไบนารีไปใน(/usr)?/s?binการตั้งค่าไปใน/etcและอื่น ๆ อย่างไรก็ตามในระบบที่มีผู้ใช้หลายคนที่ไม่มีสิทธิ์ใช้งานรูทบ่อยครั้งมาก - ถ้าไม่เสมอไป - เกิดขึ้นที่ผู้ใช้ต้องการติดตั้งแอพหรือยูทิลิตี้บางอย่างที่มีให้สำหรับการแจกจ่ายนั้น และ s / เขาก็ใช้ได้กับการติดตั้งที่เป็นส่วนตัวและไม่ธรรมดาสำหรับผู้ใช้จำนวนมาก / ทั้งหมด ตอนนี้ดูเหมือนจะไม่เป็นความคิดที่ไกลเกินเอื้อมหรือแม้แต่ความคิดที่ซับซ้อนอย่างเหลือเชื่อสำหรับแพ็คเกจที่สามารถปรับเปลี่ยนได้ในเวลาติดตั้งพร้อมกับไดเรกทอรีรากที่แตกต่างกันหรือชุดของไดเรกทอรีรากเพื่อให้ผู้ใช้สามารถทำได้ และมันก็ไม่มีปัญหาในการจัดการรีจีสทรีเฉพาะสำหรับผู้ใช้ของแพ็คเกจที่ติดตั้ง (ไม่ว่าผู้ใช้แต่ละคนจะมี DB แพ็คเกจของตนเองหรือไม่ก็ตาม) ดังนั้นเหตุผลที่ฟังก์ชั่นนี้ไม่ได้ถูกเพิ่มลงในระบบ / แพ็คเกจการจัดการทั่วไปเหล่านั้นคืออะไร? หมายเหตุ: นี่เป็นคำถามที่ให้ข้อมูลเช่นฉันถามเกี่ยวกับสิ่งที่ผู้คนรู้เกี่ยวกับอดีตไม่ใช่สิ่งที่ผู้คนคิดเกี่ยวกับคุณลักษณะนี้

3
ทำไม Debian Linux อนุญาตพื้นที่ที่อยู่เสมือนสูงสุด 128TiB ต่อกระบวนการ แต่เพียงหน่วยความจำฟิสิคัล 64TiB
ฉันเพิ่งอ่านที่นี่ : พื้นที่แอดเดรสเสมือนสูงสุด 128TiB ต่อกระบวนการ (แทน 2GiB) รองรับหน่วยความจำฟิสิคัล 64TiB แทน 4GiB (หรือ 64GiB ที่มีนามสกุล PAE) ทำไมถึงเป็นอย่างนั้น? ฉันหมายถึงการสนับสนุนหน่วยความจำกายภาพถูก จำกัด โดยเคอร์เนลหรือโดยฮาร์ดแวร์ปัจจุบัน ทำไมคุณต้องการพื้นที่หน่วยความจำเสมือนสองเท่ากว่าหน่วยความจำกายภาพที่คุณสามารถระบุได้จริง

2
OOM killer ทำงานไม่ถูกต้องนำไปสู่ระบบปฏิบัติการที่ตรึงไว้
เป็นเวลาหลายปีที่นักฆ่า OOMของระบบปฏิบัติการของฉันทำงานไม่ถูกต้องและนำไปสู่ระบบที่หยุดชะงัก เมื่อการใช้หน่วยความจำสูงมากทั้งระบบมีแนวโน้มที่จะ "หยุด" (อันที่จริง: ช้ามาก ) เป็นเวลาหลายชั่วโมงหรือหลายวันแทนที่จะฆ่ากระบวนการเพื่อเพิ่มหน่วยความจำ จำนวนสูงสุดที่ฉันบันทึกไว้คือ 7 วันก่อนลาออกเพื่อทำการรีเซ็ต เมื่อ OOM ใกล้จะถึงแล้วiowaitนั้นสูงมาก (~ 70%) ก่อนที่จะกลายเป็นจำนวนที่ไม่สามารถวัดได้ เครื่องมือ: iotopแสดงให้เห็นว่าทุกโปรแกรมกำลังอ่านที่ปริมาณงานสูงมาก (ต่อสิบ MB / วินาที) จากฮาร์ดไดรฟ์ของฉัน โปรแกรมเหล่านั้นกำลังอ่านอะไร - ลำดับชั้นไดเรกทอรี? - รหัสปฏิบัติการเอง? ฉันไม่ได้ตอนนี้ [แก้ไข] ในเวลาที่ฉันเขียนข้อความนี้ (ในปี 2560) ฉันใช้ ArchLinux uptodate (4.9.27-1-lts) แต่เคยประสบปัญหานี้มาหลายปีแล้ว ฉันประสบปัญหาเดียวกันกับลีนุกซ์รุ่นต่างๆและการตั้งค่าฮาร์ดแวร์ที่แตกต่างกัน ปัจจุบัน (2019) ฉันใช้ Debian 9.6 (4.9.0) uptodate ฉันมีRAM จริง16 GB …

2
ฉันจะใช้ ag เพื่อค้นหาข้อความในไฟล์ที่มีนามสกุลบางอย่างได้อย่างไร
ฉันใช้ag( The Silver Searcher ) เวอร์ชั่น 0.31.0 ฉันสามารถค้นหาสตริงในกลุ่มของไฟล์โดยใช้: localhost:workspace davea$ ag 'ftp' . แต่ถ้าฉันต้องการสแกนไฟล์ที่มีนามสกุลเฉพาะ ฉันลองสิ่งนี้: localhost:workspace davea$ ag 'ftp' .java ERR: Error stat()ing: .java ERR: Error opening directory .java: No such file or directory แต่มีข้อผิดพลาดที่คุณเห็นด้านบน
23 files  search  ag 

2
สับสนโดยรายการ ExecStartPre ในไฟล์ systemd unit
ฉันมีบริการ systemd ที่ต้องการสร้างไดเรกทอรี/runแต่ไม่เช่นนั้นเรียกใช้ในฐานะผู้ใช้ที่ไม่ใช่รูท จากตัวอย่างบล็อกฉันได้รับวิธีแก้ไขปัญหาต่อไปนี้: [Unit] Description=Startup Thing [Service] Type=oneshot ExecStart=/usr/bin/python3 -u /opt/thing/doStartup WorkingDirectory=/opt/thing StandardOutput=journal User=thingUser # Make sure the /run/thing directory exists PermissionsStartOnly=true ExecStartPre=-/bin/mkdir -p /run/thing ExecStartPre=/bin/chmod -R 777 /run/thing [Install] WantedBy=multi-user.target ความมหัศจรรย์อยู่ใน 3 บรรทัดที่ตามความคิดเห็น Apparently ExecStartPreจะทำงานเป็น root ด้วยวิธีนี้ แต่ExecStartจะทำงานเป็นผู้ใช้ที่ระบุ สิ่งนี้นำไปสู่คำถาม 3 ข้อที่: สิ่งที่-ต้องทำต่อหน้า/bin/mkdir? ฉันไม่รู้ว่าทำไมมันถึงอยู่ที่นั่นหรือทำอะไร เมื่อมีExecStartPreไฟล์หลายไฟล์อยู่ในหน่วยไฟล์พวกเขาจะเรียกใช้ตามลำดับที่พบในไฟล์หน่วยหรือไม่ หรือวิธีอื่น ๆ ? นี่เป็นเทคนิคที่ดีที่สุดในการบรรลุเป้าหมายของฉันในการสร้างไดเร็กทอรีการรันเพื่อให้ผู้ใช้ที่ไม่ใช่รูทสามารถใช้งานได้หรือไม่?
23 systemd 

5
การบีบอัดสตรีมแบบทันทีที่ไม่กระจายไปสู่ทรัพยากรฮาร์ดแวร์?
ฉันมีพื้นที่ว่างบนดิสก์ 200 GB, RAM 16 GB (ที่เดสก์ท็อปและเคอร์เนลประมาณ ~ 1 GB) และ swap 6 GB ฉันมี SSD ภายนอก 240 GB ที่มี 70 GB ใช้1และที่เหลือฟรีซึ่งฉันต้องสำรองข้อมูลลงดิสก์ โดยปกติแล้วฉันต้องการdd if=/dev/sdb of=Desktop/disk.imgดิสก์ก่อนแล้วจึงบีบอัด แต่การสร้างอิมเมจก่อนไม่ใช่ตัวเลือกเนื่องจากการทำเช่นนั้นจะต้องใช้พื้นที่ดิสก์มากกว่าที่ฉันมีแม้ว่าขั้นตอนการบีบอัดจะส่งผลให้พื้นที่ว่างถูกบีบอัดดังนั้น ไฟล์เก็บถาวรสุดท้ายสามารถใส่ลงในดิสก์ของฉันได้อย่างง่ายดาย ddเขียนไป STDOUT โดยค่าเริ่มต้นและgzipสามารถอ่านได้จาก STDIN ดังนั้นในทฤษฎีฉันจะเขียนdd if=/dev/sdb | gzip -9 -แต่gzipจะใช้เวลานานมากในการอ่านไบต์กว่าddสามารถผลิตได้ จากman pipe: ข้อมูลที่เขียนไปยังปลายการเขียนของไพพ์จะถูกบัฟเฟอร์โดยเคอร์เนลจนกว่าจะถูกอ่านจากการอ่านที่ปลายของไพพ์ ฉันเห็นภาพความ|เป็นเหมือนไพพ์จริง - แอปพลิเคชั่นตัวหนึ่งผลักข้อมูลเข้าและอีกอันนำข้อมูลออกจากคิวของไพพ์โดยเร็วที่สุด จะเกิดอะไรขึ้นเมื่อโปรแกรมทางด้านซ้ายเขียนข้อมูลได้เร็วกว่าอีกด้านหนึ่งของไปป์สามารถหวังที่จะประมวลผลได้ มันจะทำให้เกิดการใช้หน่วยความจำมากหรือการแลกเปลี่ยนหรือเคอร์เนลจะพยายามสร้าง FIFO บนดิสก์จึงเติมดิสก์? หรือมันจะล้มเหลวSIGPIPE Broken …
23 pipe  dd  compression  gzip 


3
ความสามารถในการปรับขนาดของ 'sort -u' สำหรับไฟล์ขนาดยักษ์
ขีดจำกัดความสามารถในการปรับขยายที่เหมาะสมของ 'sort -u' คืออะไร (ในมิติของ "ความยาวบรรทัด", "จำนวนบรรทัด", "ขนาดไฟล์ทั้งหมด"?) อะไรคือทางเลือกของ Unix สำหรับไฟล์ที่เกินขนาดนี้ในมิติของ "จำนวนบรรทัด"? (แน่นอนว่าฉันสามารถใช้งานได้อย่างง่ายดาย แต่ฉันสงสัยว่ามีบางสิ่งที่สามารถทำได้ด้วยคำสั่ง Linux มาตรฐานจำนวนน้อยไหม?)
23 sort 

1
Gentoo Linux GPG เข้ารหัสไฟล์ที่ส่งผ่านพารามิเตอร์อย่างถูกต้อง แต่จะส่ง“ ioctl ที่ไม่เหมาะสมสำหรับอุปกรณ์” ออกมาอย่างถูกต้องเมื่ออ่านจากอินพุตมาตรฐาน
ฉันกำลังใช้ Gentoo Hardened ด้วยเคอร์เนล 4.1.7-hardened-r1 และฉันพยายามเข้ารหัสไฟล์โดยใช้ GPG จากเชลล์เซสชันที่เปิดจาก SSH และDISPLAYปิดการใช้งานตัวแปรเพื่อใช้ pinentry-curses สำหรับรหัสผ่าน ใช้gpg -o file.gpg --symmetric fileฉันสามารถเข้ารหัสได้ดี ใช้pv file | gpg -o file.gpg --symmetricฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: gpg-agent[30745]: command get_passphrase failed: Inappropriate ioctl for device
23 ssh  gentoo  gpg  gpg-agent 

1
คุณใส่วันที่และเวลาในชื่อไฟล์ได้อย่างไร?
ฉันพยายามรันคำสั่งและต้องการใส่วันที่และเวลาในชื่อไฟล์เอาต์พุต นี่คือคำสั่งตัวอย่างที่ฉันต้องการเรียกใช้ md5sum /etc/mtab > 2016_4_25_10_30_AM.log รูปแบบเวลาวันที่สามารถเป็นสิ่งที่เหมาะสมกับขีดล่าง แม้ว่า UTC หากไม่สามารถใช้ AM และ PM

2
การซ่อนรหัสผ่านใน wpa_supplicant.conf ด้วย WPA-EAP และ MSCHAP-v2
wpa_supplicant.confหน้าตาของฉันเป็นแบบนี้: network={ ssid="Some name" scan_ssid=1 key_mgmt=WPA-EAP eap=PEAP identity="my-user-id" password="(clear text password here)" ca_cert="/usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt" phase2="auth=MSCHAPV2" } ด้วยการรวมกันเฉพาะของ WPA-EAP และ MSCHAP-v2 มีวิธีใดที่จะไม่รวมรหัสผ่านของฉันไว้ในไฟล์การกำหนดค่านี้? ChangeLog ดูเหมือนจะอ้างว่าเป็นไปได้ (ตั้งแต่ปี 2005!): * added support for storing EAP user password as NtPasswordHash instead of plaintext password when using MSCHAP or MSCHAPv2 for authentication (hash:<16-octet hex value>); added nt_password_hash …

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