SDB:Всяческие полезные мелочи
Содержание
- 1 Linux: О клавише SysRq и зависшем Туксе.
- 2 Подсветка синтаксиса в Vim.
- 3 Меняем цвета MC.
- 4 Добавляем полезную информации в оболочку bash.
- 5 История команд bash.
- 6 Родная консоль.
- 7 Linux-Aliase.
- 8 Linux-WEB: Вытягиваем сайт целиком из консоли
- 9 Что делать если забыл пароль root в linux?
- 10 Команды
Linux: О клавише SysRq и зависшем Туксе.
Когда зависает Linux [а он _иногда_ зависает. Хотя и не так часто, как продукция одной известной рэдмондской компании:)], и стандартные действия в виде "канонического" x-ребута через Ctrl+Alt+Backspace, равное как и попытки выйти в консоль через Ctrl+Alt+F1 уже не срабатывают, не стоит тыркать в кнопку Reset на системном блоке. Лучше сделать всё красиво и аккуратно. Примерно так:
Жмём Alt+SysRq+R (и далее + E, I, S, U, B)
R: возвращаем управление устройствам ввода (клава/мышь)
E: Безопасно завершаем все процессы, отставляя только init (данные сохраняются).
I: Небезопасное (SIGKILL) завершение процессов. Данные будут утеряны.
S: Перенос данных из кэша на hdd, синхронизация.
U: Перемонтируем все имеющиеся fs в read.
B: Reboot.
... Прим.: Клавиша SysRq - тоже самое что PrintScreen.
Подсветка синтаксиса в Vim.
открываем и редактируем файл
$vi /etc/vimrc
Находим строчку syntax on и раскоментируем ее
Меняем цвета MC.
открываем и редактируем файл
$vi ~/.mc/ini
И добавляем секцию
[Colors] base_color=normal=brightgray,default:marked=yellow,default:directory=green,default:marked=yellow default:errors=red,default:marked=yellow,default:executable=brightgreen,default:marked=yellow default:link=brightblue,default:marked=yellow,default:device=brightmagenta,default:marked=yellow
Я привел свой вариант раскраски, а вам, как будет угодно :)
Добавляем полезную информации в оболочку bash.
открываем и редактируем файл
$vi ~/.bashrc
и добавляем переменную
PS1="\u@\t\w\$"
получаем такого типа приглашение
root@02:30:34/var/lib/named$
- текущее время и текущий каталог. "\u", user), имя компьютера ("\h", host), время ("\t", time), путь к текущему каталогу ("\w", work directory) "\W" (показывающую последний элемент пути, то есть собственное имя текущего каталога), "\w", полный путь, потому что "\w" обладает свойством выделять в полном пути домашний каталог и заменять его на "~".
История команд bash.
Двумя другими клавишами со стрелками - вверх и вниз - Adramelech тоже активно пользовался, не подозревая, что задействует этим весьма мощный механизм bash - работу с историей команд. Все команды, набранные пользователем, bash запоминает и позволяет обращаться к ним впоследствии. Если необходимо добыть из истории какую-то давнюю команду, проще не гонять список истории стрелками, а выполнить поиск с помощью команды "^R" -(Ctrl+R) (reverse search). При этом выводится подсказка специального вида ("reverse-i-search"), подстрока поиска (окруженная символами ` и ') и последняя из команд в истории, в которой эта подстрока присутствует:
adramelech@02:30:34/$
^R | (reverse-i-search)`':
i | (reverse-i-search)`i': ls i
n | (reverse-i-search)`in': info
f | (reverse-i-search)`inf': info
o | (reverse-i-search)`info': info
^R | (reverse-i-search)`info': man info
^R | (reverse-i-search)`info': info "(bash.info.bz2)Commands For History
Родная консоль.
Периодический перезапуск команды с перерисовкой экрана: Например, для отображения изменений содержимого директории:
watch -d ls -l
Создание директории с недостающими промежуточными директориями:
mkdir -p /tmp/dir1/dir2/dir3
что эквивалентно
mkdir /tmp/dir1
mkdir /tmp/dir1/dir2
mkdir /tmp/dir1/dir2/dir3
А еще в bash-е удобно использовать следующую конструкцию для создания нескольких директорий на одном уровне вложенности
mkdir -p /tmp/dir1/dir2/{dir3,dir4}
данный оператор выполнит команду для каждого из операндов и это будет эквивалентно
mkdir -p /tmp/dir1/dir2/dir3
mkdir -p /tmp/dir1/dir2/dir4
Причем это можно сипользовать для любых команд, например
chmod 775 /tmp/dir1/dir2/{dir3,dir4}
Linux-Aliase.
Поиск по истории - удобное средство: длинную командную строку можно не набирать целиком, а отыскать и использовать. Однако давнюю команду придется добывать с помощью нескольких "^R" - а можно и совсем не доискаться, если она уже выбыла оттуда. Для того чтобы оперативно заменять короткие команды длинными, стоит воспользоваться сокращениями (aliases). В конфигурационных файлах командного интерпретатора пользователя обычно уже определено несколько сокращений, список которых можно посмотреть с помощью команды alias без параметров:
root@02:30:34/$ alias alias cd..='cd ..' alias cp='cp -i' alias l='ls -lapt' alias ll='ls -laptc' alias ls='ls --color=auto' alias md='mkdir' alias mv='mv -i' alias rd='rmdir' alias rm='rm -i'
Можно и нужно добавлять свои сокращения для команд:
root@02:30:34/$ alias mda='mkdir -p' root@02:30:34/$ alias pd=pushd root@02:30:36/$ alias pp=popd
Linux-WEB: Вытягиваем сайт целиком из консоли
Консольная качалка wget по-умолчанию присутствует в любой *nix-системе (ну, или почти в любой). С её помощью мы и утащим нужный нам сайт. Целиком.
Открываем терминал.
adramelech@02:38:30/$ cd /home/adramelech/websites adramelech@02:39:34/websites$ wget -r -k -p -N -l 5 http://www.Имя_Целевого_Сайта.net/
- Пояснение по опциям:
-r - рекурсия
-k - конвертация ссылок
-p - содержимое страниц
-N - time-stamping (По желанию. Нужен только если собираемся докачивать обновившиеся страницы)
-l - глубина ссылок
Что делать если забыл пароль root в linux?
При загрузке GRUB жмём Esc потом стаем на линию инициализации ядра и редактируем параметры загружаемого ядра, добавляя в конец строки:
init=/bin/bash
Жмём Enter, затем B
Вводим
passwd root
Собственно, тут можно изменить не только пароль root`а. Меняем пароль на новый.
Команды
Описание
cd - #Вернуться в предыдущий каталог
rm -rf <DirName> # Удалить сразу всю директорию без лишних запросов
split [-bкол-во_байт] [-l кол-во_линий] имя_файла #разбить файл на несколько частей
perl -pi -e 's/oneword/anotherword/g' *. #заменить одно слово на другое во многих файлах, если в
одном файле,то поставить его имя вместо " * "
perl -e '@time=localtime(time()-84600); print $time[3]' #Вчерашнее число
perl -e'$time=localtime(time()-84600); print $time' #Вчерашняя дата
grep -R "текст" /where/to/search/* #искать текст во всех файлах указанного каталога и его подкаталогов
tail -15 /var/log/messages #показать последние 15 строк файла
tail -15 /var/log/messages > /dev/tty2 #послать данные на желаемый терминал
tail -f /var/log/messages | grep login #показывать вновь записываемые в журнал события,содержащие слово "login"
ls | /usr/bin/mailx -s "`uname -n`
ls by mail " webmaster@mynet.ru #отправить вывод команды ls по почте. Используется пакет mailx. Для RedHat 9
вызов программы: /bin/mail
LANG=C сбросить языковые настройки. Включится английский.
(полезно при неправильном отображении в mc)
mailq показать какие письма находятся в очереди на отправку
postqueue -f попытаться доставить все письма из очереди
update-rc.d squid defaults 19 #Запускает squid на уровнях 2345 и останавливает на 016.Аргумент '19' позволяет запускать сценарий squid до сценариев с номерами 20 и выше.
(аналог chkconfig в Debian)
date --set='2007-8-03 13:44' #установить системные дату и время
iptables -t nat -A POSTROUTING -s 10.0.3.41 -d 217.217.217.217 -o eth1 -p tcp --dport 25 -j SNAT --to 116.116.116.116 #Разрешаем прямой доступ к внешней почте. Подробнее: разрешаем доступ хосту
10.0.3.41 из внутренней сети обращаться к хосту 217.217.217.217 на 25 порт (smtp) протокола tcp; такие обращения пропускаем через интерфейс eth1, который имеет адрес 116.116.116.116
Для доступа к РОР добавляем такое же правило для порта 110
iptables -t nat -A POSTROUTING -s 10.0.3.41 -p tcp --dport 25 -j MASQUERADE #Более короткое правило, аналогичное вышеприведённому, только здесь пользователь с ip 10.0.3.41 имеет доступ к любому почтовому серверу в Интернете.
ps axo euid,ruid,tty,pid,comm | grep apache2 #узнать от имени какого пользователя работает Apache
Info
cat /proc/cpuinfo процессоре
cat /etc/*-release Версия Linux
df HDD
du -c /home/ или
ls -R -s -1 #размер каталога /home с размером каждого подкаталога, ключ "-s" показывает
только общий размер каталога, так 'du -s /*' покажет размеры всех каталогов в корне.
top процессах, RAM
cat /etc/passwd всех пользователях
cat /etc/group всех группах
id oracle пользователе oracle
finger или
w #пользователях, зарегистрированных сейчас в системе (на каком терминале, откуда и т.д.)
cat /proc/mdstat #состоянии RAID массива (софтверного)
cat /proc/megaraid/hba0/raiddrives-0-9 #состоянии RAID массива (на контроллере megaraid)
cat /proc/megaraid/hba0/diskdrives-ch0 #состоянии дисков на канале 0 в RAID массиве
ip route show #Откуда взялся маршрут
uptime #как долго система запущена
lsmod #о загруженных модулях ядра
netstat -a # просмотр всех открытых tcp и udp портов
netstat -an | grep 80 #что прослушивает 80 порт (http)
dmesg #о процесе загрузки системы
find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn #размер всех подкаталогов в данном каталоге
lspci #список всех устройств PCI, в их число попадают и USB
ps axo euid,ruid,tty,pid,comm #процессах, от кого запущены, на каком TTY и с каким PID
Комманды
(раз)архивирования Описание
tar -cvf - * | gzip -c > arc.tar.gz заархивировать всё содержимое текущего каталога (включая подкаталоги)
tar -zxvf arc.tar.gz #разархивировать всё в текущий каталог
gzip -cd arc.tar.gz | tar -xvf - gzip -cd Fname | cpio -imd#
bzip2 -cd arc.tar.bz2 | tar -xvf -
Комманды less Описание
g на начало текста
G на конец текста
/слово поиск подстроки "слово"
/ продолжение поиска
F постоянно обновлять просматриваемый файл
Стегний Павел --Adramelech 15:55, 29 декабря 2008 (UTC)