ฉันจะเข้าใจคำสั่ง linux ที่มีประโยชน์ที่สุดสำหรับโปรแกรมเมอร์ได้ที่ไหน? [ปิด]


14

พลังของการรวมxargs, cut, tail, grep, seqทำให้ฉันประหลาดใจ ทรัพยากรใดที่ฉันควรดูสำหรับการสอนเกี่ยวกับคำสั่ง linux ที่มีประโยชน์ที่สุดสำหรับโปรแกรมเมอร์?

ฉันสนใจโปรแกรมเมอร์ที่ใช้บ่อยที่สุดซึ่งจะทำให้ชีวิตของฉันง่ายขึ้น


ยินดีต้อนรับสู่ Stack Exchange เราพบว่าการขอรายการทรัพยากรไม่ค่อยใช้งานได้ในรูปแบบคำถามและคำตอบของเรา โปรดอ่านคำถามที่มีคำตอบจริง ผมขอแนะนำให้เรียกดูเว็บไซต์ (โดยเฉพาะอย่างยิ่งคำถามในข้อมูลแท็กสำหรับเปลือก , การประมวลผลข้อความ , sedและอื่น ๆ .
กิลส์ 'ทีเราชั่วร้ายหยุดเป็น'

คำตอบ:


12

สิ่งที่ดีที่สุดที่คุณสามารถทำได้เพื่อเรียนรู้สิ่งนี้คือการค้นหาปัญหาและแก้ไขปัญหาเหล่านั้น ผ่านเว็บไซต์นี้ดู "ฉันจะทำ X อย่างไรใน awk / sed / grep / etc" และลองด้วยตัวเองก่อนที่จะดูคำตอบ ดูว่าคุณติดอยู่หรือไม่หรือดูว่าคนอื่นทำเมื่อคุณหาวิธี หากคุณพบว่าตัวเองทำอะไรที่ซ้ำ ๆ ในเครื่องให้หยุดและคิดว่าคุณจะใช้อรรถประโยชน์อย่างน้อยหนึ่งอย่างเพื่อให้ง่ายขึ้นได้อย่างไร หากคุณไม่สามารถหาวิธีทำได้โพสต์ที่นี่และเราจะแนะนำคุณ


Sidenote: seq, headและtail(อย่างน้อยก็ใช้กันมากที่สุดส่วน) จะค่อนข้างน่ารำคาญ ฉันขอแนะนำให้คุณเริ่มต้นดูgrepเพื่อทำความคุ้นเคยกับการค้นหาครึ่งหนึ่งของการแสดงออกปกติและsed(ในแบบคู่ขนาน แต่ล้าหลังเล็กน้อยgrep) เพื่อรับการแทนที่ (บันทึกsedคำสั่งขั้นสูงเพิ่มเติมในภายหลัง) awkเพราะเครื่องมือนี้เป็นเครื่องมือที่ทรงพลัง จากนั้นแล้วfind xargs
Kevin

9

สภาพแวดล้อมการเขียนโปรแกรม UnixโดยKernighanและPikeเป็นคลาสสิกในหัวข้อ มันโบราณแต่ยังอยู่ในสิ่งพิมพ์ซึ่งควรบอกคุณบางอย่าง

Art of UNIX Programming by esrใหม่กว่ามาก ฉันพบว่ามันน่าสนใจและเป็นประโยชน์ แต่มี "การสนับสนุน" มากกว่าที่ฉันรู้สึกว่าจำเป็น (Euphemism สำหรับ "frothing partisanship.") เตรียมที่จะทำการเปรียบเทียบกับ OS อื่น ๆ ด้วยเม็ดเกลือที่ผมจำได้ว่าพบวัตถุที่ล้าสมัย [1] แม้ว่าหนังสือเล่มนี้จะเป็นเล่มใหม่และคู่แข่ง * ix เกือบทศวรรษ ความคืบหน้าตั้งแต่เวลานั้น

[1] ส่วนใหญ่ฉันจำได้ว่า jabs มีจุดอ่อนใน non-* ix OS ที่ถูกกำจัดไปก่อนที่หนังสือจะตีพิมพ์ สิ่งเดียวกันกับที่คุณพบในอาร์กิวเมนต์ Windows กับ Mac และ Linux มือสมัครเล่นทั่วเน็ต


5

ทำตามแผนหนึ่งวัน /sbinเริ่มต้นด้วยรายการทุกอย่างใน จากนั้นใช้คำสั่งอย่างใดอย่างหนึ่งต่อวันและพิมพ์man commandและหาสิ่งที่มันไม่ /sbinคำสั่งหลักที่สำคัญที่มีทั้งหมดใน หลังจากนั้นไปทำงานบน/binและเมื่อที่เสร็จสิ้นไปทำงานบนและ/usr/sbin /usr/binคุณสามารถย่อรายการคำสั่งของคุณให้สั้นลงได้โดยข้ามตัวอักษรใด ๆ ที่มีมากกว่า 5 ตัวในชื่อคำสั่งและคุณจะไม่พลาดสิ่งสำคัญมากมาย

แต่สิ่งสำคัญคือคุณจะได้เรียนรู้สิ่งใหม่ทุกวันและก่อนที่คุณจะผ่านไปครึ่งทางคุณจะเข้าใจพื้นฐานมากมายเพื่อที่คุณจะสามารถรับคำสั่งใหม่ ๆ ได้ครึ่งโหลต่อวัน

แต่คุณต้องใช้พวกเขาทุกคนแม้ว่ามันจะซ่อมและออกกำลังกายกับพวกเขาเท่านั้น


2
นี่เป็นความคิดที่ดี เรียนรู้คำสั่งทีละคน ตรวจสอบสิ่งที่พวกเขาทำและเป็นผู้เชี่ยวชาญ
Kamil

ฉันไม่สามารถตกลงเกี่ยวกับการเริ่มต้น/sbinให้ "สำหรับโปรแกรมเมอร์" ในชื่อคำถาม ในหลาย ๆ ระบบ/sbinและ/usr/sbinเป็นค่าเริ่มต้นPATHสำหรับรูทเท่านั้น ฉันคิดว่าคุณอาจถูกมองว่าเป็นคำสั่ง "หลัก" ในแง่ที่ว่าพวกเขาเป็นส่วนสำคัญของระบบปฏิบัติการ แต่พวกเขาไม่ใช่เครื่องมือที่คุณใช้ในการเขียนโปรแกรมมากเท่ากับการบริหารระบบ
Warren Young

3

หนึ่งในวิธีคือการเริ่มอ่านบล็อกบางอย่างที่เชี่ยวชาญใน Unix / Linux ..

บล็อกthegeekstuffที่ฉันเขียนเป็นครั้งคราวนี้เป็นหนึ่งในจุดเริ่มต้นที่ดีสำหรับ ... บทความที่สำคัญที่คุณอาจสนใจคือ:

ที่มีชุดของบทเรียนเกี่ยวกับsedและawk หวังว่ามันจะเป็นประโยชน์กับคุณ ...


3
คำสั่ง 50 คำตอบที่สมบูรณ์แบบสำหรับคำถามนี้! ลองศึกษาตัวอย่างของแต่ละคำสั่งและหากเป็นเรื่องที่น่าสนใจให้ไปที่ลิงค์ (โดยปกติแล้ว) เพื่อเป็นตัวอย่างเพิ่มเติม ลิงค์นั้นเป็นผู้ดูแล!
Bill K

2

สำหรับ Bash ฉันจะลองดูtldp.org/LDP/abs/html/


2
คำแนะนำที่น่าอับอาย "Advanced Bash Scripting" จะสอนให้คุณเขียนข้อบกพร่องไม่ใช่สคริปต์ ในขณะที่ความตั้งใจในการเขียนมันสูงส่งความผิดพลาดและข้อมูลที่ผิดก็สูงเกินกว่าที่จะแนะนำได้ mywiki.wooledge.org/BashGuideเป็นแนวทางที่เหนือกว่า
Chris Down

ขอบคุณ @Chris ฉันคิดว่าเนื้อหาอินโทรนั้นเป็นการเริ่มต้นที่ดี
Iman

1

โปรแกรมเมอร์มีโอกาสพิเศษในการควบคุม Linux ทุกโอกาสที่คุณจะได้รับแทนที่จะเขียนโปรแกรมเพื่อทำงานให้สำเร็จให้เขียนเชลล์สคริปต์เพื่อทำมัน

จริง ๆ แล้วฉันมีปัญหาส่วนตัวที่ยืนหยัดที่จะเขียนทุกอย่างใน Bash ก่อนที่ฉันจะเขียนโปรแกรม - คุณต้องประหลาดใจและถูกรบกวน

เท่าที่คำแนะนำสำหรับหนังสือมันอาจดูโง่ แต่Linux Pocket Guideมีเกียรติในชั้นวางหนังสือของฉัน มันมีขนาดกะทัดรัดและมีโปรแกรม Linux ที่มีประโยชน์มากมาย การอ่านเป็นเรื่องง่ายและเป็นข้อมูลอ้างอิงที่ดี




0
info coreutils

ให้รายการคำสั่งที่มีประโยชน์จำนวนมากจัดกลุ่มตามบริบท

คุณสามารถใช้สิ่งนี้เป็นแนวทางและเรียนรู้คำสั่งหนึ่งคำสั่งต่อวันและแน่นอนว่าเป็นแหล่งเก็บข้อมูลเพื่อค้นหา


0

ฉันจะเพิ่มLinux®บรรทัดคำสั่งและการเขียนสคริปต์เชลล์พระคัมภีร์โดยริชาร์ดบลัม ง่ายต่อการเข้าใจปฏิบัติและเต็มไปด้วยตัวอย่างที่มีประโยชน์มากมาย

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