caxap 30.04.2011 16:49
Tips & tricks — Набор советов и команд линукс для продвинутых новичков. По мотивам ссылки на хабр.
Добрый всем день! Это мой первый пост на вилинупс, поэтому сильно не ругайте.Недавно тут проходил топик с кучей полезных советов новичкам, из которых этим новичкам было сложно подчерпнуть полезную информацию. Так что советы могли вызвать разве что спор между продвинутыми пользователями. И лишь немногие новички бы нашли в нем что-то полезное для себя.
Я взял за основу тот пост и немного его переделал (вообще давно собирался написать что-то).
Конечно, еще есть что изменить и улучшить. Буду признателен за адекватную критику и замечания.
В общем, встречайте:
Общие рекомендации
Если не знаете с чего начать поиск нужной команды попробуйте man -k 'ключевое слово' или appropos 'ключевое слово'
Чтобы привыкнуть к работе в консоли, откажитесь от использования mc и других файловых менеджеров
Для новичков актуальным советом будет, не выполнять все команды от пользователя root, а использовать команду sudo вместо этого (смотри далее)
Горячие клавиши в консоли:
Для увеличения скорости и удобства вашей работы в консоли
ctrl-r поиск по истории команд
crtl-e идти в конец строки
crtl-a идти в начало строки
ctrl-u стереть всю строку перед курсором
ctrl-k стереть всю строку после курсора
ctrl-y восстановить то что было стерто
ctrl-l очистить экран
ctrl-t поменять местами два символа (тот на котором находится курсор и предыдущий, помогает при простых опечатках в командах)
ctrl-d выйти из терминала
ctrl-c отмена
ctrl-j выполнить команду, не нажимая интер
ctrl-p листает назад список истории команд
ctrl-w удалить слово перед курсором
ctrl-b передвинуть курсор на одно слово вперед
ctrl-f передвинуть курсор на одно слово назад
Команда history выводит историю введенных команд.
Для удобства использования history полезно использовать следующие настройки в файле .bashrc
ignorespace — в историю не попадают команды, начинающиеся с пробела или табуляции;
ignoredups — игнорируются повторяющиеся команды;
ignoreboth — применяет оба вышеназванных правила. )
Для более эффективного использования командной строки необходимо настроить алиасы, которые прописываются в файле .bashrc.
Примеры алиасов:
alias ls='ls --color=always'
alias ll='ls -laFG'
alias la='ls -A'
alias l='ls -CF'
alias grep='grep —color=always'
Если команда заменена на алиас (как ls в предыдущем примере), то запустить ее «настоящую» можно, добавив в начале бэкслеш например: \ls
Чтобы перечитать отредактированный файл с переменными окружения: source /etc/environment . (или иначе так . ~/.bashrc)
Работа с файлами папками и архивами
Очень простой способ передать файлы с машины на машину — tar cz. | nc -l -p 2214 (на передающей стороне) и nc адрес 2214 | tar xz (на принимающей). 2214 — номер порта, выбирается по желанию. в разных версиях nc нужно писать nc -l -p или nc -l
(nc – сокращенно от netcat, соответсевенно требует установки пакета netcat. Вариации на тему tar cf “ имя файла или директории “ | nc -l -p 2214 на принимающей стороне nc адрес 2214 | tar x… или можно так tar cz. | ssh host tar xz)
Для быстрой передачи файлов можно так же использовать python -m SimpleHTTPServer, что запускает http сервер с корнем в текущем каталоге. (требует установки питона и соответствующего модуля)
Чтобы с помощью тара скопировать много файлов локально можно использовать комманду типа (cd /path/to/dir1 && tar cf -) | (cd /path/to/dir2 && tar xf -)
Если у вас есть двойной архив типа tgz, tar.gz, tar.bz2, tar.xz итп, то его можно распаковать таром с соответствующими ключами -z, -j и -J.
Для упрощения жизни можно установить программу lesspipe, которая поможет заглянуть внутрь архива (и не только) с помощью команды less.
Чтобы вернуться в предыдущий каталог, есть команда cd -. есть команда dirs -v, показывающая историю переходов.
Если хотите синхронизировать (именно синхронизировать, а не просот скопировать) содержимое директории на жестком диске и флешке, можно использовать команду rsync (rsync -av /src/foo /dest)
Узнать сколько использовано дискового пространство на каждой смонтированной файловой системе: df -h
Получить список каталогов в директории и их размер поможет du -h –max-depth=1
Узнать размер файла или директории du -sh имя файла
Узнать почему нельзя отмонтировать флешку fuser -m или lsof | grep '/dev/sda1' (или другое имя устройства, узнать можно через df -h)
Насильно отмонтировать флешку umount -l имя устройства (требует прочтения мана перед использрованием) или fuser -km 'имя устройства'
Найти файл find / -name fname или так find / -name ”*fname*” (еще find часто используют с xargs или exec, например find . -name '*' -print0 | xargs -0 rm -f)
Смотреть лог файл (или любой другой) реалтайм tail -f 'имя файла'
Работа в сети
Команда avahi-browse -a быстро покажет список имен машин с в локальной сети, а ключ -r покажет сразу и их ip.
Узнать какие программы используют интернет netstat -nap --inet
Работа с процессами
Получить список процессов ps ax. Для удовства ps ax | less
Команда kill также может принимать аргументом номер задачи, а не только идентификатор процесса, например kill %1 (кроме того jobs, bg, fg, disown — тоже так умеют)
При использовании dd, можно легко узнать прогресс копирования/записи, набрав команду kill -USR1 'pidof dd '
Если вышли» из программы через ctrl-z, вернуться можно командой fg
Безопасность и прочее
Используйте visudo для редактирования sudoers
Перед этим лучше определить переменную EDITOR export EDITOR=vim (это под рутом уже, потому что по дефолту sudo не копирует переменные пользовательского окружения или любой другой на ваш вкус)
Помните, что rm something и rm something/ — это разные вещи И не только в rm, cp, ls и rsync — тоже
Записать что-нибудь в файл от рута sudo sh -c 'echo > file' (а не просто sudo echo > file)
Чтобы получить md5 хеш фразы, наберите echo -n “фраза” | md5sum
Пишите в скриптах длинные --варианты параметров
Потеряли пароль рута? при загрузке укажите ядру параметр init=/bin/bash и сбростье пароль через passwd
VAR=X и export VAR=X — разные вещи
Не путайте /bin/sh и /bin/bash, это не всегда одно и то же.
Полезная команда для избавления от надоедливого вывода ошибок command >> filename.txt 2>&1
Используйте set -e в скриптах. неотработавший «cd» во временный каталог может надолго испортить настроение содержимое /home (или sh -h; поясняю, например, если в скрипте одна команда не отработала по каким-то причинам и выдала ошибку (например cd /tmp), а следующая отработала, например tar xvzf linux-kernel.tgz, то ваша домашняя директория может сильно измениться :)
Установите программу screen, чтоб случайно потерять результат работы консольной программы (зайти в запущенный screen можно набрав screen -rd)
Pdf можно смотреть тут
это хорошо, что тар теперь так умеет (не знал, кстати, спасибо), но молодежь должна знать :)
Отвечай плиз в коммент, а не в топик. И вступи в блог Tips & tricks чтобы в процессе редактирования пост не слетал в Личный блог.
К "горячим клавишам" консоли думаю стоит добавить стрелки вверх и вниз - поиск по истории набранных команд. В Ubuntu по умолчанию эта история сохраняется между сессиями и даже при перезагрузке.
Если не трудно, то заверните команды в тег code - так будет читаться гораздо лучше, ИМХО.
Это мой первый пост на вилинупс
да хватит его уже так называть! в крайнем случае - МыЛинукс
адрес - он на передающей стороне, на хабре лень было писать, но еще и тут накопипастили
Про настроки истории (ignore***) надо упомянуть, что их записывают в переменную HISTCONTROL.
Kubuntu 10.10 и 11.04
avahi-browse -a
Не удалось создать объект клиента: Служба не запущена
При этом daemon запущен...
Странно.
avahi-browse -a
Не удалось создать объект клиента: Служба не запущена
При этом daemon запущен...
Странно.
Потеряли пароль рута? при загрузке укажите ядру параметр init=/bin/bash и сбростье пароль через passwd
Объясните идиоту: получается, всякие ухищрения с паролями бессмысленны? То есть, машины с линуксом не защищены? Этак можно в grub нажать tab, подправить строку запуска, сбросить пароль на рута, и иметь машину как угодно?
P.S. сам сейчас попробую.
Попробовал. Не дает менять пароль на рута, ругается четотам на invalid authentification token, по памяти написал и мог ошибиться.
Система - Арч.
Система - Арч.
Объясняю идиоту. Имея физический доступ к оборудованию можно сделать что угодно.
Еще придумали шифрованые разделы.
А еще не пускать всяких левых х*ев к компьютеру. С этого надо было начинать, наверное.
А еще не пускать всяких левых х*ев к компьютеру. С этого надо было начинать, наверное.
А ещё придумали cold boot атаку и всякие нехорошие способы расшифровать гражданские алгоритмы.
Терморектальный криптоанализ штоле?
У меня тащемта перк "Неуловимый Джо", так что имунен ко всей этой фигне.
У меня тащемта перк "Неуловимый Джо", так что имунен ко всей этой фигне.
Про авахи надо бы уточнять. Во многих дистрах этот костыль по умолчанию не используется или вообще не установлен.
Да сейчас, вроде, тар и без ключей всяких нормально распаковывает. Начиная с какой версии, точно не скажу. Сам всё время этими ключами пользовался, пока случайно не заметил, что он и без них умеет.