Как редактировать файл через ssh

Обновлено: 02.07.2024

Школа хостинга Редактор: Дмитрий Сокол 142845 4 мин Аудио

Как правило, для управления Unix\Linux веб-сервером, используют бесплатную программу PuTTY, которая через защищенный SSH-протокол передает команду, которая распознается и выполняется сервером. Как подключиться к серверу и передавать команды через командную строку читайте здесь. А мы далее приводим большую часть команд, в зависимости от их направленности.

Операции с файлами

Работа с процессами

Команда Действие
ps показывает текущие процессы, которые активны
top показывает все процессы
kill процесс убивает процесс с id "процесс"
killall проц убивает все процессы с именем проц
bg показывает список фоновых задач, а также остановленных;
bg процесс продолжит выполнение остановленного процесса в фоне

Операции с правами доступа к файлам

Команда Действие
chmod 755 файл задает права 755 для файла
find /path/to/dir -type f -exec chmod 0644 <> укажет права 644 на все файлы на сервере
find /path/to/dir -type d -exec chmod 0755 <> укажет права 755 на все папки на сервере

Работа с SSH

Команда Действие
ssh user@host подключает к хосту "host" как "user"
ssh -p port user@host подключает к хосту "host" на порт "port" как "user"
ssh-copy-id user@host добавит ключ на "host" для пользователя "user", при этом операция входа будет происходить без логина, а через ключ

Как искать?

Команда Действие
grep слово файл ищет "слово" в "файле"
locate файл найдет все файлы с именем "файл"

Информация о системе

Команда Действие
date показать время и дату
cal показать календарь
uptime проверить аптайм (время безотканой работы)
w покажет количество пользователей, которые в данный момент используют сервер
whoami покажет Ваш логин
finger юзер покажет инфу о пользователе "юзер"
uname -a информация про ядро
cat /proc/cpuinfo информация про CPU
cat /proc/meminfo информация про память
man команда покажет все о команде
df информация о дисках
du покажет, сколько памяти занимает текущий каталог
free сколько памяти используется
whereis программа найдет место расположения программы
which программа определеяет, что "программа" будет запущена первой
vmstat покажет загрузку процессора

Работа с системой и базами данных

Команда Действие
apachectl restart перезапуск сервера Apache
apachectl startssl запуск сервера Apache
apachectl stop выключение сервера Apache
/usr/local/etc/rc.d/mysql-server restart перезапуск MySQL
mysqldump -u имя_пользователя_БД -pпароль_пользователя_БД имя_бд > /полный/путь/бд.sql создать копию базы данных бд.sql
mysql -u имя_пользователя_БД -pпароль_пользователя_БД -D имя_бд < /полный/путь/бд.sql импортировать бд.sql в базу данных mysql на сервере
exit выйти из системы
reboot перезапуск сервера

Работа с архивами

Команда Действие
tar cf myfile.tar файлы запаковать "файлы" в архив myfile.tar
tar xf myfile.tar разархивировать myfile.tar
tar czf myfile.tar.gz files архивировать с использованием Gzip (особое сжатие на сервере)
tar xzf myfile.tar.gz разархивировать Gzip-файл
tar cjf myfile.tar.bz2 архивировать с использованием Gzip
tar xjf myfile.tar.bz2 разархивировать Bzip2-файл
gzip myfile запаковать myfile и переименовать в его в myfile.gz
gzip -d myfile.gz распаковать myfile.gz в myfile

Клавиши

Команда Действие
Ctrl+C прекратить текущую команду
Ctrl+D выйти из системы\сменить пользоваателя (вместо этого можно использовать команду exit)
Ctrl+U удаляет строку
Ctrl+Z остановка текущей команды и продолжить с fg или bg
Ctrl+W удалить слово в текущей строке
!! повторяет последнюю команду

Дмитрий Сокол

Провайдеры с виртуальным выделенным сервером (VPS)

Провайдеры с выделенным сервером

Провайдеры предлагающие Linux-хостинг

Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.







От панели управления зависит ваше удобство в настройке хостинге\сайта.

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

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

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

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

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

  • Облачный хостинг
  • Виртуальный хостинг
  • VPS/VDS
  • Выделенный сервер
  • Размещение сервера
  • CDN

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

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера. С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

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

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

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

  • Абузоустойчивый хостинг
  • Безлимитный хостинг
  • Безопасный хостинг
  • Черный список
  • Защита от DDOS
  • Конструктор сайтов
  • Партнерские программы
  • Реселлинг хостинга

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

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

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

  • Дешёвый хостинг
  • Дешевый VPS-хостинг
  • Цена-Качество
  • Дорогой хостинг
  • Бесплатный хостинг
  • VPS/VDS посуточно

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

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

я программирую с eclipse и иногда использую текстовые редакторы GUI, такие как SciTE или vim. Тем не менее, я нахожусь в проекте, который требует, чтобы я редактировал файлы через ssh-соединение в окне SSH столбца 80.

Так как я должен (*shiver*) sudo vim прежде чем я могу открыть файл, я не уверен, как открыть файл в Редакторе снаружи терминала (это позволит мне Увидеть текст шире, чем 80 столбцов). Если командная строка была больше, я думаю, используя прямой vim это не проблема.

возможно, вы должны просто подключить удаленную файловую систему к локальной машине, а затем использовать любой редактор, который вам нравится. При запуске производной Debian установите sshfs

а затем смонтируйте удаленную файловую систему (проблема на локальном компьютере )

Как только это будет сделано, вы можете получить доступ к коду в

/ remote_code с любым из ваших инструментов GUI и без накладных расходов на пропускную способность использования ssh-X (однако вам все равно нужно хорошее соединение с низким пингом время.)

PS: при использовании ssh я могу сделать терминал настолько широким, насколько он соответствует моему экрану, а затем использовать его полную ширину, поэтому я боюсь, что не совсем понимаю вашу проблему.

помощью WinSCP - это SSH-клиент ftp-like. Редактор по умолчанию является примитивным, но может быть изменен.



есть различные варианты.

вы можете сделать терминал больше. ;)

Если у вас есть графическая среда, установленная на машине, в которую вы ssh, вы можете войти с ssh -X (или xdeep-putty, если вы находитесь в Windows), чтобы включить переадресацию окон. Затем вы можете запустить свой любимый редактор на удаленном компьютере, графический вывод которого перенаправляется.

наконец, вы можете подключить ssh-соединение в свою файловую систему, используя, например, предохранитель (аналогичные параметры могут существовать для операционных систем, отличных от linux). Это позволяет получить доступ к любому файлу на удаленной машине, как если бы он был в вашей файловой системе, с вашим любимым редактором, локально.

Я не уверен на 100%, что это работает для файлов, принадлежащих root, но если ваш рабочий стол-KDE , а ваша удаленная система-Linux (или почти любая форма *nix), вы можете получить konqueror для доступа к удаленной машине с помощью протокола "fish://". Оттуда вы можете открыть файл из konqueror с помощью kate или предпочтительного редактора, а konqueror позаботится о копировании файла на локальный компьютер и копировании его обратно при сохранении.

сбой, который X11 вперед является хорошим вариантом, но X11 через ssh для удаленных сайтов может быть медленным. "ssh-X-C" сжимает поток данных и может дать лучшую производительность.

в Windows вы можете использовать MobaXterm (http://mobaxterm.mobatek.net): он имеет встроенный SSH-клиент с очень полезным "SFTP-браузером".

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

В данной статье рассматриваются основные команды, используемые при работе с файлами и директориями при подключении к серверу по SSH-протоколу.

Для подключения можно использовать терминал в вашей ОС, утилиту PuTTY или же веб-консоль в панели управления. Подробнее см. в статье статье "Подключение по SSH".

Обратите внимание, что команды необходимо вводить в нижнем регистре. Например, pwd - корректное имя команды, Pwd - некорректное.

Навигация

Вывод текущей рабочей директории

Для вывода информации о текущей рабочей директории используется команда pwd.

Пример использования:

Вывод содержимого директории

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

Вывод содержимого текущей директории в несколько колонок (только имена файлов и директорий):

Вывод содержимого текущей директории в одну колонку (только имена файлов и директорий):

Вывод подробной информации о содержимом текущей директории, включая скрытые файлы (имя которых начинается с точки):

Вывод содержимого конкретной директории:

Пример использования:

Перемещение между директориями

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

Основные способы применения:

Перейти в директорию, которая находится в текущей директории:

Перейти в родительский каталог (на уровень выше):

Перейти в домашний каталог:

Перейти в домашний каталог по абсолютному пути (начиная с корня):

Перейти в предыдущий каталог:


Примеры использования:

Действия с файлами и каталогами

Создание директорий

Команда для создания директорий - mkdir.

Создать сразу несколько директорий:

Создать дерево директорий:

Пример использования:

Создание файлов

Для создания файлов можно использовать различные команды, например:

Создать новый файл при его отсутствии (если файл существует, содержимое файла не изменяется):

Создать новый файл при его отсутствии (если файл существует, то команда удаляет его содержимое):

Создать новый файл при его отсутствии и записать в него строку "test" (если файл существует, то команда заменяет его содержимое на строку "test"):

Вы можете выбрать удобный для вас способ или использовать любой другой.

Также можно создать файл с помощью текстового редактора. На наших серверах доступен nano:

При этом файл сразу будет открыт для редактирования.

Чтобы сохранить изменения и закрыть файл, в nano можно воспользоваться сочетанием клавиш Crtl X → Y → Enter.

Копирование файлов и каталогов

Копирование каталогов и файлов осуществляется с помощью команды cp.

Основные способы применения:

Скопировать файл test.txt в файл test1.txt (файл test.txt должен присутствовать в текущей директории):

Скопировать директорию dir1 в директорию dir2, включая всё содержимое (ключ -r означает рекурсивное копирование, директория dir1 должна присутствовать в текущей директории):

Перемещение и переименование файлов

Перемещение и переименование файлов выполняется при помощи команды mv.

Основные способы применения:

Переименовать файл test.txt в test2.txt (файл test.txt должен присутствовать в текущей директории):

Переместить файл test2.txt в директорию dir (файл и директория должны присутствовать в текущей директории):

Примеры использования:

Удаление файлов и каталогов

Для удаления объектов используйте команду rm.

Основные способы применения:

Удалить файл test.txt в текущем каталоге:

Удалить все файлы в определенной директории:

Удалить все файлы с расширением .txt в определенной директории:

Удалить директорию и все ее содержимое:

Для того, чтобы при удалении каждого файла запрашивалось подтверждение, можно использовать ключ -i:

Если же файлов много и вы точно уверены в необходимости их удаления, можно использовать противоположную опцию -f, тогда удаление будет выполнено без подтверждения:

Создание ссылок

Ссылки при работе по SSH-протоколу создаются командой ln.

Основные способы применения:

Создать "жёсткую" ссылку:

Создать "символьную" ссылку:

Примеры использования:

Изменение прав доступа к файлам и директориям

Команда chmod позволяет настроить права доступа к файлам и директориям.

Основные способы применения:

Изменение прав на xxxx для файла file (file должен существовать в текущей директории):

Изменение прав на xxxx для директории dir (dir должна существовать в текущей директории):

Примеры использования:

Работа с содержимым файлов

Конкатенация содержимого файлов

Команда cat позволяет выполнить конкатенацию (объединение) содержимого файлов и печать его в стандартный поток вывода. Данная команда зачастую используется просто для просмотра содержимого файла.

Примеры использования:

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

Примеры использования:

Данные команды позволяют вывести 2 первых строки и 1 последнюю строку файла test.txt.

Поиск по содержимому файла

grep - это популярная команда, позволяющая найти содержимое файлов.

Например, у нас есть файл test1.txt, который имеет следующее содержимое:

Примеры использования grep:

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

Поиск файлов

Используйте команду find, чтобы найти нужный файл.

Основные способы применения:

Поиск файлов и каталогов с именем "test" в текущей директории:

Поиск в текущей директории файлов и каталогов, имена которых начинаются на "test" и далее содержат любое количество любых символов:

Поиск в домашней директории файлов и каталогов, имена которых начинаются на "test" и далее содержат любое количество любых символов:

Поиск файлов с расширением ".php" в домашней директории:

Пример использования:

Архивы

Создать архив директории:

Распаковать архив .tar в текущую директорию:

Процесс создания или распаковки тяжелых архивов может завершаться принудительно в связи с установленными ограничениями на использование процессами процессоров сервера.

В таких случаях для архивирования в .tar вы можете использовать следующую команду, которая позволит ограничить скорость архивации и снизить использование ресурсов процессора.

Для удобства команда может быть расширена, чтобы отобразить в консоли счетчик времени, оставшегося до завершения процесса, и вывести уведомление (END) о его завершении (позволит проконтролировать, что процесс не прервался и был выполнен успешно).

Для распаковки большого архива .tar можно воспользоваться командой:

Аналогично для распаковки архивов .tar.gz:

Распаковка .tar.gz с уведомлением о завершении:

Распаковать архив .rar в текущую директорию:

Распаковать архив .zip в текущую директорию:

Для распаковки тяжелых .zip-архивов:

Базы данных

Создание дампа базы данных:

Импорт данных из дампа в базу данных:

Проверка базы данных на наличие ошибок:

Восстановление базы данных при наличии ошибок:

Подробнее о восстановлении баз данных и решении возможных ошибок см. в статье Восстановление базы данных.

Подключение к серверу баз данных:

Нажмите Enter, после чего введите пароль базы.

Получение информации о параметрах MySQL:

Завершение работы процессов

Завершить текущие процессы можно командой killall. Например, для завершения процессов веб-сервера Apache:

Обратите внимание! После выполнения данной команды для перезапуска обработчиков Apache необходимо изменить версию обработчика php в разделе "Сайты".

Аналогично для других сервисов, например:

Завершение процесса MySQL:

Для просмотра процессов MySQL используйте:

Для завершения процессов MySQL можно также использовать утилиту pt-kill.

Дисковое пространство

Вывод информации о текущей дисковой квоте (в квоту не включается информация по базам данных):

Вывести размер файлов и директорий в текущем каталоге:

Анализ дискового пространства аккаунта (сканирует корневой каталог):

Просканировать файлы конкретную директорию:

Подробнее об использовании утилиты ncdu смотрите в статье Анализ дискового пространства.

Другие вспомогательные команды

Вывод истории команд:

Очистить экран (сочетание клавиш Ctrl-L):

Закрыть подключение по SSH (сочетание клавиш Ctrl-D):

Сочетания клавиш:

Ctrl-C - прервать выполнение текущей команды.

Ctrl-Shift-C - копировать выделенный фрагмент (в интерфейсе PuTTY копирование осуществляется простым выделением).

Ctrl-Shift-V - вставить (в интерфейсе PuTTY вставка осуществляется нажатием на правую кнопку мыши).

Я должен отредактировать некоторые файлы, размещенные на каком-либо сервере, к которому я мог бы обратиться через ssh.

Я бы предпочел отредактировать эти файлы в настроенном vim на моей рабочей станции (у меня нет прав на изменение vim настроек на удаленном сервере). Иногда я хотел бы отредактировать файл с помощью sublime text другого графического редактора.

Конечно, я могу загрузить эти файлы, отредактировать их локально и загрузить обратно на сервер. Есть ли более элегантное решение?

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

Теперь выполните процесс монтажа:

После этого просто перейдите в смонтированную папку и используйте свой собственный локальный настраиваемый vim.

Неудивительно, что на этапе установки произойдет сбой в дистрибутивах, которые не основаны deb и, следовательно, не имеют apt-get . (В этом случае yum или zypper может присутствовать.) Они также требуют root на локальном компьютере, который может или не может быть доступен. (Нельзя сказать, что это плохое решение, но оно имеет большое условие.) Хорошо. Догадаться. Все это делается на локальной машине. В случае OS X нужно установить osxfuse и sshfs . Их можно установить с помощью homebrew ( brew install sshfs и brew cask install osxfuse из пакетов, полученных с osxfuse.github.io

Вы можете сделать это scp следующим образом:

Обратите внимание на две косые черты // между сервером и путем, которые необходимы для правильного определения абсолютного пути. (Первая косая черта является синтаксической, в то время как вторая косая черта, как обычно, указывает корневой каталог удаленного пользователя. Чтобы начать с домашнего каталога, вы должны это сделать [:port]/

/path/to/file.txt .) [:port] Необязательно.

Это обрабатывается стандартным плагином vim для netrw.vim . Поддерживаются несколько других протоколов.

Да, файл извлекается во временный файл, который загружается на сервер при сохранении. Спасибо. Тем не менее, я получил ошибку, когда пытался сохранить файл: E382: Cannot write, 'buftype' option is set

/.ssh/config и разрешать удаленные хосты с помощью vim scp://[host]/path .

В зависимости от того, что вы имеете в виду, когда говорите, что у вас нет прав на редактирование настроек Vim, может быть способ использовать Vim на сервере так, как вы этого хотите. Если вы не можете изменить своего пользователя .vimrc (например, потому что вы входите в систему как пользователь с общим доступом), но вы все равно можете создавать файлы, создайте их как файл с именем скажем, Loom.vimrc а затем вызовите Vim с помощью -u переключателя:

Даже тогда вы можете использовать псевдоним: alias vim='vim -u

/Loom.vimrc' позволит вам использовать Vim обычным способом, и он все равно будет загружать ваш пользовательский .vimrc файл. Этот псевдоним не будет сохраняться после выхода из системы, поэтому вам не нужно беспокоиться о том, что кто-то другой случайно воспользуется вашим настроенным Vim.

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

Читайте также: