Unix & Linux

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

1
พร็อกซี SOCKS แบบโปร่งใสรู้ได้อย่างไรว่า IP ปลายทางใดที่จะใช้
มีสองผู้รับมอบฉันทะจากถุงเท้าที่ฉันรู้เกี่ยวกับว่าการสนับสนุนพร็อกซีโปร่งใสสำหรับการเชื่อมต่อใด ๆ TCP ขาออก: Torและredsocks ซึ่งแตกต่างจากพร็อกซี HTTP พร็อกซี SOCKS เหล่านี้สามารถพร็อกซีการเชื่อมต่อ TCP ขาออกใด ๆโปร่งใสรวมถึงโปรโตคอลและโปรโตคอลที่เข้ารหัสโดยไม่มีข้อมูลเมตาหรือส่วนหัว พร็อกซีทั้งสองนี้ต้องการการใช้ NAT เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล TCP ใด ๆ ไปยังพอร์ตโลคัลของพร็อกซี ตัวอย่างเช่นถ้าฉันใช้ Tor ด้วยTransPort 9040บนเครื่องของฉันฉันจะต้องเพิ่มกฎ iptables ดังนี้: iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040 ตามความรู้ของฉันสิ่งนี้จะแทนที่ IP ปลายทางเดิมและพอร์ตด้วย127.0.0.1และ9040ดังนั้นเนื่องจากนี่เป็นสตรีมที่เข้ารหัส (เช่น SSH) หรือหนึ่งโดยไม่มีส่วนหัว (เช่นwhois ) พร็อกซีรู้จัก IP ปลายทางและพอร์ตดั้งเดิมอย่างไร
18 iptables  proxy  socks  tor 

5
วิธีการแก้ไข PKGBUILD ซึ่งใช้แหล่ง git เพื่อดึงโคลนตื้นเท่านั้น?
เมื่อวันก่อนฉันลองติดตั้งopencv-gitจากAURด้วยmakepkgบน Arch Linux แน่นอนว่ามันมาจากที่เก็บgitตามที่ชื่อระบุไว้ สิ่งนี้จะดึง 1Gb ฉันอ่านเกี่ยวกับการทำโคลนตื้นgitด้วย เมื่อฉันดูPKGBUILDไฟล์โดยใช้grep git PKGBUILDฉันเห็น: pkgname="opencv-git" makedepends=('git' 'cmake' 'python2-numpy' 'mesa' 'eigen2') provides=("${pkgname%-git}") conflicts=("${pkgname%-git}") source=("${pkgname%-git}::git+http://github.com/Itseez/opencv.git" cd "${srcdir}/${pkgname%-git}" git describe --long | sed -r 's/([^-]*-g)/r\1/;s/-/./g' cd "${srcdir}/${pkgname%-git}" cd "${srcdir}/${pkgname%-git}" cd "${srcdir}/${pkgname%-git}" install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname%-git}/LICENSE" มีวิธีแก้ไขสูตรหรือmakepkgคำสั่งเพื่อดึงโคลนตื้นเท่านั้น (เวอร์ชั่นล่าสุดของแหล่งที่มาคือสิ่งที่ฉันต้องการ) และไม่ใช่ที่เก็บแบบเต็มเพื่อประหยัดพื้นที่และแบนด์วิดท์? การอ่านman 5 PKGBUILDไม่ได้ให้ข้อมูลเชิงลึกที่ฉันกำลังมองหา ดูอย่างรวดเร็วผ่านทางmakepkgและpacman manpages - ดูเหมือนจะไม่สามารถหาวิธีที่จะทำ
18 arch-linux  git 

2
เลือกตัวอักษรโดยกดปุ่มใน Linux (เช่นใน OSX)
ฉันสงสัยว่ามีอะไรเพิ่มเติมที่พร้อมใช้งานซึ่งทำบางอย่างเช่น Mac OS X ภาษาแม่ของฉันเป็นภาษาสเปนและตอนนี้ฉันอาศัยอยู่ในสภาพแวดล้อมที่ฝรั่งเศสฉันยังพูดภาษาอังกฤษได้มากดังนั้นฉันจึงต้องการสำเนียงที่แตกต่างกัน โดยเฉพาะอย่างยิ่งในภาษาฝรั่งเศสฉันใช้ Linux เป็นเวลาสองปีแล้วและยังใช้ Mac OS X ทุกครั้งเพื่อการทดสอบ ฉันพบว่ามีประโยชน์จริง ๆ ฟังก์ชั่นที่มีอยู่ใน Mac OS X ที่คุณกดปุ่มต่อไปและมันจะแสดงรายการของตัวเลือกที่มีอยู่ในตัวละครเดียวกันสำเนียงที่แตกต่างกันหรือเครื่องหมายวรรคตอน ฉันสามารถทำได้บน Linux หรือไม่ ตัวอย่างเช่น

3
จัดเรียง UID ใหม่ใน GPG
ใน GPG เป็นไปได้ไหมที่จะย้าย UID ขึ้นหรือลงในรายการ UID ในคีย์ PGP? ฉันรู้ว่ามันเป็นเครื่องสำอางอย่างหมดจด แต่ฉันอาจต้องการใช้สิ่งนี้เพื่อแสดงลำดับความสำคัญในที่อยู่ของฉันซึ่งควรใช้อันใดอันหนึ่งก่อนถ้าเป็นไปได้ pub 4096R/0xAABBD62D0BA66C66 2014-09-02 uid [ultimate] Mr. Foo Bar <fourth@example.com> uid [ultimate] Mr. Foo Bar <first@example.com> uid [ultimate] Mr. Foo Bar <third@example.com> uid [ultimate] Mr. Foo Bar <second@example.com>
18 gpg 

1
ลบอาร์เรย์ใน awk
ใน awk ฉันสามารถล้างอาเรย์ด้วยลูปทำให้เป็นอาเรย์ที่ว่างเปล่าซึ่งเทียบเท่ากับการลบมัน for (key in array) delete array[key]; มีวิธีที่ง่ายกว่านี้ไหม? ฉันสามารถลบอาร์เรย์ทั้งหมดเพื่อให้สามารถใช้ชื่อตัวแปรสำหรับสเกลาร์ได้หรือไม่
18 awk  array 

3
ย้ายกฎ iptables (โดยไม่ต้องลบและเพิ่ม)
มีวิธีในการย้ายกฎในiptablesและเปลี่ยนตำแหน่งหรือไม่ ฉันรู้ว่าฉันสามารถใช้-Iเพื่อแทรกกฎในตำแหน่งที่เฉพาะเจาะจง แต่ฉันก็ชอบที่จะรักษาเคาน์เตอร์
18 iptables 

2
ใครเป็นผู้รับผิดชอบสำหรับเคอร์เนล Linux
ณ วันนี้มีการแจกแจงลินุกซ์มากมายเช่นUbuntu , Fedora , Gentoo , Mint , Debianเป็นต้นการกระจายเหล่านี้จะอัปเดตตามรอบที่แตกต่างกัน ดูเหมือนว่า Ubuntu จะอัพเดตเคอร์เนลเป็นรายสัปดาห์หรือรายเดือนในขณะที่ Debian ลังเลที่จะอัปเดตเคอร์เนล ฉันสงสัยว่าการกระจายเหล่านี้รักษาเมล็ดของตนเองหรือไม่ หรือพวกเขาเพิ่งได้รับรหัสเคอร์เนลดั้งเดิมจากLinus Torvaldsแก้ไขมันเล็กน้อยตามต้องการแล้วปล่อยเคอร์เนลที่แก้ไขแล้วด้วยระบบการจัดการแพ็คเกจของพวกเขา? การกระจายทั้งหมดใช้เมล็ดเดียวกันจาก Linus Torvalds หรือไม่? หากเป็นเช่นนั้นเหตุใดการแจกแจงที่แตกต่างกันจึงอัพเดต / ปล่อยเมล็ดของตนในรอบที่ต่างกัน

3
การจัดสรรสแต็คทำงานใน Linux อย่างไร
ระบบปฏิบัติการสำรองพื้นที่เสมือนที่ถูกต้องตามจำนวนที่แน่นอนสำหรับกองซ้อนหรืออย่างอื่นหรือไม่? ฉันสามารถสร้าง stack overflow โดยใช้ตัวแปรท้องถิ่นขนาดใหญ่ได้หรือไม่? ฉันได้เขียนCโปรแกรมขนาดเล็กเพื่อทดสอบสมมติฐานของฉัน มันทำงานบน X86-64 CentOS 6.5 #include <string.h> #include <stdio.h> int main() { int n = 10240 * 1024; char a[n]; memset(a, 'x', n); printf("%x\n%x\n", &a[0], &a[n-1]); getchar(); return 0; } เรียกใช้โปรแกรมให้&a[0] = f0ceabe0และ&a[n-1] = f16eabdf แม็พ proc แสดงสแต็ก: 7ffff0cea000-7ffff16ec000. (10248 * 1024B) จากนั้นฉันก็พยายามเพิ่ม n = …

2
zsh: ตั้งค่า TERM = screen-256color ใน tmux แต่ xterm-256color โดยไม่มี tmux
ฉันต้องการ$TERMให้ฉันอยู่xterm-256colorนอก tmux (ใน terminal "ธรรมดา" กับ zsh) แต่screen-256colorภายใน tmux ก่อนอื่นฉันลอง: เพิ่มของฉันexport TERM='xterm-256color'~/.zshrc เพิ่มset -g default-terminal "screen-256color"ของฉัน~/.tmux.conf ตอนนี้เมื่อฉันเปิดเทอร์มินัล (พูด xterm) TERMคือxterm-256colorซึ่งถูกต้อง แต่เมื่อฉันเรียกใช้ tmux TERMเป็นอีกครั้งxterm-256color! ~/.zshrcแล้วฉันพยายามที่จะแสดงความคิดเห็นออกมาในแนวของฉัน ตอนนี้เมื่อผมเปิด terminal, TERMเป็นxtermและเมื่อผมทำงาน tmux, คือTERM screen-256colorดังนั้นดูเหมือนว่าถ้าผมตั้งTERMใน.zshrc, tmux แรกชุดTERMที่จะscreen-256colorวิ่งเปลือก (ซึ่งเป็น zsh) และ zsh อ่าน.zshrcและการตั้งค่าใหม่เพื่อTERMxterm-256color ดังนั้นวิธีที่จะทำให้TERMอยู่xterm-256colorในขั้ว "ธรรมดา" และscreen-256colorใน tmux?
18 zsh  tmux  xterm 

4
วิธีบรรทัดคำสั่งหรือโดยทางโปรแกรมเพิ่มคีย์ ssh ไปยังบัญชีผู้ใช้ github.com
มีวิธีในการระบุด้วยชื่อผู้ใช้และรหัสผ่านไปยังเซิร์ฟเวอร์ github.com เพื่อเพิ่มคีย์ ssh ให้กับบัญชีผู้ใช้ github หรือไม่? จนถึงทุกสิ่งที่ฉันได้อ่านแสดงให้เห็นว่าต้องเพิ่มคีย์ ssh ของผู้ใช้ผ่านทางเว็บ GUI ฉันกำลังมองหาวิธีการหรือกระบวนการในการเพิ่มคีย์ผ่านอินเตอร์เฟสบรรทัดคำสั่งหรืออื่น ๆ สคริปต์ทุบตี / ansible / something
18 ssh  terminal  git  github 

2
ใน bash ฉันจะสะท้อนชื่อตัวแปรได้อย่างไรไม่ใช่ค่าตัวแปร? [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา สมมติว่าฉันมีตัวแปรvarในทุบตี ฉันสามารถกำหนดค่าให้กับมัน ตัวอย่างเช่นฉันจะทำให้มันสตริง: var="Test" ฉันต้องการechoชื่อของไม่คุ้มค่าที่จัดขึ้นโดยvar var(ฉันสามารถทำสิ่งหลังได้echo $varแต่จริง ๆ แล้วฉันต้องการที่จะทำในอดีต) คำตอบสำหรับคำถามนี้จาก SOบอกว่าจะใช้echo ${!var}แต่เมื่อฉันทำที่ฉันสะท้อนเพียงแค่ส่งกลับบรรทัดว่าง ตัวอย่างเช่นสคริปต์ทุบตีนี้ #!/bin/bash echo "Hi" var="Test" echo ${!var} echo "Bye" ส่งคืนผลลัพธ์นี้: Hi Bye มีเพียงบรรทัดว่างระหว่างสวัสดีและลาก่อนแทนที่จะvar ผมทำอะไรผิดหรือเปล่า? ฉันทำงานทุบตี 4.1.5 (1)บนUbuntu 10.04.4
18 bash 

4
ทำไมบางคนต้องการเรียกใช้ UserMode Linux (UML)
ลินุกซ์ READMEกล่าวว่า: ลินุกซ์ยังได้รับการแจ้งความกับตัวเอง ตอนนี้คุณสามารถเรียกใช้เคอร์เนลเป็นแอปพลิเคชัน userspace - ซึ่งเรียกว่า UserMode Linux (UML) ทำไมบางคนต้องการทำเช่นนี้?

5
find: อาร์กิวเมนต์ที่ขาดหายไปถึง -exec
ฉันพยายามเรียกใช้คำสั่งต่อไปนี้: find a/folder b/folder -name *.c -o -name *.h -exec grep -I foobar '{}' + นี่กำลังส่งคืนข้อผิดพลาด: find: missing argument to -exec ฉันไม่เห็นว่ามีอะไรผิดปกติกับคำสั่งนี้เนื่องจากดูเหมือนจะตรงกับหน้าคน: คำสั่ง -exec {} + ตัวแปรของตัวเลือก -exec นี้จะรันคำสั่งที่ระบุในไฟล์ที่เลือก แต่บรรทัดคำสั่งจะถูกสร้างขึ้นโดยการต่อท้ายชื่อไฟล์ที่เลือกแต่ละชื่อที่ท้าย จำนวนรวมของคำสั่งจะน้อยกว่าจำนวนไฟล์ที่ตรงกัน บรรทัดคำสั่งถูกสร้างขึ้นในลักษณะเดียวกับที่ xargs สร้างบรรทัดคำสั่ง อนุญาตเพียงหนึ่งอินสแตนซ์ของ '{}' ภายในคำสั่ง คำสั่งจะถูกดำเนินการในไดเรกทอรีเริ่มต้น ฉันก็ลอง: find a/folder b/folder -name *.c -o -name *.h -exec grep -I …
18 find 

4
ทำให้คอมพิวเตอร์ทำหน้าที่เสมือนอุปกรณ์ USB สำหรับอุปกรณ์อื่น ๆ
แอปพลิเคชั่นบางตัวจำลอง USB เสมือนหรือไดรฟ์ซีดีรอมเสมือนว่ามีการเชื่อมต่อไดรฟ์ USB เข้ากับคอมพิวเตอร์ มีการกำหนดค่าหรือแอปพลิเคชันใด ๆ ที่ให้ไดรฟ์ USB เสมือนไม่ใช่สำหรับระบบปฏิบัติการ แต่สำหรับอุปกรณ์อื่น ๆ ที่รับไดรฟ์ USB ผ่านพอร์ต USB ดังนั้นฉันจะมีฮาร์ดดิสก์เสมือน (เช่น*.vdiไฟล์) ในคอมพิวเตอร์ซึ่งเชื่อมต่อผ่านช่องเสียบ USB เป็นไดรฟ์ USB ไปยังอุปกรณ์อื่น ๆ (เช่นโทรศัพท์มือถือหรือแล็ปท็อป)
18 usb 

8
cron เทียบกับ sleep - อันไหนดีกว่าในแง่ของการใช้ cpu / memory อย่างมีประสิทธิภาพ?
กรณี: ฉันจำเป็นต้องเรียกใช้คำสั่ง / สคริปต์ในช่วงเวลาที่แน่นอนและสำหรับสิ่งนี้ฉันมีสองตัวเลือก: ตั้งค่าcron-job ใช้การวนซ้ำsleepในสคริปต์เอง คำถาม: ตัวเลือกใดที่ดีกว่าจากมุมมองการใช้ทรัพยากรทำไม เป็นcronวิธีที่ดีกว่า cron ใช้ทริกเกอร์บางอย่างหรืออะไรที่ทำให้มันมีประสิทธิภาพมากกว่าอีก cron? cron ใช้ขั้นตอนอะไรในการตรวจสอบและเริ่มงาน?

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