Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!
Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.
Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Содержание
- Где я? Как понять, где находишься
- Как понять, что находится в папке
- Как перейти в другую директорию
- По абсолютному пути
- По относительному пути
- С автодополнением
- Подняться наверх
- Как создать директорию
- Как создать файл
- Как отредактировать файл
- Как перенести / скопировать файл
- Скопировать файл
- Скопировать директорию
- Переместить файл
- Переместить директорию
- Как удалить файл
- Как изменить владельца файла
- Как установить приложение
- Как запустить приложение
- Как понять, где установлено приложение
- Как создать архив
- Как посмотреть использованные ранее команды
- Как посмотреть свободное место
- Как узнать IP компьютера
- Как узнать версию OS
- Как узнать, как работает команда
- Как создать много тестовых папок и файлов
- Как протестировать IOPS на Linux
- И это все?
- Книги и видео по теме
- Где тренироваться
Где я? Как понять, где находишься
Команда pwd:
pwd --- мы ввели команду
/home/test --- ответ системы, мы находимся в домашней директории пользователя test
Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.
Как понять, что находится в папке
Команда ls позволяет просмотреть содержимое каталога:
Хотя лучше использовать команду сразу с флагом «l»:
ls -l
Такая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.
У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».
См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)
Как перейти в другую директорию
С помощью команды cd:
cd <путь к директории>
Путь может быть абсолютным или относительным.
По абсолютному пути
Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).
Вставляем путь в командную строку после «cd»
cd /home/student/log
Ну вот, мы переместились из домашней директории (обозначается как ~) в /home/student/log.
По относительному пути
Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будет такой:
cd log --- перейди в папку log из той директории, где ты сейчас находишься
Если мне надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
cd city/msk/2017/cat_1
Я не пишу /home/student/photo, так как я уже там.
В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки:
cd ~/log
Эта команда будет работать отовсюду. И переместит нас в /home/user/log.
Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:
С автодополнением
Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:
— (cd tab) Может, ты имел в виду папку 1?
— (tab) Нет? Может, папку 2?
— (tab) Снова нет? Может, папку 3?
— (tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
— (tab) У меня кончились варианты, поехали сначала. Папка 1?
cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).
cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.
Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.
Подняться наверх
Подняться на уровень выше:
cd ..
Если нужно поднять на два уровня выше, то
cd ../..
И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.
Обратите внимание, что команда для линукса отличается от команды для винды — слеш другой. В винде это «cd ….», а в линуксе именно «cd ../..».
См также:
Путь к файлу в linux
Как создать директорию
Используйте команду mkdir:
mkdir test --- создает папку с названием «test» там, где вы находитесь
Можно и в другом месте создать папку:
mkdir /home/test --- создает папку «test» в директории /home, даже если вы
сейчас не там
Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.
См также:
Как создать каталог в Linux с помощью команды mkdir
Как создать файл
Командой touch:
touch app.log
Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.
Как отредактировать файл
Вот честное слово, лучше делать это через графический интерфейс!
Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:
- nano — более простая программа, рассчитана на новичков
- vim — более сложная, но позволяет сделать кучу всего
Начнем с nano. Указываете имя команды и путь в файлу:
nano test_env.json
Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
- Ctrl+O — чтобы сохранить
- Ctrl+X — для выхода
Самое приятное в nano — это подсказки внизу экрана, что нажать, чтобы выйти.
А вот с vim с этим сложнее. В него легко зайти:
vim test_env.json
vi test_env.json (предшественник vim)
Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?
Делюсь секретом, для выхода надо набрать:
- :q — закрыть редактор
- :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)
Двоеточие запускает командный режим, а там уже вводим команду «q» (quit).
Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:
Когда нажимаем двоеточие, оно печатается внизу:
Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда!!!
На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.
Если нужно выйти, сохранив изменения, используйте команду
:w — сохранить файл;
:q — закрыть редактор;
Ну а про возможности редактирования см статьи ниже =)
См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как пользоваться текстовым редактором vim — подробнее о vim и всех его опциях
Как выйти из редактора Vi или Vim? — зачем нажимать Esc
Как перенести / скопировать файл
Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?
Скопировать файл
Команда:
cp что_копировать куда_копировать
Если мы находимся в директории /opt/app/log:
cp app.log /home/olga
В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.
Можно сразу переименовать файл:
cp app.log /home/olga/app_test_2020_03_08.log
В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.
Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:
Никаких ошибок, система просто выполнила команду.
См также:
Копирование файлов в linux
Скопировать директорию
Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:
cp -r путь_к_папке путь_к_новому_месту
Например:
cp /opt/app/log /home/olga
Так в директории /home/olga появится папка «log».
Переместить файл
Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).
cp app.log /home/olga
↓
mv app.log /home/olga
Можно использовать относительные и абсолютные пути:
mv /opt/app/logs/app.log /home/olga — абсолютные пути указаны, команда сработает из любого места
Можно сразу переименовать файл:
mv app.log /home/olga/app_2020_03_08.log — перенесли лог в /home/olga и переименовали
Переместить директорию
Аналогично перемещению файла, команда mv
mv /opt/app/log/ /home/olga/bakup/
Как удалить файл
С помощью команды rm (remove):
rm test.txt — удалит файл test.txt
Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:
rm * — удалит все файлы в текущей директории
Если нужно удалить папку, надо добавить флаг -r (recursive):
rm -r test_folder
Если вы пытаетесь удалить файлы, которые уже используются в программе или доступны только для чтения, система будет переспрашивать:
А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да…» (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):
rm -rf test_folder --- просто все удалит без разговоров
Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!
Опция -v показывает имена удаляемых файлов:
rm -rfv test_folder --- удалит папку со всем содержимым, но выведет имена удаляемых файлов
Тут вы хотя бы можете осознать, что натворили )))
См также:
Как удалить каталог Linux
Как изменить владельца файла
Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.
Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.
Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:
chown testbase:testbase test.txt — сменить владельца файла
chown -R testbase:testbase user — сменить владельца папки
В итоге был владелец root, а стал testbase. То, что надо!
См также:
Команда chown Linux
Как установить приложение
Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:
- yum — red hat, centos
- dpkg, apt — debian
См также:
5 Best Linux Package Managers for Linux Newbies
Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.
И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.
mc
Ничего страшного, установите это приложение через yum:
yum install mc
Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:
И система заканчивает установку.
Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:
См также:
Как устанавливать программы для Linux
Yum, шпаргалка — всякие опции и плагины
Как запустить приложение
Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.
Чтобы запустить скрипт, нужно указать полный путь к нему:
/opt/cdi/jboss/bin/standalone.sh — запустили скрипт standalone.sh
Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:
./standalone.sh — запустили скрипт, если мы в той же директории
Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:
standalone.sh --- запустили скрипт standalone.sh, путь к которому прописан в PATH
См также:
Запуск скрипта sh в Linux — подробнее о скриптах
Если же приложение запускается как сервис, то все еще проще:
service test start — запустить сервис под названием «test»
service test stop — остановить сервис
Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:
chkconfig test on
Она добавит службу в автозапуск.
Как понять, где установлено приложение
Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?
Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):
whereis newman
Как создать архив
Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:
tar -cvzf archive.tar.gz /home/test
В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.
Для распаковки меняем флаг «c» на «x» и убираем «z»:
tar -xvf archive.tar.gz
Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.
Давайте разберемся, что все эти флаги означают:
- c — создать архив в linux
- x — извлечь файлы из архива
- v — показать подробную информацию о процессе работы (без него мы бы не увидели, какие файлики запаковались / распаковались)
- f — файл для записи архива
- z — сжатие
Для упаковки используется опция c — Create, а для распаковки x — eXtract.
Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:
yum install rar
yum install unrar
Говорит, нет такого пакета:
No package rar available.
Error: Nothing to do
Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:
wget http://rarlabs.com/rar/rarlinux-x64-5.4.0.tar.gz
tar xzf rarlinux-x64-5.4.0.tar.gz
cd rar
make install
Устанавливаем:
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
И применяем:
unrar x test.rar
См также:
Установка RAR на Linux
Как посмотреть использованные ранее команды
Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!
Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:
↑ (стрелочка «наверх») — показать последнюю команду
history — показать последние 1000 команд
Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).
Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.
Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.
См также:
История команд Linux — больше о возможностях history
Как посмотреть свободное место
Сколько места свободно на дисках
df -h
Сколько весит директория
du -sh
du -sh * --- с разбиением
Как узнать IP компьютера
Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.
Чтобы узнать IP машины, используйте команду:
hostname -I
Также можно использовать ifconfig:
ifconfig — выведет кучу инфы, в том числе ваш внешний IP
ip a — аналог, просто иногда Ifconfig дает очень много результата, тут поменьше будет
См также:
Displaying private IP addresses
Как узнать версию OS
Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?
Используйте команду:
cat /etc/*-release
На этой виртуалке стоит CentOs 7.
Если нужна версия ядра:
uname -a
См также:
Как узнать версию Linux
Как узнать, как работает команда
Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:
man ls
Закрыть мануал можно с помощью клавиши q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.
Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))
Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!
Если man у программы нет, используйте флаг -h (—help):
ls -h
Как создать много тестовых папок и файлов
Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:
mkdir -p test/dir--{000..100}
touch test/dir--{000..100}/file-{A..Z}
Вот и все, дальше можно играться с ними!
Теперь пояснения:
- mkdir — создать директорию
- touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)
А выражения в скобках играют роль функции, которая выполняется в цикле и делает ручную работу за вас:
- {000..100} — пробежится по всем числам от 0 до 100
- {A..Z} — пробежится по всем буквам английского алфавита от A до Z
Как я пробовала эту команду. Сначала посмотрела, где нахожусь:
$ pwd
/home/test
Символ $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).
Ага, в домашней директории. Создам себе песочницу:
mkdir olga
Вот в ней и буду творить!
mkdir -p olga/dir--{000..100}
touch olga/dir--{000..100}/file-{A..Z}
А потом можно проверить, что получилось:
cd olga
ls -l
Как-то так! Имхо, полезные команды.
Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!
И, главное, тестировщику полезно — может пригодиться для тестов.
Как протестировать IOPS на Linux
Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.
Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.
Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.
Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.
Используем утилиту fio — https://github.com/axboe/fio/releases.
1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка
cd /tmp
wget https://github.com/axboe/fio/archive/fio-3.19.tar.gz
tar xvzf fio-3.19.tar.gz
rm fio-3.19.tar.gz
cd fio-fio-3.19
2) Должны стоять пакеты для сборки
apt-get install -y gcc make libaio-dev | yum install -y make gcc libaio-devel
3) Собираем
make
4) Тестируем
./fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 32 -filename /dev/sda -ioengine libaio -direct=1
Какие должны быть результаты:
- Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
- Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.
Свежесть определяется на момент написания статьи в 2017 году.
Если должно быть 50 тысяч, а диск выдает сильно меньше, то:
— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.
И это все?
Разумеется, нет =))
Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.
Вот вам еще пара ссылочек от меня:
- Что значат символы >> и >& в unix/Linux — а то вроде про «>» знаешь еще по винде, а что значит «>>»? Вот в статье и ответ!
- Ахтунг, прод! Как настроить приветствие на Linux — очень полезная штука, если у вас есть доступы на продакшен. Обезопасьте себя )))
Для понимания структуры папок рекомендую статью «Структура папок ОС Linux. Какая папка для чего нужна. Что и где лежит в линуксе»
Книги и видео по теме
Видео:
ПО GNU/Linux — видео лекции Георгия Курячего — очень хорошие видео-лекции
Книги:
Командная строка Linux. Уильям Шоттс
Скотт Граннеман. Linux. карманный справочник
Где тренироваться
Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))
А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.
У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.
Чтобы подключиться к машине, используйте инструменты:
- Putty — командная строка
- WinSCP — графический интерфейс
См также:
WinSCP — что это и как использовать
На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов.
Создание файлов и просмотр их в каталоге
Все примеры я буду показывать на Debian 11, так как на Ubuntu 22.04 все выполняется аналогично. Вообще в Linux работа в терминале на любых системах практически одинакова. Поэтому создание, редактирование и чтение файлов можно продемонстрировать на любой системе.
Для создания текстового файла служит команда touch:
alex@deb:~$ touch file.txt
С помощью команды ls можно посмотреть какие файлы есть в каталоге:
alex@deb:~$ ls file.txt
Для команды ls есть дополнительные опции:
- -l — показывает информацию по каждому файлу;
- -h — показывает размер файла в удобном для человека виде (байты, килобайты, мегабайты и т.д.). Эту опцию можно использовать только вместе в -l.
Опции можно писать слитно (ls -lh) или раздельно (ls -l -h). Вот пример:
alex@deb:~$ ls -lh итого 0 -rw-r--r-- 1 alex alex 0 ноя 26 16:15 file.txt
Команда touch не только создает файл, но если этот файл уже есть, то обновляет время доступа и модификации данного файла:
alex@deb:~$ touch file.txt alex@deb:~$ ls -lh итого 0 -rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt
Как вы могли заметить вначале время последнего изменения файла было 16:15, а после выполнения команды touch оно изменилось на 16:17. На самом деле команда touch не изменила файл, она лишь прикоснулась к файлу и тем самым изменила его время доступа. Кстати, с английского touch переводится как прикасаться.
Давайте теперь разберём вывод команды ls -lh:
Тип файла | Права | | Кол-во ссылок | | | Владелец | | | | Группа | | | | | Размер | | | | | | Дата и время последнего касания или изменения | | | | | | | Имя файла | | | | | | | | - rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt
Пока что вам нужно запомнить что таким образом можно посмотреть размер файла и дату его изменения, с остальным разберемся позже. И ещё запомните 2 типа файлов:
- знак тире “-“ – это обычный файл;
- символ “d” – это каталог;
- есть и другие типы файлов, но пока их рассматривать не будем.
Редактирование файлов
Отредактировать текстовый файл можно с помощью текстового редактора “nano”:
alex@deb:~$ nano file.txt
После выполнения этой команды у Вас откроется текстовый редактор:
Для того чтобы сохранить этот файл нужно нажать комбинацию клавиш “Ctrl+o“.
А чтобы закончить редактирование и закрыть этот файл нужно нажать “Ctrl+x“. При этом у вас спросят, хотите ли вы сохранить этот файл и если да, то нужно ввести “y” и нажать клавишу “Enter“. Таким образом необязательно использовать комбинацию “Ctrl+o” перед закрытием файла.
Внизу я выделил подсказки текстового редактора Nano, в подсказках символ “^” – это клавиша Ctrl.
Если с помощью nano открыть несуществующий файл, то файл будет создан как только вы его сохраните. Поэтому выполнять touch перед nano не обязательно.
Чтение файлов
Команды cat и tac
Давайте теперь научимся читать текстовые файлы. Чаще всего для этого используется команда cat:
alex@deb:~$ cat file.txt И тут мы можем вводить текст, какой только пожелаем.
У команды cat есть опция -n, которая выводит номера строк:
alex@deb:~$ cat -n file.txt 1 И тут мы можем 2 вводить текст, 3 какой только пожелаем.
Для команды cat есть команда перевёртыш, это команда tac. Она выводит текст задом наперед:
alex@deb:~$ tac file.txt какой только пожелаем. вводить текст, И тут мы можем
Команда grep
Если Вам нужно что-то найти в тексте, то для этого используйте команду grep. Например, мы ищем строку в которой встречается слово “какой”:
alex@deb:~$ grep какой file.txt какой только пожелаем.
Команда less
Если текст длинный то вместо cat лучше использовать команду less:
alex@deb:~$ less /etc/ssh/sshd_config
Используя less мы можем кнопками вверх / вниз перемещаться по тексту:
Если нажать кнопу «/», то откроется строка, куда можно ввести фразу для поиска в этом файле. Давайте, например, найдём строку со словом “Port”:
При поиске удобно использовать кнопку “n” для дальнейшего поиска введенной фразы, и комбинацию “Shift+n” для поиска в обратном направлении (к началу файла). Для выхода из программы используйте клавишу”q“.
Команды tail и head
Если Вам нужно посмотреть последние строки файла используйте команду “tail“:
alex@deb:~$ tail /etc/ssh/sshd_config # override default of no subsystems Subsystem sftp /usr/lib/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server
А если нужно посмотреть первые строки файла то команду “head“:
alex@deb:~$ head /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the
Эти две команды выводят 10 последних (tail) или 10 первых (head) строк файла. И у этих команд есть параметр -n, с помощью которого можно указать сколько строк выводить, например выведем по 3 строки:
alex@deb:~$ tail -n 3 /etc/ssh/sshd_config # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server alex@deb:~$ head -n 3 /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See
А ещё команда tail позволяет выводить изменяющиеся файлы, например логи. Для этого используется опция -f. Чтобы закончить наблюдение за файлом, нужно нажать комбинацию Ctrl+c.
Сводка
Имя статьи
Linux. Работа с текстовыми файлами
Описание
На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов
Введение
В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.
Требования
Cервер с Ubuntu 20.04
Все команды, описанные ниже, будут работать и в других дистрибутивах Linux.
Расположение каталогов в файловой системе
При входе на сервер, вы, как правило, попадаете в домашний каталог вашей учетной записи, отведенный для хранения файлов и создания директорий.
Для того чтобы узнать, где располагается каталог, в котором мы сейчас находимся, используется команда:
pwd
Результат выполнения команды выглядит следующим образом:
/home/demo
Домашний каталог располагается после имени учетной записи пользователя, в приведенном примере он называется /demo. Этот каталог находится в каталоге с именем /home и в каталоге верхнего уровня, который называется root или корневой каталог, поэтому представлен одной косой чертой /.
Просмотр содержимого каталогов
Для просмотра содержимого каталога используется команда ls. Название этой команды является сокращением слов list files.
Просмотреть содержимое любой директории можно следующими способами:
ls имя_директории
Либо введя команду:
ls /путь _к _директории
В результате выполнения команды отображаются файлы и каталоги, находящиеся внутри данного каталога:
dir1 file1 file2 file3
К команде ls можно добавлять дополнительные флаги, например, чтобы показать детализированное представление (права, список владельцев файлов или папок, размер, дату последнего модифицирования) файлов и директорий в текущей директории, можно использовать флаг -l:
ls -l
Результат выполнения команды:
total 16
drwxr-xr-x 2 home demo 4096 Nov 3 17:40 dir1
-rw-r--r-- 1 home demo 13 Nov 8 17:17 file1
-rw-r--r-- 1 home demo 42 Nov 9 13:04 file2
-rw-r--r-- 1 home demo 42 Nov 10 13:04 file3
Для просмотра списка всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a:
ls -a
Результат выполнения команды:
. dir1 file1 .mysql_history .ssh
.. .bash_history file2 file3 .nan
Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип, можно с помощью команды:
ls -F
Результат выполнения команды:
dir1/ file1 file2 file3
Перемещение между каталогами
Для перехода в домашний каталог используется команда cd. Название этой команды является сокращением слов change directory.
Для перехода в домашний каталог пользователя user используется команда:
cd ~user
Для перехода в предыдущую директорию, в которой мы находились до перехода в текущую директорию также используется команда cd.
В Linux-системах каждый файл и каталог находятся в самой верхней директории, которая называется «корневой» и обозначается одним символом слэш /.
Абсолютный путь указывает на расположение каталога по отношению к этой директории верхнего уровня. Это позволяет обращаться к справочникам однозначным образом из любого места в файловой системе.
Каждый абсолютный путь должен начинаться с косой черты — символа слэш /.
Для перехода в директорию уровнем выше используется команда:
cd ..
Для перехода в директорию двумя уровнями выше:
cd ../..
Операции с файлами и каталогами
У каждой команды имеется множество параметров, чтобы узнать их, наберите команду и параметр —help, например:
ls --help
Далее приведен список основных команд навигации в консоли Linux.
Создание
Создание файлов производится с помощью команды:
touch имя_файла
Создание каталогов выполняется с помощью команды вида:
mkdir имя_директории
Название этой команды является сокращением слов make directory.
Создание двух каталогов одновременно выполняется с помощью команды:
mkdir имя_директории_1 имя_директории_2
Для создания дерева каталогов используется команда следующего вида:
mkdir -p /имя_директории_1/имя_директории_2
Удаление
Для удаления директорий используется команда rmdir имя_директории. Название этой команды является сокращением слов remove directory.
Для удаления файлов используется команда rm. Например, для удаления файла с именем file1 используется команда:
rm file1
Команда rm также позволяет удалять не только файлы, но и каталоги.
Для удаления директории с именем dir1 со всеми подкаталогами и файлами используется опция -r (от слова recursive):
rm -r dir1
Можно удалить одновременно две директории со всем их содержимым:
rm -r имя_директории_1 имя_директории_2
Также можно использовать параметр -f, который означает, что при удалении не будет запрашиваться подтверждение.
Команда для удаления файла будет выглядеть так:
rm -f file1
Команда для удаления каталога:
rm -rf dir1
Перемещение
Для перемещения и переименования файлов и каталогов используется команда mv. Название этой команды является сокращением слова move.
Переименовать файл можно с помощью команды:
mv имя_файла новое_имя
Для того чтобы переместить файл, используется команда:
mv имя_файла путь/
Копирование
Для копирования используется команда cp. Название этой команды является сокращением слова copy.
Чтобы скопировать файл file1 и назвать его file2, используется команда:
cp file1 file2
Для того чтобы копировать директорию dir1 в директорию dir2, используется команда:
cp -a dir1/ dir2/
Скопировать файл с именем file1 в директорию с именем dir1, можно с помощью команды:
cp file1 dir1/
Редактирование файлов
Мы ознакомились с основными командами для работы с каталогами и файлами.
Далее мы изучим, как редактировать файлы и добавлять в них содержание.
Команда nano позволяет работать в одном из самых простых текстовых редакторов командной строки Linux, который занимает весь терминал в течение всего срока его использования.
В результате ввода в терминал команды nano будет открыт чистый файл.
Интерфейс выглядит следующим образом:
В верхней части открывшегося редактора отображается имя приложения и имя файла, который мы редактируем.
В середине должно располагаться содержимое файла, в настоящее время оно пустое.
В нижней части интерфейса расположен ряд комбинаций клавиш, которые указывают с основными элементами управления текстового редактора. Для каждого из них символ ^ означает клавишу CTRL.
Для того чтобы открыть справку используйте сочетание клавиш CTRL-G.
Закрывается справка с помощью сочетания клавиш CTRL-X. После закрытия справки мы возвращаемся к редактированию.
Вводить и редактировать можно любой текст, например, можно ввести: “Hello World!”
Для сохранения внесенных изменений следует нажать сочетание клавиш CTRL-O. Внимание! Это буква О, а не ноль.
Далее система попросит вас ввести либо подтвердить имя файла, который вы хотите сохранить:
File Name to Write:
^G Get Help M-D DOS Format M-A Append M-B Backup File
^C Cancel M-M Mac Format M-P Prepend
Как вы можете видеть, параметры в нижней части окна редактирования также изменились. Они являются контекстными, то есть будут меняться в зависимости от того, что вы пытаетесь сделать.
После ввода имени файла нажмите клавишу ENTER.
Для того чтобы выйти из тестового редактора нажмите сочетание клавиш CTRL-X.
Если вы внесли изменения и не сохранили файл, вам будет предложено сохранить сделанные вами изменения:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
Вы можете нажать клавишу Y, чтобы сохранить изменения, клавишу N для отмены изменений и выхода, или сочетание клавиш CTRL-C, чтобы отменить операцию выхода из режима редактирования файла.
Если вы решили сохранить изменения, вам будет предложено сохранить их в том же файле, который был отредактирован.
Нажмите клавишу ENTER, чтобы сохранить файл и выйти из редактора.
Заключение
Мы ознакомились с возможностями просмотра доступных файлов и каталогов, с основными командами для работы с файлами, которые позволяют просматривать, копировать, перемещать и удалять файлы, а также с основами редактирования в текстовом редакторе nano.
Чтобы быть профессионалом в использовании терминала Linux, нужно научится управлять файлами через терминал. Это чуть ли не основа всего, включая редактирование конфигурационных файлов, сборку программ, администрирование и множество других вещей. Просмотр содержимого папок, переход между папками, создание и удаление файлов — это необходимая база, для удобной работы в терминале.
В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
- ls — список файлов в директории;
- cd — переход между директориями;
- rm — удалить файл;
- rmdir — удалить папку;
- mv — переместить файл;
- cp — скопировать файл;
- mkdir — создать папку;
- ln — создать ссылку;
- chmod — изменить права файла;
- touch — создать пустой файл.
А теперь перейдем к подробному рассмотрению всех этих команд.
1. ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
ls
Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
ls -R
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
ls /home
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
ls -l /home/
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
cd Desktop
Вы также можете указать полный путь к папке:
cd /usr/share/
Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:
cd ..
Вы также можете вернуться в предыдущую рабочую папку:
cd -
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
rm file
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
rm /usr/share/file
Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
rm -r /home/user/photo/
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
rmdir directory
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
mv file newfile
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
cp file newfile
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
cp -r /etc /etc_back
7. mkdir — создать папку
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
mkdir test
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
mkdir /home/user/test
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
ln -s /home/user/Downloads/ /home/user/test/
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
chmod +x script.sh
Чтобы убрать флаг исполняемый используйте опцию -x:
chmod -x script.sh
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
touch file
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
mc
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
При работе в командной строке довольно часто вам придется создавать или редактировать текстовые файлы. Два самых мощных и популярных редактора командной строки — это Vim и Emacs. У них обоих есть крутая кривая обучения, которая может быть пугающей для новых пользователей. Для тех, кому нужен простой редактор, есть нано.
GNU nano — это простой в использовании текстовый редактор командной строки для операционных систем Unix и Linux. Он включает в себя все основные функции, которые вы ожидаете от обычного текстового редактора, такие как подсветка синтаксиса, несколько буферов, поиск и замена с поддержкой регулярных выражений, проверка орфографии, кодировка UTF-8 и многое другое.
Установка Нано
Текстовый редактор Nano предустановлен на MacOS и большинстве дистрибутивов Linux. Чтобы проверить, установлен ли он в вашей системе, выполните следующие действия:
nano --version
Вывод будет выглядеть примерно так:
GNU nano, version 2.9.3
(C) 1999-2011, 2013-2018 Free Software Foundation, Inc.
(C) 2014-2018 the contributors to nano
Email: nano@nano-editor.org Web: https://nano-editor.org/
Если у вас не установлен nano в вашей системе, вы можете установить его с помощью менеджера пакетов вашего дистрибутива.
Установите Nano в Ubuntu и Debian
sudo apt install nano
Установите Nano на CentOS и Fedora
sudo yum install nano
Открытие и создание файлов
Чтобы открыть существующий файл или создать новый файл, введите, nano
а затем имя файла:
nano filename
Откроется новое окно редактора, и вы сможете начать редактирование файла.
Внизу окна находится список самых основных командных ярлыков, которые можно использовать с нано-редактором.
Все команды имеют префикс либо ^
или M
символ. Символ каретки ( ^
) представляет Ctrl
ключ. Например, ^J
команды означают нажать Ctrl
и J
клавиши в то же самое время. Буква M
представляет Alt
ключ.
Вы можете получить список всех команд, набрав Ctrl+g
.
Чтобы открыть файл, вы должны иметь права на чтение файла.
Если вы хотите открыть файл с курсором на определенной строке и символом, используйте следующий синтаксис:
nano +line_number,character_number filename
Если вы пропустите, character_number
курсор будет расположен на первом символе.
Редактирование файлов
В отличие от vi, nano является немодальным редактором, что означает, что вы можете начать печатать и редактировать текст сразу после открытия файла.
Чтобы переместить курсор на определенную строку и номер символа, используйте Ctrl+_
команду. Меню в нижней части экрана изменится. Введите число (а) в поле «Введите номер строки, номер столбца:» и нажмите Enter
.
Поиск и замена
Для поиска текста нажмите Ctrl+w
, введите поисковый запрос и нажмите Enter
. Курсор переместится к первому совпадению. Чтобы перейти к следующему совпадению, нажмите Alt+w
.
Если вы хотите найти и заменить, нажмите Ctrl+
. Введите условие поиска и текст, который нужно заменить. Редактор перейдет к первому совпадению и спросит вас, нужно ли его заменить. После удара Y
или N
он перейдет к следующему матчу. Нажатие A
заменит все совпадения.
Копирование, резка и вставка
Чтобы выделить текст, переместите курсор в начало текста и нажмите Alt+a
. Это установит отметку выбора. Переместите курсор в конец текста, который вы хотите выделить, с помощью клавиш со стрелками. Выбранный текст будет выделен. Если вы хотите отменить выбор, нажмитеCtrl+6
Скопируйте выделенный текст в буфер обмена с помощью Alt+6
команды. Ctrl+k
будет вырезать выделенный текст.
Если вы хотите вырезать целые строки, просто переместите курсор на линию и нажмите Ctrl+k
. Вы можете сократить несколько строк, нажав Ctrl+k
несколько раз.
Чтобы вставить текст, наведите курсор на то место, куда вы хотите поместить текст, и нажмите Ctrl+u
.
Сохранение и выход
Чтобы сохранить внесенные в файл изменения, нажмите Ctrl+o
. Если файл еще не существует, он будет создан после его сохранения.
Для выхода из нано нажмите Ctrl+x
. Если есть несохраненные изменения, вас спросят, хотите ли вы сохранить изменения.
Чтобы сохранить файл, вы должны иметь права на запись в файл. Если вы создаете новый файл , вам необходимо иметь разрешение на запись в каталог, в котором он создан.
Настройка Nano (нанорк)
Когда nano запускается, он считывает свои параметры конфигурации из общесистемного файла конфигурации /etc/nanorc
и из пользовательских файлов, ~/.config/nano/nanorc
а также, ~/.nanorc
если эти файлы присутствуют.
Параметры, указанные в пользовательских файлах, имеют приоритет над глобальными параметрами.
Посетите страницу nanorc для получения полного списка всех доступных опций.
Подсветка синтаксиса
Nano поставляется с правилами подсветки синтаксиса для большинства популярных типов файлов. В большинстве систем Linux файлы синтаксиса хранятся в /usr/share/nano
каталоге и по умолчанию включаются в /etc/nanorc
файл конфигурации.
/ И т.д. / nanorc
include "/usr/share/nano/*.nanorc"
Самый простой вариант включить подсветку для нового типа файла — скопировать файл, содержащий правила подсветки синтаксиса, в /usr/share/nano
каталог.
Установите Nano в качестве текстового редактора по умолчанию
По умолчанию в большинстве систем Linux текстовый редактор по умолчанию для таких команд, как visudo
и, crontab
имеет значение vi. Чтобы использовать nano в качестве текстового редактора по умолчанию, вам нужно изменить переменные среды VISUAL
и .EDITOR
Пользователи Bash могут экспортировать переменные в ~/.bashrc
файл:
~ / .Bashrc
export VISUAL=nano
export EDITOR="$VISUAL"
Основное использование Nano
Ниже приведены основные шаги для начала работы с nano:
- В командной строке введите,
nano
а затем имя файла. - Отредактируйте файл как требуется.
- Используйте
Ctrl-x
команду для сохранения и выхода из текстового редактора.
Вывод
В этом уроке мы показали, как использовать текстовый редактор Gnu nano. Это популярный текстовый редактор среди пользователей Linux и имеет небольшую кривую обучения.
Для получения дополнительной информации о Gnu Nano посетите официальную страницу документации nano .
Загрузить PDF
Загрузить PDF
Из данной статьи вы узнаете, как в Linux создать текстовый файл с помощью терминала. Затем можно воспользоваться одним из встроенных текстовых редакторов, чтобы внести изменения в этот файл.
-
1
Откройте терминал. Щелкните по «Меню» и выберите «Терминал», значок которого выглядит как черный квадрат с белыми символами «>_». Этот значок находится на левой панели меню.
- Также можно щелкнуть по строке поиска в верхней части меню, а затем ввести терминал.
-
2
В терминале введите ls и нажмите ↵ Enter. Терминал откроется в домашнем каталоге, но с помощью команды ls можно открыть список папок текущего каталога. Чтобы создать текстовый файл в одной из этих папок, необходимо перейти в нее из текущего каталога.
-
3
Выберите папку, в которой будет создан текстовый файл. Имя папки введите после команды ls, чтобы перейти в эту папку.
-
4
Введите cd каталог. Вместо «каталог» введите имя нужной папки. С помощью этой команды вы перейдете из текущего каталога в указанную папку.
- Например, введите cd Desktop, чтобы перейти в каталог рабочего стола.
- Чтобы создать текстовый файл в одной из подпапок выбранной папки, после имени папки введите символ «/» (без кавычек), а затем введите имя подпапки. Например, если в папке «Documents» есть нужная вам подпапка «Misc», введите cd Documents/Misc.
-
5
Нажмите ↵ Enter. Команда будет выполнена, то есть вы перейдете из текущего каталога в выбранную папку (или подпапку).
-
6
Выберите текстовый редактор. Можно быстро создать простой текстовый файл; также можно воспользоваться текстовым редактором Vim или Emacs, чтобы создать и отредактировать более сложный текстовый файл. Теперь, когда вы перешли в нужную папку, создайте текстовый файл.
Реклама
-
1
В терминале введите
cat > имя_файла.txt
. Вместо «имя_файла» введите имя создаваемого текстового файла.- Например, чтобы создать файл kitty.txt, введите cat > kitty.txt.
-
2
Нажмите ↵ Enter. В текущем каталоге будет создан новый текстовый файл. В терминале курсор переместится на пустую строку.
-
3
Введите текст документа. Сделайте это так же, как в любом текстовом документе. Чтобы сохранить введенный текст и перейти на новую строку, нажмите ↵ Enter.
- Если открыта папка с текстовым файлом, просто дважды щелкните по нему (когда он будет создан), чтобы выполнить этот шаг.
-
4
Нажмите Ctrl+Z. Введенный текст будет сохранен, а вы вернетесь в окно терминала.[1]
-
5
В терминале введите
ls -l имя_файла.txt
. Вместо «имя_файла» введите имя созданного текстового файла. С помощью этой команды вы найдете созданный файл, чтобы убедиться, что он действительно создан в соответствующей папке.[2]
- Например, чтобы найти текстовый файл textfile.txt, введите команду ls -l textfile.txt.
- В этой команде используется строчная буква «L», а не прописная буква «i».
-
6
Нажмите ↵ Enter. На следующей строке терминала отобразится время и дата создания файла, а также его имя. Это значит, что файл создан в указанной папке.
Реклама
-
1
В терминале введите
vi имя_файла.txt
. Команда «vi» сообщает системе, что файл нужно создать и отредактировать с помощью текстового редактора Vim. Вместо «имя_файла» введите имя создаваемого текстового файла.- Например, чтобы создать и отредактировать файл tamins.txt, введите vi tamins.txt.
- Если в текущем каталоге уже есть файл с таким именем, откроется этот файл.
-
2
Нажмите ↵ Enter. Текстовый файл будет создан и открыт в текстовом редакторе Vim. На каждой строке терминала отобразится символ «~», а имя созданного текстового файла появится в нижней части терминала.
-
3
Нажмите клавишу i на клавиатуре. Текстовый редактор перейдет в режим «Вставка»; в этом режиме в документ можно ввести текст.
- Когда вы нажмете указанную клавишу, в нижней части окна отобразится «INSERT» (Вставка).
-
4
Введите текст документа. Сделайте это так же, как в любом текстовом документе. Чтобы сохранить введенный текст и перейти на новую строку, нажмите ↵ Enter.
-
5
Нажмите клавишу Esc. Как правило, она расположена в левом верхнем углу клавиатуры. Текстовый редактор перейдет в режим «Команды».
- В нижней части окна отобразится курсор.
-
6
В терминале введите
:w
и нажмите ↵ Enter. Введенный текст будет сохранен. -
7
В терминале введите
:q
и нажмите ↵ Enter. Текстовый редактор Vim будет закрыт, а вы вернетесь в окно терминала. Теперь текстовый файл можно найти в текущем каталоге.- Чтобы убедиться в том, что файл создан, в терминале введите ls и найдите имя созданного файла в списке файлов.
- Также можно ввести команду :wq, чтобы сохранить веденный текст и сразу закрыть текстовый редактор.
-
8
Откройте файл из терминала. Для этого введите vi имя_файла.txt. Когда документ откроется, вы увидите введенный ранее текст.
Реклама
-
1
В терминале введите
emacs имя_файла.txt
. Вместо «имя_файла» введите имя создаваемого текстового файла. -
2
Нажмите ↵ Enter. Если в текущем каталоге нет файла с таким же именем, в текстовом редакторе Emacs откроется новый (пустой) документ.
- Например, чтобы создать и открыть файл newfile.txt, введите emacs newfile.txt.
- Если в текущем каталоге уже есть файл с таким именем, откроется этот файл.
-
3
Ознакомьтесь с командами текстового редактора Emacs. Этот редактор включает множество полезных команд, с помощью которых можно перемещаться по документу, искать в нем нужную информацию, редактировать текст и так далее. Чтобы выполнить команду, в Emacs используются сочетания клавиш, включая клавиши Control и Meta.
- Команды Control обозначаются так: C-<буква>. Чтобы выполнить такую команду, удерживайте клавишу Ctrl и нажмите указанную буквенную клавишу (например, Ctrl и A).
- Команды Meta обозначаются так: M-<буква>. Чтобы выполнить такую команду, удерживайте клавишу Alt или Esc (если на клавиатуре нет клавиши Alt) и нажмите указанную буквенную клавишу.
- Чтобы выполнить команду C-a b (или M-a b), удерживайте Ctrl (или Alt, или Esc), а затем нажмите первую буквенную клавишу (в нашем примере a); теперь отпустите обе клавиши и нажмите вторую буквенную клавишу (в нашем примере b).
-
4
Введите текст документа. Сделайте это так же, как в любом текстовом документе. Чтобы сохранить введенный текст и перейти на новую строку, нажмите ↵ Enter.
-
5
Нажмите Ctrl+X, а затем нажмите S. Введенный текст будет сохранен.
-
6
Нажмите Ctrl+X, а затем нажмите Ctrl+C. Текстовый редактор Emacs будет закрыт, а вы вернетесь в окно терминала. Созданный текстовый файл будет сохранен в текущем каталоге.
-
7
Еще раз откройте созданный текстовый файл. Для этого в терминале введите emacs имя_файла.txt. Если вы находитесь в каталоге, в котором хранится нужный файл, он откроется в текстовом редакторе Emacs. Теперь документ можно отредактировать.
Реклама
Советы
- Vim поддерживается практически любым дистрибутивом Linux, а Emacs является более функциональным редактором, с которым, возможно, будет проще работать неопытным пользователям.
- Чтобы открыть справочное окно в Emacs, нажмите Ctrl+H, а затем отпустите обе клавиши и нажмите T. В этом окне отобразятся дополнительные команды и функции редактора Emacs.
Реклама
Предупреждения
- Если вы забудете сохранить внесенные изменения и попытаетесь закрыть документ, возможно, предупреждения не будет (особенно в редакторе Vim). Поэтому всегда сохраняйте документ перед тем, как закрыть его.
Реклама
Об этой статье
Эту страницу просматривали 41 467 раз.
Была ли эта статья полезной?
Редактирование текстовых файлов в Linux можно запутать, если вы не знакомы с использованием командной строки, поскольку нет графического пользовательского интерфейса, чтобы помочь вам. Но не бойся, мы охватим два самых популярных консольных текстовых редактора, нано а также vi, в этой статье.
- Как создать или отредактировать файл
- Как сохранить файл
Вам нужно будет войти в свой сервер через SSH перед началом.Если вы не уверены, как это сделать, вы можете ссылаться на следующее руководство, которое охватывает Подключение к вашему серверу через SSH.
нано
Этот текстовый редактор является растущим из любимых пользователей Linux из-за общей простоты использования и по умолчанию на большинстве современных дистрибутивов Linux. наноНаиболее часто используемыми ярлыками отображаются в нижней части страницы с символом ^, представляющим ключ CTRL, за которым следует строчные буквы.
Создание или редактирование файла в nano
- На консоли вашего сервера введите нано команду, за которой следует имя текстового файла, затем нажмите ENTER
nano textfile
- Вы увидите интерфейс, похожий на следующий скриншот, и вы можете начать редактирование файла сейчас.
Сохранение файла в nano
- Нажмите клавишу CTRL и клавишу O
- Вам будет предложено для названия файла для сохранения как
- Когда вы удовлетворены именем файла, нажмите клавишу Enter
- Затем нажмите клавиши CTRL и X, чтобы выйти.
Быстрые команды
Сохранить: CTRL-O
Это сохранит содержимое к открытому файлу. Просто нажмите Enter, если это все еще имя файла, которое вы хотите редактировать или Ctrl-C, чтобы отменить или Ctrl-X для выхода.
Закрыть: CTRL-X
Это закроет нано программа.Если вы внесли какие-либо несохраненные изменения, он спросит вас, хотите ли вы продолжить без сохранения.
vi
vi Старый текстовый редактор и наиболее широко установлен. Это немного менее интуитивно понятно, чем нано. Однако, как только вы узнаете несколько распространенных команд, вы не найдете их слишком сложно использовать.
Создание или редактирование файла в vi
Редактирование файла в vi это довольно простой процесс.
- На консоли вашего сервера введите vi команду, за которой следует имя текстового файла, затем нажмите ENTER
vi textfilename
- Вам следует встретить интерфейс, аналогичный следующему.
- Прежде чем вы сможете начать редактирование текста, вам нужно будет нажать клавишу i, чтобы переключиться в режим вставки, отображаемый в нижней части экрана, как показано ниже.
- Теперь вы можете редактировать текст в файле.
Сохранение файла в vi
Как только вы закончите редактирование файла, вам нужно будет сохранять изменения, которые вы сделали.
- Вам нужно будет выйти из режима INSERT, нажав клавишу ESC, прежде чем вы сможете закрыть или сохранить файл; он больше не должен отображаться — ВСТАВИТЬ —
- Теперь выпустите команды «Написать и выйти».
- Нажмите клавишу с двоеточием (:) на клавиатуре (возможно, вам придется удерживать клавишу Shift)
- Введите wq и нажмите ENTER на клавиатуре, чтобы команда выглядела так: wq
- Кроме того, вы можете нажать Shift и нажмите ZZ, чтобы быстро сохранить файл и выйти.
- Вам нужно будет ввести wq! и нажмите Enter на клавиатуре, чтобы убедиться, что перезапишите файл для файлов только для чтения.
Быстрые команды
Изменить: я
Это переведет редактор в режим INSERT, чтобы вы могли вносить изменения в текст.
Сохранить:: wq
Это сохранит содержимое в файл, который вы открыли. (написать и выйти)
Закрыть:: q или: q!
Это закроет vi программа.Если вы хотите бросить бросить без сохранения каких-либо изменений, которые вы сделали, то используйте: q!вместо: q
Сохранить и закрыть: удерживайте клавишу Shift и нажмите ZZ
Теперь вы должны быть в состоянии успешно создавать, редактировать и сохранить файл в два из основных используемых текстовых редакторов в Linux.
Написано Michael Brower / Март 28, 2017
Содержание
- Команды Linux для работы с файлами
- 11. mc
- Выводы
- Как редактировать файлы в Ubuntu
- Как редактировать файлы в Ubuntu
- Редактирование файлов в Ubuntu через терминал
- Выводы
- Редактирование текста в Linux с помощью команд Vi, cat, less
- Редактор командной строки
- Сохранение и выход
- Другие способы просмотра файлов
- Навигация по файлу в Vi
- Удаление текста
- Отмена
- Вывод
- Основные linux-команды для новичка
- Содержание
- Где я? Как понять, где находишься
- Как понять, что находится в папке
- Как перейти в другую директорию
- По абсолютному пути
- По относительному пути
- С автодополнением
- Подняться наверх
- Как создать директорию
- Как создать файл
- Как отредактировать файл
- Как перенести / скопировать файл
- Скопировать файл
- Скопировать директорию
- Переместить файл
- Переместить директорию
- Как удалить файл
- Как изменить владельца файла
- Как установить приложение
- Как запустить приложение
- Как понять, где установлено приложение
- Как создать архив
- Как посмотреть использованные ранее команды
- Как посмотреть свободное место
- Как узнать IP компьютера
- Как узнать версию OS
- Как узнать, как работает команда
- Как создать много тестовых папок и файлов
- Как протестировать IOPS на Linux
- И это все?
- Книги и видео по теме
- Где тренироваться
Команды Linux для работы с файлами
В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
А теперь перейдем к подробному рассмотрению всех этих команд.
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
Вы также можете указать полный путь к папке:
Вы также можете вернуться в предыдущую рабочую папку:
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Источник
Как редактировать файлы в Ubuntu
Это еще одна инструкция для самых начинающих. В операционной системе довольно часто приходится редактировать файлы. Например, вам может понадобится создать какую-нибудь заметку с действиями, командами или другой информацией, но чаще всего приходится редактировать конфигурационные файлы для внесения различных настроек в систему.
Да, для многого придуман графический интерфейс, и уже почти все можно сделать в нем, но ручной способ все еще остается мощным и очень гибким путем настройки системы. В этой статье мы рассмотрим как редактировать файлы в Ubuntu. Мы будем рассматривать именно этот дистрибутив, потому что он самый популярный среди начинающих.
Как редактировать файлы в Ubuntu
Новичкам намного проще редактирование файлов ubuntu в графическом интерфейсе и для этого в этой системе по умолчанию поставляется программа Gedit. Это очень простой, но достаточно функциональный текстовый редактор, который позволяет делать все что нужно.
Функция создания файлов интегрирована в Nautilus, поэтому вы можете просто выбрать пункт создать, а затем пустой файл чтобы получить новый файл в своем домашнем каталоге.
Открыть файл тоже можно с помощью проводника, текстовый редактор Gedit по умолчанию назначен для работы с текстовыми файлами, поэтому достаточно выполнить двойной клик по нужному файлу.
Также вы можете запустить Gedit через терминал. Для этого откройте терминал с помощью сочетания клавиш Ctrl+Alt+T, и выполните:
Но проблемы появляются, если вы попытаетесь открыть с помощью Nautilus конфигурационный файл, расположенный выше вашей домашней папки, он принадлежит пользователю root и только он может его редактировать. Поэтому открыть такой файл прямо из файлового менеджера не получится. Он откроется, но сохранить вы его не сможете.
Обычно права установлены таким образом, что открыть то вы его сможете, а вот сохранить изменения уже нет. Запустите терминал и выполните:
gksu gedit /путь/к/папке/с_файлом/файл
После этого программа запросит пароль и запустит текстовый редактор от имени администратора. Дальше вы сможете успешно выполнить редактирование файлов в Ubutnu и сохранить изменения в файле.
Есть еще одной обходной способ, вы можете, добавить пункт открыть от имени администратора в контекстное меню Nautilus. Для этого нужно выполнить несколько команд в терминале. Сначала обновите списки пакетов из репозиториев:
Установите пакет nautilus-admin:
Затем выполните такую команду чтобы полностью закрыть Nautilus:
Теперь загрузите Nautilus, и в меню появится пункт Редактировать как администратор:
После нажатия на этот пункт система запросит пароль и вы получите возможность работать с файлом от имени администратора. Но не все любят запускать графические программы, более опытным пользователям нравится выполнять редактирование файла в терминале Ubuntu через терминал, именно такой способ работы с файлами используется везде у нас на сайте. Дальше мы рассмотрим с помощью каких программ это можно сделать.
Редактирование файлов в Ubuntu через терминал
Если файл нужно открыть от имени администратора:
sudo nano /путь/к/файлу/имя_файла
Редактор nano очень прост, для перемещения по файлу используйте кнопки со стрелками, после того, как закончите редактировать файл ubuntu, нажмите чтобы сохранить Ctrl+O, а для выхода Ctrl+X. Еще поддерживается поиск и замена, но все на очень примитивном уровне, и этого явно недостаточно для того чтобы работать эффективно.
Или для редактирования файла с правами суперпользователя:
sudo vi /путь/к/файлу/имя_файла
В командном режиме вы можете выполнять поиск, быстро перемещаться по строкам и символам с помощью клавиш набора, а также много других действий. Мы подробно рассматривали как работать с vim в отдельной статье.
Выводы
Источник
Работая в Linux часто придется иметь дело с текстовыми файлами. Например, конфигурационные файлы системы представляют собой обычные текстовые файлы. Поэтому очень важно уметь их редактировать.
Существует множество редакторов, которые позволяют редактировать файлы в консольном и графическом режимах.
В данном уроке мы просто познакомимся с одним из наиболее популярных редакторов и изучим лишь базовые принципы работы с ним.
Редактор nano я вляется простым в освоении и может быть полезен для начинающих. С помощью него можно создавать новые и редактировать существующие файлы.
Редактор состоит из 4-х областей:
Синтаксис команды следующий:
1) Создадим файл Example.txt:
2) Теперь откроем файл Configuration.txt в multi-buffer режиме.
Когда мы редактируем файл, то все изменения остаются в текущем буфере и мы можем ими манипулировать. При закрытии файла закрывается и сам буфер, а вместе с ним и все данные. То есть мы можем работать одновременно с одним файлом.
Если необходимо работать сразу с несколькими файлами, то откроем файлы в multi-buffer режиме с помощью опции -F ( —multibuffer ):
Курсор перейдет в указанную строку:
3) Теперь выделим текст для копирования. Для этого наберем Ctrl + 6 и редактор установит метку для выделения текста:
Теперь с помощью клавиш вперед/назад/вверх/вниз можно выделять текст:
Когда текст выделен скопируем его в буфер обмена с помощью Alt + Shift + 6
5) Так как файл Configuration.txt нам больше не нужен мы его закроем.
Слово найдено, однако это может быть не единственное слово. Как найти остальные?
Теперь в ыделим найденные строки с помощью Alt + 6 и стрелок, а затем удалим с помощью Ctrl + K ( ^K ).
7) Думаю добавить произвольный текст не составит труда.
Этих команд для начала хватит. Если возникнут трудности, то всегда можно открыть справку комбинацией Ctrl + G ( ^G ).
Итак подведем итог по “горячим клавишам”:
Nano имеет и дополнительные опции, кроме того, при написании программного кода для удобства можно определенные слова выделять цветом. Для этого необходимо поменять настройки в файле /etc/nanorc.
Источник
Редактирование текста в Linux с помощью команд Vi, cat, less
Vi — очень мощный инструмент. В статье сделан упор не на возможностях редактора, а научить его основам.
Редактор командной строки
Vi — текстовый редактор командной строки. Командная строка — это совершенно другая среда для вашего графического интерфейса. Это одно окно с вводом и выводом текста. Vi был спроектирован для работы с этими ограничениями и в результате он достаточно мощный. Vi предназначен для работы в качестве простого текстового редактора. Однако он обладает гораздо большей мощностью по сравнению с Notepad или Textedit.
В итоге, вы должны забыть про мышь. Все в Vi делается через клавиатуру.
В Vi есть два режима. Режим вставки и режим редактирования. В режиме ввода вы можете вводить содержимое в файл. В режиме редактирования вы можете перемещаться по файлу, выполняя следующие действия:
Перечислим основные распространенные ошибки. Во-первых, начинать вводить команды, не возвращаясь в режим редактирования. Во — вторых, вводить ввод без предварительной вставки.
Когда мы запускаем vi, мы обычно выдаем его с одним аргументом командной строки. Он же является файлом для редактирования.
Если вы забыли указать файл, есть способ открыть его в vi. Когда мы указываем файл, он может иметь абсолютный или относительный путь.
Отредактируем наш первый файл.
Когда вы запускаете эту команду, она открывает файл. Если файл не существует, он создаст его для вас, а затем откройте его. После ввода vi это будет выглядеть примерно так.
Вы всегда начинаете в режиме редактирования, поэтому первое, что мы собираемся сделать, это переключиться в режим вставки, нажав i
Теперь введите несколько строк текста и нажмите клавишу Esc, и вы вернетесь в режим редактирования.
Сохранение и выход
Есть несколько способов сделать данный маневр. Для начала убедитесь, что вы находитесь в режиме редактирования.
Если вы не уверены, находитесь ли вы в режиме редактирования можно посмотреть в нижнем левом углу. В качестве альтернативы вы можете просто нажать Esc, чтобы быть уверенным. Если вы уже находитесь в режиме редактирования, нажатие клавиши « Esc» ничего не делает, поэтому вы не причините вреда.
Большинство команд в vi выполняются, как только вы нажимаете последовательность клавиш. Любая команда, начинающаяся с двоеточия (:), требует, чтобы вы нажали для завершения команды.
Другие способы просмотра файлов
vi позволяет нам редактировать файлы. Кроме того, мы можем использовать его для просмотра файлов. Надо признать, есть две другие команды, которые немного более удобны для этой цели. Во-первых, cat, который на самом деле означает конкатенацию. Ее основная цель — объединить файлы, но в своей основной форме это полезно для просмотра файлов.
Запустив команду cat с одним аргументом командной строки, можно увидеть содержимое файла на экране, а затем появится подсказка.
На самом деле, когда у вас возникают проблемы, вы обычно можете нажать + c, чтобы избежать неприятностей.
Эта команда хороша, когда у нас есть маленький файл для просмотра.
А если файл большой? Основная часть контента будет летать по экрану, и мы увидим только последнюю страницу контента. Для больших файлов лучше подходит команда, less.
less
less позволяет перемещаться вверх и вниз по файлу с помощью клавиш со стрелками. Вы можете перейти вперед на целую страницу с помощью пробела или назад на страницу, нажав b. При завершении, следует нажать q для выхода.
Навигация по файлу в Vi
Теперь вернемся к файлу, который мы только что создали, и введем еще немного контента. В режиме вставки вы можете использовать клавиши со стрелками для перемещения курсора. Введите еще два абзаца содержания, затем нажмите Esc, чтобы вернуться в режим редактирования.
Ниже приведены некоторые из множества команд, которые вы можете вводить для перемещения по файлу. Посмотрите как они работают.
Набрав set nu в режиме редактирования в vi, позволяет включить номера строк. В итоге, включение номеров строк делает работу с файлами намного проще.
Удаление текста
Если мы хотим перейти в vi, у нас будет довольно много вариантов. Некоторые из них также позволяют нам предшествовать им с числом, которое можно перемещать столько раз. Удаление работает аналогично перемещению. Всего несколько команд удаления позволяют нам включить команду перемещения, чтобы определить, что будет удалено.
Вот некоторые способы, которыми мы можем удалять текст в vi.
Отмена
Вывод
Теперь вы можете сделать основное редактирование в vi.
Кроме того, в статье мы ознакомились со следующими командами:
Источник
Основные linux-команды для новичка
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!
Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.
Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Содержание
Где я? Как понять, где находишься
Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.
Как понять, что находится в папке
Команда ls позволяет просмотреть содержимое каталога:
Хотя лучше использовать команду сразу с флагом «l»:
Такая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.
У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».
См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)
Как перейти в другую директорию
С помощью команды cd:
Путь может быть абсолютным или относительным.
По абсолютному пути
Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).
Вставляем путь в командную строку после «cd»
Ну вот, мы переместились из домашней директории (обозначается как
По относительному пути
Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будут такой:
Если мне из надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
Я не пишу /home/student/photo, так как я уже там.
В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается
/. Дальше вы уже можете указывать подпапки:
Эта команда будет работать отовсюду. И переместит нас в /home/user/log.
Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:
С автодополнением
Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:
— (cd tab) Может, ты имел в виду папку 1?
— (tab) Нет? Может, папку 2?
— (tab) Снова нет? Может, папку 3?
— (tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
— (tab) У меня кончились варианты, поехали сначала. Папка 1?
cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).
cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.
Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.
Подняться наверх
Подняться на уровень выше:
Если нужно поднять на два уровня выше, то
И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.
Как создать директорию
Используйте команду mkdir:
Можно и в другом месте создать папку:
Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.
Как создать файл
Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.
Как отредактировать файл
Вот честное слово, лучше делать это через графический интерфейс!
Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:
Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
А вот с vim с этим сложнее. В него легко зайти:
Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?
Делюсь секретом, для выхода надо набрать:
Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:
Когда нажимаем двоеточие, оно печатается внизу:
Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда.
На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.
Если нужно выйти, сохранив изменения, используйте команду
Ну а про возможности редактирования см статьи ниже =)
Как перенести / скопировать файл
Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?
Скопировать файл
Если мы находимся в директории /opt/app/log:
В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.
Можно сразу переименовать файл:
В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.
Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:
Никаких ошибок, система просто выполнила команду.
Скопировать директорию
Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:
Так в директории /home/olga появится папка «log».
Переместить файл
Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).
Можно использовать относительные и абсолютные пути:
Можно сразу переименовать файл:
Переместить директорию
Аналогично перемещению файла, команда mv
Как удалить файл
С помощью команды rm (remove):
Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:
Если нужно удалить папку, надо добавить флаг -r (recursive):
Если вы пытаетесь удалить файлы, которые уже используются в программе или доступны только для чтения, система будет переспрашивать:
А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да. » (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):
Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!
Опция -v показывает имена удаляемых файлов:
Тут вы хотя бы можете осознать, что натворили )))
Как изменить владельца файла
Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.
Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.
Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:
В итоге был владелец root, а стал testbase. То, что надо!
Как установить приложение
Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:
Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.
И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.
Ничего страшного, установите это приложение через yum:
Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:
И система заканчивает установку.
Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:
Как запустить приложение
Чтобы запустить скрипт, нужно указать полный путь к нему:
Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:
Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:
Если же приложение запускается как сервис, то все еще проще:
Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:
Она добавит службу в автозапуск.
Как понять, где установлено приложение
Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?
Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):
Как создать архив
Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:
В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.
Для распаковки меняем флаг «c» на «x» и убираем «z»:
Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.
Давайте разберемся, что все эти флаги означают:
Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:
Говорит, нет такого пакета:
Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:
Как посмотреть использованные ранее команды
Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!
Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:
Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).
Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.
Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.
См также:
История команд Linux — больше о возможностях history
Как посмотреть свободное место
Сколько места свободно на дисках
Сколько весит директория
Как узнать IP компьютера
Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.
Чтобы узнать IP машины, используйте команду:
Также можно использовать ifconfig:
Как узнать версию OS
Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?
На этой виртуалке стоит CentOs 7.
Если нужна версия ядра:
Как узнать, как работает команда
Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:
Закрыть мануал можно с помощью клавиши q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.
Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))
Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!
Если man у программы нет, используйте флаг -h (—help):
Как создать много тестовых папок и файлов
Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:
Вот и все, дальше можно играться с ними!
Ага, в домашней директории. Создам себе песочницу:
Вот в ней и буду творить!
А потом можно проверить, что получилось:
Как-то так! Имхо, полезные команды.
Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!
И, главное, тестировщику полезно — может пригодиться для тестов.
Как протестировать IOPS на Linux
Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.
Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.
Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.
Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.
1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка
2) Должны стоять пакеты для сборки
Какие должны быть результаты:
Если должно быть 50 тысяч, а диск выдает сильно меньше, то:
— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.
И это все?
Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.
Вот вам еще пара ссылочек от меня:
Книги и видео по теме
Где тренироваться
Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))
А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.
У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.
Чтобы подключиться к машине, используйте инструменты:
Источник