Основные команды для Linux

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
113
Linux — это операционная система. Как винда (windows), только не винда. В винде легко подхватить вирус, в линуксе это практически невозможно (хотя нет ничего невозможного :acute:). А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.

Я дам кратенькое описание основных команд с примерами + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме».
Содержание
 
Последнее редактирование:

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
113
Где я? Как понять, где находишься

Команда pwd:

pwd --- мы ввели команду
/home/test --- ответ системы, мы находимся в домашней директории пользователя test

Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.
 

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
113
Как понять, что находится в папке

Команда ls позволяет просмотреть содержимое каталога:
Screenshot_1.png

Хотя лучше использовать команду сразу с флагом «l»:
Bash:
ls -l
Такая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.
Screenshot_2.png
 

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
113
Как перейти в другую директорию

С помощью команды cd:
Bash:
cd <путь к директории>
Путь может быть абсолютным или относительным.


По абсолютному пути

Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).
Вставляем путь в командную строку после «cd»
Bash:
cd /home/student/log
_.png

По относительному пути

Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будут такой:
Bash:
cd log  --- перейди в папку log из той директории, где ты сейчас находишься
Если мне из /home/student/photo перейти в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
Bash:
cd city/msk/2017/cat_1
Я не пишу /home/student/photo, так как я уже там.
_ _.png


В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки:
Bash:
cd  ~/log
Эта команда будет работать отовсюду. И переместит нас в /home/user/log.

Вот пример, где я вошел под пользователем students. Исходно был в директории /var, а попал в /home/students/log:
путь.png

С автодополнением

Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:

(cd tab) Может, ты имел в виду папку 1?
(tab) Нет? Может, папку 2?
(tab) Снова нет? Может, папку 3?
(tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
(tab) У меня кончились варианты, поехали сначала. Папка 1?
автодополнение.png

cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).

cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.

Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.



Подняться наверх

Подняться на уровень выше:
Bash:
cd ..
Если нужно поднять на два уровня выше, то
Bash:
cd ../..
И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.

Обратите внимание, что команда для линукса отличается от команды для винды — слеш другой. В винде это «cd ..\..», а в линуксе именно «cd ../..».
 

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
113
Как создать директорию

Используйте команду mkdir:
Bash:
mkdir test  --- создает папку с названием «test» там, где вы находитесь
Можно и в другом месте создать папку:
Bash:
mkdir /home/test   --- создает папку «test» в директории /home, даже если вы
сейчас не там
Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.
 

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
113
Как создать файл

Командой touch:
Bash:
touch app.log
Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.
 

Майор

Premium
Premium
Регистрация
04.09.14
Сообщения
2.951
Реакции
2.024
Баллы
113
Как отредактировать файл

Лучше делать это через графический интерфейс.

Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:
  1. nano — более простая программа, рассчитана на новичков
  2. vim — более сложная, но позволяет сделать кучу всего

Начнем с nano. Указываете имя команды и путь в файлу:
Bash:
nano test_env.json
Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
  • Ctrl+O — чтобы сохранить
  • Ctrl+X — для выхода

Самое приятное в nano — это подсказки внизу экрана, что нажать, чтобы выйти.
nano.png

А вот с vim с этим сложнее. В него легко зайти:
Bash:
vim test_env.json
vi test_env.json     (предшественник vim)
Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?

Делюсь секретом, для выхода надо набрать:
  • :q — закрыть редактор
  • :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)

Двоеточие запускает командный режим, а там уже вводим команду «q» (quit).

Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:
vim.png

Когда нажимаем двоеточие, оно печатается внизу:
vim_1.png

Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда!!!

На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.

Если нужно выйти, сохранив изменения, используйте команду
Bash:
:w — сохранить файл;
:q — закрыть редактор;
 
Сверху Снизу