04 Jan 2013

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

Что же такое SSH, в чем его волшебство и для чего это волшебство необходимо. Идем по порядку. Что такое SSH? Так как практически весь словарный запас компьютерной терминологии к нам пришел из английского языка, то от перевода никуда не деться, поэтому переводим, и понимаем, что SSH - Secure Shell переводится как защищенная оболочка. То есть, обработав в головном мозге перевод с функциями ssh приходим к выводу, что SSH это метод безопасного доступа к серверу на базе unix и linux. Но и это еще не все, ssh заработало свое неоспоримое признание благодаря действенности, удобству в использовании команд SSH.

SSH предстает во всей красе в unix-овых операционных системах и на MAC в терминале. Для Windows существует специальная программа PUTTY, которая позволяет вкусить радость от общения через SSH и для ярых поклонником этой операционной системы.

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

Чтобы не получилось, что я пою оду SSH, хотя, честно говоря стоит это делать, я все же немного добавлю перчинку (дегтем не назовешь это, а перчика в самый раз) в объемную бочку прекрасного меда. И перчинка заключается в следующем: чтобы полностью наслаждаться работой по SSH, нужно знать команды, а они непривычны нашему ни слуху, ни глазу. Но все исправимо и поправимо, зато потом, зная команды SSH работа на компьютере принесет удовольствие.

Команды SSH
Команды с файлами

ls — список файлов и каталогов

ls -al — форматированный список со скрытыми каталогами и файлами

ls -lia — вывод списка всех файлов и папок в текущей директории отсортированных по алфавиту с отображением размеров директорий и файлов.

cd dirname — сменить директорию на dirname (cd — change directory)

cd ~ — смена директории на домашний каталог, а также команда без «~» (тильды) делает то же самое в большинстве шелов

pwd — показать текущий каталог

pwd ~ — показать каталог для текущего пользователя

mkdir dir — создать каталог dir

rm file — удалить file

rm -r dir — удалить каталог dir

rm -f file — удалить форсированно file

rm -rf dir — удалить форсированно каталог dir * (без вопросов удалит каталог и все что в нем хранится)

cp file1 file2 — скопировать file1 в file2

cp -r dir1 dir2 — скопировать dir1 в dir2; так же создаст каталог dir2, если его не существует

cp -rp dir1 dir2 — скопировать dir1 в dir2; так же создаст каталог dir2, если его не существует и оставит все прежние права старой папки

mv file1 file2 — переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2

ln -s file link — создать символическую ссылку link к файлу file

touch file — создать file

cat > file — направить стандартный ввод в file

more file — вывести содержимое file

head file — вывести первые 10 строк file

tail file — вывести последние 10 строк file

tail -f file — вывести содержимое file по мере роста, начинает с последних 10 строк

view file — вывести файл на экран
Процессы

ps — вывести ваши текущие активные процессы

ps -aux — вывести все процессы (от рута)

top — показать все запущенные процессы

kill pid — убить процесс с id pid

killall proc — убить все процессы с именем proc

bg — список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне

fg — выносит на передний план последние задачи

fg n — вынести задачу n на передний план
Процессы и сервисы

netstat -nlp — смотрим какие порты открыты

netstat -tulpn | grep :80 — смотрим что занимает 80 порт

fuser 7000/tcp — найти PID процессов открывших 7000-й tcp порт

ls -l /proc/3813/exe — ищем имя процесса ассоциированного с PID # 3813

ls -l /proc/3813/cwd — Найти текущий рабочий каталог процесса bittorrent или pid 3813

pwdx 3813 — тоже самое что и «ls -l /proc/3813/cwd»

ps aux | grep 3813 — узнать владельца процесса с PID 3813

lsof -i :80 — что висит на 80 порту
Права доступа на файлы

chown root /filename — смена владельца файла/директории /filename на root

chown root:group /filename смена владельца файла/директории /filename на root и смена группы на group

chown -hR root /filename смена владельца файла/директории /filename на root и всех находящихся в ней файлов на root

Дополнительные опции: man chown.

chmod user file — сменить права file на user, раздельно для пользователя, группы и для всех добавлением:

? 4 — чтение (r)

? 2 — запись (w)

? 1 — исполнение (x) Примеры:

chmod 777 — чтение, запись, исполнение для всех (потенциальная угроза безопасности)

chmod 755 — rwx для владельца, rx для группы и остальных.

chmod -R 755 ./folder — смена прав для файлов в директории и её поддиректориях

Дополнительные опции: man chmod.
SSH

ssh user@host — подключится к host как user

ssh -p port user@host — подключится к host на порт port как user

ssh-copy-id user@host — добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам
Поиск

grep pattern files — искать pattern в files

grep -r pattern dir — искать рекурсивно pattern в dir

command | grep pattern — искать pattern в выводе command

locate file — найти все файлы с именем file

find | grep text — найти текст text во всех файлах текущей директории

find / -name vasy\* — найти файлы и папки с названием vasy*

grep -rl ‘что_ищем’ /путь — найти файлы в теле которых ‘что_ищем’
Системная информация

date — вывести текущую дату и время

cal — вывести календарь на текущий месяц

uptime — показать текущий аптайм

w — показать пользователей онлайн

whoami — имя, под которым вы залогинены

finger user — показать информацию о user

cat /proc/cpuinfo — информация ЦПУ

cat /proc/meminfo — информация о памяти

man command — показать мануал для command

df — показать инф. о использовании дисков

du — вывести «вес» текущего каталога

du -sh cколько весит папка?

free — использование памяти и swap

unamе -a — информация о ядре

whereis app — возможное расположение программы app

which app — какая app будет запущена по умолчанию
Архивация

tar cf file.tar files — создать tar-архив с именем file.tar содержащий files

tar xf file.tar — распаковать file.tar

tar czf file.tar.gz files — создать архив tar с сжатием Gzip

tar xzf file.tar.gz — распаковать tar с Gzip

tar cjf file.tar.bz2 — создать архив tar с сжатием Bzip2

tar xjf file.tar.bz2 — распаковать tar с Bzip2

gzip file — сжать file и переименовать в file.gz

gzip -d file.gz — разжать file.gz в file
Сеть

ping host — пропинговать host и вывести результат

traceroute google.com — трассировка маршрута к серверу google.com

whois domain — получить информацию whois для domain

dig domain — получить DNS информацию domain

dig -x host — реверсивно искать host

wgеt file — скачать file

wgеt -c file — продолжить остановленную закачку

ifconfig — вывод сетевых интерфейсов и подключений

ifconfig -a — Отображение всех интерфейсов, включая отключенные

ifconfig eth0 down — выключаем интерфейс eth0

ifconfig eth0 up — поднимаем (включаем) интерфейс eth0
Установка пакетов

Установка из исходников:

./configure

make

make install

Установка собранных пакетов:
dpkg -i pkg.deb — установить пакет (Debian, Ubuntu)

rpm -Uvh pkg.rpm — установить пакет (RPM RedHatm CentOS)
Автоматизация работы

cron — выполнение заданной команды в определенное время
Клавиатурные сочетания

Ctrl+C — завершить текущую команду

Ctrl+Z — остановить текущую команду, продолжть с fg на переднем плане или bg в фоне

Ctrl+D — разлогиниться, тоже самое, что и exit

Ctrl+W — удалить одно слово в текущей строке

Ctrl+U — удалить строку

!! — повторить последнюю команду

exit — выход

Мои 4 строки

Бесшумной поступью ступая
по виртуальным полкам книг
Я Бога славить не устану
За жизнь свою, за смерть, за миг.

https://kinozaval.ru/