Дерево страниц

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

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

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

Навигация

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

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

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

username@server:~$ pwd

/home/u/username

Наверх

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

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

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

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

ls -1 - вывод содержимого текущей директории в одну колонку (только имена файлов и директорий).

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

ls dir - вывод содержимого директории с именем dir.

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

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

где "." - текущий каталог, а ".." - родительский каталог.

Наверх

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

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

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

"cd dirname" - перейти в директорию dirname, которая находится в текущей директории.

"cd .." - перейти в родительский каталог (на уровень выше).

"cd" - перейти в домашний каталог (аналогично команде "cd ~").

"cd /home/u/username" - перейти в домашний каталог по абсолютному пути (начиная с корня).

"cd -" - перейти в предыдущий каталог.

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

Текущая директория отображается после двоеточия и до символа "$".

username@server:~/test_home$ cd test

username@server:~/test_home/test$ cd

username@server:~$ cd -

/home/u/username/test_home/test

username@server:~/test_home/test$ cd ..

username@server:~/test_home$

Наверх

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

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

Команда для создания директорий -   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

Наверх

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

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

touch test.txt - создает новый файл при его отсутствии (если файл существует, содержимое файла не изменяется)

> test.txt - создает новый файл при его отсутствии (если файл существует, то команда удаляет его содержимое)

echo "test" > test.txt - создает новый файл при его отсутствии и записывает туда строку "test" (если файл существует, то команда заменяет его содержимое на строку "test").

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

Наверх

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

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

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

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

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

Наверх

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

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

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

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

mv test2.txt dir - перемещение файла 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

Наверх

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

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

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

rm test.txt - удалить файл test.txt.

rm -r dir - удалить директорию и всё её содержимое.

Наверх

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

Ссылки при работе по 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

Наверх

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

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

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

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

chmod xxxx dir - изменение прав на xxxx для директории dir (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

Наверх

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

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

Команда 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.

Наверх

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

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

 

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

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, чтобы найти нужный файл.

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

find ./ -name 'test' - поиск файлов и каталогов с именем "test" в текущей директории.

find ./ -name 'test*' - поиск файлов и каталогов, имена которых начинаются на "test" и далее содержат любое количество любых символов в текущей директории.

find ~/ -name 'test*' - поиск файлов и каталогов, имена которых начинаются на "test" и далее содержат любое количество любых символов в домашней директории.

find ~/ -name '*.php' - поиск файлов с расширением ".php" в домашней директории.

 

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

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

./test.txt

Наверх

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

history - вывод истории команд.

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

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

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

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

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

Наверх

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

Архивы

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

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

Обратите внимание, что на тарифах виртуального хостинга Year+, Optimo+, Century+, Millennium+ процесс создания или распаковки тяжелых архивов может завершаться принудительно в связи с установленными ограничениями на использование процессами процессоров сервера.

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

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

Для удобства команда может быть расширена следующим образом:

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

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

 

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

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

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

unrar x архив.rar - распаковать архив .rar в текущую директорию.

Базы данных

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

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

mysqlcheck -c -u'база_данных' база_данных -p'пароль_базы_данных' - проверка базы данных на наличие ошибок.

mysqlcheck -r -u'база_данных' база_данных -p'пароль_базы_данных' - восстановление базы данных при наличии ошибок.

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

killall -9 apache2

killall -9 httpd

killall -9 vsftpd

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

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

du -sch * - вывести размер файлов и директорий в текущем каталоге.

Наверх