В данной статье рассматриваются основные команды, используемые при работе с файлами и директориями при подключении к серверу по SSH-протоколу.
Для подключения можно использовать терминал в вашей ОС, утилиту PuTTY или же веб-консоль в панели управления. Подробнее см. в статье статье «Подключение по SSH».
Обратите внимание, что команды необходимо вводить в нижнем регистре. Например,
pwd— корректное имя команды,Pwd— некорректное.
Навигация
Команды для перемещения по каталогам и просмотра их содержимого.
Вывод текущей рабочей директории
Для вывода информации о текущей рабочей директории используется команда pwd.
Пример использования
pwd
Вывод:
/root
Вывод содержимого директории
Чтобы посмотреть содержимое директории, воспользуйтесь командой ls.
Вывод содержимого текущей директории в несколько колонок (только имена файлов и директорий):
ls .
Вывод содержимого текущей директории в одну колонку (только имена файлов и директорий):
ls -1
Вывод подробной информации о содержимом текущей директории, включая скрытые файлы (имя которых начинается с точки):
ls -la
Вывод содержимого конкретной директории:
ls имя_директории
Пример использования
Выведем содержимое текущей директории:
ls -la
Вывод:
total 16 drwx------ 4 username customers 4096 Mar 10 12:56 . drwx------ 14 username customers 4096 Mar 10 12:55 .. -rw------- 1 username customers 0 Mar 10 12:56 .htaccess drwx------ 2 username customers 4096 Mar 10 12:55 test drwx------ 2 username customers 4096 Mar 10 12:55 test1 -rw------- 1 username customers 0 Mar 10 12:55 test.txt
Здесь . — текущий каталог, а .. — родительский каталог.
Перемещение между директориями
Команда cd позволяет выполнить переход в другую директорию.
Основные способы применения
Перейти в директорию, которая находится в текущей директории:
cd dirname
Перейти в родительский каталог (на уровень выше):
cd ..
Перейти в домашний каталог:
cd
Либо:
cd ~
Перейти в домашний каталог по абсолютному пути (начиная с корня):
cd /home/u/username
Перейти в предыдущий каталог:
cd -
Примеры
Переходим в каталог media:
cd /home/u/username/public_html/media
Вы увидите, что текущая директория, которая отображается после двоеточия и до символа $, изменится:
username@server:~/public_html/media$
Перейдем в каталог cms:
cd cms
Текущая директория снова изменится:
username@server:~/public_html/media/cms$
Перейдем в домашний каталог:
cd
Мы увидим:
username@server:~$
Вернемся в предыдущий каталог:
cd -
Перейдем на уровень выше:
cd ..
Действия с файлами и каталогами
Создание, удаление, изменений файлов и директорий.
Создание директорий
Команда для создания директорий — mkdir.
Создать директорию:
mkdir имя_директории
Создать сразу несколько директорий:
mkdir имя_директории1 имя_директории2
Создать дерево директорий:
mkdir -p /имя_директории1/имя_директории2
Пример использования
ls -l
total 0
Создадим директорию:
mkdir dir1
Выводим листинг:
ls -l
total 4 drwx------ 2 username customers 4096 Mar 10 13:16 dir1
Создание файлов
Для создания файлов можно использовать различные команды, например:
Создать новый файл при его отсутствии (если файл существует, содержимое файла не изменяется):
touch test.txt
Создать новый файл при его отсутствии (если файл существует, то команда удаляет его содержимое):
> test.txt
Создать новый файл при его отсутствии и записать в него строку «test» (если файл существует, то команда заменяет его содержимое на строку «test»):
echo "test" > test.txt
Вы можете выбрать удобный для вас способ или использовать любой другой.
Также можно создать файл с помощью текстового редактора. На наших серверах доступен nano:
nano имя_файла
При этом файл сразу будет открыт для редактирования.
Чтобы сохранить изменения и закрыть файл, в nano можно воспользоваться сочетанием клавиш Crtl X → Y → Enter.
Копирование файлов и каталогов
Копирование каталогов и файлов осуществляется с помощью команды cp.
Основные способы применения
Скопировать файл test.txt в файл test1.txt (файл test.txt должен присутствовать в текущей директории):
cp test.txt test1.txt
Скопировать директорию dir1 в директорию dir2, включая всё содержимое (ключ -r означает рекурсивное копирование, директория dir1 должна присутствовать в текущей директории):
cp -r dir1 dir2
Перемещение и переименование файлов
Перемещение и переименование файлов выполняется при помощи команды mv.
Основные способы применения
Переименовать файл test.txt в test2.txt (файл test.txt должен присутствовать в текущей директории):
mv test.txt test2.txt
Переместить файл test2.txt в директорию dir (файл и директория должны присутствовать в текущей директории):
mv test2.txt dir
Примеры использования
ls -l
total 4drwx------ 2 username customers 4096 Mar 10 13:37 dir-rw------- 1 username customers 0 Mar 10 13:37 test.txt
Переименуем файл:
mv test.txt test2.txt
Выведем листинг:
ls -l
total 4 drwx------ 2 username customers 4096 Mar 10 13:37 dir -rw------- 1 username customers 0 Mar 10 13:37 test2.txt
Переместим файл в директорию:
mv test2.txt dir
Просмотрим ее содержимое:
ls dir
test2.txt
Удаление файлов и каталогов
Для удаления объектов используйте команду rm.
Основные способы применения
Удалить файл test.txt в текущем каталоге:
rm test.txt
Удалить все файлы в определенной директории:
rm /путь/к/файлам/*
Удалить все файлы с расширением .txt в определенной директории:
rm /путь/к/файлам/*.txt
Удалить директорию и все ее содержимое:
rm -r имя_директории
Для того, чтобы при удалении каждого файла запрашивалось подтверждение, можно использовать ключ -i:
rm -i /путь/к/файлам/*.txt
Если же файлов много и вы точно уверены в необходимости их удаления, можно использовать противоположную опцию -f, тогда удаление будет выполнено без подтверждения:
rm -f /путь/к/файлам/*.txt
Создание ссылок
Ссылки при работе по SSH-протоколу создаются командой ln.
Основные способы применения
Создать жесткую ссылку:
ln file1 file2
Создать символьную ссылку:
ln -s file1 file2
Примеры использования
ls -l
total 0 -rw------- 1 username customers 0 Mar 10 14:08 test.txt
Создадим символьную ссылку:
ln -s test.txt link
Выведем листинг:
ls -l
total 0lrwxrwxrwx 1 username customers 8 Mar 10 14:08 link -> test.txt-rw------- 1 username customers 0 Mar 10 14:08 test.txt
Изменение прав доступа к файлам и директориям
Команда chmod позволяет настроить права доступа к файлам и директориям.
Основные способы применения
Изменение прав на xxxx для файла file (file должен существовать в текущей директории):
chmod xxxx file
Изменение прав на xxxx для директории dir (dir должна существовать в текущей директории):
chmod xxxx dir
Примеры использования
ls -l
total 4 drwx------ 2 username customers 4096 Mar 10 14:39 dir -rw------- 1 username customers 0 Mar 10 14:39 test.txt
Изменим права на файл:
chmod 0644 test.txt
Проверим:
ls -l
total 4 drwx------ 2 username customers 4096 Mar 10 14:39 dir -rw-r--r-- 1 username customers 0 Mar 10 14:39 test.txt
Изменим права на директорию:
chmod 0755 dir/
Проверим:
ls -l
total 4drwxr-xr-x 2 username customers 4096 Mar 10 14:39 dir -rw-r--r-- 1 username customers 0 Mar 10 14:39 test.txt
Работа с содержимым файлов
Основные команды для управления содержимым файлов.
Конкатенация содержимого файлов
Команда cat позволяет выполнить конкатенацию (объединение) содержимого файлов и печать его в стандартный поток вывода. Данная команда зачастую используется просто для просмотра содержимого файла.
Примеры использования
cat test.txt
Вывод:
12345
Просмотр частей файла
С помощью команд head и tail можно вывести определенное количество строк от начала или конца файла соответственно.
Примеры использования
Вывести две строки с начала:
head -2 test.txt
12
Вывести последнюю строку с конца:
tail -1 test.txt
5
Поиск по содержимому файла
grep — это популярная команда, позволяющая найти содержимое файлов.
Например, у нас есть файл test1.txt. Просмотрим его содержимое:
cat test1.txt
1 first string
2 second string
3 another example of a string
4 something in here
5 andalsohere
Примеры использования
Ищем вхождения string:
grep 'string' test1.txt
1 first string 2 second string 3 another example of a string
Ищем вхождения th:
grep 'th' test1.txt
3 another example of a string 4 something in here
Ищем вхождения here:
grep 'here' test1.txt
4 something in here5 andalsohere
Команда grep имеет огромное количество способов применения. За дополнительной информацией вы можете обратиться к официальной документации, либо к свободным источникам в интернете.
Поиск файлов
Используйте команду find, чтобы найти нужный файл.
Основные способы применения
Поиск файлов и каталогов с именем test в текущей директории:
find ./ -name 'test'
Поиск в текущей директории файлов и каталогов, имена которых начинаются на test и далее содержат любое количество любых символов:
find ./ -name 'test*'
Поиск в домашней директории файлов и каталогов, имена которых начинаются на test и далее содержат любое количество любых символов:
find ~/ -name 'test*'
Поиск файлов с расширением .php в домашней директории:
find ~/ -name '*.php'
Архивы
Создать архив директории:
tar -cf имя_архива.tar имя_директории
Примеры использования
Заархивируем директорию /home/user/директория_сайта/public_html/media/. Для этого сначала перейдем в каталог, в котором находится директория media:
cd /home/u/user/имя_сайта/public_html/
Выполним команду архивации и укажем удобное имя архива:
tar -cf имя_архива.tar media
Распакуем архив .tar в текущую директорию:
tar -xvf архив.tar
Распаковать архив .rar в текущую директорию:
unrar x архив.rar
Распаковать архив .zip в текущую директорию:
unzip архив.zip
Базы данных
Создание дампа базы данных:
mysqldump -u'пользователь_бд' база_данных -p'пароль_базы_данных' > имя_дампа.sql
Импорт данных из дампа в базу данных:
mysql -u'пользователь_бд' база_данных -p'пароль_базы_данных' < имя_дампа.sql
Проверка базы данных на наличие ошибок:
mysqlcheck -c -u'пользователь_бд' база_данных -p'пароль_базы_данных'
Восстановление базы данных при наличии ошибок:
mysqlcheck -r -u'пользователь_бд' база_данных -p'пароль_базы_данных'
Подключение к серверу баз данных:
mysql -u база_данных -p
Нажмите Enter, после чего введите пароль базы.
Получение информации о параметрах MySQL:
SHOW VARIABLES LIKE 'параметр';
SHOW SESSION VARIABLES LIKE 'параметр';
Например:
SHOW SESSION VARIABLES LIKE 'max_join_size';
Завершение работы процессов
Для управления сервисами на современных Linux-серверах используется systemctl. Например, чтобы перезапустить веб-сервер Apache:
systemctl restart apache2
Также возможно жесткое завершение процесса с помощью killall. Однако использовать его стоит только в крайних случаях, когда сервис «завис» и не отвечает. Для обычного управления сервисами лучше всегда systemctl restart или systemctl stop/start.
Пример использования killall:
killall -9 apache2
Дисковое пространство
Вывод информации о текущей дисковой квоте:
quota -s
Вывести размер файлов и директорий в текущем каталоге:
du -sch *
Анализ дискового пространства аккаунта (сканирует корневой каталог):
ncdu
Просканировать файлы конкретную директорию:
ncdu имя_директории
Другие вспомогательные команды
Вывод истории команд:
history
Очистить экран (сочетание клавиш Ctrl-L):
clear
Закрыть подключение по SSH (сочетание клавиш Ctrl-D):
exit
Сочетания клавиш
- Ctrl-C — прервать выполнение текущей команды.
- Ctrl-Shift-C — копировать выделенный фрагмент (в интерфейсе PuTTY копирование осуществляется простым выделением).
- Ctrl-Shift-V — вставить (в интерфейсе PuTTY вставка осуществляется нажатием на правую кнопку мыши).