Pwd
pwd – вывод текущей директории, в которой находится пользователь. Аналогичная команде chdir DOS. По-умолчанию пользователь после входа в систему находится в домашней директории (/ home/<имя> для обычного пользователя или /root для суперпользователя).
debian:/usr/bin# pwd
/usr/bin
cd
cd <путь> – переход в директорию, указанную в пути. Аналогичная команде DOS, с тем отличием, что в Linux нет понятия буквы диска и его не надо менять отдельной командой.
При запуске без параметров – переход в домашнюю директорию пользователя. Пример – переход в директорию /usr/bin и переход в домашнюю директорию.
user@debian:~$ cd /usr/bin
user@debian:/usr/bin$ pwd
/usr/bin
user@debian:/usr/bin$ cd
user@debian:~$ pwd
/home/user
user@debian:~$
ls
ls – вывод содержимого текущей директории (путь не указан) или содержимого директории по указанному пути.
Например:
user@debian:/usr/bin$ cd /
user@debian:/$ ls
bin boot cdrom dev etc home initrd initrd.img lib lost+found media mnt opt proc root sbin selinux srv sys tmp usr var vmlinuz
user@debian:/$ ls /home/
user
Команда имеет ряд дополнительных параметром, позволяющих отображать скрытые файлы и папки, изменять форматирования вывода и т.д. Например, попробуйте выполнить следующее:
user@debian:~$ ls --color=auto /usr/bin/
и
user@debian:~$ ls --color=auto -laX /usr/bin/
Touch
touch <путь к файлу> – создание пустого файла по указанному пути. Обратите внимание, что в Unix нет понятия «расширение файла», поэтому файлом будет считаться последняя строка пути, не ограниченная знаком слэша «/». Т.е. команда touch / home/ user/ file создаст файл file в подпапке user папки home. Команда touch / home/ user/ file. txt – аналогично, но имя файла будет file.txt.
user@debian:~$ cd /home/user
user@debian:~$ touch file.txt
равносильно:
user@debian:~$ touch /home/user/file.txt
Cat
Простейшая программой просмотра содержимого файла, просто копирует файл (файлы) в стандартный поток вывода, объединяя их (объединять по-анлийски - concatenate, отсюда название). Пример: выведем содержимое конфигурационного файла программы apt:
debian:/home/user# cat /etc/apt/sources.list
#
# deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 DVD Binary-1 20070407-11:40]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 DVD Binary-1 20070407-11:40]/ etch contrib main
# Line commented out by installer because it failed to verify:
#deb http://security.debian.org/ etch/updates main contrib
# Line commented out by installer because it failed to verify:
#deb-src http://security.debian.org/ etch/updates main contrib.
Иногда полезно выводить номер каждой строки – например при чтении исходных кодов для поиска ошибок, для этого используется аргумент –n.
Tail
Аналогична cat, но выводит последние 10 строк файла или n-строк при запуске с параметром – n:
user@debian:~$ tail -n 2 /etc/apt/sources.list
# Line commented out by installer because it failed to verify:
#deb-src http://security.debian.org/ etch/updates main contrib.
Полезна для чтения лог-файлов, так как обычно нас интересуют несколько последних записей в логе:
debian:/home/user# tail /var/log/syslog
Mkdir
Создание новой папки или папок:
debian:~# mkdir newdir
debian:~# mkdir newdir2 newdir/newdir3
debian:~# ls
newdir newdir2
cp
Копирование файлов и папок. Для копирования подпапок и файлов нужно запускать команду с ключем – R (рекурсивный режим).
debian:~# touch newfile.txt #создаем файл newfile.txt
debian:~# cp newfile.txt newdir2 #копируем его в папку newdir
debian:~# cp newfile.txt newdir #копируем его в папку newdir2
debian:~# cp -R newdir newdir2 #рекурсивно (вместе с содержимым) копируем папку newdir в папку newdir2
debian:~# cp -R newdir2 newdir3 #затем то же проделываем с newdir2
debian:~# tree #просмотрим дерево папок и файлов
.
|-- newdir
| `-- newfile.txt
|-- newdir2
| `-- newdir
| `-- newfile.txt
|-- newdir3
| `-- newdir2
| `-- newdir
| `-- newfile.txt
`-- newfile.txt
6 directories, 4 files
rm
Удаление папок и файлов. Рассмотрим пример:
debian:~# rm newdir
rm: cannot remove `newdir': Is a directory
Команда по-умолчанию отказывается удалять директории, поэтому чтобы удалить директорию вместе с файлами нужно использовать ключ – R (рекурсивно). Следует быть внимательным при использовании команды – файлы и директории удаляются без подтверждения!
debian:~# rm newdir
rm: cannot remove `newdir': Is a directory
debian:~# rm -r newdir
debian:~# rm -r newdir3
debian:~# rm -r newdir2
debian:~# tree
.
|-- newdir
`-- newfile.txt
1 directory, 1 file
debian:~#
mv
Переименование/перемещение директорий.
Переименование:
debian:~# ls
newdir newfile.txt
debian:~# mv newdir newdir10
debian:~# ls
newdir10 newfile.txt
Перемещение файла:
debian:~# ls
newdir10 newfile.txt
debian:~# mv newfile.txt newdir10/newfile10.txt
debian:~# ls
newdir10
debian:~# ls newdir10/
newfile10.txt
du
Определение размера файлов и директорий. При запуске без аргументов рекурсивно выводит размер всех подпапок в текущей папке в байтах, поэтому обычно вызывается с аргументами.
Суммарный размер всей текущей папки:
debian:/etc# cd /etc/
debian:/etc# du -sh
17M .
Размер всех подпапок в текущей папке:
debian:/etc# du -h --max-depth=1
24K ./dhcp3
8.0K ./ldap
8.0K ./csh
12K ./cron.monthly
8.0K ./rc1.d
8.0K ./dictionaries-common
16K ./skel
12K ./texmf
Размер всех папок и файлов в текущей папке:
debian:/etc/dhcp3# du -ah
4.0K ./dhclient-enter-hooks.d/debug
8.0K ./dhclient-enter-hooks.d
4.0K ./dhclient-exit-hooks.d/debug
8.0K ./dhclient-exit-hooks.d
4.0K ./dhclient.conf
24K .
Размер всех файлов на диске:
debian:/# du -sh /
Параметры, которые влияют на отображение:
-h «человекочитабельный» формат отображения размера, т.е. в килобайтах, мегабайтах и т.д.
-a отображать файлы, по-умолчанию файлы не показываются
-s вывод только суммарного размера для аргумента, т.е. d u – s / etc выведет размер всей папки etc и больше ничего.
-S не включать в размер директории размер ее поддиректорий
Параметры можно комбинировать между собой.
Locate
Поиск файлов в файловой базе данных, которая создается и обновляется командой updatedb. При запуск updatedb сканируется все файлы на диске и составляет базу данных их расположения. Поиск в базе данных намного быстрее, чем просмотр всей файловой системы при поиске файла. Недостаток – при удалении файла с диска он еще может оставаться в базе данных и некоторое время может отображаться в результатах поиска.
Создадим новый файл, обновим базу данных (это может занять некоторое время). Попробуем поискать только что созданный файл:
debian:/home/user# cd /home/user/
debian:/home/user# touch mynewfile.txt
debian:/home/user# updatedb
debian:/home/user# locate mynewfile.txt
/home/user/mynewfile.txt
debian:/home/user#
Видим, что файл был найдет – команда вывела путь к файлу.
Удалим файл и снова выполним его поиск:
debian:/home/user# rm mynewfile.txt
debian:/home/user# locate mynewfile.txt
/home/user/mynewfile.txt
Команда по-прежнему считает, что файл находится на жесктом диске!
Для поиска только реально существующих файлов можно использовать ключ –e, locate будет непосредственно проверять наличие файла на диске в случае обнаружения его в БД. Естественно, такая проверка в разы замедляется поиск и нагружает жесткий диск, поэтому использовать ее надо разумно.
Обновим БД и снова выполним поиск:
debian:/home/user# updatedb
debian:/home/user# locate mynewfile.txt
Как теперь видно – из базы данных информация об удаленном файле была также удалена и теперь мы получаем верный результат.
SSH
SSH (англ. Secure SHell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли.
Управление ключами
SSH может авторизоваться не по паролю, а по ключу. Ключ состоит из открытой и закрытой части. Открытая часть серверного ключа хранится на компьютере пользователя, Закрытая часть серверного ключа находится на сервере, на который требуется зайти. При авторизации, информация шифруется с помощью открытой части серверного ключа, передается на сервер, после чего пытается быть расшифрованной закрытым ключом сервера. Дальше происходит обратное действие. Если данная процедура произошла успешно — авторизация выполняется. Таким образом, авторизуется не только клиент на сервере, но и сервер по отношению к клиенту. Главной особенностью ключа по сравнению с паролем является то, что его нельзя «украсть», взломав сервер — ключ не передаётся с клиента на сервер, а во время авторизации клиент доказывает серверу, что владеет ключом.
Генерация ключа
Свой ключ можно сгенерировать с помощью программы PuTTY Key Generator.
Ключ можно зашифровать паролем. Если пароль указать пустым, он спрашиваться при использовании не будет. Восстановить забытый пароль невозможно.
При нажатии Save public key будет предложено сохранить открытый ключ.
При сохранении закрытого ключа не указав пароль, появится предупреждение:
Структура ключа
pubkey — открытый ключ. Его копируют на сервера, куда нужно получить доступ.
privatekey.ppk — закрытый ключ. Он не должен быть никому известен. Если он будет скомпрометирован, то необходимо сгенерировать новый ключ.
Копирование ключа на сервер
В каталоге пользователя, под которым необходимо зайти, если создать файл ~/.ssh/authorized_keys и положить туда открытый ключ, то можно будет заходить без пароля. Обратите внимание, права на файл не должны давать возможность писать в этот файл посторонним пользователям, иначе ssh его не примет. В ключе последнее поле — user@machine. Оно не имеет никакого отношения к авторизации и служит только для удобства определения где чей ключ. Заметим, это поле может быть изменено (или даже удалено) без нарушения структуры ключа.
Пример открытой части ключа:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAoi9h/sl0Y3oQphYUToDbjkqdH4sElB/7z5uAqzBfG/cKXynZjwrXQs5J66G1VyoH492jkvASwtqfo/E/vzDC9bCk1alqyT58xUz97lk+h2nctMd8Nkj3L1AMuT67jYZ0fmRVeksh4qKZ4HYUUzNnEznJ7ijaQ0xgZ7F6Fh7y2d0= user@machine
Ключ сервера
Первый раз, когда пользователь заходит на сервер, ssh спрашивает, доверяете ли он ключу. Если он отвечает нет, соединение закрывается. Если да — ключ сохраняется на компьютере пользователя.
Если ключ сервера поменялся (например, сервер переустановили), ssh предупредит о изменении ключа. Обратите внимание, если сервер не меняли, а ssh сообщает о изменении ключа, скорее всего вы пытаетесь подключится не к тому серверу (например, в сети появился ещё один компьютер с тем же IP, особо этим страдают локальные сети с 192.168.1.1, которых в мире несколько миллионов). Сценарий атаки «человек по середине» маловероятен, чаще всего ошибка с IP, хотя если у вас авторизация по ключу, а сервер вдруг запросил пароль — то пароль вводить не стоит.
Ключ сервера хранится в /etc/ssh/ssh_host_rsa_key и /etc/ssh/ssh_host_rsa_key.pub. Их можно:
а) скопировать со старого сервера на новый.
б) сгенерировать с помощью ssh-keygen. Пароля при этом задавать не надо (т.е. пустой). Ключ с паролем ssh-сервер использовать не сможет.
Заметим, если вы сервера клонируете (например, в виртуальных машинах), то ssh-ключи сервера необходимо сгенерировать повторно.
Старые ключи из know_hosts при этом лучше убрать, иначе ssh будет ругаться на duplicate key.
Копирование файлов
С помощью программы winscp можно копировать файлы через ssh-сессию.
Для этого следует указать адрес сервера, порт, на котором работает ssh, и расположение приватного ключа.
Удалённое исполнение кода
PuTTY может выполнить команду на удалённом сервере и тут же закрыть соединение.
Установка LAMP в Ubuntu
LAMP - это самый популярный стек программного обеспечения для работы веб-сервера. Сюда входят такие программы, как Apache, PHP, MySQL, и работает всё это в Linux, отсюда и такое название. Apache - это самый популярный веб-сервер, может, он не такой производительный, как Nginx, зато очень прост в настройке. PHP - самый популярный язык программирования для веб, а без базы данных вообще сейчас мало что работает.
Рассмотрим, как выполняется Установка LAMP Ubuntu 18.04 несколькими способами: с помощью утилиты tasksel или вручную с помощью установщика программ.
Дата: 2019-12-10, просмотров: 272.