Як створити простий .txt (текстовий) файл за допомогою терміналу? [зачинено]


77

Я просто намагаюся переглянути основні термінальні команди. Сказавши це, як я можу створити текстовий файл лише за допомогою терміналу?


Хоча питання дійсно занадто широке, швидкий підручник (vim, редактори, перенаправлення команд оболонки тощо) може бути корисним для майбутнього, особливо разом із підрахунком кількості переглядів та результатами голосування в публікації та відповідями. Можливо, це буде найкориснішим як публікація у вікі спільноти.
користувач259412

Відповіді:


106

Ви не можете використовувати термінал для створення файлу. Ви можете використовувати додаток, що працює в терміналі. Просто викличте будь-який редактор без графічного інтерфейсу ( 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файл із написом "Привіт".

nano ~/Desktop/anotherfile.txt

Це дозволить відкрити ~/Desktop/anotherfile.txtв nano, або якщо він не існує, вона буде створювати його і відкрити його в nano.

Те ж можна зробити просто замінивши nanoна emacsабо, vimі він буде використовувати emacsабо vimзамістьnano


Слід також зазначити , catз <<, і згадати >>.
o11c

Давайте не винаходити колесо. <<і >>обговорюються в розділі Що таке оператори контролю та перенаправлення оболонки?
G-Man

9

Все, що потрібно для створення порожнього файлу, це:

> my.txt

2
У деяких оболонках (zsh, tcsh, ...) :> my.txtпотрібно принаймні . :- порожня команда.
jofel

{echo 'Перший рядок.' відлуння "Другий рядок". відлуння «Третій рядок». }> foo.txt не буде працювати
Waterfr Villa

2

Для створення файлу на рівні терміналу можна використовувати програму редагування nano, vi або emacs. Якщо ви використовуєте систему x Windows, вам потрібно буде сказати системі не використовувати програму в графічному інтерфейсі; але в будь-якому випадку я буду використовувати 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 VI поставляється разом із ним; emacs ні, вам потрібно буде встановити emacs. Нано, з іншого боку, більш популярне; про всяк випадок, якщо це не відповідає, це означає, що ви "nano filename.ext" і нічого не відбувається, вам потрібно буде встановити його.

як тільки ви видасте vi filename.txt, швидше за все, ви в кінцевому підсумку створите новий файл. Ви повинні знайти vi, emacs або nano, як користуватися в Google, перш ніж почати. Як записати файл, редагувати його, використовуючи його інструменти для пошуку та заміни тексту, в цих програмах редагування відрізняється. Мені подобаються emacs з усіх варіантів, але ви знайдете розробників, які одержимі або підтримують vi та nano


для жодного параметра графічного редактора в emacs є "emacs filename.txt -nw", де "-nw" означає вікно графічного користувача, не вікно
unixmiah

2

Щось корисне, коли ви застрягли і повинні створити текстовий файл із багаторядковим рядком у командному рядку:

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

Ви можете замінити catна іншу команду, наприклад , grepі шаблон , і мають Grep робити свою роботу на своєму вході , і це буде висновок в файл таким же чином.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.