ฉันอยากรู้ว่าเคล็ดลับที่คุณใช้เพื่อจำตัวเลือกต่าง ๆ สำหรับคำสั่งต่าง ๆ คืออะไร? การค้นหาหน้าคนตลอดเวลานั้นใช้เวลานานและไม่เจ๋งมาก!
manหน้าเจ๋งมาก ... :)
ฉันอยากรู้ว่าเคล็ดลับที่คุณใช้เพื่อจำตัวเลือกต่าง ๆ สำหรับคำสั่งต่าง ๆ คืออะไร? การค้นหาหน้าคนตลอดเวลานั้นใช้เวลานานและไม่เจ๋งมาก!
manหน้าเจ๋งมาก ... :)
คำตอบ:
เคล็ดลับง่าย ๆ : คุณทำไม่ได้ มันเสียเวลาและไม่จำเป็นเลย การจำคำสั่งตัวเลือกไม่ใช่ทักษะที่มีประโยชน์อย่างยิ่ง มันสำคัญมากที่จะต้องเข้าใจว่าการทำงานโดยทั่วไปและมีความคิดที่คลุมเครือว่ามีเครื่องมือใดบ้างในตอนแรกและสิ่งที่คุณใช้ในการทำงาน ทักษะที่สำคัญมากที่นี่คือการรู้วิธีค้นหาสิ่งที่คุณยังไม่รู้
หน้าคนใช้เวลานาน? ไม่เช่นนั้น ไม่ใช่ว่าคุณจะต้องอ่านอย่างน้อยไม่ใช่ทุกครั้งที่มีฟังก์ชั่นการค้นหา ดังนั้นถ้าผมจำไม่ได้ว่าตัวเลือกที่คลุมเครือเป็นหนึ่งในการhdparmที่จะไม่ได้ใช้งานจับเวลาปิดการใช้งานบนดิสก์ WD บางอย่างผมทำman hdparmและและเดี๋ยวก่อนมันเป็น/idle3 -Jการมองสิ่งต่าง ๆ เช่นนี้เป็นไปอย่างรวดเร็วฉันจำไม่ได้เลยว่าทำหลังจากนั้น
ลองนึกภาพใครบางคนกำลังจดจำhdparmตัวเลือกทั้งหมดจริง ๆ เสียเวลาเปล่า
ไม่เป็นไรถ้าคุณจำตัวเลือกได้เพราะคุณใช้บ่อย สิ่งนั้นจะเกิดขึ้นโดยอัตโนมัติโดยไม่ต้องคิดอะไร แต่จริง ๆ แล้วใช้เวลาในการจดจำพวกเขา ... สิ่งที่ควรจะเป็นสิ่งที่ดีสำหรับ? ทดสอบกระดาษ?
man hdparm | less -p idle3นอกจากนี้ยังเป็นวิธีที่สะดวกในการข้ามไปยังคำศัพท์ที่ต้องการ ...
rm -i -f -r, ln -s, df -s -h, cp -r -i, ls -l -h -aฯลฯ (รายชื่อแตกต่างกันไปจากคนสู่คน)
zsh มีวิ่งช่วยAlthฟังก์ชั่นโดยค่าเริ่มต้นผูกไว้กับ ด้วยฟังก์ชั่นนี้คุณสามารถเริ่มพิมพ์คำสั่งด้วยตัวเลือกมากมายหรือซับซ้อนที่จำได้ยากrsyncตัวอย่างเช่นจากนั้นmanเปิดหน้าคำสั่งนั้น ดังนั้น:
rsync Alth
อ่านmanหน้าและหาว่าสวิตช์ใดที่คุณต้องการกดqและจากนั้นคุณจะกลับไปที่พรอมต์คำสั่งของคุณตรงจุดที่คุณค้างไว้พร้อมที่จะดำเนินการคำสั่งด้วยตัวเลือกที่จำเป็น:
rysnc -azP file dir/
ในฐานะที่เป็นวิกิบันทึก:
ฟังก์ชั่นสามารถปรับแต่งเพิ่มเติมได้โดยการกำหนดฟังก์ชั่นตัวช่วยของรูปแบบ run-help-command มีฟังก์ชันสามอย่างที่มีอยู่ในการแจกจ่ายมาตรฐาน: run-help-git, run-help-svk และ run-help-svn
bashมีbash-completeที่จะให้ตัวเลือกพารามิเตอร์มากมายสำหรับคำสั่งจำนวนมาก
zsh
bashเสร็จสมบูรณ์ไม่สนับสนุนการเพิ่มคำอธิบายลงในรายการเสร็จสมบูรณ์หรือการจัดกลุ่มรายการ ( --classify -F -- append file type indicatorsตัวอย่างเช่นใน GNU ls เสร็จสมบูรณ์) ดังนั้นจึงไม่เป็นประโยชน์เกือบเท่า zsh
การใช้ประวัติคำสั่งที่ยาวมากและการเจาะผ่านมันมีประโยชน์มาก
โดยทั่วไปฉันจะรวบรวมไฟล์ประวัติเชลล์ทั้งหมดและ grep ผ่านพวกเขา
ผลลัพธ์ที่พบมีหลายกรณีที่มีประโยชน์มากเพราะง่ายต่อการค้นหาคำหลักที่ดี
ค้นหาอาร์กิวเมนต์แบบพิเศษที่คุณใช้เช่น URL คุณจะพบคำสั่งและตัวเลือกที่เกี่ยวข้องเช่นกัน และค้นหาตัวเลือกที่พิเศษคุณอาจพบข้อโต้แย้งที่เกี่ยวข้องด้วย
คำสั่งส่วนใหญ่มี - ช่วยสำหรับการอ้างอิงอย่างรวดเร็วและมักจะเพียงพอที่จะเตือนสิ่งที่เป็นสิ่งที่ฉันเคยรู้
ที่กล่าวว่ามีนิสัยในการเขียน - ช่วยแทน -h หรือแม้กระทั่ง -? คุณไม่เคยรู้เลยว่า -h คืออะไรก่อนที่จะดูผลลัพธ์การใช้งานหรือหน้าคู่มือ ในกรณีที่เลวร้ายที่สุด -h อาจเป็นมือสั้น ๆ สำหรับ - ทำลายอัตโนมัติ
--helpมักจะไม่ได้มี -?ต้องการ quoting กับzsh, csh, tcshหรือfishหรือถ้ามีไฟล์ที่มีชื่อจะ-ตามด้วยตัวอักษรตัวเดียวในไดเรกทอรีปัจจุบัน -:อาจจะดีกว่าที่นั่น
ตัวเลือกหนึ่งที่ฉันชอบคือการสร้างชื่อแทนที่มีตัวเลือกเหมือนหรือคล้ายกันเช่น
alias rmi='rm -i'
alias rmiv='rm -iv'
alias rmv='rm -v'
alias cpr='cp -r'
alias cprv='cp -rv'
วิธีนี้คุณมีทางลัดที่ดีที่คุณจะจดจำได้ง่ายในไม่ช้า แต่จะเก็บข้อมูลเกี่ยวกับตัวเลือกที่แท้จริงที่มันสะท้อน
แนวทางอื่นที่มีนามแฝงคือเลือกตัวเลือกที่ใช้บ่อยที่สุดและสร้างนามแฝงสั้น ๆ ที่ใช้พวกเขา เช่นlsฉันทำเกือบทุกครั้งlและเป็นเพราะฉันมี:
alias l='ls -alFtrG'
อีกทางเลือกหนึ่งคือการนำตัวเลือกที่คุณต้องการไปยังคำสั่งพื้นฐานเช่น
alias ls='ls -F --color=always'
ในที่สุดก็ฝึกฝนฝึกฝนฝึกฝนและอดทน พิมพ์ตัวเลือกทั่วไปต่อไปและคุณจะได้เรียนรู้ในที่สุด คนทั่วไปในวันอื่น ๆ ในสัปดาห์และใช่บางใช้เวลาปีรู้จักคุณ คิดว่าเป็นวิธีปฏิบัติในการเขียนโปรแกรมยูนิกซ์ที่จะให้ความบันเทิงกับคุณเป็นเวลานาน
ตัวเลือกอื่นที่ฉันชอบคือชื่อแทนเพื่อให้การค้นหาประวัติของฉันง่ายขึ้นและฉันมีนามแฝงที่คล้ายกันสองรายการ:
alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'
ตัวอย่างเหล่านี้ให้ฉันค้นหาการใช้คำสั่ง:
hg lsจะแสดงการใช้งานล่าสุดของ ls จากประวัติ
hga lsจะแสดงการใช้งานทั้งหมดของ ls จากประวัติทั้งหมดของฉัน
ฉันพัฒนา hg หลังจากพบว่า hga มีแนวโน้มที่จะแสดงมากเกินไป
rm -ivทำอะไรOP ก็อาจจำไม่ได้ว่าrmivทำอะไร ฉันไม่คิดว่ามันเป็นเครื่องหมายยัติภังค์ที่เป็นปัญหา
rm -ivถึงsafe_deleteหรือrm_prompt
ฉันมักจะทำ:
man ${CMD} | grep 'what was I thinking about?'
หรือการเปลี่ยนแปลงบางอย่างของมัน กับบางgreps คุณสามารถระบุ -C / A / B สำหรับบริบท , หลังและก่อนตามลำดับ ถ้าไม่nlและsedสามารถจับคู่ได้ดี:
man hdparm | #hard to forget
nl -bp'idle3' -nln -w1 | #I had to grep man to put this together
sed -n '/^[0-9]/{N;N;N;s///p}' #no print until line begins w/ number, next,next,next
Drive's "idle3" timeout value. This timeout
controls how often the drive parks its heads
and enters a low power consumption state.
The factory default is eight (8) seconds,
zero (0) to disable the WD idle3 timer com‐
pletely (NOT RECOMMENDED!).
-k Get/set the "keep_settings_over_reset" flag
เทคนิคเดียวกันนี้ใช้กับ--helpเมนูได้หากคุณมี แต่คุณอาจต้องทำ${CMD} --help 2>&1 | ..filter..เพราะเป็นวิธีปฏิบัติที่เป็นมาตรฐานพอสมควรในการพิมพ์สิ่งต่าง ๆstderrเหล่านี้ไป
อย่างไรก็ตามผมคิดว่าคุณธรรมของเรื่องคือจำอย่างน้อย และman grepอาจไม่ได้เหงื่อเหลือ
grepman pages เมื่อมองหาฟีเจอร์เฉพาะมันค่อนข้างมีประโยชน์