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

Майор

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

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

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

Майор

Администратор
Проверенный ++
Регистрация
04.09.14
Сообщения
2.939
Реакции
2.020
Баллы
113
Где я? Как понять, где находишься

Команда pwd:

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

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

Майор

Администратор
Проверенный ++
Регистрация
04.09.14
Сообщения
2.939
Реакции
2.020
Баллы
113
Как понять, что находится в папке

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

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

Майор

Администратор
Проверенный ++
Регистрация
04.09.14
Сообщения
2.939
Реакции
2.020
Баллы
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 ../..».
 

Майор

Администратор
Проверенный ++
Регистрация
04.09.14
Сообщения
2.939
Реакции
2.020
Баллы
113
Как создать директорию

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

Майор

Администратор
Проверенный ++
Регистрация
04.09.14
Сообщения
2.939
Реакции
2.020
Баллы
113
Как создать файл

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

Майор

Администратор
Проверенный ++
Регистрация
04.09.14
Сообщения
2.939
Реакции
2.020
Баллы
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 — закрыть редактор;
 
Сверху Снизу