Page tree

В данной статье рассматриваются основные команды, используемые при работе с файлами и директориями при подключении по SSH-протоколу с помощью терминальных программ или специальных программ-клиентов, например, PuTTY. Более подробную справку по каждой из них вы можете получить при помощи man command, где command - название команды, по которой необходимо получить информацию. Выйти из раздела справки можно, нажав на клавишу q.

Настройки, необходимые для подключения по SSH, подробно описаны в статье "Работа с файлами по SSH".  

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

Навигация

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

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

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

username@server:~$ pwd
/home/u/username

Наверх

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

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

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

ls .

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

ls -1

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

ls -la

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

ls имя_директории

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

username@server:~$ 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
username@server:~$ cd /home/u/username/public_html/media
 
# Перейти в каталог cms
username@server:~/public_html/media$ cd cms
 
# Перейти в домашний каталог
username@server:~/public_html/media/cms$ cd
 
# Перейти в предыдущий каталог
username@server:~$ cd -
/home/u/username/public_html/media/cms
 
# Перейти на уровень выше
username@server:~/public_html/media/cms$ cd ..
username@server:~/public_html/media$

Наверх

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

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

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

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

username@server:~/test_home/test$ ls -l
total 0
username@server:~/test_home/test$ mkdir dir1
username@server:~/test_home/test$ 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

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

Наверх

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

Копирование каталогов и файлов осуществляется с помощью команды 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

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

username@server:~/test_home$ ls -l
total 4
drwx------ 2 username customers 4096 Mar 10 13:37 dir
-rw------- 1 username customers    0 Mar 10 13:37 test.txt
username@server:~/test_home$ mv test.txt test2.txt
username@server:~/test_home$ 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
username@server:~/test_home$ mv test2.txt dir
username@server:~/test_home$ 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

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

username@server:~/test_home$ ls -l
total 0
-rw------- 1 username customers 0 Mar 10 14:08 test.txt
username@server:~/test_home$ ln -s test.txt link
username@server:~/test_home$ ls -l
total 0
lrwxrwxrwx 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

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

username@server:~/test_home$ 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
username@server:~/test_home$ chmod 0644 test.txt
username@server:~/test_home$ 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
username@server:~/test_home$ chmod 0777 dir/
username@server:~/test_home$ ls -l
total 4
drwxrwxrwx 2 username customers 4096 Mar 10 14:39 dir
-rw-r--r-- 1 username customers    0 Mar 10 14:39 test.txt

Наверх

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

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

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

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

username@server:~/test_home$ cat test.txt
1
2
3
4
5
username@server:~/test_home$

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

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

username@server:~/test_home$ cat test.txt | head -2
1
2
username@server:~/test_home$ cat test.txt | tail -1
5

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

Наверх

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

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

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

username@server:~/test_home$ cat test1.txt

1 first string
2 second string
3 another example of a string
4 something in here
5 andalsohere

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

username@server:~/test_home$ grep 'string' test1.txt
1 first string
2 second string
3 another example of a string
username@server:~/test_home$ grep 'th' test1.txt
3 another example of a string
4 something in here
username@server:~/test_home$ grep 'here' test1.txt
4 something in here
5 andalsohere

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

Наверх

Поиск файлов

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

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

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

find ./ -name 'test'

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

find ./ -name 'test*'

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

find ~/ -name 'test*'

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

find ~/ -name '*.php'

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

username@server:~/test_home$ find ./ -name 'test*'
./test.txt

Наверх

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

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

history

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

clear

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

exit

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

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

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

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

Наверх

Полезные команды для работы с архивами, базами данных и процессами

Архивы

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

tar -cf имя_архива.tar имя_директории

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

# Заархивировать директорию /home/u/user/директория_сайта/public_html/media/

# 1.Перейти в каталог, в котором находится директория media:
username@server:~$ cd /home/u/user/имя_сайта/public_html/

# 2.Выполнить команду архивации, задав удобное имя архива:
username@server:~/имя_сайта/public_html$ tar -cf имя_архива.tar media

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

tar -xvf архив.tar

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

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

tar -cf - имя_директории| pv -L 2M > имя_архива.tar

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

tar -cf - имя_директории | pv -L 2M -cN tar -s $(du -sb имя_директории | grep -o '[0-9]*') > имя_архива.tar && echo "END"

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

pv -L 2M имя_архива.tar | tar xfv - -C ./имя_директории_назначения

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

pv -L 1M имя_архива.tar.gz | tar zxfv - -C ./имя_директории_назначения

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

pv -L 1M имя_архива.tar.gz | tar zxfv - -C ./имя_директории_назначения && echo "END" 

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

unrar x архив.rar

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

unzip архив.zip

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

pv -L 1M имя_архива.zip | unzip-stream имя_директории_назначения


Наверх

Базы данных

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

mysqldump -u'база_данных' база_данных -p'пароль_базы_данных' > имя_дампа.sql

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

mysql -u'база_данных' база_данных -p'пароль_базы_данных' < имя_дампа.sql

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

mysqlcheck -c -u'база_данных' база_данных -p'пароль_базы_данных'

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

mysqlcheck -r -u'база_данных' база_данных -p'пароль_базы_данных'

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

Наверх

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

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

killall -9 apache2

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

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

killall -9 vsftpd

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

mysqladmin -u'база_данных' -p'пароль_базы_данных' kill id_запроса

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

mysqladmin -u'база_данных' -p'пароль_базы_данных' pr
Для завершения процессов MySQL можно также использовать утилиту pt-kill.

Наверх

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

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

quota -s

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

du -sch *

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

ncdu

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

ncdu имя_директории

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

Наверх

  • No labels