วิธีการสร้างไฟล์. txt (ข้อความ) อย่างง่ายโดยใช้เทอร์มินัล [ปิด]


77

ฉันแค่พยายามตรวจสอบคำสั่งเทอร์มินัลพื้นฐาน ต้องบอกว่าฉันจะสร้างไฟล์ข้อความโดยใช้เทอร์มินัลเท่านั้นได้อย่างไร


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

คำตอบ:


106

คุณไม่สามารถใช้เทอร์มินัลเพื่อสร้างไฟล์ คุณสามารถใช้แอปพลิเคชั่นที่ทำงานอยู่ในเครื่องเทอร์มินัล เพียงแค่เรียกใด ๆ แก้ไขไม่ใช่ GUI ( emacs -nw, joe, nano, vi, vim, ... )

หากคุณต้องการใช้บรรทัดคำสั่งคุณจะถามวิธีสร้างไฟล์โดยใช้เชลล์ ดูอะไรคือความแตกต่างที่แน่นอนระหว่าง 'เทอร์มินัล', 'เชลล์', 'tty' และ 'คอนโซล'

วิธีพื้นฐานในการสร้างไฟล์ที่มีเปลือกเป็นที่มีการเปลี่ยนเส้นทางการส่งออก ตัวอย่างเช่นคำสั่งต่อไปนี้สร้างไฟล์ชื่อfoo.txtที่มีบรรทัดHello, world.

echo 'Hello, world.' >foo.txt

หากคุณต้องการเขียนหลายบรรทัดนี่เป็นความเป็นไปได้เล็กน้อย printfคุณสามารถใช้

printf '%s\n' 'First line.' 'Second line.' 'Third line.' >foo.txt

คุณสามารถใช้สตริงตัวอักษรที่มีการขึ้นบรรทัดใหม่

echo 'First line.
Second line.
Third line.' >foo.txt

หรือ

echo $'First line.\nSecond line.\nThird line.' >foo.txt

ความเป็นไปได้อีกอย่างคือการจัดกลุ่มคำสั่ง

{
  echo 'First line.'
  echo 'Second line.'
  echo 'Third line.'
} >foo.txt

catในบรรทัดคำสั่งที่คุณสามารถทำเช่นนี้มากขึ้นโดยตรงกับ เปลี่ยนทิศทางเอาต์พุตไปที่ไฟล์และพิมพ์บรรทัดอินพุตทีละบรรทัดบนcatอินพุตมาตรฐานของ กดCtrl+ Dที่จุดเริ่มต้นของบรรทัดเพื่อระบุจุดสิ้นสุดของอินพุต

$ cat> foo.txt 
บรรทัดแรก 
บรรทัดที่สอง 
บรรทัดที่สาม
Ctrl+D

ในสคริปต์คุณจะใช้เอกสารที่นี่เพื่อให้ได้ผลเช่นเดียวกัน:

cat <<EOF >foo.txt
First line.
Second line.
Third line.
EOF

หากคุณเพียงแค่ต้องการสร้างไฟล์เปล่าคุณสามารถใช้touchคำสั่ง: มันจะสร้างไฟล์หากมันไม่มีอยู่และเพียงแค่อัปเดตวันที่แก้ไขล่าสุดถ้ามันมีอยู่

touch foo.txt

เท่า:

>>foo.txt

เช่นเปิดfoo.txtเพื่อต่อท้าย แต่เขียน 0 ไบต์ลงไป - สิ่งนี้จะสร้างไฟล์ แต่ไม่ได้แก้ไข ซึ่งแตกต่างจากtouchนี้ไม่ได้อัปเดตวันที่แก้ไขล่าสุดของไฟล์ถ้ามันมีอยู่แล้ว

หากต้องการสร้างไฟล์เปล่าและลบเนื้อหาของไฟล์หากไฟล์มีอยู่แล้วคุณสามารถใช้

>foo.txt

13
touch ~/Desktop/something.txt

สิ่งนี้จะสร้างtxtไฟล์เปล่า

หรือ

echo "Hello" > ~/Desktop/somethingelse.txt

สิ่งนี้จะสร้างtxtไฟล์ชื่อ "Hello"

nano ~/Desktop/anotherfile.txt

สิ่งนี้จะเปิด~/Desktop/anotherfile.txtขึ้นnanoหรือหากไม่มีอยู่ก็จะสร้างขึ้นมาและเปิดnanoขึ้นมา

เดียวกันสามารถทำได้โดยเพียงแค่แทนที่nanoด้วยemacsหรือvimและมันจะใช้emacsหรือvimแทนnano


ควรพูดถึงcatด้วยและพูดถึง<< >>
o11c


9

สิ่งที่ต้องทำเพื่อสร้างไฟล์เปล่าคือ:

> my.txt

2
ในเชลล์บางตัว (zsh, tcsh, ... ) :> my.txtเป็นสิ่งจำเป็นอย่างน้อย :เป็นคำสั่งที่ว่างเปล่า
jofel

{echo 'บรรทัดแรก' echo 'บรรทัดที่สอง' echo 'บรรทัดที่สาม' }> foo.txt ไม่ทำงาน
Waterfr Villa

2

คุณสามารถใช้โปรแกรมแก้ไข nano, vi หรือ emacs เพื่อสร้างไฟล์ในระดับเทอร์มินัล หากคุณใช้ระบบ x windows คุณจะต้องแจ้งให้ระบบของคุณไม่ใช้โปรแกรมใน GUI แต่อย่างไรก็ตามฉันจะใช้ emacs เป็นตัวอย่าง

จากการทุบตี; ประเภท:

 emacs filename.txt (press enter) - it will create an empty file with the filename specified "filename.txt". It will save "filename.txt" from which ever 
directory type in "emacs filename.txt" command.

โปรดจำไว้ว่า UNIX system VI ทั้งหมดมาพร้อมกับมัน emacs ไม่ได้คุณจะต้องติดตั้ง emacs ในทางตรงกันข้ามนาโนเป็นที่นิยมมากขึ้น ในกรณีที่ไม่ตอบสนองหมายความว่าเมื่อคุณ "nano filename.ext" และไม่มีอะไรเกิดขึ้นคุณจะต้องติดตั้ง

เมื่อคุณออก vi filename.txt เป็นไปได้มากว่าคุณจะสร้างไฟล์ใหม่ คุณควรค้นหาวิธีใช้ vi, emacs หรือ nano บน google ก่อนเริ่มใช้งาน วิธีเขียนไฟล์แก้ไขโดยใช้เครื่องมือในการค้นหาและแทนที่ข้อความนั้นแตกต่างกันในโปรแกรมแก้ไขเหล่านั้น ฉันชอบ emacs จากตัวเลือกทั้งหมด แต่คุณจะพบนักพัฒนาที่หมกมุ่นอยู่กับหรือชอบ vi และ nano


สำหรับตัวเลือกไม่มีตัวแก้ไขกราฟิกใน emacs คือ "emacs filename.txt -nw" โดยที่ "-nw" หมายถึงไม่มีหน้าต่างผู้ใช้แบบกราฟิกไม่มีหน้าต่าง
unixmiah

2

สิ่งที่มีประโยชน์เมื่อคุณติดขัดและต้องสร้าง textfile หลายบรรทัดในบรรทัดคำสั่งคือสิ่งนี้:

# cat <<'EOF' > textfile
> This "should"
> prove useful, 'maybe'.
> EOF
# cat textfile 
This "should"
prove useful, 'maybe'.

คุณสามารถแทนที่catคำสั่งอื่นตัวอย่างgrepและรูปแบบและให้ grep ทำงานในอินพุตของคุณและสิ่งนี้จะส่งออกไปยังไฟล์ในแบบเดียวกัน

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