Unix & Linux

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

2
cp ทำงานอย่างประหลาดเมื่อ (dot) หรือ .. (dot dot) เป็นไดเรกทอรีต้นทาง
คำตอบนี้แสดงให้เห็นว่าสามารถคัดลอกไฟล์ทั้งหมด - รวมถึงไฟล์ที่ซ่อน - จากไดเรกทอรีsrcไปยังไดเรกทอรีdestเช่น: mkdir dest cp -r src/. dest ไม่มีคำอธิบายในคำตอบหรือความคิดเห็นว่าทำไมมันถึงใช้งานได้จริงและดูเหมือนว่าไม่มีใครพบเอกสารประกอบในเรื่องนี้ ฉันลองทำบางสิ่ง ครั้งแรกกรณีปกติ: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src dest $ ls -A dest dest_file src จากนั้น/.ในตอนท้าย: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src/. …

2
ภายใต้สถานการณ์ใดจะปฏิบัติการที่พบครั้งแรกในเส้นทางไม่ได้ใช้
ฉันมีพฤติกรรมที่แปลกประหลาดกับ zsh (5.4.2_1 ติดตั้งกับ homebrew) บน osx ที่ไม่ได้ใช้งานครั้งแรกของปฏิบัติการในเส้นทาง นี่คือสถานการณ์: echo $PATH ผลตอบแทน: /usr/local/Cellar/zplug/HEAD-9fdb388/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ชงเป็นทั้ง /usr/local/Cellar/zplug/HEAD-9fdb388/bin และ usr/local/bin/brew นี่คือการยืนยันโดยการทำงานที่ -a ชงซึ่งผลตอบแทน: /usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew /usr/local/bin/brew แต่เมื่อฉันเรียกใช้ที่ชงมันกลับมา: /usr/local/bin/brew และการชงไม่ทำงาน/usr/local/bin/brewมากกว่า/usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew สิ่งนี้จะเกิดขึ้นได้อย่างไรเมื่อชงก่อนหน้านี้ในเส้นทาง? ช่วยชื่นชม
15 zsh  path 

3
หัวกินอักขระพิเศษ
คำสั่ง shell ต่อไปนี้คาดว่าจะพิมพ์บรรทัดคี่ของอินพุตสตรีมเท่านั้น: echo -e "aaa\nbbb\nccc\nddd\n" | (while true; do head -n 1; head -n 1 >/dev/null; done) aaaแต่มันเป็นเพียงแค่พิมพ์บรรทัดแรก: สิ่งเดียวกันจะไม่เกิดขึ้นเมื่อใช้กับตัวเลือก-c( --bytes): echo 12345678901234567890 | (while true; do head -c 5; head -c 5 >/dev/null; done) คำสั่งนี้ส่งออก1234512345ตามที่คาดไว้ แต่นี้จะทำงานเฉพาะในcoreutilsการดำเนินงานของheadยูทิลิตี้ busybox12345การดำเนินงานยังคงกินอักขระพิเศษเพื่อการส่งออกเป็นเพียง ฉันเดาว่าวิธีการใช้งานเฉพาะอย่างนี้ทำเพื่อการเพิ่มประสิทธิภาพ คุณไม่สามารถรู้ได้ว่าเส้นไหนจะจบลงดังนั้นคุณจะไม่ทราบว่าต้องอ่านตัวอักษรกี่ตัว วิธีเดียวที่จะไม่ใช้อักขระพิเศษจากอินพุตสตรีมคือการอ่านสตรีมไบต์เป็นไบต์ แต่การอ่านจากสตรีมทีละหนึ่งไบต์อาจช้า ดังนั้นฉันเดาว่าheadอ่านอินพุตสตรีมไปยังบัฟเฟอร์ใหญ่พอสมควรแล้วนับจำนวนบรรทัดในบัฟเฟอร์นั้น ไม่สามารถพูดแบบเดียวกันสำหรับกรณีได้เมื่อใช้--bytesตัวเลือก ในกรณีนี้คุณรู้จำนวนไบต์ที่คุณต้องอ่าน ดังนั้นคุณอาจอ่านจำนวนไบต์นี้อย่างแน่นอนและไม่มากกว่านั้น corelibsการดำเนินการจะใช้โอกาสนี้ แต่busyboxหนึ่งไม่ก็ยังคงอ่านไบต์มากขึ้นกว่าที่จำเป็นเข้าไปในกันชน มันอาจทำเพื่อทำให้การใช้งานง่ายขึ้น ดังนั้นคำถาม …

8
วิธีการทดสอบว่าองค์ประกอบอาร์เรย์มีความเท่าเทียมกันในการทุบตี?
อาร์เรย์ต่อไปนี้แสดงจำนวนดิสก์ในเครื่อง linux แต่ละเครื่อง แต่ละอาร์เรย์เดียวรวมถึงจำนวนของดิสก์ในที่เครื่องลินุกซ์ echo ${ARRAY_DISK_Quantity[*]} 4 4 4 4 2 4 4 4 วิธีง่ายๆในการระบุว่าทุกค่าของอาร์เรย์มีค่าเท่ากัน? สถานะที่ดี: 4 4 4 4 4 4 4 4 สถานะไม่ดี: 4 4 4 4 4 4 2 4 สถานะไม่ดี: 6 6 6 6 6 6 6 6 6 6 2 6 2
15 bash  shell-script  awk  array 

3
ORing ด้วยความจริงในคำสั่งมากกว่า ssh
เมื่อฉันพยายามเรียกใช้pkill -fจากระยะไกลผ่าน ssh และพยายามที่จะทิ้งรหัสข้อผิดพลาดที่เป็นไปได้ (เพื่อดำเนินการต่อกับส่วนที่เหลือของสคริปต์ของฉันแม้ว่าจะไม่พบกระบวนการ) || trueไม่ทำงานตามที่ฉันคาดหวัง $ pkill asdf || true $ echo $? 0 $ pkill -f asdf || true $ echo $? 0 $ ssh pi@10.20.0.10 "pkill asdf || true" $ echo $? 0 $ ssh pi@10.20.0.10 "pkill -f asdf || true" 255 ฉันคิดว่ามันเป็นsshที่ส่งกลับ 255 ไม่ใช่คำสั่งระหว่างเครื่องหมายคำพูด แต่ทำไม?
15 shell  ssh  kill 

1
จะทำอย่างไรกับการพึ่งพาแบบวงกลมระหว่างสองแพ็คเกจใน Fedora
ฉันใหม่สำหรับ Fedora และเพิ่งติดตั้ง Fedora 26 OS ฉันกำลังพยายามเชื่อมต่อกับ wifi โดยใช้สิ่งนั้น ฉันติดตามการติดตั้ง youtube วิดีโอBroadcomและพยายามติดตั้งไดรเวอร์ Broadcom ผมได้ดาวน์โหลดไฟล์รอบต่อนาทีBroadcom-WL-6.30.223.271-2.fc26.noarch.rpmเมื่อฉันวิ่งคำสั่งrpm -ivh broadcom-wl-6.30.223.271-2.fc26.noarch.rpmที่จะกล่าวว่าwl-kmod >= 6.30.223.271เป็นสิ่งจำเป็น ฉัน googled และพบว่ามันเป็นแพคเกจakmod-wl-6.30.223.271-13.fc26.x86_64.rpmและเมื่อฉันพยายามที่จะติดตั้งมันบอกว่ามันwl-kmod-common >= 6.30.223.271เป็นสิ่งจำเป็น เมื่อฉัน googled ผมพบว่ามันเป็นแพคเกจBroadcom-WL-6.30.223.271-2.fc26.noarch.rpm ดูเหมือนว่าจะเป็นการหยุดชะงักตามที่ต้องการซึ่งกันและกัน broadcom-wl - ซึ่งมี wl-kmod (akmod-wl) ตามความต้องการ akmod-wl - ซึ่งมี wl-kmod-common (broadcom-wl) ตามความต้องการ ฉันถูกโจมตีในครั้งนี้เป็นเวลา 2 วัน ข้อเสนอแนะเกี่ยวกับเรื่องนี้จะเป็นประโยชน์
15 fedora  wifi  rpm  broadcom 

3
ทุบตีตรวจสอบ $ PWD เป็นส่วนหนึ่งของเส้นทางเสมอหรือไม่
แบ็คกราวน์: หนึ่งในเพื่อนร่วมงานของฉันที่ไม่ได้มาจากพื้นหลัง Linux ถามฉันเกี่ยวกับการใช้./ก่อนคำสั่งบางคำสั่งและไม่ใช่คำสั่งอื่น ๆ ดังนั้นฉันจึงอธิบายให้เขาฟังว่าPATHทำงานอย่างไรและเลือกไบนารีอย่างไร คำตอบของเขาคือมันโง่และเขาแค่ไม่ต้องการพิมพ์./คำสั่งก่อน คำถาม: มีวิธีในการปรับเปลี่ยนพฤติกรรมของเชลล์อย่างง่ายดายซึ่ง$PWDเป็นรายการแรกเสมอPATHหรือไม่
15 shell  usability 

1
เป็นเรื่องปกติที่ตัวแปร LD_LIBRARY_PATH หายไปจากสภาพแวดล้อมหรือไม่
ฉันพบโดยบังเอิญว่าใน Debian Jessie ของฉันไม่มีLD_LIBRARY_PATHตัวแปร (ที่แน่นอนprintenv | grep LDแสดงให้เห็นว่าไม่มีอะไรเกี่ยวข้องกับ linker และecho "$LD_LIBRARY_PATH"แสดงอะไรเลย) นี่เป็นกรณีในตัวจำลองเทอร์มินัล x ( ซึ่งอาจชัดเจนเนื่องจาก setgid ) และในเทอร์มินัลพื้นฐาน ( Ctrl+Alt+F1) ฉันรู้ว่าLD_LIBRARY_PATH อาจจะถือว่าไม่ดีดังนั้น Debian อาจปิดกั้นมันอย่างใด แต่ในมืออื่น ๆ มีไม่กี่ไฟล์ในที่มีบางไดเรกทอรีที่จะเพิ่ม/etc/ld.so.conf.d/ LD_LIBRARY_PATHไม่มีไฟล์ rc ของฉัน (ที่ฉันรู้) ยุ่งกับLD_LIBRARY_PATHอย่างใดอย่างหนึ่ง ทำไมฉันไม่เห็นLD_LIBRARY_PATHตัวแปร?

5
ซ่อนอาร์กิวเมนต์ของโปรแกรมโดยไม่มีซอร์สโค้ด
ฉันต้องซ่อนอาร์กิวเมนต์ที่ละเอียดอ่อนบางอย่างกับโปรแกรมที่ฉันกำลังใช้งานอยู่ แต่ฉันไม่สามารถเข้าถึงซอร์สโค้ดได้ ฉันกำลังเรียกใช้สิ่งนี้บนเซิร์ฟเวอร์ที่ใช้ร่วมกันดังนั้นฉันจึงไม่สามารถใช้สิ่งที่ชอบhidepidเพราะฉันไม่มีสิทธิ์แบบ sudo นี่คือบางสิ่งที่ฉันได้ลอง: export SECRET=[my arguments]ตามด้วยการโทรศัพท์ถึง./program $SECRETแต่ดูเหมือนจะไม่ช่วย ./program `cat secret.txt`secret.txtมีการถกเถียงของฉันอยู่ที่ไหนแต่ผู้ทรงอำนาจpsสามารถดมความลับของฉันออกไปได้ มีวิธีอื่นในการซ่อนข้อโต้แย้งของฉันที่ไม่เกี่ยวข้องกับการแทรกแซงของผู้ดูแลระบบหรือไม่?
15 linux  process  ps  arguments 

3
Ubuntu 16.04 - GUI ค้างในหน้าเริ่มต้นเข้าสู่ระบบ
ฉันไม่สามารถป้อนอะไรก็ได้ที่หน้าจอเข้าสู่ระบบ มันค้างทันทีหลังจากหน้าแสดง เคอร์เซอร์ภายในฟอร์มเข้าสู่ระบบกระพริบประมาณ 10 ครั้งจากนั้นจะหยุด ฉันไม่สามารถขยับเมาส์หรือใช้แป้นพิมพ์ ฉันได้เข้าสู่โหมดปลอดภัยแล้วและได้รับการอัปเดตอัปเกรดและ dist-upgrade ผ่านรูทเชลล์ซึ่งไม่แตกต่างกัน
15 ubuntu  login  gui  freeze 

2
วิธีระบุหน้าต่างโดยคลิกใน Wayland
ฉันต้องการระบุว่ากระบวนการใดเป็นหน้าต่างใน Wayland มีอะไรที่เหมือนกับxpropX ที่ให้ผู้ใช้เลือกหน้าต่างโดยการคลิกและแสดงรายละเอียดของหน้าต่างทั้งหมดรวมถึง PID หรือไม่

2
วิธีการตัดภาพสูงสุด 30% ใน Unix?
ฉันต้องการลด 30% จากด้านบนของภาพ ฉันรู้ว่าเธเธวิธีการตัดภาพแรสเตอร์ขนาดใหญ่จริงๆเป็นชิ้นเล็ก ๆ ? แต่ไม่มีวิธีการที่ประสบความสำเร็จเพราะฉันไม่สามารถหาการวัดระยะทางconvertจากศูนย์ถึงจุดสิ้นสุดโดยใช้มิติค่าสัมบูรณ์เท่านั้น pseudocode convert -crop-y -units-percentage 0x30 heart.png รูปที่ 1 รูปที่ป้อน ฉันสามารถทำงานกับ LaTeX ได้adjustboxแต่เอาต์พุตในไฟล์ pdf นั้นไม่ได้ผลลัพธ์ที่แท้จริง แต่เป็นการนำเสนอของมัน ดังนั้นการคัดลอกรูปภาพจากเอกสาร pdf ทำให้ได้ภาพต้นฉบับ ดังนั้นวิธีนี้จึงล้มเหลว

3
เทียบเท่ากับ '.msi' และไฟล์ 'setup.exe' ใน Debian หรือ Ubuntu หรือไม่
คำตอบนี้อธิบาย.msiและsetup.exeไฟล์สำหรับการติดตั้งแอพพลิเคชั่นบน Windows มีเทียบเท่า.msiและsetup.exeไฟล์ใน Debian หรือ Ubuntu หรือไม่ Do .debไฟล์แพคเกจตรงตามลักษณะที่.msiหรือsetup.exeหรือสิ่งอื่นใด

3
bash รองรับการอ้างอิงกลับในการขยายพารามิเตอร์หรือไม่
ฉันมีชื่อตัวแปรdescrซึ่งสามารถมีสตริงBlah: -> r1-ae0-2 / [123], -> s7-Gi0-0-1:1-US / Fooฯลฯ ฉันต้องการที่จะได้รับ-> r1-ae0-2, -> s7-Gi0-0-1:1-USส่วนหนึ่งมาจากสตริง ในขณะนี้ฉันใช้descr=$(grep -oP '\->\s*\S+' <<< "$descr"สำหรับสิ่งนี้ มีวิธีที่ดีกว่าในการทำเช่นนี้? เป็นไปได้ไหมที่จะทำเช่นนี้กับการขยายพารามิเตอร์

5
วิธีการตรวจสอบบรรทัดของสคริปต์ทุบตีจะถูกดำเนินการ
มีวิธีการตรวจสอบหมายเลขบรรทัดของbashสคริปต์ที่จะถูกดำเนินการ "ตอนนี้"? การใช้bash -x script.shรูปลักษณ์ที่ดูดี อย่างไรก็ตามฉันต้องได้รับหมายเลขบรรทัดปัจจุบัน

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