Unix & Linux

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


4
แก้ไขหรือทางเลือกสำหรับ mktemp ใน OS X
ฉันกำลังดูสคริปต์ทุบตีคนอื่นเขียนว่าใช้mktemp: TEMP=`mktemp --directory` อย่างไรก็ตามบรรทัดนี้ใช้ไม่ได้กับเครื่องของฉัน (OS X 10.6) ฉันจะแก้ไขบรรทัดนี้เพื่อให้เข้ากันได้กับ cross-un * x-like-platform ได้อย่างไร แก้ไข:คำสั่งทางเลือกจะเพียงพอเช่นกัน

3
หากกระบวนการสืบทอดสภาพแวดล้อมของผู้ปกครองทำไมเราถึงต้องส่งออก
ฉันอ่านที่นี่ว่าวัตถุประสงค์ของexportเชลล์คือการทำให้ตัวแปรพร้อมใช้งานสำหรับกระบวนการย่อยที่เริ่มต้นจากเชลล์ อย่างไรก็ตามฉันได้อ่านที่นี่และที่นี่ว่า"กระบวนการสืบทอดสภาพแวดล้อมของพวกเขาจากผู้ปกครองของพวกเขา (กระบวนการที่เริ่มต้นพวกเขา)" หากเป็นกรณีนี้เราจำเป็นต้องทำexportอย่างไร ฉันพลาดอะไรไป ตัวแปรเชลล์ไม่ได้เป็นส่วนหนึ่งของสภาพแวดล้อมโดยปริยายหรือไม่? อะไรคือความแตกต่าง?

12
ปรัชญาของการล่าช้าในการเขียนข้อมูลลงดิสก์คืออะไร
ใน Linux การดำเนินการคำสั่งที่เสร็จสิ้นแล้วเช่นcpหรือddไม่ได้หมายความว่าข้อมูลถูกเขียนไปยังอุปกรณ์ หนึ่งมีการยกตัวอย่างเช่นการโทรsyncหรือเรียกว่า "Safely Remove" หรือ "Eject" ฟังก์ชั่นบนไดรฟ์ ปรัชญาของวิธีการดังกล่าวคืออะไร? เหตุใดข้อมูลจึงไม่ถูกเขียนพร้อมกัน ไม่มีอันตรายที่การเขียนจะล้มเหลวเนื่องจากข้อผิดพลาด I / O หรือไม่?

4
ฉันจะปิดเสียง cronjob ให้เป็น / dev / null / ได้อย่างไร
บน Ubuntu-Desktop และบนเดเบียนเซิร์ฟเวอร์ของฉันฉันมีสคริปต์ที่ต้องดำเนินการทุกนาที (สคริปต์ที่เรียกนาทีของการเรียกดูออนไลน์ในพื้นที่ของฉัน) ปัญหาคือว่าใน debian derivates cron จะเข้าสู่ระบบ/var/log/syslogทุกครั้งที่ดำเนินการ ฉันเห็นข้อความที่ถูกประหารซ้ำแล้วซ้ำอีกใน/var/log/syslog: Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1) ฉันรู้ว่าเพื่อที่จะระงับการส่งออกของโปรแกรมฉันสามารถเปลี่ยนเส้นทางไปยัง/dev/nullเช่นซ่อนข้อผิดพลาดและข้อความเตือนจากโปรแกรมฉันสามารถสร้างบรรทัดใน crontab เช่นนี้ * * * * * root /usr/local/sbin/mycommand.sh > /dev/null แต่ฉันต้องการเรียกใช้ cronjob และตรวจสอบว่าเอาต์พุตหรือข้อผิดพลาดที่สร้างขึ้นทั้งหมดถูกไพพ์ไปที่ NULL ดังนั้นจึงไม่สร้างข้อความใด ๆ ใน syslog และไม่สร้างอีเมลใด ๆ แก้ไข: มีวิธีแก้ปัญหาในการเปลี่ยนเส้นทางบันทึก cron เป็นบันทึกแยกต่างหากเช่นเสนอที่นี่โดยการเปลี่ยน/etc/syslog.conf แต่ข้อเสียเปรียบก็คือว่าผลลัพธ์ทั้งหมดของ …

3
ฉันจะทดสอบความสอดคล้องของ POSIX ของเชลล์สคริปต์ได้อย่างไร
เมื่อพิจารณาว่า POSIX เป็นสิ่งที่ใกล้เคียงกับมาตรฐานทั่วไปมากที่สุดในบรรดา unices ทั้งหมดฉันสนใจที่จะรู้ว่ามีเชลล์ที่รองรับมันโดยเฉพาะหรือไม่ ในขณะที่เชลล์ที่ทันสมัยส่วนใหญ่ให้การสนับสนุน POSIX (และจะเรียกใช้สคริปต์ที่สอดคล้องกับ POSIX โดยไม่มีปัญหาใด ๆ ) พวกมันทำงานได้ไม่ดีในการชี้ให้เห็นคุณลักษณะที่ไม่เข้ากันได้ มีเชลล์ที่ใช้ POSIX และ POSIX เท่านั้นในลักษณะที่มันจะโยนข้อผิดพลาดสำหรับคุณสมบัติที่ไม่เข้ากันได้หรือไม่? แก้ไขฉันต้องการชี้แจงว่าฉันไม่ได้ขอคำแนะนำทั่วไปสำหรับการเขียนเชลล์สคริปต์แบบพกพา คำถามที่เกี่ยวข้องพูดถึงในความคิดเห็นที่ครอบคลุมนี้ ฉันคิดว่าคำถามนี้เมื่อฉันพบว่าbashมี--posixตัวเลือก แต่เพียงเพื่อค้นพบว่ามันมีผลต่อพฤติกรรมการทำให้มีลักษณะเฉพาะบางอย่างซึ่งไม่ใช่สิ่งที่ฉันกำลังมองหา

4
“ แพ็คเกจต่อไปนี้ได้รับการรักษาไว้แล้ว” หมายความว่าอย่างไร
เมื่อทำapt-get upgradeฉันบางครั้งได้รับข้อความว่า "แพคเกจต่อไปนี้ได้รับการเก็บไว้" ตัวอย่างเช่น: $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: linux-headers-server linux-image-server linux-server 0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. สิ่งนี้หมายความว่าอะไรกันแน่? เห็นได้ชัดว่าแพคเกจได้รับการระงับและไม่ได้ติดตั้ง แต่ทำไม? คำถามที่ตามมาคือ: จะอัพเกรดแพ็คเกจที่เก็บไว้เหล่านี้ได้อย่างไร?
72 apt  upgrade 

7
วิธีใช้บรรทัดคำสั่งเพื่อเปลี่ยนระดับเสียง
ฉันพยายามควบคุมระดับเสียงโดยใช้สคริปต์การเขียนโปรแกรมของฉัน ฉันจะทำสิ่งต่อไปนี้ใน Fedora 15, Ubuntu linux ได้อย่างไร ปิดเสียง / เปิดเสียง เพิ่มระดับเสียงและลดระดับเสียง หมายเหตุ: โปรดทราบว่าฉันใช้ไมโครโฟน USB / เว็บลำโพงและไมโครโฟนอะนาล็อก / ลำโพง ฉันต้องการนำไปใช้กับทุกคนเพื่อให้แน่ใจว่า

7
ตั้งค่าและเลือกซื้อ - สองทำไม
setและshoptเป็นทั้งบิวด์เชลล์ที่ควบคุมตัวเลือกต่าง ๆ ฉันมักจะลืมว่าตัวเลือกใดถูกตั้งค่าตามคำสั่งใดและตัวเลือกใดที่ตั้งค่า / ไม่ปลอดภัย ( set -o/+o, shopt -s/-u) เหตุใดจึงมีสองคำสั่งต่างกันที่ดูเหมือนจะทำสิ่งเดียวกัน (และมีข้อโต้แย้งต่าง ๆ ให้ทำ) มีวิธีใด / ตัวย่อช่วยจำให้จำว่ามีตัวเลือกใดบ้างที่ใช้คำสั่งใด?
72 bash  settings  shopt 

4
อะไรคือความแตกต่างระหว่างคำสั่ง builtin และคำสั่งที่ไม่ได้ใช้?
มีความแตกต่างที่แท้จริงระหว่างคำสั่ง builtin และคำสั่งอื่นซึ่งในนามสามารถทำสิ่งเดียวกันในนาม? เช่น. builtins ได้รับการบำบัดแบบพิเศษหรือไม่ ... มีค่าใช้จ่ายน้อยลงหรือไม่ .. หรือว่าพวกเขาเพียงแค่ 'สร้างขึ้นใน'; ชอบแดชบอร์ดของรถของคุณ? ... และมีรายการ (ปัจจุบัน) ที่ชัดเจนของ builtins เหล่านี้หรือไม่

5
กลายเป็นรากจากภายในเป็นกลุ่ม
บางครั้งฉันเริ่มแก้ไขไฟล์การกำหนดค่า/etcโดยใช้ Vim แต่ลืมใช้sudoเพื่อเริ่ม Vim ผลลัพธ์ที่หลีกเลี่ยงไม่ได้คือหลังจากเสร็จสิ้นการแก้ไขของฉันฉันพบการแจ้งเตือนที่หวั่นเกรงว่าฉันไม่มีสิทธิ์ในการบันทึกไฟล์ การแก้ไขส่วนใหญ่มีขนาดเล็กพอที่ฉันเพิ่งออกจากกลุ่มและทำสิ่งทั้งหมดอีกครั้งในฐานะที่เป็นราก แน่นอนฉันสามารถบันทึกไปยังสถานที่ที่ฉันสามารถเขียนและคัดลอกเป็นราก แต่ก็ค่อนข้างน่ารำคาญ แต่ฉันแน่ใจว่ามีวิธีที่ง่ายกว่าในการรูทหรือใช้sudoจากภายใน Vim โดยไม่ต้องละทิ้งการเปลี่ยนแปลง หากวิธีการนี้จะไม่พึ่งพาsudoการตั้งค่าสำหรับผู้ใช้ที่จะดียิ่งขึ้น
72 vim  sudo  root 

3
ความแตกต่างระหว่างพื้นที่ผู้ใช้และพื้นที่เคอร์เนลคืออะไร?
พื้นที่เคอร์เนลถูกใช้เมื่อเคอร์เนลกำลังทำงานในนามของโปรแกรมผู้ใช้เช่นการเรียกระบบหรือไม่ หรือเป็นพื้นที่ที่อยู่สำหรับเธรดเคอร์เนลทั้งหมด (เช่นตัวกำหนดตารางเวลา)? หากเป็นโปรแกรมแรกแสดงว่าโปรแกรมผู้ใช้ปกติไม่สามารถมีหน่วยความจำเกิน 3GB ได้ (หากแบ่งเป็น 3GB + 1GB) นอกจากนี้ในกรณีนั้นเคอร์เนลสามารถใช้หน่วยความจำสูงได้อย่างไรเนื่องจากที่อยู่หน่วยความจำเสมือนใดที่หน้าเว็บจากหน่วยความจำสูงจะถูกแมปเนื่องจากพื้นที่เคอร์เนล 1GB จะถูกแมปอย่างมีเหตุผล
72 linux  kernel  drivers 

6
ฉันสามารถตั้งค่าเมลระบบให้ใช้เซิร์ฟเวอร์ SMTP ภายนอกได้หรือไม่
เป็นไปได้หรือไม่ที่จะติดตั้งเมลของระบบบนกล่อง linux เพื่อส่งผ่านเซิร์ฟเวอร์ smtp อื่น - อาจถึงกับมีการตรวจสอบสิทธิ์ด้วยซ้ำ ถ้าเป็นเช่นนั้นฉันจะทำเช่นนี้ได้อย่างไร หากยังไม่ชัดเจนลองยกตัวอย่าง ถ้าฉันอยู่ที่บรรทัดคำสั่งและพิมพ์: cat body.txt | mail -s "just a test" myfriend@hisdomain.com เป็นไปได้หรือไม่ที่มีการส่งผ่านเซิร์ฟเวอร์ SMTP ภายนอกเช่น G-mail ฉันไม่ได้มองหา "วิธีการส่งจดหมายจาก gmail จากบรรทัดคำสั่ง" แต่เป็นตัวเลือกในการกำหนดค่าระบบทั้งหมดให้ใช้เซิร์ฟเวอร์ SMTP เฉพาะหรืออาจเป็นหนึ่งบัญชีในเซิร์ฟเวอร์ SMTP (อาจแทนที่ที่อยู่) .
72 linux  smtp  email 

8
อะไรคือความแตกต่างระหว่าง $ * และ $ @
พิจารณารหัสต่อไปนี้: foo () { echo $* } bar () { echo $@ } foo 1 2 3 4 bar 1 2 3 4 มันเอาท์พุท: 1 2 3 4 1 2 3 4 ฉันใช้ Ksh88 แต่ฉันสนใจเชลล์ทั่วไปอื่น ๆ ด้วย หากคุณทราบถึงความพิเศษใด ๆ ของเชลล์ที่เฉพาะเจาะจงโปรดอย่าพูดถึงมัน ฉันพบ follwing ในหน้าคน Ksh บน Solaris: ความหมายของ $ * และ …
72 shell  quoting  ksh  arguments 

8
Linux ls เพื่อแสดงวันที่และชื่อไฟล์เท่านั้น
ฉันจะใช้lsใน linux เพื่อดูรายการวันที่และชื่อไฟล์ได้เท่านั้น ฉันไม่ต้องการเห็นข้อมูลอื่นเช่นเจ้าของหรือการอนุญาต เป็นไปได้ไหม
72 linux  command-line  files  ls 

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