Làm cách nào để tạo tệp .txt (văn bản) đơn giản bằng thiết bị đầu cuối? [đóng cửa]


77

Tôi chỉ đang cố gắng xem lại các lệnh đầu cuối cơ bản. Như đã nói, làm thế nào để tôi tạo một tệp văn bản chỉ bằng thiết bị đầu cuối?


Mặc dù câu hỏi thực sự quá rộng, một hướng dẫn nhanh (vim, biên tập viên, chuyển hướng lệnh shell, v.v.) có thể hữu ích cho tương lai, đặc biệt là cùng với số lượt xem và điểm bình chọn của bài đăng và câu trả lời. Có lẽ nó sẽ hữu ích nhất như một bài viết wiki cộng đồng.
dùng259412

Câu trả lời:


106

Bạn không thể sử dụng một thiết bị đầu cuối để tạo một tập tin. Bạn có thể sử dụng một ứng dụng đang chạy trong một thiết bị đầu cuối. Chỉ cần gọi bất kỳ trình soạn phi GUI ( emacs -nw, joe, nano, vi, vim, ...).

Nếu bạn có nghĩa là sử dụng dòng lệnh, thì bạn đang hỏi cách tạo một tệp bằng shell. Xem sự khác biệt chính xác giữa 'thiết bị đầu cuối', 'vỏ', 'tty' và 'bàn điều khiển' là gì?

Cách cơ bản để tạo một tệp có vỏ là chuyển hướng đầu ra . Ví dụ: lệnh sau tạo một tệp foo.txtcó tên chứa dòngHello, world.

echo 'Hello, world.' >foo.txt

Nếu bạn muốn viết nhiều dòng, đây là một vài khả năng. Bạn có thể sử dụng printf.

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

Bạn có thể sử dụng một chuỗi ký tự có chứa dòng mới.

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

hoặc là

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

Một khả năng khác là nhóm các lệnh.

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

Trên dòng lệnh, bạn có thể làm điều này trực tiếp hơn với cat. Chuyển hướng đầu ra của nó sang tệp và nhập dòng đầu vào theo dòng trên catđầu vào tiêu chuẩn. Nhấn Ctrl+ Dở đầu dòng để cho biết kết thúc đầu vào.

$ cat> foo.txt 
Dòng đầu tiên. 
Dòng thứ hai. 
Dòng thứ ba.
Ctrl+D

Trong một kịch bản, bạn sẽ sử dụng một tài liệu ở đây để đạt được hiệu quả tương tự:

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

Nếu bạn chỉ muốn tạo một tệp trống, bạn có thể sử dụng touchlệnh: nó tạo tệp nếu nó không tồn tại và chỉ cập nhật ngày sửa đổi cuối cùng nếu nó tồn tại.

touch foo.txt

Tương đương:

>>foo.txt

tức là mở foo.txtđể nối thêm, nhưng ghi 0 byte vào nó - điều này tạo ra tệp nhưng không sửa đổi nó. Không giống như touch, điều này không cập nhật ngày sửa đổi cuối cùng của tập tin nếu nó đã tồn tại.

Để tạo một tệp trống và xóa nội dung của tệp nếu tệp đã tồn tại, bạn có thể sử dụng

>foo.txt

13
touch ~/Desktop/something.txt

Điều này sẽ tạo ra một txttập tin trống .

Hoặc là

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

Điều này sẽ tạo ra một txttập tin cho biết "Xin chào".

nano ~/Desktop/anotherfile.txt

Điều này sẽ mở ~/Desktop/anotherfile.txttrong nano, hoặc nếu nó không tồn tại, nó sẽ tạo ra nó và mở nó trong nano.

Điều tương tự có thể được thực hiện bằng cách đơn giản thay thế nanobằng emacshoặc vimvà nó sẽ sử dụng emacshoặc vimthay vìnano


cũng nên đề cập catvới <<, và đề cập >>.
o11c

Chúng ta đừng phát minh lại bánh xe. <<>>được thảo luận trong các toán tử điều khiển và chuyển hướng của shell là gì?
G-Man

9

Tất cả những gì bạn cần để tạo một tập tin trống là:

> my.txt

2
Trong một số shell (zsh, tcsh, ...) ít nhất :> my.txtlà cần thiết. :là một lệnh trống.
jofel

{echo 'Dòng đầu tiên.' tiếng vang 'Dòng thứ hai.' tiếng vang 'Dòng thứ ba.' }> foo.txt sẽ không hoạt động
Waterfr Villa

2

Bạn có thể sử dụng chương trình chỉnh sửa nano, vi hoặc emacs để tạo tệp ở cấp thiết bị đầu cuối. Nếu bạn đang sử dụng hệ thống x windows, bạn sẽ cần nói với hệ thống của mình không sử dụng chương trình trong GUI; nhưng dù sao, tôi sẽ sử dụng emacs làm ví dụ.

Từ bash; thể loại:

 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.

Hãy ghi nhớ trong tất cả các hệ thống UNIX VI đi kèm với nó; emacs không, bạn sẽ cần cài đặt emacs. Mặt khác, Nano phổ biến hơn; chỉ trong trường hợp nếu điều đó không đáp ứng thì có nghĩa là khi bạn "nano filename.ext" và không có gì xảy ra, bạn sẽ cần phải cài đặt nó.

một khi bạn phát hành vi filename.txt rất có thể bạn sẽ tạo một tệp mới. Bạn nên tra cứu vi, emacs hoặc nano cách sử dụng trên google trước khi bắt đầu. Cách viết một tập tin, chỉnh sửa nó, sử dụng các công cụ của nó để tìm kiếm và thay thế văn bản là khác nhau trong các chương trình chỉnh sửa đó. Tôi thích emacs trong tất cả các lựa chọn nhưng bạn sẽ tìm thấy các nhà phát triển bị ám ảnh hoặc ủng hộ vi và nano


không có tùy chọn trình soạn thảo đồ họa trong emacs là "emacs filename.txt -nw" trong đó "-nw" có nghĩa là không có cửa sổ người dùng đồ họa, không có cửa sổ
unixmiah

2

Một cái gì đó hữu ích khi bạn bị mắc kẹt và phải tạo một tệp văn bản nhiều dòng trên dòng lệnh là như thế này:

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

Bạn có thể thay thế catcho một lệnh khác, ví dụ grepvà một mẫu , và yêu cầu grep thực hiện công việc của nó trên đầu vào của bạn và điều này sẽ xuất ra tệp theo cùng một kiểu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.