Cmd- и bash-скрипты
Мощь командной строки заключается в том, что если нам надо выполнить последовательность каких-то команд, то не требуется каждый раз вводить их вручную. Вместо этого, можно поместить их в файл (скрипт) и запустить этот файл. То есть, мы можем написать что-то вроде программы, составленной из отдельных команд.
Архивация
С помощью программы gzip/gunzip можно сжимать файлы. По умолчанию она берет данные, поступающие на стандартный вход, сжимает и выдает на выход. Степень сжатия задается параметрами от -1 (минимальная) до -9 (максимальная).
- сжать файл на диске:
cat file.txt | gzip -9 > file.txt.gz - разжать файл и вывести на экран:
cat file.txt.gz | gunzip - выполнить команду, сжать и сохранить в файл ее результат:
команда | gzip -9 > file.txt.gz
Больше информации
Используй ключи –help и /?
Гугли мануал по командной строке windows/linux в интернете.
Больше команд — linux
Попрактиковаться в линукс в командной строке можно на таких командах:
Больше команд – windows
Попрактиковаться в командной строке в Windows можно так:
Подробнее о работе команд можно узнать с помощью параметра /?, дописанного после команды.
В linux и mac
В linux (и mac) любой текстовый файл можно сделать исполняемым, если поставить ему флаг execute (признак, что файл исполняемый) командой chmod x file.xyz и в первой строке файла указать специальную конструкцию под названием shebang (#!), за которой указан полный путь к программе-интерпретатору.
И этот файл станет исполняемым, мы сможем запускать его, просто написав его имя:
Если в качестве интерпретатора прописать путь к оболочке bash, то получится bash-скрипт. В нем указываются команды, которые надо выполнить, каждая на новой строчке, например:
В windows
В Windows скрипты для командной строки (пакетные скрипты) должны иметь расширение .bat или .cmd. В них пишутся команды, которые надо выполнить, каждая на новой строке, например:
Виды команд
Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.
Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:
Использование буфера обмена.
Текст, выделенный в окне приложения, можно скопировать в буфер обмена, а также вставить его из буфера обмена в поле ввода. При стандартных настройках командной строки для выделения текста используется пункт ”Пометить” контекстного меню, вызываемого правой кнопкой мышки. При желании, в свойствах ярлыка, с помощью которого выполняется запуск можно включить режим выделения мышью:
В режиме выделения мышью, контекстное меню не используется, а текст выделяется с использованием левой кнопки мышки. Копирование и вставка выполняется при нажатии правой кнопки мышки.
При включенном режиме ”Разрешить сочетания клавиш с CONTROL”, можно использовать стандартные сочетания клавиш:
– CTRL C (CTRL Insert) – скопировать выделенный текст.
– CTRL V (Shift Insert) – вставить выделенный текст.
Использование истории команд и горячих клавиш.
Для вызова ранее введенных команд используются клавиши со стрелками Стрелка Вверх – на одну команду назад и Стрелка Вниз – на одну команду вперед. Кроме того, можно использовать функциональные клавиши:
F1 – посимвольный вызов последней введенной команды. Каждое нажатие F1 приводит к последовательной подстановке в поле ввода одного символа из предыдущей команды.
Как вставить в командную строку
Командная строка используется для выполнения различных команд, вводимых с клавиатуры. Она обеспечивает связь между пользователем и операционной системой. Чтобы вставить нужный текст в командную строку, пользователю, возможно, придется изменить своим привычкам.
Инструкция
Как выделить в командной строке?
Июнь 5, 2022 | комментариев: 0
Несомненно удобство копирования с последующая вставка чего-либо из документа или файла отрицать никто не будет. Но как это сделать в командной строке операционной системы Windows. Обычное сочетание клавиш Ctr V в командной строке работать не будет. Набирать вручную — большой шанс возникновения ошибок, опечаток. Но способ все таки есть:
- Откройте командную строку (для тех кто забыл: ПУСК-Выполнить — набираем cmd и нажимаем Enter или OK)
- Нажмите на иконку в верхнем левом углу окна командной строки

- В открывшемся меню выберите пункт «Свойства»
- В открывшемся диалоговом окне выберите вкладку “Общие” (Options), а затем установите галочку на “Выделение мышью”(Mode QuickEdit)

Теперь, когда вы захотите вставить текст в командной строке, скопируйте его в буфер обмена обычным способом, а затем щелкните правой кнопкой мыши на нужном месте в командной строке.Скопированный текст будет вставлен. Этот совет относится к Windows XP, Vista, 7, 8.
Как попасть в командную строку?
- Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
- Windows7: Пуск — набрать cmd – нажать [enter]
- MacOS: Запустить приложение Терминал (его можно найти поиском в той штуке которая справа вверху экрана)
- Ubuntu: Запустить приложение Терминал или нажать Alt Ctrl F1 (вернуться назад в графический режим – Alt Ctrl F7)
- Другие дистрибутивы Linux: если ты линуксоид, ты и так знаешь
Как скопировать текст в командную строку cmd в windows 10 — 2 способ
Для большего удобства пользователь может использовать другой вариант без применения «горячих» клавиш.
Проделайте следующее:
- Скопируйте команду в источнике информации.
- В окне командной строки щелкните правой кнопкой мыши в месте, предназначенном для ввода данной команды.
- Скопированная команда появится в окне интерпретатора командной строки.
Клавиши, работающие во всех операционных системах
↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.
[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько). [ctrl c] — прерывает выполнение команды, например, если она долго тупитВажно: клавиша Esc, как и многие привычные клавиши, не работает в командной строке. Клавиши Ctrl C, V, X обычно не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift Ins). Клавиша Ctrl Q не работает как «выход».
Команды для работы с сетью интернет
В линукс: показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у
тебя в PATH нет /sbin)
В Windows показать информацию о сети: ipconfig
Команды и оболочка
Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:
Настройка командной строки.
Стандартное окно командной строки – это окно с символами белого цвета на черном фоне. Параметры шрифтов, цвет и фон символов, использование буфера обмена и прочие свойства командной строки можно изменить в соответствии со своими предпочтениями. Настройки можно выполнить изменяя свойства ярлыка, с помощью которого выполняется запуск приложения командной строки, либо правкой параметров реестра, относящихся к командному процессору.
Страница, посвященная настройкам командного процессора CMD
Работа в командной строке предполагает ввод данных с клавиатуры, при чем, иногда довольно большого объема. Этот объем можно значительно сократить, используя некоторые приемы:
Особенности windows
По умолчанию в Windows в консоли очень маленький и нечитаемый шрифт. Нажми правой кнопкой мыши на заголовок, зайди в настройки и поставь нормальный размер шрифта.
Пути к файлу в Windows используют бекслеш (например d:tmpfile.txt), а регистр букв в них не имеет значения.
Особенности линукса и мака
В линуксе и маке, [ctrl l] очищает экран, [ctrl k] и [ctrl u] удаляют все перед или после курсора, [ctrl w] удаляет слово перед курсором, [ctrl r] делает поиск по истории команд (для отмены поиска нажми [ctrl c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl d] завершает работу и закрывает консоль.
Еще в линуксе и маке иногда не работают Home и End, используй [ctrl a], чтобы перейти в начало строки и [ctrl e], чтобы в конец. [alt b] (back) и [alt f] (forward) двигают курсор на 1 слово назад/вперед.
В линуксовой и маковской файловой системе нет букв дисков. Пути к файлам там начинаются из единого корня, и используют прямой слеш (например /home/ivan/file.txt), а дополнительные диски (например USB-носители) монтируются в одну из папок внутри файловой системы (например /mnt/flash). В линуксе регистр букв в имени файла имеет значение.
Очистка экрана
В linux — команда clear или клавиша [ctrl L], в windows — команда cls (clear screen).
Пакетный менеджер в дебиан/убунту
Линуксоиды — суровые занятые люди и меньше всего им хочется ради установки программы что-то искать, скачивать, проверять на вирусы, запускать, жать далее, обнаружить что надо сначала поставить NET framework и так далее, а потом отвечать на вопросы типа «Не хотите ли проверить обновления?».
Пейджер
Если команда выводит очень много данных, удобно направить ее вывод в программу-пейджер less. Она позволяет прокручивать результат стрелками, искать по регулярке командой / (n — перейти к следующему результату). Для выхода жми q, escape не работает. Во как направить вывод в less:
ls | less
Если надо туда же направить и поток ошибок то пиши так:
ls 2>&1 | less
Переменные окружения
Некоторые настройки хранятся в переменных окружения. Например, путь к домашнему каталогу хранится в $HOME и вывести ее можно так:
Перенаправления
Эти потоки можно легко перенаправить в файл или даже другую программу (для чего они и придуманы). Вот как можно перенаправить стандартный ввод, чтобы команда читала данные не с клавиатуры а из файла:
команда < file.txt
Пайп (вертикальная черта) позволяет перенаправить выход одной программы на вход другой. Программа ls выводит список файлов в каталоге. Программа head -10 читает строки с стандартного ввода и выводит только первые 10 из них. Объединив эти команды, можно вывести имена первых 10 файлов:
ls | head -10
В линуксе есть и другие команды фильтры, которые можно применять вместе с пайпом. Это sort (сортирует результаты и позволяет удалять дубликаты), grep слово (отбирает строки, в которых встречается заданное слово), head -N (выводит первые N строк), tail -N (выводит последние N строк) и другие.
Перенаправить стандартный вывод в файл можно так:
ls > file.txt
В этом случае результат работы ls запишется в файл. При этом поток ошибок останется неперенаправленным и они будут выводиться в консоль — именно для этого эти потоки разделены.
Перенаправить поток ошибок в файл можно так:
команда 2> file.txt
Перенаправить и вывод, и ошибки в файл можно так:
команда 2>&1 > file.txt
Когда вывод перенаправлен в файл, ты не видишь ничего в консоли. Для борьбы с этим есть команда tee, которая расщепляет поток: одна копия идет в файл. другая выводится в консоль:
команда 2>&1 | tee file.txt
Команда tee по умолчанию при запуске очищает файл, если там что-то было, можно добавить параметр -a, чтобы она этого не делала, а дописывала строки в конец файла.
Подсказка и получение помощи
Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр (–help или /?):
В линукс: ls –help — выведет справку по команде ls
В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q,
для прокрутки используй стрелки и PgUp/PgDn). Также, man bash можно набирать в поисковой системе (Гугл, Яндекс) – скорее всего она покажет ссылку на тот же самый мануал.
Потоки и перенаправления.
В мире Линукс (да и в Windows тоже) у каждой программы обычно есть 3 потока (они имеют номера):
#0 – стандартный ввод — это поток из которого программа читает данные. По умолчанию в него поступает то, что ты набираешь на клавиатуре в консоли. Т.е. по умолчанию программы читают данные с клавиатуры.
#1 — стандартный вывод. В этот поток программа выводит результат работы, по умолчанию он подключен к консоли (т.е. результаты пишутся в консоль). Например, команда ls выводит список файлов в текущем каталоге на стандартный вывод
#2 — поток ошибок. Сюда правильно написанная программа пишет сообщения об ошибках, о ходе выполнения задачи. Для них специально предусмотрен отдельный поток (чтобы при сохранении результатов работы в файл в него не записывались сообщения о ходе работы), но по умолчанию так же как и #1 он подключен к консоли.
Программы-фильтры
Все эти программы берут данные со стандартного ввода, обрабатывают и выдают результат на выход. Они предназначены для совместного использования с перенаправлением потоков ввода/вывода.
grep,egrep– отбирает только строки, соответствующие (или не соответствующие) регулярномуsort– сортирует поданные на вход строкиcat -n– нумерует поданные на вход строкиhead,tail– берут первые или последние строкиtac– читает строки с входа, переворачивает их и выдает в обратном порядкеtr– заменяет указанные символыsed– позволяет делать более сложные замены, напримерsed -rn 's!value=(d )!1n!gp'найдет во входном тексте строки вида value=123, выделит из них числа и выведет их каждое на своей строкеgzip/gunzip– архивируют/разархивируют данныеwc– считает число строк, слов и символов во входном файлеcut– разбивает каждую строку на куски по символу-разделителю и вырезает указанные куски
Подробнее:
Прогресс
Если установить команду pv то можно выводить шкалу прогресса. Допустим мы подаем огромный файл на вход команды и хотим следить сколько байт уже передано. Команда pv перекачивает данные со своего входа на выход, при этом считая их и выводя полоску прогресса:
cat file.txt | pv | другая команда
Продвинутые возможности командной строки линукса
Этот раздел читать необязательно, но если ты хочешь знать больше, то пожалуйста.
- версию php можно узнать либо добавив ключ –version, либо -v:
php --version - список установленных модулей:
php -m - вывести конфигурацию (список текущих настроек) PHP:
php -i
Просмотр логов
sudo less /var/log/apache2/error.logsudo tail /var/log/messages
Отслеживать лог в реальном времени (попробуй): sudo tail -f /var/log/error.log
Поиск в логе через grep:
cat /var/log/messages | grep -i word
Для доступа к логам не нужны будут права админа если ты добавишь себя в группу adm.
Управление службами (апач. mysql): sudo service mysql действие
Где действие — это:
- start = запустить
- stop = остановить
- restart = перезапустить
- reload = обновить настройки из конфига (если ты его правил например) без остановки работы службы. То есть сайт ни на секунду не перестанет работать (в случае с restart — перестанет на несколько секунд). Не все службы это умеют, но если умеют то это удобно.
Выбор какие службы будут запускаться при загрузке: sudo sysc-rc-conf, для выхода жми q.
Работаем с буфером обмена из командой строки | windows для системных администраторов
Несмотря на свой внешнюю убогость и архаизм, командная строка остается, безусловно, важным и мощным инструментом в арсенале администратора Windows. Однако для начинающих пользователей использование командной строки может вызывать ряд затруднений, особенно если необходимо выполнить некую команду, отображающую текущие настройки системы и передать результаты ее выполнения в службу технической поддержки через онлайн чат, форум или другую программу. Специалистам техподдержки в этом случае приходится подробно объяснять пользователю как скопировать информацию из командной строки в буфер обмена. Обычно они рекомендуют такой способ: перенаправить вывод команды в текстовый файл (оператор > textfilename.txt ), открыть его в текстовом редакторе и скопировать его содержимое в буфер обмена.
К счастью всю эту процедуру можно упростить, работая с буфером обмена напрямую из командной строки. Малоизвестным фактом является наличие в Windows специальной утилиты CLIP, позволяющей взаимодействовать с буфером обмена ОС. Эта утилита входит в состав ОС Microsoft еще начиная с Windows 2003 (в Windows XP ее нет).
Рассмотрим несколько типовых примеров взаимодействия с буфером обмена Windows из командной строки:
- Вывод информации из консоли в буфер обмена. Перенаправить вывод команды (например, ipconfig) из консоли cmd в буфер обмена (скопировать все, что вернет команда в буфер) можно командой:
ipconfig | clip

- Копируем содержимое файла в буфер обмена. Скопировать содержимое любого текстового файла в буфер обмена можно командой
clip < text_file.txt
- Очистка буфера обмена. Предположим, что при оперировании конфиденциальной информацией (пароли, номера счетов, кредиток, паспортные данные) крайне желательно регулярно очищать буфер обмена. Сделать это можно, создав ярлык «Очистить буфер обмена» или создав задание планировщика, которые бы вызывали команду
cmd /c echo off | clip
Список файлов
Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе (ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).
Посмотреть права на файл в Линукс можно либо командой ls -l, либо stat file.txt
Способ 1
Добраться до буфера обмена можно с помощью .Net класса Clipboard. Для того, чтобы этот класс стал доступен, сначала загрузим сборку:
Add-Type -AssemblyName PresentationCore
После чего выведем статические методы класса командой:
[Windows.Clipboard] | Get-Member -StaticНазвания методов интуитивно понятны, например set — добавить в буфер, get — получить из буфера и т.п. Для примера поместим в буфер обмена текст:
[Windows.Clipboard]::SetText(″Hello″)Затем считаем текст из буфера:
[Windows.Clipboard]::GetText()И очистим буфер:
[Windows.Clipboard]::Clear()Буфер может содержать не только текст, но и некоторые другие типы данных (изображения, аудио и списки файлов). В качестве примера добавим в буфер список файлов (filedroplist), а затем посмотрим результат:
$files = Get-ChildItem C:files[Windows.Clipboard]::SetFileDropList($files)[Windows.Clipboard]::GetFileDropList()
При необходимости можно уточнить, какой именно тип данных содержится в буфере. Например добавим в него текст:
[Windows.Clipboard]::SetText(″Hello″)И проверим, содержит ли буфер текстовые данные или список файлов:
[Windows.Clipboard]::ContainsText()[Windows.Clipboard]::ContainsFileDropList()Первая команда вернет True, вторая — False, т.е. в буфере находится именно текст.
Способ 2
В пятой версии PowerShell для работы с буфером обмена появились специальные командлеты Get-Clipboard и Set-Clipboard. Работать с ними гораздо проще и удобнее, например добавим в буфер текст и затем считаем его:
Set-Clipboard -Value ″Hello″Get-Clipboard
Еще одна полезная фича новых командлетов — это возможность добавить данные в буфер, не затирая уже имеющиеся. Для добавления используется Set-Clipboard с ключом Append. Для примера добавим еще текст и затем проверим содержимое буфера:
Set-Clipboard -Value ″World″ -Append
Если в буфере находятся не простой текст, то при получении содержимого необходимо указывать тип данных. Например добавим в буфер список файлов и выведем его:
Set-Clipboard -Path C:files*Get-Clipboard -Format FileDropList
Способ 3
Еще можно работать с буфером обмена через методы COM-объекта HtmlFile. Этот cпособ не самый прямой, но вполне рабочий. Для начала создаем новый объект:
$clipboard = New-Object -ComObject ″htmlfile″
Затем помещаем данные в переменную:
$data = ″Hello″
С помощью метода setData добавляем данные в буфер:
$clipboard.parentWindow.clipboardData.setData(″text″,$data)
А с помощью метода getData получаем его содержимое:
$clipboard.parentWindow.clipboardData.getData(″text″)
Способ 4
Ну и напоследок старая добрая утилита командной строки clip.exe. С ее помощью можно поместить данные в буфер, например передав их по конвейеру:
″Hello″ | clip
Получить обратно из буфера данные утилита не умеет, для этого придется воспользоваться одним из описанных выше методов.
Сравнение файлов
Команда diff file1 file2 сравнивает 2 файла и выдает список различий в них. Она также умеет сравнивать папки с вложенными в них файлами рекурсивно.
Текущий каталог
В командной строке результат выполнения команд часто зависит от того, в каком каталоге и на каком диске ты находишься. Также, когда ты указываешь в команде относительное имя файла (без полного пути и имени диска), оно ищется в текущем каталоге.
Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)
Чтобы перейти в другой каталог, в линуксе используют команду cd:
В Windows, сначала надо перейти на нужный диск командой c:, d:, e: и так далее. Потом использовать cd или chdir:
Чем править конфиги
Удобно использовать редактор nano, который часто предустановлен в линуксе. Горячие клавиши в нем подписаны внизу экрана.
Перенаправление данных стандартного ввода /вывода консоли.
Как уже упоминалось, в качестве стандартного устройства ввода командной строки используется клавиатура, а в качестве устройства вывода – дисплей. Однако, существует возможность перенаправления ввода-вывода на другие устройства c использованием операторов перенаправления:


