====== Работа с консолью ======
===== Получение информации =====
выпаы
==== Как увидеть сообщения выдаваемые ядром ====
Увидеть сообщения, выдаваемые ядром на экран при загрузке системы можно набрав команду dmesg.
например, о распределении прерываний
dmesg | grep -i irq
==== Как посмотреть информацию о запущенных процессах ====
(Обычно используется "ps -aux", и потом "kill <номер процесса>"). Так же есть специальные программы - такие, как top, gtop и ktop.
==== Как посмотреть свободное место на диске ====
Чтобы посмотреть свободное место на диске, используйте команду df. Так же в KDE есть программа kdf (KDiskFree).
==== Как долго ваша система была запущена ====
Чтобы увидеть, как долго ваша система была запущена, наберите uptime.
==== Нужно посмотреть параметры и возможные опции для модуля ядра Linux ====
Воспользуйтесь командой modinfo. Например:\\
Информация о авторе:\\
modinfo -a модуль
Список возможных параметров:\\
modinfo -p модуль
==== Как получить список устройств на шине PCI ====
Получить список устройств на шине PCI можно таким образом:
/sbin/lspci
==== Еще один способ получить полезную информацию о системе
Еще один способ получить полезную информацию о системе - команда vmstat. Она выводит информацию использовании памяти, процессора, областях swap и т.п.
==== Как получить информацию о ваших загруженных модулях ядра
lsmod - хороший способ получить информацию о ваших загруженных модулях ядра.
==== Полезная информация о ядре ====
Левый или правый CTRL, ALT, или SHIFT + scrollock покажут вам полезную информацию о ядре.
==== Как посмотреть информацию полученную от мыши на стандартный вывод ====
Если у вас трудности с мышью, mev -i сбросит информацию полученную от мыши на стандартный вывод.
==== Как быстро получить информацию о системе ====
Быстро получить информацию о системе можно используя команду procinfo. Если этого недостаточно - смотрите файловую систему /proc. Например,/proc/interrupts, /proc/cpuinfo...
==== Информация о памяти и swap ====
Команда free выдает информацию о памяти и swap.
===== Основное =====
==== Как распаковать tar архив? ====
tar -xvf arc.tar -C ./dir
==== Как узнать метку компакт-диска ====
Узнать метку компакт-диска можно так:
alias cdlabel='LABEL=`dd if=/dev/cdrom bs=1 count=32 skip=32808 2>/dev/null` && echo $LABEL'
Удобно использовать альяс в инициализационных скриптах shell.
==== Как очистить директорию /tmp (например, после падения X Window System) ====
Никогда не используйте команду "rm -r /tmp/.*", потому что кроме файлов типа ".tempfile" эта команда распространяется и на "/tmp/..". Вместо этого наберите "rm -rf /tmp/.??* /tmp/*". Вы можете поместить эту команду в "/etc/rc.d/init.d/syslog" в секцию "stop)" - таким образом каталог /tmp будет очищаться при каждом выключении. (Можно просто удалить /tmp и создать его заново - для этого нужно выполнить команды mv /tmp, mkdir /tmp и chmod 1777 /tmp).
==== Как быстро перейти в свой домашний каталог ====
Вместо долгого cd /home/user вы можете сделать проще - cd ~ или cd, чтобы быстро перейти в свой домашний каталог.
==== Как посмотреть вывод команды и одновременно записать его в файл ====
Посмотреть вывод команды и одновременно записать его в файл можно с помощью команды:\\
tee $ls | tee logfile.txt
==== Средство для более быстрого поиска файлов, чем find ====
Средство для более быстрого поиска файлов, чем find - команда locate, которая использует базу данных для поиска. Для обновления этой базы часто используется cron. Или вручную - updatedb.
==== Как выполнить команду bash определенное количество раз ====
Чтобы выполнить команду bash определенное количество раз попробуйте такой прием:
n=0;while test -$n -gt -10; do echo n=$n; n=$[$n+1]; done
Что распечатает "n=0", "n=1", и так далее 10 раз.
==== Раздражают сигналы спикера вашего компьютера когда вы ошиблись ====
Попробуйте выполнить следующую команду bash:\\
echo -ne '\033[11;0]'
которая устанавливает продолжительность сигнала для консоли равным 0 секунд. Чтобы сделать это автоматически добавьте эти строки в /etc/profile или ваш ~/.profile. Подробную информацию о том, как установить частоту и длительность гудка, читайте в .
==== Как перейти в каталог с длинным именем ====
Если вы хотите перейти в каталог с длинным именем, можно напечать лишь часть слова и затем *. Например, перейти в каталог с именем "Give_Piece_Of_Chance" можно так:
cd Give*.
==== Случайно открыли в консоли бинарный файл, например командой cat ====
Попробуйте напечатать reset, другие способы:
printf "\033c",\\
tput sgr0,\\
tput reset,\\
/bin/echo -ne "\017"\\
cat, затем CTRL-O, Enter, CTRL-D.\\
А вот так можно позабавиться:\\
cat, затем CTRL-N, Enter, CTRL-D.
==== Как послать данные на желаемый терминал ====
Вы можете использовать все доступные терминалы, даже если они в применении, чтобы послать данные на тот терминал, на который хотите. Например:\\
tail -f /var/log/messages > /dev/tty12\\
Для посылки любых сообщений на tty12.
==== Как выполнить родную команду системы, если используются алиасы ====
Часто используете альясы shell (например, прописанные в ~/.bashrc), но иногда необходимо выполнить родную команду системы? Добавьте обратный слэш перед командой, это игнорирует псевдоним shell.
==== Как найти все файлы в каталоге, которые содержат строку ====
Найти все файлы в каталоге, которые содержат строку:\\
find . -type f -print | xargs grep -li "search string"
==== Как сделать чтобы программа ожидала нажатия какой-либо клавиши пользователем ====
При написании скриптов shell часто возникает необходимость того, чтобы в процессе выполнения программа ожидала нажатия какой-либо клавиши пользователем. Это можно сделать таким способом:\\
stty raw; dd if=$(tty) of=/dev/null bs=1 count=1; stty -raw
==== Как перенаправить стандартный вывод и поток ошибок в один и тот же файл ====
Чтобы перенаправить стандартный вывод и поток ошибок в один и тот же файл, используйте `&>'.
==== Как сохрать man-страницы в текстовый файл ====
Самый простой способ сохранения man-страницы в текстовый файл - "man name | col -b > name.txt".
==== Как перевести имена файлов в директории в нижний регистр ====
Самый простой способ перевода всех имен файлов из директории в нижний регистр:\\
for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done
==== Как быстро переименовать файл ====
Чтобы быстро переименовать файл, используйте команду:\\
mv /usr/local/bin/{старое_имя,новое_имя}
==== Как удалить всю директорию без лишних запросов ====
Чтобы удалить сразу всю директорию без лишних запросов, используйте:\\
rm -rf имя_директории
==== Как создать сразу несколько директорий ====
Создание сразу нескольких директорий - "mkdir -p dir1/dir2/dir3".
==== Как правильно выключить компьютер ====
Правильное выключение компьютера - команда "shutdown -h now".
Перезагрузка - "shutdown -r now" или просто "init ====
==== Как передать весь вывод одной команды на вход другой команде ====
Чтобы передать весь вывод одной команды на вход другой команде, используется символ "|".
Таким образом можно делать сложные конструкции (например, "ls | sort -r | less").
==== Как следить за постоянно изменяющимися файлами ====
Чтобы следить за постоянно изменяющимися файлами (например, за системными логами), используйте команду tail.
Пример: "tail -15 /var/log/syslog" - постоянно показывает последние 15 строк.
==== Как искать текст в файлах ====
Для поиска текста в файлах используется команда - "grep "ваш текст" /where/to/search".
Если при поиске не нужно учитывать регистр - "grep -i "ваш текст" /where/to/search"
==== Как заменить одно слово на другое во многих файлах ====
Для замены одного слова на другое сразу же во многих файлах можно использовать этот скрипт\\
perl -pi -e 's/oneword/anotherword/g' *\\
Если нужно сделать это же с одним файлом, поставьте его имя вместо "*".
==== Быстрый метод завершения перезапускаемого(respawning) процесса ====
Очень быстрый метод завершения перезапускаемого(respawning) процесса в вашем /etc/inittab - это переключение уровней исполнения. Например, если вы имеете строку:
1:1235:respawn:/usr/sbin/mgetty /dev/ttyS1\\
переключение на уровень 4 остановит перезапускаемый процесс.
==== Как сделать дамп N-консоли ====
Команда cat /dev/vcsN сбрасывает дамп N-консоли.
==== Случайные пароли ====
head -c8 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p'
==== Как правильно создать каталог /tmp ====
Было ли у вас такое, что не запускается сервер шрифтов, хотя с конфигурацией сервера все в порядке? Одна из причин, неправильные права доступа на каталог /tmp. Команда stat должна показывать 1777, т. е. режим drwxrwxrwt. Именно эти права доступа необходимы для правильной работы того же сервера шрифтов (.X11-unix и .font-unix.) Таким образом необходимо сделать следующее:
mkdir /tmp
chmod 1777 /tmp
"t" в данном случае означает что файлы в каталоге могут удалить только собственник и root, хотя право записи в каталог имеют все пользователи.
==== Как узнать размер всех директорий в данном каталоге ====
Чтобы узнать размер всех директорий в данном каталоге, выполните команду:\\
find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn
==== Как разрезать файл на несколько частей ====
Чтобы разрезать файл на несколько частей, используйте команду split.
Формат: "split [-b количество байт] [-l количество линий] имя_файла".
==== Как распаковать RPM-файл не устанавливая его ====
rpm2cpio file.rpm | cpio -idmuv --no-absolute-filenames
==== Как следить за списком файлов в реальном времени ====
Слежение за списком файлов в реальном времени - "watch -n 0 ls -l".
Команда watch осуществляет периодический запуск других команд.
==== Как установить время CMOS ====
Чтобы установить время CMOS системному используйте\\
hwclock --systohc, а hwclock --hctosys\\
установит системное время, как время CMOS clock.
==== Как установить точное время ====
Отличный способ установить на машине точное время - использовать каманду ntpdate:\\
ntpdate
Конечно, нужно иметь установленный пакет ntp и возможность соединения с сервером NTP.Например, я использую\\
ntpdate ntp.ru
Лучше использовать ip-адрес, чтобы избежать преобразования доменного имени в ip-адрес.
==== Как отключить сигнал "beep" в течение автоматического завершения командной строки ====
Добавьте либо в ~/.inputrc или в /etc/inputrc для визуального звонка:\\
set bell-style visible\\
совершенно без сигнала:\\
set bell-style none
==== Запись CD диска =====
Команды cdrecord, полезные при записи CDROM:
mkisofs -V "volume_ID" -D -l -L -N -J -R -v -o cdrom.iso директория
cdrecord -dev=0,1,0 -speed=4 -v cdrom.iso
Для подключения IDE накопителя добавить в linux lilo append="hdc=ide-scsi" (hdc - ваш привод?) и включить в ядре поддержку эмуляции SCSI.
Параметры cdrecord:
-toc -atip -prcap - выдать полную информацию о накопителе.
-scanbus - определить параметры для -dev (можно /proc/scsi/scsi)
-dummy - запись в режие тестирования (без реального прожигания диска).
-fix - исправить недописавшийся диск.
-eject - после записи вытащить CD
-blank=all очистить CR-RW перед записью.
-multi - если надо создать мультисессионный диск
mkisofs -print-size - расчитать сколько потребуется места для записи директории
===== Улучшение работы в Shell =====
==== Нужна запись всей вашей интерактивной сессии в shell ====
Если вам нужна запись всей вашей интерактивной сессии в shell, воспользуйтесь командой script.
script
Когда сессия завершена, файл закрывается.
==== Поиск в обратном направлении по истории команд ====
Если вы применяете bash, вы можете сделать поиск в обратном направлении по истории команд:
нажмите CTRL-R и печатайте что вы хотите искать (работает точно также как в Emacs).
Если имеется много похожих строк в истории, повторите CTRL-R, чтобы увидеть их все.
==== Как можно перемещаться между текущим и предыдущим каталогами ====
Bash позволяет вам перемещаться между текущим и предыдущим каталогами используя дефис после команды cd. Например вы были в каталоге /etc, затем дали команду cd /usr/src/linux. Вернуться назад можно применяя cd -.
==== Если вы хотите редактировать предыдущую команду ====
В bash если вы хотите редактировать предыдущую команду в текстовом редакторе вместо командной строки, используйте команду fc.
==== Очистка экрана в bash ====
CTRL-l в оболочке bash очистит экран, и текущую строку выведет на верх экрана.
==== Полезные сочетания клавиш в bash ====
В bash, CTRL-U удалит все слева от курсора, CTRL-K - все что справа от курсора. ALT-b - перейти на слово назад, а ALT-f вперед.
==== Прокрутка текста в консоли ====
Консоль Linux имеет прекрасную особенность - прокрутка текста. Используйте SHIFT-PGUP и SHIFT-PGDN для прокрутки текста вверх и вниз. Примечание: используйте обычные PGUP и PGDN клавиши, а не с клавиши num.
==== Если вы набрали длинную команду и передумали запускать ее ====
Если вы набрали длинную команду и передумали запускать ее, не удаляйте ее. Просто добавьте # на начало строки и нажмите Enter. Команда не будет выполнена, но bash запишет ее в историю команд, так что позднее вы можете выполнить ее, предварительно убрав символ #.
==== Как поменять местами два символа ====
CTRL-T в bash меняет местами два символа; полезно для исправления опечаток.
==== Автозавершение команд в bash ====
Bash поддерживает автозавершение команд. Наберите часть слова и нажмите TAB.
Например, чтобы войти в каталог netscape-communicator-4.5-linux просто напечатайте cd nets и нажмите TAB и bash автоматически завершит имя, если есть только одно совпадение. Если более одного файла совпадают с набранной строкой вы получите список вариантов. Добавляйте символы для точного совпадения.
==== ScrollLock в консоли ====
Включение ScrollLock в консоли приостановит выполнение текущей команды bash, такой как ls, du or mpg123.
==== Как переключиться на tty, на котором вы были в последний раз ====
В bash нажатие ALT-PrintScreen сразу вас переключит на tty, на котором вы были в последний раз.
==== Список всех исполняемых файлов в системе, которые присутствуют в вашем $PATH ====
Нажмите TAB + scroll-lock или еще проще - два нажатия на клавишу TAB. Результат один и тот же.
==== Как повторить последнее слово (или множество символов) предыдущей командной строки ====
В bash, наберите ESC затем симол подчеркивания чтобы повторить последнее слово (или множество символов) предыдущей командной строки.
==== Циклическое переключение через все доступные консоли.
Многие клавиатурные раскладки позволяют циклическое переключение через все доступные консоли используя Alt-RightArrow и Alt-LeftArrow.
==== Как повторить ранее введенную команду ====
Чтобы повторить ранее введенную команду, нажмите стрелку вниз. Чтобы вернуться - стрелку вверх. (Bash ведет лог всех введенных команд).
==== Как повторить ранее введенную команду, содержащую какое-нибудь слово ====
Чтобы повторить ранее введенную команду, содержащую какое-нибудь слово, наберите "!?string". Если вы наберете "!string", то эта ранее введенная команда тут же запустится.
==== Автодополнение с помощью Tab ====
Чтобы запустить, скажем, программу mysql_convert_table_format, достаточно набрать в командной строке mysql_co и нажать Tab. Bash, зная названия доступных команд, сам допишет имя. (Если в системе есть несколько команд, начинающихся с заданного префикса, он выдаст их перечень, а если их более 100, то предварительно уточнит, действительно ли нужен такой огромный список. Кстати, с помощью данного свойства bash легко выяснить число доступных команд: для этого достаточно нажать клавишу табуляции, находясь в начале строки). А когда название команды введено (и после него поставлен пробел), интерпретатор позволяет тем же способом ввести имя файла.
==== Как сделать undo в bash ====
Вы можете использовать CTRL-_ or CTRL-X, CTRL-U чтобы сделать undo в bash.
==== Еще один способ использования истории команд ====
Еще один способ использования истории команд - если последняя набранная команда была например less filename, то !l - запустит ее заново. Хотя если вы потом запускали lpr и ln, и хотите запустить less снова, тогда нужно набирирать !le.