Unix & Linux

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

4
configure: ข้อผิดพลาด: คอมไพเลอร์ C ไม่สามารถสร้างไฟล์เรียกทำงานได้
ฉันพยายามอัปเกรด apache 2.2.15 เป็น 2.2.27 ในขณะที่ใช้งาน config.nice นำมาจาก apache2.2.15 / บิลด์ฉันได้รับข้อผิดพลาดดังต่อไปนี้: checking whether the C compiler works... no configure: error: in `/home/vkuser/httpd-2.2.27/srclib/apr': configure: error: C compiler cannot create executables ฉันพยายามค้นหาทางออนไลน์ แต่ไม่มีโชค ฉันได้ทดสอบคอมไพเลอร์ c ด้วยการรันสคริปต์ test.c ขนาดเล็กและทำงานได้ดี มีวิธีแก้ปัญหาเล็กน้อยที่ให้ทางออนไลน์เช่นการติดตั้งแพคเกจ 'kernel-devel' แต่ไม่ได้แก้ปัญหา ฉันจะทำให้เรื่องนี้ทำงานได้อย่างไร ต่อไปนี้เป็น config.log สร้างขึ้น: This file contains any messages produced by …

3
การเชื่อมต่อ SSH พื้นหลังถาวรเพื่อสร้างอุโมงค์ย้อนกลับ: วิธีที่ถูกต้องคืออะไร?
คำถามที่เกี่ยวข้อง: เริ่มการเชื่อมต่อ ssh จากเซิร์ฟเวอร์ไปยังไคลเอนต์ คำตอบจากที่นั่นช่วยฉันได้มากคำสั่งนี้ทำในสิ่งที่ฉันต้องการ: ssh -R 2225:localhost:22 loginOfServerWithPublicIP@publicIP ดังนั้นฉันจึงเขียนสคริปต์เพื่อเชื่อมต่อใหม่ตลอดเวลา: #!/bin/bash while true; do echo "try to connect..." ssh -o ServerAliveInterval=240 -R 2225:localhost:22 user@host echo "restarting in 5 seconds.." sleep 5 done /etc/crontabและเพิ่มความมันไป แต่ฉันพบว่าใช้งานได้ถ้าเพียงฉันรัน "ด้วยมือ" จากเปลือก แต่ถ้ามันถูกเรียกโดย cron, ssh เชื่อมต่อและเสร็จสิ้นทันที (ดังนั้นสคริปต์ด้านบนจะเชื่อมต่อใหม่ตลอดเวลา) จากman sshฉันพบว่าสำหรับการเชื่อมต่อพื้นหลังฉันควรโทรด้วย-nกุญแจ แต่มันไม่ได้ช่วย จากนั้นฉันแค่มองไปรอบ ๆ เพื่อหาสคริปต์ที่คล้ายกันและฉันพบว่ามันใช้งานได้ถ้าฉันเรียกtail -f somethingเช่นคำสั่ง "ไม่สิ้นสุด" …

4
จำกัด การเข้าถึง FTP เฉพาะกับ / var / www ด้วย vsftpd
ฉันใช้ vsftpd เป็น ftp server บน linux ของฉัน (rasbian) ฉันเข้าสู่ระบบในฐานะผู้ใช้รูท ฉันอยากจะยังคงล็อคการใช้ / var / www เท่านั้นฉันจะกำหนดค่า vsftpd conf เพื่อให้สำเร็จได้อย่างไร

3
ตัวแปรเป็นคำสั่ง; eval vs bash -c
ฉันกำลังอ่านสคริปต์ทุบตีคนทำและฉันสังเกตเห็นว่าผู้เขียนไม่ได้ใช้ eval เพื่อประเมินตัวแปรเป็นคำสั่ง ผู้เขียนใช้ bash -c "$1" แทน eval "$1" ฉันถือว่าการใช้ eval เป็นวิธีที่ต้องการและอาจเร็วกว่าอยู่ดี มันเป็นเรื่องจริงเหรอ? มีความแตกต่างในทางปฏิบัติระหว่างทั้งสองหรือไม่? อะไรคือความแตกต่างที่โดดเด่นระหว่างสองสิ่งนี้?

9
jemalloc และข้อผิดพลาดอื่น ๆ ทำให้ redis บน centos 6.4
ฉันกำลังตั้งค่าระบบ centos 6.4 ใหม่ที่ทุ่มเทและมีสีแดง ฉันติดตั้ง redis หลายครั้ง แต่ไม่เคยมีปัญหานี้มาก่อน (และไม่เคยมีใน centos 6.4 มาก่อน) cd redis-2.6.16 sudo make install ข้อผิดพลาด: MAKE jemalloc cd jemalloc && ./configure --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS="" /bin/sh: ./configure: Permission denied make[2]: *** [jemalloc] Error 126 make[2]: Leaving directory `/tmp/redis32/redis-3.2.6/deps' make[1]: [persist-settings] …
41 centos  make 

4
ต่อท้ายไฟล์ขนาดใหญ่ต่อกันโดยไม่ต้องคัดลอก
มีไฟล์ขนาดใหญ่ 5 ไฟล์ (file1, file2, .. file5) ประมาณ 10G แต่ละไฟล์และมีพื้นที่ว่างเหลือน้อยมากเหลือน้อยบนดิสก์และฉันต้องการเชื่อมไฟล์ทั้งหมดนี้ให้เป็นไฟล์เดียว ไม่จำเป็นต้องเก็บไฟล์ต้นฉบับไว้เพียงไฟล์สุดท้ายเท่านั้น การต่อข้อมูลตามปกติจะเกิดขึ้นcatตามลำดับสำหรับไฟล์file2.. file5: cat file2 >> file1 ; rm file2 น่าเสียดายที่วิธีนี้ต้องการพื้นที่ว่างอย่างน้อย 10G ที่ฉันไม่มี มีวิธีการเชื่อมไฟล์โดยไม่ต้องคัดลอกจริง แต่บอกระบบไฟล์อย่างใดที่ file1 ไม่ได้จบที่ file1 เดิมและดำเนินการต่อที่ file2 เริ่ม? PS ระบบไฟล์เป็น ext4 ถ้าเรื่องนั้นสำคัญ

8
ps สามารถแสดงกระบวนการที่ไม่ใช่เคอร์เนลบน Linux ได้หรือไม่
ฉันpsจะขอให้แสดงเฉพาะกระบวนการของผู้ใช้และไม่ใช่เคอร์เนลเธรดได้อย่างไร ดูคำถามนี้เพื่อดูว่าฉันหมายถึงอะไร ...

4
วิธีเรียกใช้งานหลายคำสั่งโดยใช้ nohup
nohupฉันจำเป็นต้องดำเนินการคำสั่งต่างๆโดยใช้ แต่ละคำสั่งควรถูกเรียกใช้งานหลังจากคำสั่งก่อนหน้า ฉันใช้คำสั่งนี้เป็นตัวอย่าง: nohup wget $url && wget $url2 > /dev/null 2>&1 & อย่างไรก็ตามคำสั่งนั้นไม่ทำงาน ฉันควรใช้คำสั่งอะไรเพื่อจุดประสงค์นี้

4
ฉันจะออกหรือยกเลิกคำสั่ง bash ที่ไม่ดีได้อย่างไร
ฉันคาดว่าจะได้รับสะเก็ดระเบิดนี้ แต่ฉันไม่สามารถหาคำตอบได้ทุกที่ ดูเหมือนว่ามันควรจะชัดเจน บางครั้งเมื่อฉันพิมพ์คำสั่งที่ไม่ดีในเทอร์มินัล bash เคอร์เซอร์เพิ่งกระโดดลงไปที่บรรทัดถัดไปโดยไม่มีข้อผิดพลาดหรืออะไร ฉันไม่สามารถบอกสิ่งที่ฉันทำผิด มันเหมือนกับว่าฉันติดอยู่ในโปรแกรม แนคท์: $ tidy ฉัน: "อ๊ะ! นั่นไม่ใช่สิ่งที่ฉันต้องการพิมพ์ ... " :q ฉัน: "นั่นไม่ได้ผล ... " :exit :quit exit quit /exit /quit -exit -quit -wtf??? ฉันรู้ว่าฉันเมาแล้ว แต่ฉันจะกลับไปที่พรอมต์ได้อย่างไรโดยไม่ต้องปิดเครื่อง

2
วิธีการเรียกใช้สคริปต์ที่กำหนดเองบนปลั๊กอินอุปกรณ์ USB?
อะไรคือวิธีการที่ทันสมัยสำหรับการเรียกใช้สคริปต์ที่กำหนดเองโดยอัตโนมัติเมื่อปลั๊กอินอุปกรณ์ USB ภายใต้ดิสทริบิวชัน Linux ปัจจุบันเช่น Debian / CentOS / Fedora ตัวอย่างเช่นหากคุณต้องการเมานต์ / คัดลอกไฟล์บางไฟล์โดยอัตโนมัติ / ติดตั้งอุปกรณ์เก็บข้อมูลขนาดใหญ่แบบ USB ตาม UUID (หรือ ID อุปกรณ์ ฯลฯ )
41 usb  udev  uuid 

3
ฉันจะเปลี่ยนจากเชลล์ที่ไม่รู้จักเป็นทุบตีได้อย่างไร
ฉันประหลาดใจที่ฉันไม่พบคำถามนี้บนไซต์แล้ว ดังนั้นวันนี้$ขึ้นมาหลังจากที่ฉันเข้าสู่ระบบในฐานะผู้ใช้ใหม่ username@computername:~$นี่คือที่ไม่คาดคิดเพราะผู้ใช้หลักของฉันเริ่มต้นกับพรอมต์ ดังนั้นฉันจะเปลี่ยนจากเชลล์อื่นนี้เป็นทุบตีได้อย่างไร
41 shell 

7
การใช้ xargs กับอินพุตจากไฟล์
สมมติว่าฉันมีไฟล์ดังต่อไปนี้ bob john sue ตอนนี้เหล่านี้ corrospond โดยตรงไป (ในกรณีนี้) รูปแบบ URL เช่นhttp://example.com/persons/bob.tar, ,john.tarsue.tar xargsผมอยากจะใช้เส้นเหล่านี้และเรียกพวกเขาผ่าน ฉันไม่รู้ว่าสิ่งใดที่ส่งผ่านไปยังคำสั่งที่ถูกเรียกใช้งาน ฉันจะเข้าถึงพารามิเตอร์ได้อย่างไรจากพรอมต์ (บอกว่าฉันต้องการสะท้อนแต่ละบรรทัดเช่นcat file | xargs echo $PARAM) หรือจากสคริปต์ทุบตี
41 bash  scripting  xargs 

1
ฉันจะตรวจสอบไฟล์ที่เปิดของกระบวนการแบบเรียลไทม์ได้อย่างไร
ฉันรู้ว่าฉันสามารถดูไฟล์ที่เปิดของกระบวนการที่ใช้lsof ในขณะนั้นในเครื่อง Linux ของฉัน อย่างไรก็ตามกระบวนการสามารถเปิดแก้ไขและปิดไฟล์ได้อย่างรวดเร็วจนฉันไม่สามารถมองเห็นได้เมื่อทำการตรวจสอบโดยใช้เชลล์สคริปต์มาตรฐาน (เช่นwatch) ตามที่อธิบายไว้ใน"การตรวจสอบไฟล์กระบวนการเปิดบน linux (เรียลไทม์)" . ดังนั้นฉันคิดว่าฉันกำลังมองหาวิธีง่ายๆในการตรวจสอบกระบวนการและดูว่ามันทำอะไรไปบ้างเมื่อเวลาผ่านไป มันจะดีถ้ามันเป็นไปได้ที่จะเห็นว่าการเชื่อมต่อเครือข่ายมัน (พยายามที่จะ) และให้เริ่มต้นการตรวจสอบก่อนที่กระบวนการจะมีเวลาในการทำงานโดยไม่ต้องเริ่มการตรวจสอบ เป็นการดีที่ฉันต้องการทำสิ่งนี้: sh $ audit-lsof /path/to/executable 4530.848254 OPEN read /etc/myconfig 4530.848260 OPEN write /var/log/mylog.log 4540.345986 OPEN read /home/gert/.ssh/id_rsa <-- suspicious 4540.650345 OPEN socket TCP ::1:34895 -> 1.2.3.4:80 | [...] 4541.023485 CLOSE /home/gert/.ssh/id_rsa <-- would have missed 4541.023485 …

1
“ set -” ทำอะไรในจุดเข้า Dockerfile นี้?
ฉันพยายามเข้าใจว่าจุดเข้าใช้งานนักเทียบท่านี้ทำอะไร ดูเหมือนว่าสำหรับฉันแล้วมันเป็นรูปแบบที่ธรรมดามากเมื่อเขียน Dockerfiles แต่ทักษะการทุบตีของฉันนั้นมี จำกัด นอกจากนี้มันยากที่ google สำหรับ "-", "$!" ฯลฯ สิ่งเหล่านี้เรียกว่าอะไรในโลกทุบตี? เพื่อสรุปสิ่งที่บรรทัดร้องพยายามทำคืออะไร? if [ "${1#-}" != "$1" ]; then set -- haproxy "$@" fi
41 shell-script  set 

4
ประวัติไม่ จำกัด ใน zsh
ในzshฉันต้องการมีประวัติไม่ จำกัด ฉันตั้งHISTSIZE=ซึ่งใช้งานbashได้ ตอนนี้ฉันนำเข้าประวัติเก่า mv old_history .history ซึ่งค่อนข้างใหญ่ wc -l .history 43562 .history ถ้าฉันปิดแล้วเริ่มzshใหม่อีกครั้งฉันจะเห็น wc -l .history 32234 .history ฉันมีประวัติไม่ จำกัด ได้zshหรือไม่?

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