วิธีสร้างไฟล์และแทรกบรรทัดโดยใช้เทอร์มินัล OS X


22

ฉันจะทำสิ่งต่อไปนี้โดยใช้เทอร์มินัลใน OS X ได้อย่างไร

สร้างไฟล์ที่มีชื่อ.inputrcในโฮมไดเร็กทอรีของผู้ใช้และวางบรรทัดนี้ไว้:

set completion-ignore-case On

คำตอบ:


31

คำตอบที่รวดเร็ว

touch ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

คำอธิบาย

ก่อนอื่นให้สร้างไฟล์:

touch ~/.inputrc

จากนั้นเพิ่มเนื้อหาลงในไฟล์:

echo "set completion-ignore-case On" >> ~/.inputrc

touchสร้างไฟล์เปล่า (สมมติว่า~/.inputrcไฟล์นั้นไม่มีอยู่) echoเขียนข้อความถึง "ออกมาตรฐาน" ( "stdout" สำหรับระยะสั้น) ซึ่งเป็นปกติหน้าจอของคุณ แต่เป็นเพราะการเปลี่ยนเส้นทาง ( >>) ~/.inputrcเอาท์พุทจะถูกนำไป การตั้งค่านี้จะเพิ่มบรรทัดลงในไฟล์

หาก~/.inputrcมีอยู่แล้วและคุณต้องการที่จะลบ (ปิดบัง) เนื้อหาแล้วเขียนบรรทัดลงในนั้น (เช่นสร้างไฟล์ที่มีเพียงบรรทัดข้อความนี้) ทำ:

echo "set completion-ignore-case On" > ~/.inputrc

ลูกศรเดียว ( >) หรือที่รู้จักกันว่าสัญลักษณ์ "มากกว่า" บอกechoให้สร้างไฟล์ที่มีข้อความที่กำหนดเป็นเนื้อหาของไฟล์แทนที่จะเขียนเนื้อหาไปที่ท้ายไฟล์ (ที่จริงแล้วechoไม่ได้สร้างไฟล์เชลล์สร้างไฟล์ทิ้งเนื้อหาที่มีอยู่ใด ๆ และechoคำสั่งเขียนเนื้อหาใหม่)


หากคุณใช้วิธีการแรก (กับ>>) และคุณพบว่าบรรทัดที่คุณเพิ่มนั้นเป็นรอยแดงบนบรรทัดก่อนหน้าเช่น

บางสิ่งที่นี่
มีบางสิ่งเพิ่มเติมที่นี่ตั้งค่าเสร็จสิ้นการเพิกเฉยกรณีและปัญหา

จากนั้นคุณต้องแก้ไขไฟล์เพื่อแก้ไข สิ่งนี้จะเกิดขึ้นหากบรรทัดสุดท้ายของไฟล์ที่มีอยู่ก่อนจบลงด้วยอักขระที่เป็นข้อความแทนที่จะเป็นอักขระ "ขึ้นบรรทัดใหม่" (เช่นเครื่องหมายของจุดสิ้นสุดของบรรทัด) นี่เป็นเรื่องปกติสำหรับ.TXTไฟล์บน Windows แต่ไม่ค่อยพบใน * nix

หากคุณทราบล่วงหน้าว่า.inputrcไฟล์ของคุณมีเนื้อหาที่มีอยู่แล้วซึ่งไม่ได้ขึ้นบรรทัดใหม่คุณควรใช้echoคำสั่งนี้แทน:

echo -e "\nset completion-ignore-case On" >> ~/.inputrc

\nก่อนวลีที่ถูกตีความว่าเป็นอักขระ newline ดังนั้นการขึ้นบรรทัดใหม่จะถูกเพิ่มเนื้อหาหลังจากที่ก่อนหน้านี้และก่อนที่จะมีสิ่งใหม่ ๆ ที่คุณต้องการเพิ่ม

หรือพิมพ์อีกเล็กน้อย แต่อ่านได้มากขึ้น

echo "" >> ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

หรือ

(echo ""; echo "set completion-ignore-case On") >> ~/.inputrc

ซึ่งทำสิ่งเดียวกัน; เช่นจัดเตรียมอักขระขึ้นบรรทัดใหม่ที่ขาดหายไปให้กับข้อความที่มีอยู่แล้วเพิ่มset completion-…คำสั่งหลังจากนั้น


1
ไม่มีเหตุผลที่จะใช้touchคำสั่งที่นี่; echo "…" >> ~/.inputrcค่อนข้างเพียงพอ
G-Man กล่าวว่า 'Reinstate Monica'

1
หากไม่มีไฟล์ที่คุณต้องการต่อท้าย
amrx

@Baron: ไม่echo "…" >> ~/.inputrcจะสร้างไฟล์หากไม่มีอยู่ ยกเว้นกรณีพยาธิวิทยาเช่น~ไม่มีอยู่คุณไม่มีสิทธิ์เขียน~หรือระบบไฟล์เต็ม และในกรณีเช่นนี้touchจะไม่ช่วย  touchฟุ่มเฟือยอย่างสมบูรณ์ที่นี่
G-Man กล่าวว่า 'Reinstate Monica'

4

สิ่งที่คุณต้องทำคือ:

echo "set completion-ignore-case On" >> ~/.inputrc 

echo เพียงแค่สะท้อนข้อความที่ให้ไว้ผ่านช่องสัญญาณปกติ (stdout)

การ>>เขียนเอาต์พุต stdout จากคำสั่งซ้ายไปยังไฟล์มือขวาซึ่งในกรณีของคุณคือ~/.inputrc

~/ เป็นเช่นเดียวกับ /home/your_username/

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