====== Работа с консолью ====== ===== Получение информации ===== выпаы ==== Как увидеть сообщения выдаваемые ядром ==== Увидеть сообщения, выдаваемые ядром на экран при загрузке системы можно набрав команду 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.