Советы

Основные команды терминала Windows, Linux и MacOS

Интерфейс командной строки (Command line interface или CLI) — это один из первых интерфейсов взаимодействия с пользоватлем. Но до сих пор очень даже актуальный и востребованный.

CLI — это текстовый способ ввода и вывода информации. То есть вы печатаете команду и видите текстовый результат её работы.

Он зародился в 1960-х годах и унаследовался от телетайпов и печатных машин. Все эти годы активно использовался всеми владельцами компьютеров, пока не появились графические интерфейсы.

В середине 1990-х годов графические интерфейсы начали массово завоёвывать рынок и компьютеры стали доступны для большего количества людей.

Ведь, согласитесь, перетаскивать файлы, нажимать кнопки мышкой или пальцем и видеть эти кнопки, а так-же фотографии и графики намного интереснее и удобнее, чем вводить команды на клавиатуре и видеть текстовый ответ 🙂

Но у интерфейса командной строки есть важные преимущества! У него намного лучше отзывчивость, быстрее отображается результат и вы быстрее и более точно сделаете нужное вам действие (если знаете команды, конечно же). Так же у вас больше контроля над программой запущенной в терминале.

Основные команды терминала Windows, Linux и MacOS

Терминал (Terminal) — это программа для работы с помощью интерфейса командной строки. В программировании вы очень часто будете работать в терминале. В некоторых случаях это будет быстрее, а в других более удобного способа может просто не быть.

В каждой современной операционной системе есть встроенное приложение терминала. cmd для Windows, Terminal для Linux и MacOS

Запуск терминала

Cmd в Windows

Для запуска терминала в Windows нажмите Пуск, наберите на клавиатуре cmd и нажмите клавишу Enter когда в списке будет выделена программа CMD или нажмите курсором мыши.

Основные команды терминала Windows, Linux и MacOS

Откроется окно программы:

Основные команды терминала Windows, Linux и MacOS

 

Terminal в Linux

  • В большинстве дистрибутивов Linux вы можете нажать сочетание клавиш Ctrl + Alt + T, которая запускает Terminal. 
  • Так же в большинстве дистрибутивов Linux ссылка на терминал находится в легко доступном месте, например на рабочем столе.
  • В Ubuntu Linux можно открыть Launcher клавишей Windows (на клавиатуре), начать печатать terminal и когда иконка приложения Terminal будет выделена — нажать клавишу Enter.

Основные команды терминала Windows, Linux и MacOS

Terminal в MacOS

Нажите сочетание клавиш Command + Пробел — появится поле ввода (Spotlight), наберите в нем Terminal и нажмите клавишу Enter

Основные команды терминала Windows, Linux и MacOS

Работа в терминале

В терминале, обычно, вы видите полный путь к текущей рабочей директории(папки) и символ '>' (или '$'). Это приглашение ввести команду. 

  1. Вы печатаете команду и нажимаете клавишу Enter для того, чтобы её выполнить.
  2. Каждый момент времени вы находитесь только в одной директерии(папке), которая называется «текущей» или «рабочей».

Windows

В Windows при запуске Командной строки, вы всегда находитесь в вашей домашней директории — это домашняя папка вашего пользователя. Она всегда начинается с C:Users . И путь к этой директории Вы видите вначале строки.  Например:

C:UsersIsaac>

Команда dir — содерижимое папки

Первое, что вы можете сделать, находясь в терминале это посмотреть содержимое рабочей папки. Для этого наберите команду dir и нажмите Enter.

Основные команды терминала Windows, Linux и MacOS

Вы увидите список файлов и папок в текущей директории. Также будет видна дата создания этих файлов. 

Команда cd — путь к текущей папке

Вы можете написать команду cd и увидеть где вы сейчас находитесь. 

C:UsersIsaac>cd
C:UsersIsaac

C:UsersIsaac>

Вы увидите путь к текущей папке. C:UsersIsaac — означает что вы находитесь в Локальном диске С: в папке Users и в папке Isaac, которая находится внутри папки Users

Команда cd .. — выйти из текущей папки в родительскую

Вы можете написать cd .. — чтобы перейти в родительскую папку. Например если вы находитесь сейчас в папке C:UsersIsaac и введете команду cd .. , то вы перейдете в папке C:Users

C:UsersIsaac>cd ..

C:Users>

И так можно выйти из любой папки, до тех пор пока вы не дойдете до корня Локального диска С:. 

Команда cd [название папки] — перейти в другую папку

Вы знаете в какой директории вы сейчас находитесь и вы можете посмотреть список файлов и папок здесь(dir). Теперь если вам нужно перейти в другую внутреннюю директорию, то вы можете написать команду cd [название папки] — т.е. после cd нужно указать название папки, в которую вы хотите перейти. Например cd Isaac или cd Downloads:

C:Users>cd Isaac

C:UsersIsaac>cd Downloads

C:UsersIsaacDownloads>

Указанная папка должна обязательно находиться в текущей директории.  

Запуск программы

Если вы перешли в нужную вам папку, где находится ваша программа или скрипт. Вы можете его запустить. Например программу на языке Python, которая находится в файле program.py:

C:UsersIsaacProjects>python program.py

Hello, World!

C:UsersIsaacProjects>

Вот и все на этом. Теперь вы немного умеете работать в Командной строке Windows

Linux

В Linux при запуске Терминала, вы всегда находитесь в вашей домашней директории — это домашняя папка вашего пользователя. А строка ввода в Терминале обычно выглядит примерно так:

isaac@Hp-Probook-440:~$

Первым идет имя вашего пользователя, затем за знаком @ имя вашего компьютера и за двоеточием название текущей папки. В самом конце $. 

Знак ~ (тильда) — означает что вы находитесь в вашей домашней директории. Это директория /home/isaac — где после /home идет имя вашего пользователя.

Команда ls — содерижимое папки

Первое, что вы можете сделать, находясь в терминале это посмотреть содержимое рабочей папки. Для этого наберите команду ls и нажмите Enter.

Основные команды терминала Windows, Linux и MacOS

Вы увидите список файлов и папок в текущей директории. Вы также можете ввести команду ls -l чтобы увидеть подробную информацию:

Основные команды терминала Windows, Linux и MacOS

Команда pwd — путь к текущей папке

Вы можете написать команду pwd и увидеть где вы сейчас находитесь. 

isaac@Hp-Probook-440:~$ pwd
/home/isaac

isaac@Hp-Probook-440:~$

Вы увидите путь к текущей папке. /home/isaac — означает что вы находитесь в корневой папке /home  и в папке isaac, которая находится внутри папки /home. 

Команда cd .. — выйти из текущей папки в родительскую

Вы можете написать cd .. — чтобы перейти в родительскую папку. Например если вы находитесь сейчас в папке /home/isaac и введете команду cd .. , то вы перейдете в папке /home

isaac@Hp-Probook-440:~$ cd ..

isaac@Hp-Probook-440:home$ pwd
/home

isaac@Hp-Probook-440:home$

И так можно выйти из любой папки, до тех пор пока вы не дойдете до корня файловой системы /

Команда cd [название папки] — перейти в другую папку

Вы знаете в какой директории вы сейчас находитесь и вы можете посмотреть список файлов и папок здесь(dir). Теперь если вам нужно перейти в другую внутреннюю директорию, то вы можете написать команду cd [название папки] — т.е. после cd нужно указать название папки, в которую вы хотите перейти. Например cd isaac или cd Downloads:

isaac@Hp-Probook-440:home$ cd isaac

isaac@Hp-Probook-440:~$ cd Downloads

isaac@Hp-Probook-440:Downloads$ pwd
/home/isaac/Downloads

isaac@Hp-Probook-440:Downloads$

Указанная папка должна обязательно находиться в текущей директории.  

Запуск программы

Если вы перешли в нужную вам папку, где находится ваша программа или скрипт. Вы можете его запустить. Например программу на языке Python, которая находится в файле program.py:

isaac@Hp-Probook-440:Projects$ python program.py

Hello, World!

isaac@Hp-Probook-440:Projects$

Вот и все на этом. Теперь вы немного умеете работать в Терминале Linux.

MacOS

В MacOS тоже при запуске Терминала, вы всегда находитесь в вашей домашней директории — это домашняя папка вашего пользователя. А строка ввода в Терминале обычно выглядит примерно так:

isaac:~$

Первым идет имя вашего пользователя, и за двоеточием название текущей папки. В самом конце $. 

Знак ~ (тильда) — означает что вы находитесь в вашей домашней директории. Это директория /Users/isaac — где после /Users идет имя вашего пользователя.

Команда ls — содерижимое папки

Первое, что вы можете сделать, находясь в терминале это посмотреть содержимое рабочей папки. Для этого наберите команду ls и нажмите Enter.

Основные команды терминала Windows, Linux и MacOS

Вы увидите список файлов и папок в текущей директории. Вы также можете ввести команду ls -l чтобы увидеть подробную информацию:

Команда pwd — путь к текущей папке

Вы можете написать команду pwd и увидеть где вы сейчас находитесь. 

Вы увидите путь к текущей папке. /Users/alisher — означает что вы находитесь в корневой папке /Users  и в папке alisher, которая находится внутри папки /Users. 

Команда cd .. — выйти из текущей папки в родительскую

Вы можете написать cd .. — чтобы перейти в родительскую папку. Например если вы находитесь сейчас в папке /Users/alisher и введете команду cd .. , то вы перейдете в папке /Users

И так можно выйти из любой папки, до тех пор пока вы не дойдете до корня файловой системы /

Команда cd [название папки] — перейти в другую папку

Вы знаете в какой директории вы сейчас находитесь и вы можете посмотреть список файлов и папок здесь(dir). Теперь если вам нужно перейти в другую внутреннюю директорию, то вы можете написать команду cd [название папки] — т.е. после cd нужно указать название папки, в которую вы хотите перейти. Например cd alisher или cd Downloads:

Указанная папка должна обязательно находиться в текущей директории.  

Запуск программы

Если вы перешли в нужную вам папку, где находится ваша программа или скрипт. Вы можете его запустить. Например программу на языке Python, которая находится в файле program.py:

Вот и все на этом. Теперь вы немного умеете работать в Терминале MacOS.

Шпаргалка по основным командам Bash

Основные команды терминала Windows, Linux и MacOS

Неважно кто вы, разработчик ПО, специалист по данным, менеджер ИТ-инфраструктуры или просто любитель компьютеров  —  вам нужно знать, как пользоваться терминалом в Linux и macOS. Но сложность в том, что необходимо запомнить слишком много команд. И если у вас нет чудо-памяти, время от времени приходится искать в Интернете ту или иную команду.

Сегодня я поделюсь с вами самыми популярным и полезными командными интерпретаторами.

Забыли аргументы для cp? Какая опция у команды mkdir? Вот вам подсказка:

help nano # кратко о команде “nano”

man nano # подробная информация о “nano”

Зачастую с его помощью перенаправляют вывод одной команды на ввод другой или приписывают команду к файлу:

a | b # конвейер: передать вывод команды a на ввод b

a > file.txt # сохранить вывод команды a в file.txt (перезаписать)

a >> file.txt # сохранить вывод команды a в file.txt (добавить)

echo «Hello!» | xargs echo # направить вывод первой команды, как аргумент второй

Бывает, что команда выводится слишком долго. В этом случае вы либо разделите страницу с помощью команды more или less, либо выведите строки, которые содержат специальное слово или предложение с grep:

cat verylongfile.txt | more # постранично показывает содержимое verylongfile.txt

cat verylongfile.txt | постранично показывает содержимое verylongfile.txt, и позволяет перемещаться по файлу

cat verylongfile.txt | grep “I love you” # показывает строчку, где расположена строка “I love you”

Слишком много текста в терминале? Просто напишите clear и продолжайте работать.

clear # очистка терминала

С этими командами вы с легкостью получите все подробности о компьютере:

uname -a # показывает информацию о системе (kernel, architecture…)

sudo lshw # (только для Linux) предоставляет информацию об аппаратном обеспечении

sudo lshw -short # (только для Linux) краткая информацию об аппаратном обеспечении

Читайте также:  Создаем API на Docker, Node.js, Nginx, Postgres

lscpu # (только для Linux) Показывает информацию о ЦП

lsusb # (только для Linux) вывод информации о подключенном USB устройстве

date # выводит дату и время

Следующие команды предоставляют общие сведения о всех процессах, происходящих в системе. В macOS и некоторых дистрибутивах Linux htop не установлен, поэтому перед использованием нужно установить его с помощью стандартного менеджера пакетов (для macOS  — Homebrew):

ps # показывает текущие процессы, происходящие в терминальном сеансе
ps aux # показывает все процессы, происходящие на компьютере
htop # отображает в терминале монитор активности
Команда htop в Linux 

При открытии терминального окна все вводимые команды выполняются под текущим пользователем. Однако зачастую приходится выполнять команды от привилегированного пользователя, поэтому важно знать, как их сменять внутри оболочки.

su # смена текущего пользователя на администратора(root)

su — # смена текущего пользователя на администратора(root), со сменой локальных переменных

su maria # смена текущего пользователя на «maria»

sudo nano # выполнить команду «nano» от имени администратора (root)

Вы можете скопировать и вставить текст из/в терминал, выделив их и нажав Ctrl + C или Ctrl + V. Но иногда хочется напрямую получить доступ к буферу обмена. И как вы видите ниже, это не так уж и просто, что на Linux, что на macOS.

# Linux

echo «Hello my friend!» | xclip # копировать «Hello my friend!» в буфер обмена

xclip -o >> pasted_text.txt # вставить содержимое буфера в текст файла

# macOS

echo «Hello my friend!» | pbcopy # копировать «Hello my friend!» в буфер обмена

pbpaste >> pasted_text.txt # вставить содержимое буфера в текст файла

Можно двумя способами определить переменные внутри оболочки: в реальном времени, написав в терминале соответствующую команду, или же определить их в файле .bashrc в домашний каталог, где они будут храниться вечно.

echo «hello» # вывод hello на консоль

echo $USER # вывод значение переменной USER на консоль

env # вывод список всех переменных окружения

set # вывод список всех локальных переменных

MY_FRIENDS=William # создать локальную переменную MY_FRIENDS

MY_FRIENDS=$MY_FRIENDS:John:Anna # объединение значения 'John' и 'Anna' в MY_FRIENDS

export MY_FRIENDS # сделать локальную переменную MY_FRIENDS переменной окружения

unset MY_FRIENDS # удалить переменную MY_FRIENDS

Ещё один интересный инструмент  —  alias (псевдоним), сокращение для длинных команд. Посмотрим, как он строится:

alias clone_my_repo = «git clone http://verylongurl.com» # создать псевдоним

Для тех, кто не знает, путь (Path) – это каталоги, в которых ОС ищет файлы для исполнения. С его помощью можно запустить файл, написав лишь название, даже не нужно знать его расположение. Кроме того, в путь можно добавить папку, а также найти каталог, где находится исполняемый файл, с помощью команд:

export PATH=$PATH:/home/john/myprogram # добавление каталога к пути /home/john/myprogram

which nano # отобразить расположение исполняемого файла «nano»

whereis nano # отобразить расположение исполняемого файла, справочных страниц, исходного кода и т.д. «nano»

Для перехода между каталогами файловой системы вам лишь нужно знать, как применять команду cd.

pwd # перейти к текущему каталогу

cd # сменить текущий каталог на домашний

cd /bin # перейти в каталог /bin

cd .. # перейти в родительский каталог

Чтобы вывести в каталоге файлы, папки, а также их свойства, не обойтись без команды ls.

ls # вывести список файлов и каталогов в текущем каталоге

ls /bin # вывести список файлов и каталогов в /bin

ls -l # вывести подробную информацию (размер, дата…)

ls -a # показать скрытые файлы и каталоги

ls -ld # вывести информацию о текущем каталоге (не файлов)

ls my* # вывести файлы с именем, начинающимся на my…

tree # показать дерево текущего каталога

Самый простой способ скачать файл с веб-серверов  —  это команда wget.

wget https://somewebpage.com/somefile.zip # скачать файл с указанного URL в текущий каталог
Скачивание файла с помощью wget

Если вы хотите создать папку, используйте команду mkdir.

mkdir movies # создать папку с названием «movies» в текущем каталоге

mkdir -p movies/genres/scifi # создать папку с названием «movies», вложенный в «genres», и «scifi»

Как правило, функции копирования, перемещения и удаления выполняют через файловый менеджер, но можно делать это и через терминал.

rmdir movies # удалить пустой каталог movies

rm -rf movies # удалить каталог movies и его файлы

rm file1.txt # удалить файл file1.txt

mv /home/michael/myfile.txt /home/john/important.txt # переместить файл из /home/michael в /home/john

cp /home/michael/myfile.txt /home/john/important.txt # скопировать файл из /home/michael в /home/john

cp -R letters/ memories/ # скопировать содержимое папки «letters» в папку «memories»

cp -R letters ~/Desktop # скопировать папку «letters» вставить на рабочий стол

Права доступа и владельца файла или каталога можно изменить с помощью команды chmod и chown.

chmod 777 script.sh # изменить права файла script.sh

chmod +x script.sh # сделать файл script.sh выполняющим

chown guille script.sh # сменить владельца файла «script.sh» на пользователя «guille»

./script.sh # запустить script.sh

Забыли где файл contacts.json? Хотите вывести все PDF файлы, находящиеся в папке? С помощью команды find вы можете сделать это и многое другое.

find . -name hello.txt # найти файл с названием «hello.txt» в текущем каталоге

find /home/joe/Downloads -name *.pdf # найти PDF файлы в папке Downloads

find / -executable -atime -10 # найти исполняемые файлы в каталоге root, доступ к котором был 10 минут назад

find ~ -newer reference.txt # найти в домашнем каталоге файл, который редактировался после файла «reference.txt»

При скачивании любой программы из Интернета, рекомендуется проверить контрольную сумму SHA, чтобы убедиться, всё ли верно скачалось. И сделать это гораздо легче через терминал:

# Linux

sha256sum file.txt # вычисление контрольной суммы SHA 256 файла

echo -n “foobar” | sha256sum # вычисление контрольной суммы SHA 256 слова “foobar”

# macOS

shasum -a 256 file.txt # вычисление контрольной суммы SHA 256 файла

echo -n “foobar” | shasum -a 256 # вычисление контрольной суммы SHA 256 слова “foobar”

Неважно, что у вас TAR или ZIP файл, вы можете распаковать его через терминал или же создать из существующих папок:

# Tar / untar

tar -cvzf myfile.tar myfolder # сжатие папки «my_folder» в архив «myfile.tar»

tar -xvzf myfile.tar # распаковка файла myfile.tar в текущий каталог

tar -C /opt/abc -xvzf myfile.tar # распаковка файла myfile.tar в /opt/abc

# Zip / unzip

zip -r myfile.zip myfolder # сжатие папки «my_folder» в архив «myfile.zip»

unzip myfile.zip # распаковка файла myfile.zip в текущий каталог

Хотите узнать доступное место на жестком диске? Или на внешнем? Или в текущем каталоге? В этих вопросах помогает команда df.

df -k . # свободное место в текущем каталоге
df -k # доступное пространство во смонтированных файловых системах
свободное место на моём компьютере 

Через терминал можно не только просматривать содержимое текстового файла, но и проводить анализы, например сортировать и менять порядок строк по содержанию, подсчитывать количество строк, слов, символов, и выделить столбцы, если это табличный файл. Рассмотрим их в действии:

# grep: фильтрация по строкам

grep 455 sales.txt # вывести строку, где есть 455

# cut: отображение столбцов

cut -f 3 sales.txt # вывести только третий столбец

cut -f 2-3 sales.txt # вывести 2-ой и 3-ий столбец

cut -c 9-19 sales.txt # вывести от 9-ти до 19-ти символов каждой строки

cut -f 1 -d ';' clients.txt # в файле clients.txt использовать ';' в качестве разделителя вместо tab

# awk: то же, что и cut, но имеет ещё больше разделителей, фильтров и он более сложный в вычислении

awk '{print $3}' sales.txt # вывести 3-ий столбец

awk '{print $2 «, » $3}' sales.txt # вывести 2-ой и 3-ий столбец, и разделить запятой

awk '{print $2 + $3}' sales.txt # вывести сумму 2-го и 3-го столбца

awk 'length($0) > 20' sales.txt # вывести все строки длиннее 20 символов

awk '$2 > 100' sales.txt # вывести строки, в которых значение второго столбца больше 100

# wc

wc sales.txt # вывести количество строк, слов и символов в текстовом файле

ls -1 | wc # вывести количество строк, слов и символов каждого файла в текущем каталоге

# sort: сортировка строк по алфавиту

sort sales.txt # сортировка строк файла

sort -r sales.txt # сортировка в обратном порядке

sort -R sales.txt # сортировка в случайном порядке

sort -t $' ' -k 3n,3 sales.txt # сортировать строки по числовому значению третьего столбца

# uniq: отображает неповторяющиеся и повторяющиеся строки файла

uniq hello.txt # опускает повторяющиеся строки

uniq -d hello.txt # выводит только повторяющиеся строки

uniq -u hello.txt # выводит только те строки, у которых нет повторов

uniq -c hello.txt # выводит количество повторов для каждой строки

  • Надеюсь вам понравится эта шпаргалка!
  • Читайте нас в Telegram, VK и Яндекс.Дзен
  • Перевод статьи Guillermo Barreiro: The Essential Bash Cheat Sheet

42 команды Linux которые вы должны знать

Во всех операционных системах, в том числе и в Linux, термин 'команда' означает либо утилиту командной строки, либо определённую возможность, встроенную в командную оболочку системы.

Тем не менее, для самих пользователей это различие не имеет особого значения. В конце концов, и те и другие команды терминала Linux вызываются одинаково.

Вы вводите слово в вашем эмуляторе терминала и получаете результат выполнения команды.

Я уже писал о командах терминала Linux, но тогда затронул лишь несколько самых интересных, самых полезных команд, рассчитывая на то, что пользователь уже достаточно знаком с возможностями терминала. Но нужно сделать ещё одну статью, рассчитанную на новичков, тех, кто только делает свои первые шаги в освоении Linux.

И вот она. Её цель — собрать основные простые и сложные команды Linux, которые должен знать каждый пользователь, чтобы наиболее эффективно управлять своей системой. Для удобности запоминания опций команд я в скобках добавил слова, от которых они произошли — так намного проще, на себе проверено.

Это не значит, что я перечислю все команды, все перечислены тут — я постараюсь охватить всё самое полезное, то, что может пригодиться в повседневной жизни.

Чтобы было удобнее читать, разделим этот список на категории команд по назначению.

Большинство рассмотренных здесь утилит не требуют дополнительной установки, они будут предустановлены в любом дистрибутиве Linux, а если не будут, то их несложно найти в официальных репозиториях.

Команды Linux для управления файлами

1. ls

Утилита для просмотра содержимого каталогов. По умолчанию показывает текущий каталог. Если в параметрах указать путь, то она перечислит содержимое конечного каталога. Полезные опции -l (List) и -a (All). Первая форматирует вывод в виде списка с более подробной информацией, а вторая включает показ скрытых файлов. Подробнее здесь.

2. cat

Печатает содержимое файла, переданного в параметре, в стандартный вывод. Если передать несколько файлов, команда склеит их. Также можно перенаправить вывод в ещё один файл с помощью символа '>'. Если нужно вывести только определенное количество строк, используйте опцию -n (Number). Подробнее тут.

3. cd

Позволяет перейти из текущего каталога в указанный. Если запустить без параметров — возвращает в домашний каталог. Вызов с двумя точками возвращает на уровень вверх относительно текущего каталога. Вызов с тире (cd -) возвращает к предыдущему каталогу. Более детально здесь.

4. pwd

Печатает на экран текущий каталог. Это может быть полезно, если ваша командная строка Linux не выводит такую информацию. Эта команда будет востребована в Bash программировании, где для получения ссылки на каталог выполняется скрипт. Более подробно в отдельной статье.

Читайте также:  Медиаискусство (Media Art): что это такое, примеры, виды

5. mkdir

Создание новых каталогов. Наиболее удобная опция -p (Parents), позволяет создать всю структуру подкаталогов одной командой, даже если они ещё не существуют. Подробнее о том как создать папку читайте в отдельной статье.

6. file

Команда file показывает тип файла. В Linux файлы не обязаны всегда иметь расширения для того, чтобы с ними работать. Поэтому пользователю иногда трудно определить, что за файл перед ним. Эта маленькая утилита решает проблему.

7. cp

Копирование файлов и каталогов. Она не копирует каталоги по умолчанию рекурсивно (то есть все поддиректории и все файлы в поддиректориях), поэтому не забудьте добавить опцию -r (Recursive) или -a (Archive). Последняя включает режим сохранения атрибутов, владельца и временного штампа в дополнение к рекурсивному копированию.

8. mv

Перемещение или переименование файлов и каталогов. Примечательно, что в Linux это одна и та же операция. Переименование — это перемещение файла в ту же папку с другим именем. Подробнее — здесь.

9. rm

Удаляет файлы и папки. Очень полезная команда Linux: с её помощью вы можете убрать весь беспорядок. Если нужно рекурсивное удаление, используйте опцию -r.

Однако будьте осторожны: конечно, для того чтобы повредить систему вам нужно будет серьёзно постараться, однако можно удалить собственные важные файлы. Rm удаляет файлы не в корзину, из которой потом всё можно будет восстановить, а полностью стирает.

Действия оператора rm необратимы. Поверьте, ваши оправдания в духе «rm съела мою курсовую» никому не будут интересны. Подробнее в этой статье.

 10. ln

Создает жёсткие или символические ссылки на файлы. Символические или программные ссылки — это что-то похожее на ярлыки в Windows. Они предоставляют удобный способ доступа к определённому файлу. Символические ссылки указывают на файл, но не имеют никаких метаданных. Жёсткие ссылки, в отличие от символических, указывают на физический адрес области диска, где хранятся данные файла.

11. chmod

Изменяет права доступа к файлу. Это чтение, запись и выполнение. Каждый пользователь может изменять права для своих файлов.

12. chown

Изменяет владельца файла. Только суперпользователь может изменять владельцев. Для рекурсивного изменения используйте опцию -R.

13. find

Поиск в файловой системе, файлах и папках. Это очень гибкая и мощная команда Linux не только из-за своих способностей ищейки, но и благодаря возможности выполнять произвольные команды для найденных файлов.

14. locate

В отличие от find, команда locate ведёт поиск в базе данных updatedb для шаблонов имён файлов. Эта база данных содержит снимок файловой системы, что позволяет искать очень быстро. Но этот поиск ненадёжен, потому что вы не можете быть уверены, что ничего не изменилось с момента последнего снимка. Подробнее — тут.

15. du

Показывает размер файла или каталога. Самые полезные опций: -h (Human), которая преобразует размеры файлов в легко читаемый формат, -s (Summarize), которая выводит минимум данных, и -d (Depth), устанавливающая глубину рекурсии по каталогам.

16. df

Анализатор дискового пространства. По умолчанию вывод достаточно подробный: перечислены все файловые системы, их размер, количество использованного и свободного пространства. Для удобства есть опция -h, делающая размеры легко читаемыми.

17. dd

Как сказано в официальном руководстве, это команда терминала для копирования и преобразования файлов. Не очень понятное описание, но это всё, что делает dd. Вы передаёте ей файл-источник, пункт назначения и пару дополнительных опций. Затем она делает копию одного файла в другой.

Вы можете задать точный размер данных, которые нужно записать или скопировать. Работает утилита со всеми устройствами. Например, если вы хотите перезаписать жёсткий диск нулями из /dev/zero, можете сделать это. Также она часто используется для создания LiveUSB или гибридных ISO образов.

18 mount / umount

Это команды консоли Linux для подключения и отключения файловых систем Linux. Можно подключать всё: от USB накопителей, до ISO образов. И только у суперпользователя есть права для этого.

Linux команды консоли для работы с текстом

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды.

Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less.

Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Утилита head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк.

Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от follow (следовать). Утилита постоянно выводит изменения в файле на экран.

Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

Grep, как и другие инструменты Linux, делает одно действие, но делает его хорошо: она ищет текст по шаблону. По умолчанию она принимает стандартный ввод, но вы можете искать в файлах.

Шаблон может быть строкой или регулярным выражением. Она может вывести как совпадающие, так и не совпадающие строки и их контекст.

Каждый раз, когда вы выполняете команду, которая выдает очень много информации, не нужно анализировать всё вручную — пусть grep делает свою магию.

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (Numeric), по числовому значению, и -r (Reverse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

23. wc

Утилита командной строки Linux для подсчёта количества слов, строк, байт и символов. Подробнее тут.

24. diff

Показывает различия между двумя файлами в построчном сравнении. Причём выводятся только строки, в которых обнаружены отличия. Измененные строки отмечаются символом «с», удалнные — «d», а новые — «а». Подробнее — здесь.

Кстати, я подготовил ещё одну подробную статью, в которой описан именно просмотр содержимого текстового файла в Linux c помощью терминала.

Команды Linux для управления процессами

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill — достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах.

По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах.

Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.

27. top / htop

Обе команды похожи, обе отображают процессы и могут быть использованы как консольные системные мониторы. Я рекомендую установить htop, если в вашем дистрибутиве он не поставляется по умолчанию, так как это улучшенная версия top. Вы сможете не только просматривать, но и контролировать процессы через его интерактивный интерфейс.

28. time

Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.

Команды Linux окружения пользователя

29. su / sudo

Su и sudo — это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе.

Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы.

Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +»%j %V», выведет день в году и номер недели в формате ISO.

31. alias

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить. Здесь собрано несколько полезных алиасов.

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Команды Linux для управления пользователями

35. useradd / userdel / usermod

Эти команды консоли Linux позволяют вам добавлять, удалять и изменять учетные записи пользователей. Скорее всего, вы не будете использовать их очень часто. Особенно если это домашний компьютер, и вы являетесь единственным пользователем. Управлять пользователями можно и с помощью графического интерфейса, но лучше знать об этих командах на всякий случай.

36. passwd

Эта команда позволяет изменить пароль учетной записи пользователя. Как суперпользователь вы можете сбросить пароли всех пользователей, даже несмотря на то, что не можете их увидеть. Хорошая практика безопасности — менять пароль почаще.

Linux команды для просмотра документации

37. man / whatis

Команда man открывает руководство по определённой команде. Для всех основных команд Linux есть man страницы. Whatis показывает, какие разделы руководств есть для данной команды.

38. whereis

Показывает полный путь к исполняемому файлу программы. Также может показать путь к исходникам, если они есть в системе.

Читайте также:  Выполнение скриптов Python с помощью Shebang

Команды Linux для управления сетью

39. ip

Если список команд Linux для управления сетью вам кажется слишком коротким, скорее всего вы не знакомы с утилитой ip.

В пакете net-tools содержится множество других утилит: ipconfig, netstat и прочие устаревшие, вроде iproute2. Всё это заменяет одна утилита — ip.

Вы можете рассматривать её как швейцарский армейский нож для работы с сетью или как непонятную массу, но в любом случае за ней будущее. Просто смиритесь с этим.

40. ping

Ping — это ICMP ECHO_REQUEST дейтаграммы, но на самом деле это неважно. Важно то, что утилита ping может быть очень полезным диагностическим инструментом. Она поможет быстро проверить, подключены ли вы к маршрутизатору или к интернету, и дает кое-какое представление о качестве этой связи.

41. nethogs

Если у вас медленный интернет, то вам, наверное, было бы интересно знать, сколько трафика использует какая-либо программа в Linux или какая программа потребляет всю скорость. Теперь это можно сделать с помощью утилиты nethogs. Для того чтобы задать сетевой интерфейс используйте опцию -i.

42. traceroute

Это усовершенствованная версия ping. Мы можем увидеть не только полный маршрут сетевых пакетов, но и доступность узла, а также время доставки этих пакетов на каждый из узлов. Подробнее — тут.

Выводы

Мы рассмотрели основные команды Linux, которые могут пригодиться вам при повседневном использовании системы. Если вы считаете, что есть другие команды, которые нужно добавить в этот список, напишите в х!

Основные команды Linux терминала с примерами использования

Если вы когда-нибудь сталкивались с ОС Linux, вы наверняка слышали слово «терминал». Новички обычно воспринимают терминал как что-то страшное и зловещее. Но не все так страшно.

Моя бабушка называет любой терминал «терминатором», что добавляет антуража. На самом деле терминал (bash) — это всего лишь командная строка с гораздо более широким набором функций, если сравнивать с Windows. Почти любое действие можно выполнить командой из терминала, но далеко не любое действие можно выполнить через окружения пользователя.

В этом и заключается преимущество терминала Linux — по сути из него можно полностью управлять системой, без необходимости окружения пользователя (графического интерфейса).

На самом деле нередко серверы так и работают — черный экран, командная строка и все функции под рукой.

В статье команды будут сгруппированы по функциям, а не по частоте использования, это связано с удобством восприятия и понимания.

Статья рассчитана на новичков и написана таким же новичком, в этом нет ничего зазорного — все когда-то начинали с нуля. Любое сообщество существует только до тех пор, пока есть приток новых участников.

Список команд в данной статье не является полным списком команд Linux. Во-первых, команд слишком много, чтобы перечислять их все, во-вторых, новичкам они не нужны, а профессионалы уже помнят их наизусть. Однако, не стоит расстраиваться, если у вас не получается запомнить команды — запоминание приходит с практикой. Чем чаще вы пользуетесь теми или иными командами, тем скорее вы их запомните.

Доверьте нашим специалистам развертывание и поддержку баз данных в облаке.

Если вы проигнорировали введение, напомним, что команды в статье сгруппированы по исполняемой ими функции. Что может быть более необходимым для новичка, чем функция справки?

Самая первая команда Linux для начинающих — manual — для получения полной справочной информации по другой команде.

Некоторые пользователи настаивают, что искать в интернете информацию по команде проще и эффективнее.

Однако, информация в интернете не всегда является верной, статья в интернете может быть устаревшей, не релевантной для вашей версии ОС и т.д. Использовать man всегда хорошая идея.

Чтобы получить справку по команде, введите перед ней man. Например, man man выдаст руководство по команде man. Также можно вывести мануал терминала Linux (man bash):

BASH(1) General Commands Manual BASH(1)

NAME

bash — GNU Bourne-Again SHell

SYNOPSIS

bash [options] [command_string | file]

COPYRIGHT

Bash is Copyright (C) 1989-2018 by the Free Software Foundation, Inc.

DESCRIPTION

Bash is an sh-compatible command language interpreter that executes commands read from the
standard input or from a file. Bash also incorporates useful features from the Korn and C
shells (ksh and csh).

Bash is intended to be a conformant implementation of the Shell and Utilities portion of the
IEEE POSIX specification (IEEE Standard 1003.1). Bash can be configured to be POSIX-confor‐
mant by default.

OPTIONS

All of the single-character shell options documented in the description of the set builtin
command, including -o, can be used as options when the shell is invoked. In addition, bash
interprets the following options when it is invoked:

-c If the -c option is present, then commands are read from the first non-option argu‐
ment command_string. If there are arguments after the command_string, the first ar‐
gument is assigned to $0 and any remaining arguments are assigned to the positional

Не у каждой команды имеется свое полноценное руководство и не всегда оно требуется. В таких случаях помогает help, которая выводит краткую справку.

history: history [-c] [-d смещение] [n] или history -anrw [файл] или history -ps аргумент [аргумент…]

Display or manipulate the history list.

Display the history list with line numbers, prefixing each modified
entry with a `*'. An argument of N lists only the last N entries.

Options:

-c clear the history list by deleting all of the entries
-d offset delete the history entry at position OFFSET. Negative
offsets count back from the end of the history list

-a append history lines from this session to the history file
-n read all history lines not already read from the history file
and append them to the history list
-r read the history file and append the contents to the history
list
-w write the current history to the history file

-p perform history expansion on each ARG and display the result
without storing it in the history list
-s append the ARGs to the history list as a single entry

If FILENAME is given, it is used as the history file. Otherwise,
if HISTFILE has a value, that is used, else ~/.bash_history.

If the HISTTIMEFORMAT variable is set and not null, its value is used
as a format string for strftime(3) to print the time stamp associated

Похожий вариант — вывод справки через специальные ключи — -h или —help.

Командная строка Linux может предложить вам доступные варианты завершения команды. Например, если вы хотите узнать, куда можно перейти из текущей папки, наберите cd, затем дважды нажмите Tab. Если хотите узнать, какие папки начинаются с символа точки, введите cd . и завершите двойным нажатием Tab. Работает с любой командой, но только в современных оболочках — bash и zsh.

debtop@DebTop:~$ cd

.aptitude/ .gnupg/ .mozilla/ Видео/ Изображения/ Рабочий стол/

.cache/ .kde/ .pki/ Документы/ Музыка/ Шаблоны/

.config/ .local/ snap/ Загрузки/ Общедоступные/

debtop@DebTop:~$ cd .

./ .aptitude/ .config/ .kde/ .mozilla/
../ .cache/ .gnupg/ .local/ .pki/

Если вы задумывались об установке Linux или уже использовали эту ОС, вы должны были знать, что существует несколько дистрибутивов. В зависимости от дистрибутива команды могут отличаться, поэтому полезно иметь возможность узнать, какой именно дистрибутив на этой машине.

Это можно сделать и через информацию о системе, из графического интерфейса окружения пользователя, но наша статья о терминале. Команда cat /etc/*-release (без пробелов) покажет вам основную информацию о дистрибутиве — имя, версия, и т.д.

Аналогами в данном случае будут являться lsb_release -a, которая выведет почти ту же информацию, а lsb_release -i напишет ID дистрибутива.

debtop@DebTop:~$ cat /etc/*-release

PRETTY_NAME=»Debian GNU/Linux 10 (buster)»

NAME=»Debian GNU/Linux»

VERSION_ID=»10″

VERSION=»10 (buster)»

VERSION_CODENAME=buster

ID=debian

HOME_URL=»https://www.debian.org/»

SUPPORT_URL=»https://www.debian.org/support»

BUG_REPORT_URL=»https://bugs.debian.org/»

debtop@DebTop:~$ lsb_release -a

No LSB modules are available.

Distributor ID: Debian

Description: Debian GNU/Linux 10 (buster)

Release: 10

Codename: buster

debtop@DebTop:~$ lsb_release -i

Distributor ID: Debian

Терминал Linux позволяет работать от имени любого пользователя, но не всегда удается удержать в памяти текущего пользователя. Чтобы вспомнить текущего пользователя, существует простая команда whoami.

debtop@DebTop:~$ whoami

desktop

Команда Linux терминала whatis дает краткое описание любой установленной программы.

debtop@DebTop:~$ whatis nano
nano (1) — Nano's ANOther editor, an enhanced free Pico clone

debtop@DebTop:~$ whatis apt
apt (8) — command-line interface

debtop@DebTop:~$ whatis krita
krita: ничего подходящего не найдено.

Очевидно, что, если программа не установлена, то получить ее описание не получится.

Допустим, вы нашли нужную программу, но хотите попасть в ее директорию. Узнать директорию программы поможет whereis, показывающая полный путь к исполняемому файлу программы.

debtop@DebTop:~$ whereis bash

bash: /usr/bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

Эти команды покажут DNS-домен и IP-адрес вашего компьютера.

debtop@DebTop:~$ hostname
DebTop

debtop@DebTop:~$ hostname -i
127.0.1.1

debtop@DebTop:~$ ifconfig
bash: ifconfig: команда не найдена

В некоторых версиях дистрибутивов Linux поддерживается команда ifconfig, которая также выводит текущий IP, но она работает не всегда.

Взамен устаревшей ifconfig современные дистрибутивы отзываются на ip a[ddress], которая выведет на экран настройки сети и позволяет их редактировать.

Команда является частью пакета утилит для настройки параметров сетевых устройств — iproute2. Команды из набора iproute2 пригодятся системным администраторам или тем, кто хочет создать доменную сеть дома.

debtop@DebTop:~$ ip a

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

2: enp4s0: mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1
000
link/ether b4:b5:2f:7f:fe:eb brd ff:ff:ff:ff:ff:ff

3: wlo1: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a4:17:31:2a:bc:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.195/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
valid_lft 85273sec preferred_lft 85273sec
inet6 fe80::3f0f:a837:e4c0:e52d/64 scope link noprefixroute
valid_lft forever preferred_lft forever

debtop@DebTop:~$ ip

Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename

where OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
vrf | sr }

OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec | -j[son] | -p[retty] |
-f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
-4 | -6 | -I | -D | -M | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}

Ping используют для поиска неисправностей, тестирования и диагностики сетевых соединений. Команда отправляет сообщение на указанный IP адрес и ждет ответ. Когда пакет адресат получает пакет, он отправляет ответ. Таким образом можно определить задержку сообщений или потерю пакетов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *