Unix & Linux

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

10
หนึ่งซับ VS สคริปต์
ฉันสังเกตเห็นคำถามและคำตอบจำนวนมากและความคิดเห็นที่แสดงความรังเกียจ (และบางครั้งก็กลัว) การเขียนสคริปต์แทนการใช้ liners คนเดียว ดังนั้นฉันต้องการทราบ: ฉันควรเขียนสคริปต์แบบสแตนด์อโลนเมื่อใดและเพราะเหตุใดแทนที่จะเป็น "หนึ่งซับ" หรือในทางกลับกัน? ข้อดีและข้อเสียของการใช้ทั้งสองกรณีคืออะไร บางภาษา (เช่น awk หรือ perl) เหมาะกับ liners หนึ่งมากกว่าภาษาอื่น ๆ (เช่น python) หรือไม่ ถ้าเป็นเช่นนั้นทำไม มันเป็นเพียงเรื่องของการตั้งค่าส่วนตัวหรือมีเหตุผลที่ดี (เช่นวัตถุประสงค์) ในการเขียนหนึ่งหรืออื่น ๆ ในสถานการณ์พิเศษหรือไม่ อะไรคือเหตุผลเหล่านั้น คำนิยาม one-liner: ลำดับของคำสั่งใด ๆ ที่พิมพ์หรือวางโดยตรงลงในเปลือกบรรทัดคำสั่ง มักเกี่ยวข้องกับท่อและ / หรือการใช้ภาษาเช่นsed, awk, perlและ / หรือเครื่องมือเช่นgrepหรือหรือcutsort มันเป็นการดำเนินการโดยตรงบนบรรทัดคำสั่งที่เป็นลักษณะการกำหนด - ความยาวและการจัดรูปแบบไม่เกี่ยวข้อง "หนึ่งซับ" อาจอยู่ในหนึ่งบรรทัดหรืออาจมีหลายบรรทัด (เช่น sh สำหรับลูปหรือฝัง awk …

4
การอัพเดตเคอร์เนล Linux ในขณะที่ปล่อยให้ระบบเหลืออยู่
ฉันเป็นผู้ใช้ OpenBSD ในคำถามที่พบบ่อย OpenBSDกล่าวว่า: OpenBSD เป็นระบบที่สมบูรณ์โดยมีจุดประสงค์เพื่อให้ข้อมูลตรงกัน มันไม่ได้เป็นเคอร์เนลรวมกับยูทิลิตี้ที่สามารถอัพเกรดแยกจากกัน เมื่อคุณอัพเกรดระบบคุณสามารถทำได้ในครั้งเดียว เคอร์เนลและระบบฐานจะถูกแทนที่ จากนั้นคุณไปและอัปเดตแพ็คเกจบุคคลที่สามของคุณ หากรวบรวมจากแหล่งที่มาคุณจะต้องคอมไพล์เคอร์เนลและบูตใหม่ จากนั้นคุณสร้างระบบฐานอีกครั้งจากนั้นแพ็คเกจที่คุณติดตั้งไว้ หากมีมากกว่าสองสามสัปดาห์ / เดือนที่ผ่านมานับตั้งแต่ที่คุณสร้างทุกสิ่งใหม่ล่าสุดคุณจะต้องติดตั้งสแนปชอตและสร้างใหม่จากที่นั่นเป็นครั้งแรก (หากคุณติดตามสาขา CVS ล่าสุด) การมีเคอร์เนลซิงค์นอกระบบพื้นฐานและ / หรือแพคเกจของบุคคลที่สามเป็นแหล่งที่มาของปัญหาและอาจทำให้คุณไม่ได้รับความช่วยเหลืออย่างจริงจังจากรายชื่อผู้รับจดหมายอย่างเป็นทางการ ฉันค่อนข้างโอเคกับเรื่องนี้ อันที่จริงนี่เป็นหนึ่งในเหตุผลที่ฉันใช้ OpenBSD มันทำให้ระบบเป็นหน่วยที่สอดคล้องกันและทำให้มันง่ายสำหรับฉันในการสร้างภาพรวมทางจิตใจของมัน บน Linux เป็นอย่างไร ลินุกซ์ส่วนใหญ่ที่ฉันรู้ว่าไม่มี "ระบบพื้นฐาน" ในความหมายเดียวกับ BSD แต่เป็นชุดของแพ็คเกจที่ประกอบโดยผู้ให้บริการกระจายสินค้า ซอฟต์แวร์เพิ่มเติมจะถูกเพิ่มเข้าไปในสิ่งนี้โดยผู้ดูแลระบบท้องถิ่นในลักษณะที่ขอบเขตระหว่างสิ่งที่อยู่ที่นั่นตั้งแต่เริ่มต้นและสิ่งที่เพิ่มเข้ามาในภายหลังนั้นเป็นสิ่งที่ดีที่สุดไม่ชัดเจน Linux (โดยทั่วไป) ไม่มีเคอร์เนลที่แข็งแกร่งสำหรับการเชื่อมต่อกับผู้ใช้งาน เคอร์เนลได้รับการปรับปรุงเท่าที่ฉันรู้เช่นเดียวกับซอฟต์แวร์อื่น ๆ และมันทำให้ฉันสับสนเล็กน้อยว่านี่เป็นไปได้ทั้งหมด เพิ่มความจริงที่ว่าบางส่วนของเมล็ดที่กำหนดเองได้รวบรวม (ซึ่งท้อแท้ใน OpenBSD) และมีเคอร์เนลรุ่นต่างๆมากมายที่ระบุไว้ในเมนูการบู๊ตของพวกเขา ใครหรืออะไรรับประกันได้ว่าระบบย่อยต่าง ๆ ของระบบลีนุกซ์สามารถร่วมมือกันได้แม้ว่าพวกเขาจะได้รับการอัพเดตอย่างเป็นอิสระจากกันหรือไม่? เหตุผลที่ฉันถามคือเนื่องจากผู้ใช้รายอื่นในไซต์นี้ถามฉันว่าการเปลี่ยนเคอร์เนลในระบบ Linux ของเขาด้วยเวอร์ชันที่ใหม่กว่า …

3
rkhunter แจ้งเตือนฉันสำหรับ“ / usr / bin / lwp-request” - ฉันควรทำอย่างไร [Debian 9]
ดังนั้นฉันเพิ่งติดตั้งและรันrkhunterซึ่งแสดงให้ฉันเห็นสีเขียว OKs / ไม่พบทุกอย่างยกเว้น: / usr / bin / lwp-requestเช่น: /usr/bin/lwp-request [ Warning ] ในบันทึกมันบอกว่า: Warning: The command '/usr/bin/lwp-request' has been replaced by a script: /usr/bin/lwp-request: Perl script text executable ฉันวิ่งไปแล้วrkhunter --propupdและsudo apt-get update && sudo apt-get upgradeมันก็ไม่ได้ช่วยอะไร ฉันติดตั้ง Debian 9.0 เพียงไม่กี่วันที่ผ่านมาและเป็นผู้ใช้ใหม่กับ Linux ข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่ต้องทำ? แก้ไข : นอกจากนี้chkrootkitให้สิ่งนี้กับฉัน: พบไฟล์และไดเรกทอรีที่น่าสงสัยดังต่อไปนี้: …

3
ลบ ^ C เมื่อ CTRL + C
มีวิธีใดบ้างที่จะลบ^Cเมื่อคุณกดCTRL+ Cในเชลล์รวมกับ Red Hat Enterprise Linux 6 ("Santiago")? .bash_profileฉันมีสิทธิ์ในการแก้ไขของตัวเอง
25 shell 

3
ฐานข้อมูลใดที่ `อัพเดต 'และการค้นหา` ใช้'?
locateโปรแกรมfindutilsสแกนหนึ่งหรือฐานข้อมูลอื่น ๆ จากชื่อไฟล์และการแสดงการแข่งขันใด ๆ ซึ่งสามารถใช้เป็นfindคำสั่งที่รวดเร็วมากหากไฟล์นั้นมีอยู่ในระหว่างการอัพเดทฐานข้อมูลชื่อไฟล์ล่าสุด ปัจจุบันมีฐานข้อมูลหลายประเภท ฐานข้อมูลเชิงสัมพันธ์ (ด้วยภาษาแบบสอบถามเช่น SQL) ฐานข้อมูล NoSQL ฐานข้อมูลเชิงเอกสาร (เช่น MongoDB) ฐานข้อมูลคีย์ - ค่า (เช่น Redis) ฐานข้อมูลเชิงคอลัมน์ (เช่น Cassandra) ฐานข้อมูลกราฟ ดังนั้นฐานข้อมูลชนิดใดที่updatedbปรับปรุงและlocateใช้งาน? ขอบคุณ

6
“ showmount: ไม่พบคำสั่ง”: ฉันจะรู้ได้อย่างไรว่าจะติดตั้งอย่างไร
บางครั้งคุณเรียกใช้คำสั่งและได้รับข้อความแสดงข้อผิดพลาด "ไม่พบคำสั่ง" หลังจากนั้นคุณพยายามติดตั้งแพคเกจที่มีคำสั่งนั้น (ฉันคิดว่านั่นคือสิ่งที่เกิดขึ้นแล้ว?) เช่น showmount: command not found apt-get install showmount ไม่ทำอะไรเลยดังนั้นฉันเดา showmountคำสั่งนั้นเป็นส่วนหนึ่งของแพ็คเกจ แต่ฉันไม่รู้ว่าแพ็คเกจนั้นคืออะไร ฉันจะทราบได้อย่างไรว่าต้องติดตั้งแพคเกจใดเพื่อรับคำสั่งที่ฉันต้องการ ฉันใช้ Kali Linux

3
จำนวนไบต์ของ“ ls -l <สุ่มไฟล์>” เทียบกับ“ wc -c <สุ่มไฟล์>”
มีสถานการณ์ที่เป็นไปได้เมื่อใด ls -l file.txt แสดงจำนวนไบต์ไม่เท่ากัน wc -c file.txt ในสคริปต์หนึ่งฉันพบว่าการเปรียบเทียบค่าทั้งสองนั้น อะไรคือเหตุผลของสิ่งนั้น? เป็นไปได้ไหมที่จะมีจำนวนไบต์ต่างกันในไฟล์เดียวกัน
25 ls  wc  byte 

3
เชลล์รู้จักบ้านได้อย่างไร?
แต่ละเปลือกมีตัวแปรสภาพแวดล้อม $ ชุดแรก (เช่น: /Users/lotolo) ถ้าฉันอยู่ภายใต้ csh ฉันสามารถunsetenv HOMEและยังถ้าฉันcdฉันจะอยู่ในบ้านของฉัน ฉันได้ทดสอบสิ่งนี้ด้วย bash ( unset HOME) และมันก็เป็นพฤติกรรมเดียวกัน แล้วเชลล์รู้ได้อย่างไรว่าบ้านของฉัน / other_user อยู่ที่ไหน? มันอ่านค่าเหล่านั้นที่ไหน? สิ่งนี้ไม่ซ้ำกันเนื่องจากคำถามของฉันไม่ใช่ฉันจะรู้ได้อย่างไร แต่เชลล์รู้HOMEได้อย่างไร และพฤติกรรมนี้ก็ขยายไปถึงผู้ใช้รายอื่นเช่นกัน
25 bash  cd-command  home  tcsh  csh 

5
วิธีรับส่วนสุดท้ายของลิงค์ http ใน Bash
ฉันมีลิงค์ http: http://www.test.com/abc/def/efg/file.jar และฉันต้องการบันทึกส่วนสุดท้าย file.jar เป็นตัวแปรดังนั้นสตริงเอาต์พุตคือ "file.jar" เงื่อนไข : ลิงค์มีความยาวต่างกันเช่น: http://www.test.com/abc/def/file.jar. ฉันลองแบบนั้น: awk -F'/' '{print $7}' แต่ปัญหาคือความยาวของ URL ดังนั้นฉันต้องการคำสั่งที่สามารถใช้สำหรับความยาว URL ใด ๆ
25 bash  shell-script  awk  cut 

1
ไวยากรณ์ '<(เนื้อหาไฟล์)' ของ bash คืออะไร
นี้คำตอบเกี่ยวกับความมั่นคง StackExchangeใช้ไวยากรณ์ทุบตีที่น่าสนใจในการสร้างแฟ้มในบรรทัด: openssl req -new -x509 -nodes -newkey ec:&lt;(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650 บิตนี้น่าสนใจเป็นพิเศษ: &lt;(openssl ecparam -name secp384r1) ทำงานเพียง: echo &lt;(openssl ecparam -name secp384r1) ฉันกลับมาแล้ว /dev/fd/63 ดังนั้นนี่จึงเป็นตัวบ่งชี้ไฟล์ชั่วคราวที่มีเนื้อหาของไฟล์ สิ่งนี้เรียกว่าอะไร?

2
การเปิดพรอมต์คำสั่งของคุณในโปรแกรมแก้ไขข้อความ - สิ่งนี้เรียกว่าอะไร
หนึ่งในเทคนิคที่ฉันโปรดปรานใน Bash คือเมื่อฉันเปิด command prompt ใน text editor ฉันทำเช่นนี้ (ในโหมด vi) ESC vโดยการกด เมื่อฉันทำสิ่งที่อยู่ในพรอมต์คำสั่งของฉันจะปรากฏใน $ EDITOR ที่ฉันเลือก ฉันสามารถแก้ไขคำสั่งราวกับว่ามันเป็นเอกสารและเมื่อฉันบันทึกและออกจากทุกสิ่งในไฟล์ชั่วคราวนั้นจะถูกดำเนินการ ฉันประหลาดใจที่เพื่อนของฉันไม่เคยได้ยินคำแนะนำนี้ดังนั้นฉันจึงมองหาเอกสารที่ฉันสามารถแบ่งปันได้ ปัญหาคือฉันไม่พบอะไรเลย นอกจากนี้คำค้นหาที่เกี่ยวข้องกับเคล็ดลับนี้เป็นเรื่องธรรมดามากดังนั้นจึงไม่ช่วยเมื่อ Googling สำหรับเอกสาร ไม่มีใครรู้ว่าสิ่งที่เรียกว่าเทคนิคนี้เพื่อให้ฉันสามารถค้นหาได้จริง?

1
ทำไม 'sed q' ทำงานแตกต่างกันเมื่ออ่านจากไปป์
คำถามนี้ถูกโยกย้ายจาก Server Fault เนื่องจากสามารถตอบได้ใน Unix &amp; Linux Stack Exchange อพยพ 3 ปีที่แล้ว ฉันสร้างไฟล์ทดสอบชื่อ 'ทดสอบ' ที่มีสิ่งต่อไปนี้: xxx yyy zzz ฉันรันคำสั่ง: (sed '/y/ q'; echo aaa; cat) &lt; test และฉันได้รับ: xxx yyy aaa zzz จากนั้นฉันก็วิ่ง: cat test | (sed '/y/ q'; echo aaa; cat) และได้รับ: xxx yyy aaa คำถาม sedอ่านและพิมพ์จนกว่าจะพบบรรทัดที่มี 'y' จากนั้นหยุด …
25 sed  pipe 

2
วิธีการพกพา (POSIX) เพื่อให้เกิดการทดแทนกระบวนการคืออะไร?
เชลล์บางตัวbashสนับสนุนการทดแทนกระบวนการซึ่งเป็นวิธีการนำเสนอผลลัพธ์กระบวนการเป็นไฟล์เช่นนี้: $ diff &lt;(sort file1) &lt;(sort file2) อย่างไรก็ตามโครงสร้างนี้ไม่ใช่POSIXและไม่ใช่พกพา วิธีสามารถดำเนินการเปลี่ยนตัวทำได้ในPOSIXลักษณะที่เป็นมิตร (เช่นหนึ่งซึ่งทำงาน/bin/sh) ? หมายเหตุ: คำถามไม่ได้ถามว่าจะแตกไฟล์ที่จัดเรียงสองไฟล์ได้อย่างไรซึ่งเป็นเพียงตัวอย่างที่ประดิษฐ์ขึ้นเพื่อสาธิตการทดแทนกระบวนการ !

9
คลิปบอร์ดสำหรับคัดลอกและวางไฟล์ในบรรทัดคำสั่ง?
ใน Bash สมมติว่าฉันไปที่ไดเรกทอรีแล้วไดเรกทอรีอื่น ฉันต้องการคัดลอกไฟล์จากไดเรกทอรีแรกไปยังไดเรกทอรีที่สอง แต่ไม่ต้องระบุชื่อพา ธ แบบยาวของพวกเขา มันเป็นไปได้? โซลูชันชั่วคราวของฉันคือใช้/tmpเป็นสถานที่ชั่วคราวเพื่อเก็บสำเนาของไฟล์ cp myfile /tmpเมื่อฉันอยู่ในไดเรกทอรีแรกและจากนั้นcp /tmp/myfile .เมื่อฉันอยู่ในไดเรกทอรีที่สอง แต่ฉันอาจตรวจสอบว่าไฟล์จะเขียนทับสิ่งใด ๆ/tmpหรือไม่ มีบางสิ่งที่คล้ายกับคลิปบอร์ดสำหรับคัดลอกและวางไฟล์หรือไม่?

5
รูปแบบ 'ถูกต้อง' สำหรับตัวแปรสภาพแวดล้อม HTTP_PROXY คืออะไร แคปหรือไม่มีแคป?
ฉันได้พบทั้งสองและhttp_proxy HTTP_PROXYทั้งสองรูปแบบเทียบเท่ากันไหม หนึ่งในนั้นมีความสำคัญมากกว่าคนอื่น ๆ ?

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