Открываем имеющуюся папку
Чтобы открыть папку, в командной строке необходимо указать путь к ней. Вначале вписываете команду «cd», а затем после пробела адрес, например, “C:\ProgramFiles\Skype”.

Учтите: если в названиях, входящих в адрес, есть пробелы, весь путь надо заключить в кавычки. Если названия не содержат пробелов, можно кавычки не пропечатывать при этой команде.
Слэш можно применять как прямой, так обратный (\ и /). Оба они читаются программой одинаково, выбирайте удобный, привычный для вас.
Если вы не уверены в точном названии, нажмите TAB, затем стрелки вверх/вниз для прокрутки списка. Предположим, что у вас есть папки «helloYou» и «helloMe», расположены они в «C:\». Введите команду «C:\>cd h», потом дважды нажмите TAB, так вы прокрутите список компонентов, начинающихся на букву «h».
Просмотр содержимого
Чтобы через командную строку увидеть содержимое какой-либо папки, набирается команда «dir», после которой вписывается путь к ней, затем параметры.
Если путь не указать, то на экране выведется список содержимого, где находитесь в это время.

Если не введёте параметры, список будет представлен с пятью столбцами:
- дата последнего изменения;
- дата каталога;
- если название в списке относится к папке, будет стоять <DIR>; если это другой формат, будет пустое место;
- вес файла/папки;
- количество документов в каталоге, их суммарный вес.
Чтобы избежать детализации, введите команду с параметром «/d» — увидите просто список без дополнительной информации.
Вызов командной строки
Есть несколько приёмов, которые помогут вам начать работу с командной строкой. Открыть её можно следующим образом:
- Найдите в системной папке C:\Windows\System32 файл cmd.exe, кликните по нему дважды.
- В версиях WindowsXP и выше нажмите вместе клавиши Win+R. Откроется системное окно «Выполнить». В строчке наберите cmd, подтвердите действие, нажав ОК.
- В Win7, чтобы открыть программу, зайдите в «Пуск» — «Все программы», там найдите «Стандартные», нажав на папку для просмотра, увидите значок с подписью для запуска программы.
- В Win7, 10 в «Пуске» впишите внизу в строке поиска («Найти программы и файлы») впишите «командная строка», система покажет программу. В Win8 поиск находится в боковом меню.

Создание
Чтобы появилась новая папка, набирается «mkdir», можно сокращённо просто «md». Далее записывается путь к ней, название. Например, в корне диска C вам нужно в имеющемся «Test» создать подпапку «Russian», значит, набираете последовательно «mkdir “C:\Test\Russian ”».

Можно сразу создать несколько новых папок, укажите пути тогда через пробел либо названия. Допустим, в той же «Test» требуются подпапки 1, 2, 3. Если вы уже находитесь в корне C-диска, наберите «mkdir “Test \1” “Test \2” “Test \3”». Если вы находитесь уже в «Test», можно применять сокращённый вариант команды: «mkdir 1 2 3». Но не забудьте: при наличии пробелов в названиях, их нужно будет заключить в кавычки.
Создание архива, имя которого содержит дату и время.
Решим следующую задачу – нужно создать архив файлов, находящихся в каталоге
C:\Program Files\FAR. Имя архивного файла должно состоять из текущего времени
(часы.минуты.секунды – ЧЧ.ММ.СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты
(день.месяц.год – ДД.ММ.ГГГГ). Для архивирования будем использовать архиватор RAR.
Формат запуска для создания архива:
RAR a -r < путь и имя архива > < Путь и имя архивируемых данных >
a – команда создания архива.
-r – ключ, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).
Таким образом, для решения задачи нужно правильно создать имена и пути для RAR. Для чего
воспользуемся следующими исходными данными:
Причина в том, что при создании командных файлов вы
использовали текстовый редактор, в котором русские символы представлены
не в DOS-кодировке. Если в приведенном выше примере перезапуска службы “DNS-клиент”
вы используете неверную кодировку, то русская часть имени службы не будет опознана
из-за неверной кодировки и будет выдано сообщение, что указанная служба не
установлена. Чтобы избежать проблем с русскими символами в командных файлах,
используйте редактор с поддержкой DOS-кодировки, например, встроенный редактор
файлового менеджера Far Manager. Переключение между кодировками в редакторе осуществляется нажатием F8 . С помощью FAR можно легко осуществлять перекодировку, скопировав (вырезав) текст в буфер обмена, затем
нажав F8 и вставив текст из буфера.
Навигация
После подключения к серверу вы оказываетесь в домашней папке пользователя. Чтобы узнать точный путь к вашему текущему местонахождению, воспользуйтесь командой:
pwd
Она выведет текущую рабочую директорию (print working directory).
Если вам нужно перейти в другую папку, для этого используется команда cd (change directory) с указанием пути к нужной вам папке:
cd /home
Говоря о навигации, нельзя не упомянуть сокращения для обозначения некоторых директорий:
Для навигации с помощью команды cd есть два формата указания пути к нужной папке: абсолютный и относительный.
Абсолютный путь — это полный путь от корневой папки сервера «/». Например, вот такой:
/var/www/data/username/data/www/example.com/
Также к абсолютным относятся пути, в которых используется ~ — указание на домашнюю папку текущего пользователя. Например, при доступе к файлу ~/.bash_profile он всегда будет открываться из одного и того же места: вместо ~ будет использоваться значение переменной окружения $HOME, которое не меняется.
Относительный путь — это неполный путь. Он указывается относительно какого-то объекта: например, текущей рабочей директории. То есть в начале отсутствует символ корневой папки «/».
./docs/files/file.txt file.txt
Также относительные пути используются, когда нужно выполнить операцию над файлом или папкой в директории, в которой мы сейчас работаем. Для выполнения команды достаточно указать имя файла или папки — система поймёт, что мы имеем в виду файл из текущего каталога.
Чтобы отобразить список содержимого папки, можно использовать команду ls (list). Если дополнить её ключами -al, она покажет типы данных, разрешения и скрытые файлы. Следующий пример покажет названия файлов и папок текущей рабочей папки:
ls
А этот выведет в терминал подробный список содержимого папки /etc:
ls -al /etc
Чтобы немного упростить себе жизнь, можно использовать консольные файловые менеджеры, например, mc.
Ubuntu и Debian:
apt -y install mc
yum -y install mc
Его особенность — примитивный графический интерфейс. Он позволяет быстро ориентироваться в структуре каталогов, перемещаться между ними, создавать новые директории. Интерфейс разбит на два окна, между которыми вы можете перемещать файлы и папки. Помимо прочего, в нём можно работать и с помощью мыши — перемещаться двойным кликом по папкам, использовать кнопки в нижней части панели.
Копирование
Саму папку формально копировать нельзя, но разрешается скопировать содержимое её, для чего служит команда «xcopy». После неё вписываются параметры, затем адрес копируемого каталога, затем после пробела адрес нового каталога.
Допустим, имеется папка «Foto», понадобилось её скопировать вместе с содержимым из «MyFile» в «NB». Записываем команду так: «xcopy /e “C:\MyFile\Foto” “C:\NB\Foto”». Ключ «/e» даёт команду скопировать внутреннее содержимое «Foto».
Работа с командной строкой не требует специальных навыков, начинающий пользователь быстро освоит все процессы при желании, научится перемещать, переименовывать, сможете открыть, создать, скопировать, удалить любой файл либо каталог, перейти из одного места в другое. Функция такая полезна, умение обращаться с программойоблегчит, ускорит многие действия при работе на ПК. Нужно лишь запомнить, сохранить набор команд, внимательно вписывать адрес компонента, с которым будут проводиться разные действия.
Переименование, перемещение и копирование файлов и папок
Скопировать файл в терминале можно с помощью команды:
cp [что копируем] [куда копируем]
C её помощью можно, к примеру, создать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию конфигурационного файла nginx.conf
cp nginx.conf nginx.conf.copy
Папки копируются аналогично. При необходимости скопировать каталог со всем содержимым (рекурсивно) можно добавить к команде ключ -r:
cp -r /docs /files
Здесь мы создаём копию папки docs со всем её содержимым с именем files.
Переместить или переименовать файл также просто:
mv [что переместить/переименовать] [куда переместить/как назвать]
Например, следующая команда переместит файл file.txt в папку new:
mv file.txt docs/new
Переименовать файл не сложнее:
mv /docs/new/file.txt /docs/new/todolist.txt
В этом примере файл file.txt переименовывается в todolist.txt
Аналогично можно перемещать и переименовывать директории.
Теперь, когда вы можете перемещаться по серверу и работать с файлами и папками, самое время познакомиться с файловой структурой Linux-систем.
Структура каталогов Linux
Работа с папками
mkdir /home/user/new
Если нужно создать сразу несколько вложенных папок, можно использовать параметр -p. В таком случае все несуществующие директории, указанные в пути, будут созданы автоматически. Представим, что нам нужно создать вложенные папки docs/photos/2020-08-17 в текущей директории — это будет выглядеть так:
mkdir -p docs/photos/2020-08-17
Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:
mkdir docs pictures games
Удалить папку можно с помощью команды rmdir с указанием пути. Папка будет удалена только в случае, если она пуста (можно использовать параметр --ignore-fail-on-non-empty, чтобы удалить папку в любом случае). Для удаления нескольких вложенных папок можно аналогично использовать параметр -p. Пример ниже удалит папку /photos и все каталоги внутри неё:
rmdir -p docs/photos
Для удаления есть более эффективный инструмент, rm, про который расскажем ниже.
Примеры командных файлов.
Использование утилит командной строки и командных файлов нередко позволяют
решить многие проблемы связанные с повседневной эксплуатацией компьютерной
техники. Большинство системных администраторов и грамотных пользователей
продолжают ими пользоваться, несмотря на то, что в Windows проявилось новое,
более мощное и современное средство управления системой – WMI
(Windows Management Instrumentation) и многофункциональная оболочка пользователя Power Shell. Очевидно, не в последнюю очередь, это
обусловлено простотой реализации и достаточной
эффективностью командной строки для решения повседневных задач обслуживания системы.
Ниже приведены простые
примеры с комментариями, которые демонстрируют некоторые возможности и
способы применения .cmd и .bat
FreeBSD
route add 10.10.0.0/16 10.10.1.1
если после выполнения команды вам говорится, что команда не найдена, то используйте полный путь до команды (и для других команд):
так же если прочитать:
то можно узнать, что статический роутинг можно добавить и так:
/sbin/route add -net 10.10.0.0 -netmask 255.255.0.0 10.10.1.1
Просмотр таблицы маршрутизации выполняется командой:
с полным путем:
/sbin/route delete 10.10.0.0/16
Удаление
Удалить папки, их содержимое позволяет команда «rmdir» либо её сокращённая версия «rm». После прописываются параметры, затем путь.
Если требуется удалить пустой каталог «Example folder», пишется по образцу «rmdir “C:\ Example folder”».

Если «Example folder» не пустой, в нём имеются подпапки/файлы, чтобы всё вместе удалить, следует после команды прописать ключ «/s». Ключ вписывается после «rmdir», но до адреса назначения. То есть запись будет выглядеть так: «rmdir /s “C:\Example folder”». Набрав команду, увидите запрос на подтверждение действий, выбираете «y», что значит, что вы согласны удалить («yes»).
Чтобы запрос на подтверждение постоянно не появлялся, можно сразу прописать ключ «/q». Он вписывается после «/s».
Можно перечислить через пробел удаляемое. Допустим, внутри «Test» вам стали не нужны папки 2 и 3, значит, записываете команду: «rmdir /s /q “C:\Test\1” “C:\Test\2” “C:\Test\3”». Если вы уже находитесь в каталоге «Test», можно вписать сокращённый вариант: «rmdir /s /q 1 2 3».

Windows
Откройте командную строку (cmd).
route add 10.10.0.0 mask 255.255.0.0 10.10.1.1
route delete 10.10.0.0 mask 255.255.0.0 10.10.1.1
Если у Вас все ещё есть вопросы, то прочтите мануал (инструкцию) к данным командам в Вашей ОС.
З.Ы. При копировании статьи ссылка на источник !
Автор: Николаев Дмитрий (virus (at) subnets.ru)
Похожие статьи:
Прочитано: 228 364 раз(а)
Отправить на почту
9
ответов
Если вы не хотите запускать новую оболочку, вы можете установить ее, удалив вручную, с помощью:
export PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games12 мар ’14 в 17:53
В вашей текущей оболочке (вашей текущей сессии gnome-терминала) вы можете сделать это используя:
export PATH=${PATH%:/home/avinash/Desktop/raj}${string%substring}удаляет самое короткое совпадение $substring от задней части $string,
Проверьте манипуляции со строками для получения дополнительной информации.
Если вы положите export заявление в любом файле инициализации оболочки, как ~/.bashrc, вы можете использовать следующие команды в терминале,
#remove the export statement from the file.
sed -i 's#export PATH=$PATH:/home/avinash/Desktop/raj##g' ~/.bashrc
#source ~/.bashrc
. ~/.bashrcЭто удалит папку из пути.
Если вы экспортировали путь из терминала
Папка будет в пути, пока вы находитесь в этой оболочке. Чтобы перезаписать путь, вы должны назначить новый путь. Как уже упоминалось в другом ответе.
Вы можете использовать следующую команду, чтобы установить старый путь
export PATH=`echo ${PATH/\:\/home\/avinash\/Desktop\/raj/}`export PATH=${PATH/':/home/avinash/Desktop/raj'/}Это замена подстроки,
${string/substring/replacement}12 мар ’14 в 18:06
Если вы хотите использовать его в качестве команды, вот небольшой скрипт:
#!/bin/bash
# This script removes folder from PATH variable
# Folders to remove reading as arguments
if [ $# -lt 1 ]; then echo "You should give at least one argument" echo "For example" echo "$0 /usr/local/bin"
else FOLDERS_TO_REMOVE=`echo [email protected] | sed 's/ /|/g'` echo "You actually PATH variable is:" echo $PATH echo "###" PATH=$( echo ${PATH} | tr -s ":" "\n" | grep -vwE "(${FOLDERS_TO_REMOVE})" | tr -s "\n" ":" | sed "s/:$//" ) echo "Now you need to run" echo "export PATH=$PATH"
fiНазови это unexport и добавьте его в свой путь.
unexport /usr/local/bin /bin /sbin
12 мар ’14 в 18:29
Один грязный хак
export PATH="$( echo $PATH| tr : '\n' |grep -v raj | paste -s -d: )"- разделите каждый каталог в вашем PATH по строке, используя
tr - удалите то, что вы не хотите (соответствие пути “raj”), используя
grep -v, а также - свернуть обратно в длинную строку “:” с помощью
paste,
это, вероятно, не будет работать хорошо, если какой-либо каталог в PATH имеет : или новая строка
если вы часто этим занимаетесь, подумайте о том, чтобы сделать это функцией и сохранить в своем профиле оболочки (например, .bashrc,.zshrc)
# use like: rminpath "raj"
rminpath(){ export PATH="$( echo $PATH| tr : '\n' |grep -v "$1" | paste -sd: )"; }08 окт ’17 в 17:00
export PATH=$PATH:/home/avinash/Desktop/raj (Здесь вы добавили файл в переменную пути.)
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/avinash/Desktop/rajКак убрать его с пути? просто выполните
$ export PATH=${PATH/'/home/avinash/Desktop/raj'/}Это концепция замены строк.
$ export PATH=${string/substring/replacement}
19 фев ’20 в 16:01
Встроенная команда оболочки export Не определяет, установлена ли переменная или нет, она определяет, установлены ли переменная и ее значение в подпроцессах.
Изменение переменной, экспортированной или нет, не влияет на родительский процесс или выше, поэтому изменение его в сценарии не действует, если только этот сценарий не запущен с source,
function trimpath { PATH=${PATH%:*}
}обрежет последний компонент переменной PATH. это export статус не влияет.
19 фев ’20 в 20:26
Я просто использую sed, вот так
PATH=$(sed "s/\/home\/avinash\/Desktop\/raj//" <<< $PATH)это должно помочь.
Немного поясню, как это будет работать: сначала мы определяем значение переменной PATH= , затем мы должны сказать, чтобы использовать значение результата следующей команды в качестве значения этой переменной, просто используя $( команда ) , после чего появилась команда SED sed ” s///” , / будет разделителем для этой команды, по умолчанию мы используем / но вы можете установить что угодно, например – или _ . Первая s предназначена для замены, затем идет первый разделитель, затем идет выражение, которое вы ищете, затем еще один разделитель, затем выражение, которое вы хотите заменить первым (которое вы ищете), затем еще один разделитель (последний). и вы можете использовать некоторый аргумент, напримерg для глобальной замены. \ — это символ перехода, который используется для того, чтобы sed понимал, что следующий / — это литерал, а не разделитель. <<< для удаления переменной по команде sed.
Переходы
Работая через командную строку, вы захотели перейти в другой каталог. Вам поможет команда «chdir», позволяющая перейти в другое место. Либо просто заходите в раздел, как описывалось в этой статье выше, с помощью команды «cd».
Для перехода в подкаталог, необязательно указывать полный адрес, ежели находитесь в родительском. Допустим, вы находитесь в «ProgramFile», как в командной строке перейти в папку «Skype»? Не нужно указывать полный путь: «cd “C:\ProgramFiles\Skype”»; достаточно указать название подкаталога: «cd “Skype”».
Чтобы перейти назад, в родительский каталог, вписываем «cd “ProgramFiles”».
Если требуется поменять диск нахождения, добавляется ключ «/D», например, из диска C: понадобилось перейти в D:, прописываете «cd /D d:/».
Поиск
С помощью команды find можно найти на сервере папку или файл по набору условий. Структура команды проста:
find [где искать] [как искать] [что искать]
Например, мы знаем название файла hello.txt, но не знаем, где именно на сервере он лежит. Найти его поможет конструкция:
find / -name "hello.txt"
/указывает, что искать надо, начиная с корневой папки сервера. Если вам известно, где может лежать искомый файл, можно задать путь точнее.-nameуказывает, что искать надо строго по имени."hello.txt"— имя файла, который нам нужно найти. Если известна только часть имени, можно указать сокращённый вариант:"hello*","*.txt"
Кроме -name, команда find имеет множество опций, которые позволяют уточнить условия поиска подробнее. Вот список наиболее полезных параметров:
Больше информации о возможностях find можно узнать в файлах документации:
man find
Из встроенных инструментов поиска можно также отметить утилиту whereis. Она предназначена для поиска бинарных и системных файлов и директорий служб. Следующий пример выведет список всех файлов и папок, имеющих прямое отношение к php:
whereis php
Передача параметров командному файлу.
Очень полезной особенностью работы с командными файлами является
возможность получать значения параметров командной строки и использовать их
в операциях внутри самого командного файла.
params.bat FIRST second “two words”
Параметры командной строки, содержащие пробелы должны заключаться в двойные кавычки.
При обработке входных параметров необходимо знать, были ли они вообще заданы в командной строке. Для проверки наличия каких-либо входных параметров, передаваемых
командному файлу, можно проверить, является ли значение переменной %1
пустым, что можно сделать, заключив ее, например в двойные кавычки, и проверив полученный результат на наличие этих кавычек, следующих подряд:
REM пробел текст
Строки, начинающиеся с REM пробел, считаются комментариями и командным процессором игнорируются.
Linux
route add -net 10.10.0.0/16 gw 10.10.1.1
ip route add 10.10.0.0/16 via 10.10.1.1
route delete -net 10.10.0.0 netmask 255.255.0.0
Переходы и метки.
В командных файлах можно использовать команды условного перехода,
меняющие логику их работы в зависимости от возникновения определенных условий.
В качестве примера создадим командный
файл, целью которого будет присвоение заранее определенной буквы для
съемных носителей.
Исходные данные: имеется 2 съемных диска, один из которых должен быть виден в проводнике как диск X: , а второй – как диск Y: независимо от того, в какой порт USB они подключены и какие буквы присвоены им операционной системой. Для назначения букв дискам можно воспользоваться командой SUBST.
Будем считать, что реальные диски могут быть подключены как F: или G:
Опознавание дисков будем выполнять по наличию файла с определенным именем
(лучше всего такой файл сделать скрытым в корневом каталоге съемного диска и назвать его как-нибудь необычно):
Flashd1.let – на первом диске
Flashd2.let – на втором
Таким образом, задача командного файла заключается в том, чтобы проверить
наличие на сменных дисках F: и G: файлов Flashd1.let
или Flashd2.let и, в зависимости от того, какой из них присутствует,
присвоить диску букву X: или Y:
Для поиска файла на диске воспользуемся командой :
IF EXIST имя_файла команда
В качестве команды, которая будет выполнена при удовлетворении условия используем , которая предназначена для сопоставления каталога и виртуального диска.
SUBST X: C:\ – – создать виртуальный диск
X:, содержимым которого будет корневой каталог диска C:
Для решения поставленной задачи, создаем командный файл, например с именем setletter.bat, следующего содержания:
setletter.bat
В качестве метки используется строка символов, начинающаяся
с двоеточия. Сделаем изменения в нашем командном файле, чтобы не возникало
сообщений об ошибке:
При выполнении измененного таким образом командного файла, сообщение об
ошибке при выполнении SUBST исчезнет.
Конечно, данный пример очень примитивен, но главная его цель заключается не в написание оптимального командного сценария, а в демонстрации принципов использования меток и переходов. Во всех последующих примерах, насколько это возможно, используется именно такой подход – важна не оптимальность исходного текста, а его максимальная простота для понимания.
Одним из важнейших приемов при написании сложных командных файлов
является анализ успешности выполнения конкретной команды или программы.
Признаки ошибок при выполнении команд можно отслеживать, анализируя
специальную переменную ,
значение которой формируется при завершении работы большинства программ.
Обычно ERRORLEVEL равно нулю, если программа завершилась без ошибок и
единице – при возникновении ошибки. Могут быть и другие значения, если они
предусмотрены в выполняемой программе.
В качестве команды в строке командного файла можно использовать также
командный файл. Причем, для передачи с возвратом обратно к точке выполнения
вызывающего командного файла используется
команда CALL. Попробуйте создать командный файл test.bat, следующего содержания:
– приостановить выполнение командного файла до
нажатия любой клавиши.
Если же в файле test.bat убрать CALL, оставив “1.bat”, то , выполнится командный файл 1.bat, и возврат в test.bat выполняться не будет.
Вызываемый командный файл может создавать переменные и присваивать им
определенные значения, которые будут доступны для обработки в вызывающем
файле. Попробуйте изменить файл test.bat следующим образом:
Переменные вызываемого файла будут доступны в вызывающем файле.
Кстати, используя передачу управления командному файлу, можно организовать
его зацикливание. Попробуйте добавить в конец файла test.bat строку:
Выйти из зацикливания командного файла можно по нажатию комбинации
CTRL+Break.
Команда CALL может использоваться не только для вызова другого командного файла, но и для вызова внутренней подпрограммы. В этом случае в качестве аргумента используется не имя внешнего файла, а метка:
Присвоение съемному диску одной и той же буквы.
Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен
всегда под одной и той же буквой, независимо от того, на каком компьютере он
используется и каким образом он был подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST, но реализуем присвоение новой буквы диску с
помощью подстановочного значения переменной %0, создаваемой
системой при каждом запуске командного файла.
Выберем для съемного диска желаемую букву, например – X.
Некоторые из переменных окружения, в том числе и переменная %0,
принимающая значение пути и имени выполняющегося командного файла, позволяют
при определенной модификации с использованием специального признака –
символа ” ~ “, получить ее частичное значение (расширение переменной).
Например, не полный путь
файла, а только его имя, или каталог расположения, или букву диска, с
которого он был запущен или еще около десятка различных элементов, связанных
с подстановочными значениями переменной %0.
Дополнительное представление о подстановочных значениях
переменной %0 можно получить из командного файла следующего
содержания:
Работа с файлами
Создание
В терминале есть несколько способов создания новых файлов.
Самый простой, одновременно создающий и файл, и недостающие папки — команда touch. Достаточно передать ей полный путь к файлу. Для примера создадим в папке docs папку copies, а внутри неё — файл copies-list.txt:
touch docs/copies/copies-list.txt
Несуществующая папка copies создастся автоматически.
Если нужно создать сразу несколько файлов, можно просто перечислить их через пробел:
touch file1.txt file2.txt file3.txt
Ещё один способ создания новых файлов — вызвать какой-нибудь консольный текстовый редактор с указанием полного пути к файлу. Однако все папки придётся создать заранее. Тогда редактор автоматически создаст файл и откроет его для редактирования. Если не сохранить файл в редакторе, даже пустой, он не будет создан. Команда ниже добавит новый файл с помощью редактора vi:
vi new-file.txt
Для сохранения и выхода из файла в vi нужно нажать клавишу Esc, ввести сочетание :wq и нажать Enter. Для выхода без сохранения нужно также нажать Esc, ввести сочетание :q! и нажать Enter.
Ещё пара способов создания пустых файлов:
cat > new-file.txt echo > new-file.txt
Редактирование
Для редактирования файлов используются консольные текстовые редакторы. Самые известные — vi и nano. В некоторых дистрибутивах vi заменён на vim (vi improved, улучшенный vi) или vim.tiny
Редактор vi будет доступен вам по умолчанию на большинстве Linux-систем.
А теперь к делу. Vi (более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки.
Запуск редактора без аргументов откроет его в режиме справки:
vi
Чтобы закрыть Vim (без сохранения), введите сочетание :q!
Если указать редактору путь к файлу, он откроет его для редактирования. Если файл не существовал, он будет создан:
vi new-file.txt
При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.
Чтобы начать ввод, нужно перейти в режим редактирования с помощью клавиши I. Чтобы вернуться в режим просмотра, нажмите Esc.
Перемещение по тексту выполняется с клавиатуры:
- перемещение в начало текста: Esc + дважды G
- перемещение в конец текста: Shift + G
- перемещение по строке горизонтально: стрелки ← →
- перемещение по строкам вертикально: стрелки ↑ ↓
- отображение номеров строк: Esc, введите
:set number, нажмите Enter - перемещение по номерам строк: Esc, введите
:номер строки, нажмите Enter
Для выхода с сохранением файла нажмите Esc и введите :wq!
Текстовый редактор vim — краткое руководство
Более современной и удобной альтернативой Vim считается редактор nano. Современные дистрибутивы включают его по умолчанию, но на ранних версиях устанавливать придётся вручную:
Ubuntu и Debian:
apt -y install nano
yum -y install nano
Вызов nano без аргументов откроет пустой редактор. Можно начать ввод (при сохранении вам будет предложено указать имя и сохранить файл) или вызвать режим помощи со списком доступных команд с помощью сочетания Ctrl+G.
Для сохранения файла нажмите Ctrl+O — редактор предложит ввести имя файла: введите имя и нажмите Enter. Если файл существовал, и имя изменять не требуется, просто нажмите Enter.
Для выхода из редактора нажмите Ctrl+X.
Чтение
Бывает, что нам нужно получить какую-то информацию из файла без необходимости редактировать его. В таком случае необязательно использовать текстовый редактор — есть более простые инструменты.
Команда cat позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:
cat example.txt
Однако, если мы заведомо знаем, что в файле большой объём информации, нет смысла выводить его целиком. Например, команды head и tail могут вывести часть содержимого с начала или конца файла соответственно. Если добавить к ним ключ -n, можно уточнить, сколько строк текста нужно вывести:
head -n 3 example.txt
tail -n 3 example.txt
Помимо прочего, команда tail очень удобна для чтения логов с ключом -f. В таком режиме она открывает файл в режиме ожидания и выводит все добавляемые данные. Пригодится для тестирования или дебаггинга.
Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less — она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:
less example.com
В режиме чтения less можно перемещаться, искать текст и многое другое. Все командные последовательности и горячие клавиши можно вывести с помощью параметра --help:
less --help
Для выхода из режима чтения введите q и нажмите Enter.
Удаление
Для удаления файлов используется команда rm. Она крайне опасна — неправильное применение грозит удалением всего содержимого сервера. Поэтому, как говорится, семь раз отмерь, один раз отрежь: категорически важно перепроверять путь, который вы указываете для удаления.
Самая простая версия rm удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter:
rm new-file.txt
Для полного же уничтожения всего и вся к команде добавляются параметры -rf. Первый отвечает за рекурсивное удаление данных (т.е. удаление вложенных файлов и папок), второй позволяет отключить подтверждение при удалении. Например, следующая команда удалит папку photos, размещённую в папке docs, и всё её содержимое:
rm -rf docs/photos
Скачивание и загрузка
Для передачи файлов на сервер и с сервера есть много способов. Самые простые — использование wget, curl или scp.
wgetпозволяет скачивать данные на сервер. Он поддерживает HTTP, HTTPS и FTP протоколы.wget [как скачать] [откуда скачать]
wget https://ru.wordpress.org/latest-ru_RU.tar.gz
С помощью параметра
-Pможно указать путь, куда нужно сохранить скачиваемый файл:wget -P /var/www/example.com https://ru.wordpress.org/latest-ru_RU.tar.gz
Полный список параметров
wgetможно посмотреть в справочной информации:man wget
curlиспользуется как для скачивания файлов на ваш сервер, так и для передачи данных с него на другие серверы / хранилища. Он универсальнееwgetблагодаря огромному количеству поддерживаемых протоколов: FTP, HTTP, HTTPS, IMAP, POP3, SCP, SFTP, SMB, SMTP, Telnet и др.curl [как скачать] [откуда скачать / куда загрузить]
В современных дистрибутивах
curlустановлен по умолчанию. При необходимости установить его вручную можно следующим образом:- Ubuntu и Debian:
apt -y install curl - CentOS:
yum -y install curl
curl -O https://ru.wordpress.org/
В примере мы скачиваем архив
latest-ru_RU.tar.gzпо ссылке и сохраняем его в текущую рабочую директорию с таким же именем — за это отвечает ключ-O. Если использовать опцию-o, можно задать своё имя (wp.tar.gz) для сохраняемого файла:curl -o https://ru.wordpress.org/latest-ru_RU.tar.gz
Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:
curl -T filename.txt https://example.com/downloads/filename.txt
Здесь файл
filename.txtиз текущей рабочей директории загружается на сайтexample.comв папкуdownloads/и сохраняется с именемfilename.txt. Пример подразумевает, что у нас есть права на запись в указанный каталог.Остальные возможности
curlможно узнать в справочной информации:man curl
- Ubuntu и Debian:
Утилита
scpпозволяет копировать файлы между двумя серверами, используя протокол SSH.scp [где взять файлы] [куда их загрузить]
scp ~/documents/filename.txt @:
scp username@1.2.3.4:/home/username/documents/filename.txt ~/new-documents/
Здесь мы в качестве источника для получения копии файла указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере.
С помощью
scpаналогичным образом можно копировать данные между двумя удалёнными серверами:scp username1@1.2.3.4:/home/username1/documents/filename.txt username2@2.3.4.5:/home/username2/new-documents
Запуск исполняемых bash-скриптов
Чтобы запустить скрипт script.sh на сервере, нужно выполнить два шага:
Настроить права на запуск файла для пользователей:
chmod +x ./script.sh
Запустить скрипт. Если вы находитесь в той же директории, где лежит скрипт, достаточно вызвать его по имени:
./script.sh
В некоторых случаях нужно использовать команду
shлибо указать путь к исполняемому файлу командной оболочки:sh ./script.sh
/bin/bash ./script.sh
Если вы находитесь в другой директории, для запуска нужно указать полный путь к скрипту.
Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.
Весь список существующих алиасов системы можно вывести с помощью команды alias:
Создать свой постоянный алиас можно с помощью файла .bashrc, размещённого в домашнем каталоге вашего пользователя. Нужно открыть его для редактирования:
vi ~/.bashrc
В соответствующем разделе нужно добавить ваш алиас в следующем формате:
alias [короткая команда]='[исходная команда]'
Например, если нам потребуется создать псевдоним для скрипта выше, настройки будут выглядеть так:
alias myScript='sh /путь/к/скрипту/script.sh'
Чтобы после добавления алиас сразу стал доступен, предварительно нужно обновить командную оболочку:
source ~/.bashrc
После этого вы сможете вызывать ваш скрипт с помощью короткой команды.
Скрипт можно добавить в расписание планировщика cron, чтобы он запускался регулярно.
Как настроить cron по ssh
Команды CMD
Строки командных файлов могут содержать как команды самого
процессора команд CMD, так и имена исполняемых модулей (программ или командных файлов).
– исполняемый файл ping.exe с параметром yandex.ru. Расширение .exe можно не указывать, и данная команда может быть записана так:
Список стандартных команд можно получить, введя команду:
Справочную информацию по конкретной команде можно получить, указав ее название в качестве параметра команды HELP:
HELP Имя команды
В русифицированной версии Windows необходимо учитывать, что в среде командного процессора символы национального алфавита отображаются в DOS-кодировке, в соответствии с кодовой страницей (code page) 866. При необходимости, для переключения между кодовыми страницами Windows и DOS используется команда
CHCP номер страницы
– использовать кодовую страницу 866 (DOS)
– использовать кодовую страницу 1251 (WINDOWS)
Внешний вид окна CMD.EXE (консоли Windows) можно изменить с помощью команды
В качестве аргументов для команды используются 2 шестнадцатеричные цифры, задающие цвет фона и цвет символа.
– символы белого цвета на черном фоне (используется по умолчанию).
– черные символы на белом фоне.
– светло-желтые символы на черном фоне.
– подсказка для команды COLOR.
Специальные символы CMD
Работа с командным процессором предполагает использование двух стандартных устройств – устройства ввода (клавиатура) и устройства вывода (дисплей). Однако, имеется возможность изменить стандартно используемые устройства ввода-вывода с помощью специальных символов – символов перенаправления
– перенаправление вывода
– перенаправление ввода
Для вывода справки не на экран а, например, в файл с именем help.txt, можно использовать следующую команду:
HELP > help.txt
При выполнении данной команды, в текущем каталоге будет создан файл с именем help.txt, содержимым которого будет результат вывода команды HELP. Если файл help.txt существовал на момент выполнения команды, его содержимое будет перезаписано. Для того, чтобы дописать данные в конец существующего файла, используют удвоение символа перенаправления вывода – “>>”
HELP GOTO > myhelp.txt – в файл myhelp.txt будет выдана справка по использованию команды GOTO
HELP COLOR >> myhelp.txt – в конец файла myhelp.txt будет дописана справка по использованию команды COLOR
Простейший пример перенаправления ввода:
cmd.exe < commands.txt – командный процессор не будет ожидать ввода команд с клавиатуры, а считает их из файла commands.txt. Фактически, указанный текстовый файл в данном случае является командным файлом.
При запуске командного процессора можно указать конкретную команду в качестве аргумента командной строки:
cmd.exe /C HELP FOR – выполнить команду HELP FOR и завершиться (параметр командной строки или ключ /C)
cmd.exe /K HELP FOR – выполнить команду HELP FOR и перейти в режим ожидания дальнейшего ввода команд (ключ /K)
Подробную справку по использованию cmd.exe можно получить, введя в качестве аргумента ключ /?
& – одиночный амперсанд используется для разделения нескольких команд в одной командной строке.
команда1 & команда2 – выполняется первая команда, затем вторая команда.
&& – удвоенный амперсанд между двумя командами, означающий условное выполнение второй команды. Она будет выполнена, если код завершения (или код возврата) первой команды равен нулю, т.е. команда выполнена успешно. Успешность
выполнения команды определяется значением специальной переменной среды ERRORLEVEL.
команда1 && команда2 – выполняется команда1, а команда2 выполняется, только если первая была выполнена успешно.
Команду, следующую после знаков объединения, не нужно заключать в
двойные кавычки, иначе командный процессор удвоит их и сообщит об ошибке.
Выполнение командной строки
cmd.exe /C “HELP IF” & ”HELP IF”
Завершится выполнением первой команды и сообщением об ошибке для второй:
“”HELP” не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Как и в любом другом языке программирования, в сценариях CMD невозможно обойтись без переменных. Для получения их значения применяется специальный символ – знак процента % . Строка, заключенная в знаки процента интерпретируется как значение переменной, например:
Символ ^ , являющийся последним символом строки, используется как признак продолжения предыдущей. Это относится как к тексту, так и к командам.
Использование переменных окружения в командных файлах.
При работе с командными файлами невозможно обойтись без переменных окружения (environments) – переменных, значения которых определяют среду, в которой выполняются команда или пакетный файл. Часто их называют переменными среды. Значения, принимаемые этими переменными формируются при
загрузке Windows, регистрации пользователя в системе, старте или завершении
некоторых приложений, и, кроме того, могут быть заданы с помощью специальной
команды
SET переменная = значение
SETX переменная = значение
Первая присваивает значение переменной, действующее до завершения текущей сессии командной строки. Вторая – значение, действующее постоянно.
Как уже упоминалось выше, значение, присвоенное какой-либо переменной, доступно для обработки в командной строке или в командном файле с использованием ее имени, заключенного в знаки процента – % . Системные переменные позволяют получить сведения об аппаратной и программной среде, в которой выполняется командный файл, что позволяет реализовать его исполнение на разных компьютерах, независимо от их конкретной конфигурации и пользовательских настроек. Например, в командном файле используется вывод содержимого системного каталога C:\Windows :
DIR C:\Windows
Алгоритм, реализуемый данным командным файлом, будет прекрасно выполняться до тех пор пока не встретится компьютер с Windows установленной не на диск C:, а например, на D:. Чтобы этого не происходило, желательно использовать системную переменную WINDIR, принимающую значение пути системного каталога:
На практике, с помощью команды SET обычно задается и модифицируется путь поиска исполняемых программ
– переменная окружения PATH.
SET PATH=C:\Windows; C:\windows\system32
Данная команда определяет, что поиск исполняемых файлов будет выполняться в
каталоге C:\Windows и, если результат неуспешен, в
C:\windows\system32
При необходимости выполнить программу, например, myedit.exe, размещенную в
каталоге C:\NewProgs необходимо либо указать полный путь исполняемого файла, либо сделать текущим каталогом каталог с программой и использовать только его имя. Если в командной строке не задан полный путь, а только имя
исполняемого файла – myedit.exe
то сначала будет выполняться поиск файла myedit.exe в текущем каталоге, и если
он не будет найден – в каталогах, список которых определяется значением переменной
PATH. Символ ; является разделителем элементов в списке путей поиска.
Если в приведенном примере, текущим каталогом не является
C:\NewProgs, и в остальных каталогах, заданных значением переменной
PATH, нет исполняемого файла myedit.exe, то попытка его запуска
завершится ошибкой. Однако, если модифицировать значение переменной PATH, добавив в нее требующийся каталог, то указание полного пути исполняемого файла становится необязательным.
Команда
изменит текущее значение PATH,
добавив каталог C:\NewProgs в начало списка. Для добавления каталога в конец списка используется несколько иная конструкция:
SET PATH=%path%; C:\NewProgs
Выполнение команды SET без параметров позволяет получить текущие
значения переменных окружения:
NUMBER_OF_PROCESSORS=1 – количество процессоров
OS=Windows_NT- тип ОС
Path=C:\WINDOWS\system32; C:\WINDOWS;C:\Program Files\Far – путь поиска исполняемых файлов.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE; .JS;.JSE;.WSF;.WSH – расширения для исполняемых файлов.
PROCESSOR_ARCHITECTURE=x86 – архитектура процессора.
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, AuthenticAMD – идентификатор процессора.
PROCESSOR_LEVEL=6 – уровень (номер модели) процессора.
PROCESSOR_REVISION =0801 – версия процессора.
ProgramFiles=C:\Program Files – путь к папке “Program Files”
PROMPT=$P$G – формат приглашения командной строки $P – путь для текущего каталога $G – знак “>”.
SystemDrive=C: – буква системного диска.
SystemRoot= C:\WINDOWS – каталог ОС Windows.
Значения некоторых переменных по команде SET не отображаются, хотя и присутствуют в системе. В основном, это переменные, принимаемые значения которых динамически изменяются:
%CD% – Принимает значение строки текущего каталога.
%DATE% – Принимает значение текущей даты.
%TIME% – Принимает значение текущего времени.
%RANDOM% – Принимает значение случайного десятичного числа в диапазоне 1 -32767.
%ERRORLEVEL% – Принимает текущее значение кода завершения задачи ERRORLEVEL
%CMDEXTVERSION% – Принимает значение версии командного процессора CMD.EXE для расширенной обработки команд.
%CMDCMDLINE% – Принимает значение строки, которая вызвала
командный процессор.
Значения, принимаемые переменными окружения, могут быть расширены с помощью
специального признака – символа ” ~ “, что позволяет получить их частичное
значение, или изменить его подменой какой-либо части. Практические примеры использования расширений переменных будут рассмотрены ниже.
Подробное описание команд с примерами их использования имеется в разделе Список команд CMD Windows.


