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 — выход
Бесшумной поступью ступая
по виртуальным полкам книг
Я Бога славить не устану
За жизнь свою, за смерть, за миг.