Небольшая шпаргалка по linux командам. (Периодически обновляется)

Содержание:
Manual (man)
Команды с файлами
Резервное копирование (rsync)
Процессы
Открытые порты, запущенные процессы на них
Права на файлы
Поиск файлов
Информация о системе
Архивация и распаковка
Сеть (настройка, скачивание файлов)
Установка и удаление пакетов
LINUX Команды
man ИмяКоманды – помощь по работе с командой
Пример: man find – выведет информацию о команде find
Выход из мануала через ssh-клиент – клавиша “Pause/Break”
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 * (без вопросов удалит каталог и все что в нем хранится)
find /path/to/dir -name "test" -type d -exec rm -rf {} \;
– удалить форсированно каталог test (без вопросов удалит каталог test и все что в нем хранится)
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
mv -f /dir /var/dir2/– переместить dir в /var/dir2/dir c перезаписью всего что внутри /var/dir2/
ln -s file link – создать символическую ссылку link к файлу file (Create a symbolic link to file)
Примеры:
ln -s /path/to/file /path/to/symlink
ln -s EXISTING_FILE SYMLINK_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 – вывести файл на экран
Локальная/удаленная синхронизация файлов (rsync)
Копировать (синхронизировать) все содержимое из папки folder1 в папку cpfolder2, опция –ignore-existing предлагает игнорировать уже скопированные файлы. Опция –delete будет удалять файлы в папке назначения cpfolder2 если вдруг добавились/изменились какие-то файлы в ней или в папке откуда копируются файлы. Таким образом мы делаем зеркало из папки folder1 в папке cpfolder2. Ставим задачу в крон и получаем зеркало из папки folder1 в папке cpfolder2
rsync -r --ignore-existing --delete /folder1/ /cpfolder2
Резервное удаленное копирование данных между двумя шеллами (ssh) rsync
rsync -avz -e "ssh -p54332" ./Dropbox root@remoteserver.com:/root/backup/
– Копирует локальную папку Dropbox со всем её содержимым на удаленный сервер remoteserver.com на котором ssh висит на 54332 порту в удаленную папку /root/backup.
rsync -avz -e "ssh -p54332" root@remoteserver.com:/var/lib /root/temp
– Копирует с удаленного сервера remoteserver.com (порт 54332) папку /var/lib на локальный компьютер в папку /root/temp
Опции rsync:
-a режим архива, при использовании заменяет несколько ключей (-rlptgoD)
-r рекурсивно. Копирует все файлы, включая вложенные каталоги
-l при копировании сохраняет символические ссылки
-p сохраняет права на файлы
-t сохраняет время изменения файлов
-g сохраняет группу файлов
-o сохраняет владельца файлов (работает только из под root)
-D сохраняет файлы устройств и специальны файлы
-v показывает название файлов при копировании
-z сжатие файлов при копировании
-e ssh использовать при копировании ssh
–progress показывает прогресс выполнения копирования
–bwlimit=KBPS ограничивает скорость передачи файлов
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 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 ‘что_ищем’ /путь – найти файлы в теле которых ‘что_ищем’
grep -Ril “что_ищем” /путь – найти файлы в теле которых ‘что_ищем’
НАЙТИ файлы с именем files.php и заархивировать в archive.txz:
find /home/local/folder/ -name "files.php" | tar cJfTP ./archive.txz -
Найти php.ini вы можете с помощью команд:
updatedb locate php.ini
date – вывести текущую дату и время
cal – вывести календарь на текущий месяц
uptime – показать текущий аптайм
w – показать пользователей онлайн
whoami – имя, под которым вы залогинены
finger user – показать информацию о user
cat /proc/cpuinfo – информация ЦПУ
cat /proc/meminfo – информация о памяти
man command – показать мануал для command
df – показать инф. о использовании дисков
du – вывести “вес” текущего каталога
du -sh – cколько весит папка?
du -shc dirname/ – общий вес папки
du -shc dirname/* – общий вес папки и всех его подкаталогов первого уровня
free – использование памяти и swap
Информация о ядре Linux:
unamе -aУзнать версию Linux Debian / Ubuntu:
lsb_release -aУзнать версию Linux CentOS:
rpm -qa | grep centos-release
Узнать версию Linux Redhat:
rpm -qa | grep redhat-release
Узнать версию Linux также можно такими командами:
cat /etc/issue
cat /etc/*release*
whereis app – возможное расположение программы app
which app – какая app будет запущена по умолчанию
TAR: подробнее – тут tovld.com/archives/916
tar cf file.tar files – создать tar-архив с именем file.tar содержащий files
tar xf file.tar – распаковать file.tar
TAR GZ:
tar czf file.tar.gz files – создать архив tar с сжатием Gzip
tar xzf file.tar.gz – распаковать tar с Gzip
TAR BZ:
tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 – распаковать tar с Bzip2
GZIP:
gzip file – сжать file и переименовать в file.gz
gzip -d file.gz – распаковать file.gz в file
ZIP:
сжать /dir в archive.zip:
zip -r archive.zip /dir
распаковать archive.zip в текущую директорию:
unzip archive.zipдобавить в архив foo из папки folder только файлы с расширениями php, html, js, css:
zip -r foo folder -i '*.php' '*.html' '*.js' '*.css'
добавить в архив foo из папки folder только файлы с именем index.php:
zip -r foo folder -i '*index.php'
more: https://stackoverflow.com/questions/1112468/how-do-i-zip-a-whole-folder-tree-in-unix-but-only-certain-files
ZIP end exclude some files and dirs:
zip -r myarchive.zip dir1 -x "dir1/ignoreDir1/*" "file_like_that*.zip"
zip -r docs.zip docs -x "/docs/README.md" -x "docs/cache/*"
7 ZIP:
win:
7z.exe a archive.7z -r c:\dir\with\files\*index.php – заархивировать все файлы с именем index.php из директории c:\dir\with\files\ и всех ее поддиректорий.
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
или
ifup eth0 – поднимаем (включаем) интерфейс eth0
Установка из исходников:
./configure make make install
Установка собранных пакетов:
dpkg -i pkg.deb – установить пакет (Debian, Ubuntu)
rpm -Uvh pkg.rpm – установить пакет (RPM RedHatm CentOS)
Установка программ из репозиториев:
Debian / Ubuntu:
Обновить данные о доступных в репозиториях программах можно командой:
apt-get update – Обновить данные о доступных в репозиториях программах:
apt-get install apache2 – установить пакет “apache2” (Debian, Ubuntu)
RedHat, CentOS, Scientific Linux:
yum install httpd – Установить пакет “httpd”
Удаление пакетов:
Debian / Ubuntu:
apt-get remove apache2 – удалит ранее установленный пакет apache2
Удаление пакета со всеми его зависимостями и оставшимися конфигами в системе на примере удаления exim4: http://unixforum.org/index.php?showtopic=130111
dpkg -l | grep exim4 – проверяем на наличие установленного пакета exim4 в системе, если существует – смотрим ниже
aptitude purge ~iexim4 – удаляем пакет exim4 изначально правильно (с чисткой остаточных конфигов), если до этого не пробовали его удалить по другому
aptitude purge ~cexim4 – удаляем пакет exim4 если он был некорректно удален ранее
aptitude purge ~c – Удалит все пакеты вместе с оставшимися конфигами (мусором)
cron – выполнение заданной команды в определенное время
Клавиатурные сочетания
Ctrl+C – завершить текущую команду
Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Ctrl+D – разлогиниться, тоже самое, что и exit
Ctrl+W – удалить одно слово в текущей строке
Ctrl+U – удалить строку
!! – повторить последнюю команду
exit – выход
Большое спасибо за шпаргалку, часто забываю некоторые команды. Добавили бы еще работу с архивами и бд.
А КАК ПРИ ПОМОЩИ ПУТТИ ЗАЛИТЬ ПРОШИВКУ В СТИРАЛЬНУЮ МАШИНУ(КАКИЕ КОМАНДЫ?)
При чем тут команды putty (ssh). Это консольные команды linux, bsd и т.д. Они не изменятся, даже если подключится через hyperterminal.
Это заглавие для поисковиков
Отлично! Спасибо за труд! В закладку!
Еще бы узнать куда эти команды вбивать.
Нужно среди файлов сайта узнать в каком именно из них нужная часть кода.