คำถามติดแท็ก unix

แท็กนี้เป็นเอกสิทธิ์สำหรับคำถามการเขียนโปรแกรมที่เกี่ยวข้องโดยตรงกับ Unix; ปัญหาซอฟต์แวร์ทั่วไปควรถูกนำไปยังไซต์ Unix & Linux Stack Exchange หรือไปยัง Super User ระบบปฏิบัติการ Unix เป็นระบบปฏิบัติการอเนกประสงค์ที่พัฒนาโดย Bell Labs ในช่วงปลายทศวรรษ 1960 และปัจจุบันมีอยู่ในหลายเวอร์ชั่น

3
วิธีตั้งค่าเบรกพอยต์บนไลบรารีที่แชร์ในอนาคตด้วยแฟล็กคำสั่ง
ฉันกำลังพยายามทำให้เซสชัน gdb อัตโนมัติโดยใช้--commandแฟล็ก ฉันกำลังพยายามตั้งค่าเบรกพอยต์สำหรับฟังก์ชันในไลบรารีที่ใช้ร่วมกัน (เทียบเท่ากับ Unix ของ DLL) cmds.gdb ของฉันมีลักษณะดังนี้: set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r อย่างไรก็ตามฉันได้รับสิ่งต่อไปนี้: shlomi: ~ / progs / bugs-external / kde / font-ทำลาย $ gdb --command = cmds.gdb ... GNU gdb 6.8-2mdv2009.0 (Mandriva Linux รีลีส 2009.0) ลิขสิทธิ์ (C) 2008 Free Software Foundation, Inc. ใบอนุญาต GPLv3 +: …
94 c++  c  linux  unix  gdb 

5
ฉันจะเรียกใช้ซีลีเนียมใน Xvfb ได้อย่างไร
ฉันใช้อินสแตนซ์ EC2 ดังนั้นจึงไม่มี GUI $pip install selenium $sudo apt-get install firefox xvfb จากนั้นฉันจะทำสิ่งนี้: $Xvfb :1 -screen 0 1024x768x24 2>&1 >/dev/null & $DISPLAY=:1 java -jar selenium-server-standalone-2.0b3.jar 05:08:31.227 INFO - Java: Sun Microsystems Inc. 19.0-b09 05:08:31.229 INFO - OS: Linux 2.6.32-305-ec2 i386 05:08:31.233 INFO - v2.0 [b3], with Core v2.0 [b3] 05:08:32.121 …

4
การเชื่อมต่ออย่างรวดเร็วของไฟล์ GZip หลายไฟล์
ฉันมีรายการไฟล์ gzip: file1.gz file2.gz file3.gz มีวิธีการเชื่อมต่อหรือ gzipping ไฟล์เหล่านี้เป็นไฟล์ gzip เดียว โดยไม่ต้องคลายการบีบอัดหรือไม่? ในทางปฏิบัติเราจะใช้สิ่งนี้ในฐานข้อมูลบนเว็บ (CGI) โดยที่เว็บจะรับแบบสอบถามจากผู้ใช้และแสดงรายการไฟล์ทั้งหมดตามแบบสอบถามและนำเสนอในไฟล์แบตช์กลับไปยังผู้ใช้
93 linux  unix  gzip  compression 

9
คุณจะค้นหาผู้ใช้ดั้งเดิมผ่านคำสั่ง sudo และ su หลายคำสั่งได้อย่างไร
เมื่อเรียกใช้สคริปต์ผ่าน sudo หรือ su ฉันต้องการรับผู้ใช้ดั้งเดิม นี้ควรจะเกิดขึ้นโดยไม่คำนึงถึงหลาย ๆsudoหรือsuทำงานภายในของแต่ละอื่น ๆ sudo su -และโดยเฉพาะ
93 linux  bash  unix  sudo  su 

4
การรวมภาพ png เป็นไฟล์ pdf เดียว [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันจะรวม.pngไฟล์หลายไฟล์เป็นไฟล์ PDF เดียวใน Unix ได้อย่างไร?
93 unix  pdf  merge  png 

5
rsync ไม่ซิงโครไนซ์ไฟล์. htaccess
ฉันพยายาม rsync ไดเร็กทอรี A ของ server1 ด้วยไดเร็กทอรี B ของ server2 นั่งอยู่ในไดเร็กทอรี A ของ server1 ฉันรันคำสั่งต่อไปนี้ rsync -av * server2::sharename/B แต่สิ่งที่น่าสนใจคือมันซิงโครไนซ์ไฟล์และไดเร็กทอรีทั้งหมดยกเว้น. htaccess หรือไฟล์ที่ซ่อนอยู่ในไดเร็กทอรี A. ไฟล์ที่ซ่อนอยู่ในไดเร็กทอรีย่อยจะถูกซิงโครไนซ์ ฉันลองคำสั่งต่อไปนี้ด้วย: rsync -av --include=".htaccess" * server2::sharename/B แต่ผลลัพธ์ก็เหมือนกัน แนวคิดใด ๆ ที่ทำไมไฟล์ที่ซ่อนอยู่ในไดเร็กทอรี A ไม่ได้รับการซิงโครไนซ์และวิธีแก้ไข ฉันทำงานในฐานะผู้ใช้รูท ขอบคุณ
93 linux  shell  unix  wildcard  rsync 

5
วิธีเลื่อนขึ้นและลงในเทอร์มินัล "หน้าจอ" แบบแบ่งส่วน
ฉันเพิ่งติดตั้งscreenและชอบความคิดที่จะแบ่ง linux terminal ออกเป็นหลาย ๆ ชิ้น แต่ฉันคิดไม่ออกว่าจะเลื่อนขึ้นลงอย่างไรเมื่อฉันเข้าscreenมา เมื่อฉันใช้ลินุกซ์เทอร์มินัลปกติฉันสามารถทำสิ่งนี้ได้ด้วยShift+ Pg UpหรือShift+ Pg Dn" แต่โชคร้ายมันไม่ทำงานในเทอร์มินัลที่แบ่งออก นั่นคือสิ่งที่ฉันหมายถึงเมื่อพูดscreenและแบ่งขั้ว: และนั่นคือจุดสิ้นสุดปกติ (ในกรณีนี้):

12
การค้นหาไดเรกทอรีว่าง UNIX
ฉันต้องการค้นหาไดเร็กทอรีว่างสำหรับรายการไดเร็กทอรีที่กำหนด บางไดเร็กทอรีมีไดเร็กทอรีอยู่ภายใน หากไดเรกทอรีภายในว่างเปล่าฉันสามารถพูดได้ว่าไดเรกทอรีหลักว่างเปล่ามิฉะนั้นจะไม่ว่างเปล่า ฉันจะทดสอบสิ่งนี้ได้อย่างไร? ตัวอย่างเช่น: A>A1(file1),A2 this is not empty beacuse of file1 B>B1(no file) this is empty C>C1,C2 this is empty
92 bash  unix  directory 

3
UNIX nonblocking I / O: O_NONBLOCK เทียบกับ FIONBIO
ในทุกตัวอย่างและการสนทนาที่ฉันใช้ในบริบทของการเขียนโปรแกรมซ็อกเก็ต BSD ดูเหมือนว่าวิธีที่แนะนำในการตั้งค่าตัวอธิบายไฟล์เป็นโหมด I / O ที่ไม่ปิดกั้นคือการใช้O_NONBLOCKแฟล็กเพื่อfcntl()เช่น int flags = fcntl(fd, F_GETFL, 0); fcntl(fd, F_SETFL, flags | O_NONBLOCK); ฉันทำการเขียนโปรแกรมเครือข่ายใน UNIX มานานกว่าสิบปีแล้วและใช้การFIONBIO ioctl()โทรเพื่อทำสิ่งนี้มาโดยตลอด: int opt = 1; ioctl(fd, FIONBIO, &opt); ไม่เคยคิดมากว่าทำไม เพิ่งเรียนรู้วิธีนี้ ใครมีความเห็นเกี่ยวกับข้อดีของข้อใดข้อหนึ่งหรือไม่? ฉันคิดว่าโลคัสการพกพานั้นแตกต่างกันบ้าง แต่ไม่รู้ว่าioctl_list(2)มันไม่ได้พูดถึงแง่มุมของแต่ละioctlวิธี


13
Unix: วิธีลบไฟล์ที่อยู่ในไฟล์
ฉันมีไฟล์ข้อความยาวพร้อมรายการมาสก์ไฟล์ที่ฉันต้องการลบ ตัวอย่าง: /tmp/aaa.jpg /var/www1/* /var/www/qwerty.php ฉันต้องการลบมัน ลอง rm `cat 1.txt` แล้วมันบอกว่ารายการยาวเกินไป พบคำสั่งนี้ แต่เมื่อฉันตรวจสอบโฟลเดอร์จากรายการบางรายการยังมีไฟล์ xargs rm <1.txtManual rm call จะลบไฟล์ออกจากโฟลเดอร์ดังกล่าวดังนั้นจึงไม่มีปัญหากับสิทธิ์
92 linux  unix 


6
บรรทัดเดียว sftp จาก Terminal
หลายครั้งตลอดทั้งวันฉันอาจจะทำการทดสอบที่ฉันต้องตรวจสอบไฟล์บันทึกบนเซิร์ฟเวอร์ระยะไกล ฉันคุ้นเคยกับการใช้เทอร์มินัลของฉันเพื่อsftpเข้าสู่เซิร์ฟเวอร์ระยะไกลและดึงไฟล์บันทึกที่ต้องการลง/tmpบนเครื่องภายในของฉัน วันนี้ฉันกำลังมองหาตัวเลือกต่างๆโดยใช้man sftpเพื่อพยายามหาวิธีเรียกใช้คำสั่งต่อไปนี้โดยทั่วไปในบรรทัดเดียวเพื่อที่ฉันจะได้ไม่ต้องพิมพ์คำสั่งกด Enter พิมพ์คำสั่งกด Enter ฯลฯ (ตอนนี้ฉันทำอะไร) sftp myuser@myserver --mypassword at prompt lcd /tmp get /dir/dir/dir/dir/file quit ฉันพบในขณะที่ดูman sftpข้อมูลอ้างอิงscpที่ฉันไม่เคยใช้มาก่อน ฉันรู้สึกว่ามันอาจจะเป็นสิ่งที่ฉันกำลังมองหา แต่ฉันไม่เห็นวิธีระบุว่าฉันต้องการให้ไฟล์ที่คัดลอกอย่างปลอดภัยไปที่ใด มีใครช่วยหาวิธีรับ/dir/fileจากเซิร์ฟเวอร์ระยะไกลและดาวน์โหลดไปยังได้/tmp/file_plus-my-descriptionไหม ฉันหวังว่าจะสามารถรันคำสั่ง sftp หรือ scp ที่คล้ายกับสำเนา UNIX ทั่วไปเช่น: scp myuser@myserver /dir/file /tmp/file_plus-my-description ฉันใช้TerminalMac OS X 10.8 ในตัว ขอบคุณ.
92 unix  terminal  sftp  scp 

8
วิธีใช้ CCache กับ CMake
ฉันต้องการทำสิ่งต่อไปนี้: หากมี CCache อยู่ใน PATH ให้ใช้ "ccache g ++" สำหรับการคอมไพล์มิฉะนั้นให้ใช้ g ++ ฉันพยายามเขียนสคริปต์ my-cmake ขนาดเล็กที่มีไฟล์ CC="ccache gcc" CXX="ccache g++" cmake $* แต่ดูเหมือนจะไม่ทำงาน (การรัน make ยังไม่ใช้ ccache ฉันตรวจสอบสิ่งนี้โดยใช้ CMAKE_VERBOSE_MAKEFILE บน) อัปเดต: ตามลิงค์นี้ฉันพยายามเปลี่ยนสคริปต์ของฉันเป็น cmake -D CMAKE_CXX_COMPILER="ccache" -D CMAKE_CXX_COMPILER_ARG1="g++" -D CMAKE_C_COMPILER="ccache" -D CMAKE_C_COMPILER_ARG1="gcc" $* แต่ cmake บ่นว่าการทดสอบล้มเหลวในการใช้ ccache คอมไพเลอร์ (ซึ่งสามารถคาดหวังได้)
92 c++  unix  cmake  ccache 

9
วิธีดำเนินการเอาต์พุตของคำสั่งภายในเชลล์ปัจจุบัน
ฉันทราบดีถึงยูทิลิตี้source(aka .) ซึ่งจะนำเนื้อหาจากไฟล์และเรียกใช้งานภายในเชลล์ปัจจุบัน ตอนนี้ฉันกำลังเปลี่ยนข้อความบางส่วนเป็นคำสั่งเชลล์แล้วเรียกใช้งานดังต่อไปนี้: $ ls | sed ... | sh lsเป็นเพียงตัวอย่างแบบสุ่มข้อความต้นฉบับอาจเป็นอะไรก็ได้ sedเช่นกันเป็นเพียงตัวอย่างสำหรับการแปลงข้อความ shบิตที่น่าสนใจคือ ฉันไปป์ทุกอย่างที่ฉันไปถึงshแล้วมันก็วิ่งไป ปัญหาของฉันคือนั่นหมายถึงการเริ่มต้นเชลล์ย่อยใหม่ ฉันอยากให้คำสั่งทำงานภายในเชลล์ปัจจุบันของฉัน เช่นเดียวกับที่ฉันสามารถทำได้source some-fileถ้าฉันมีคำสั่งในไฟล์ข้อความ ฉันไม่ต้องการสร้างไฟล์ชั่วคราวเพราะรู้สึกว่าสกปรก หรือฉันต้องการเริ่มเชลล์ย่อยของฉันด้วยลักษณะเดียวกับเชลล์ปัจจุบันของฉัน อัพเดต โอเควิธีแก้ปัญหาโดยใช้ backtick ใช้งานได้ดี แต่ฉันมักจะต้องทำสิ่งนี้ในขณะที่ฉันกำลังตรวจสอบและเปลี่ยนผลลัพธ์ดังนั้นฉันชอบมากถ้ามีวิธีที่จะทำให้ผลลัพธ์เป็นบางสิ่งในตอนท้าย อัปเดตที่น่าเศร้า อ่า/dev/stdinสิ่งนี้ดูสวยมาก แต่ในกรณีที่ซับซ้อนกว่านั้นมันไม่ได้ผล ฉันมีสิ่งนี้: find . -type f -iname '*.doc' | ack -v '\.doc$' | perl -pe 's/^((.*)\.doc)$/git mv -f $1 $2.doc/i' | source …
92 bash  shell  unix  pipe 

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