Как создать простой .txt (текстовый) файл с помощью терминала? [закрыто]


77

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


Хотя вопрос на самом деле слишком широкий, быстрое руководство (vim, редакторы, перенаправление команд оболочки и т. Д.) Может пригодиться в будущем, особенно вместе с количеством просмотров и оценками голосования в посте и ответами. Возможно, это было бы наиболее полезным в качестве поста вики сообщества.
user259412

Ответы:


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файл с надписью «Hello».

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необходим. :пустая команда
Джофель

{echo 'Первая строка.' echo 'Вторая строка.' 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.