blackraven 16.12.2010 11:32
Переводы — 30 полезных команд в Linux
ОригиналЭта коллекция содержит те команды, которые я выучил за годы работы в Linux. Разумеется, автор не я. Просто я находил их на различных ресурсах, изменял их, часть составлял сам, читая книги и страницы man.
Отмазка: пробуйте все эти команды на не-production серверах, некоторые из них могут что-то сломать.
1. Удаление конфигурационных файлов от деинсталлированных программ в Debian
Есть несколько вариантов сделать это. Например:
1 |
|
1 |
|
2. Сборка фильма из файлов jpg
1 |
|
3. Очистка содержимого файла
И снова - есть много вариантов это сделать:
1 |
|
1 |
|
4. Поиск дубликатов файлов на основании размера и MD5-хеша
1 |
find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate
|
5. Заменить пробелы в имени файлов на подчеркивания
1 |
|
6. Конвертирование man-страницы в текстовый файл
1 |
|
Замените cp на любую желаемую команду, man-страницу которой вы хотите посмотреть.
7. Список наиболее используемых команд из истории
1 |
|
8. Выполнение команды без сохранения ее в истории
1 |
|
Историю сохрания команд надо настроить, иначе не работает. Больше информации по ссылке.
9. Добавить часы к приглашению командной строки
1 |
|
Результат будет выглядеть как-то так:
1 |
|
10. Принудительная проверка файловой системы
1 |
|
или
1 |
|
11. Создание и монтирование RAM-диска
1 |
|
Эта команда создаст 1Gb диск в памяти, который можно использовать для быстрого доступа к файлам в нем. Главное - не забывайте, что это RAM-диск, и его содержимое будет удалено при перезагрузке.
12. Вызов команд из истории
Вы можете вызывать команды из истории по их номеру:
1 |
|
Затем используйте номер для вызова команды:
1 |
|
или по первым буквам:
1 |
|
Этот последний метод несколько опасен, так как вы не знаете, какие аргументы и опции команда будет использовать, поэтому вы можете приостановить команду. Это будет безопаснее:
1 |
|
Это покажет команду, но не выполнит ее. Если она вас устраивает - удалите :p, и она запустится, но на этот раз вы будете знать, что вы делаете.
13. Подсчет строк и слов в документе
1 |
|
14. Монтирование удаленной файловой системы через ssh
1 |
sshfs [email protected]:/remote/directory /mnt/remote-fs/
|
Дополнительная информация по ссылке.
15. Копирование своего публичного ssh ключа на сервер для доступа к нему без пароля
1 |
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
|
Дополнительная информация по ссылке.
16. Генерация случайных паролей
1 |
|
с 16 символами. Если вам нужно 8:
1 |
|
17. Пост в твиттер из командной строки
1 |
curl --basic --user "user:pass" --data-ascii "status=Arriving the office" "http://twitter.com/statuses/update.json"
|
18. Замена слов с использованием sed
1 |
|
Дополнительная информация по ссылке.
19. Список типов активных сетевых соединений и количество соответствующих соединений
1 |
|
Вывод:
1 |
|
20. Монтирование образа ISO
1 |
|
21. Сброс настроек терминала, если ему "поплохело"
1 |
|
22. Список процессов с установленными сетевыми соединениями
1 |
|
Дополнительная информация по ссылке.
23. Резервное копирование диска или раздела
1 |
|
Дополнительная информация по ссылке.
24. Запуск простого HTTP-сервера для расшаривания файлов
1 |
|
25. Смена раскладки клавиатуры на лету
1 |
|
26. Чтение сжатого файла на лету, без разархивирования
1 |
|
(или
1 |
|
27. Сохранение web-страницы как текста с помощью lynx
1 |
|
28. Определение типа файла
1 |
|
29. Запуск команд, которые продолжают работу после закрытия сессии или терминала
1 |
|
Дополнительная информация по ссылке.
30. Пересоздание меню fluxbox
1 |
|
полагаю что aptitude не установлена. можно попробовать использовать apt.
Ну так они писали в чейнджлоге, что заменили его их навороченным Software Сентром.
Во-первых, SC уже была в 10.04 вместе с aptitude.
Во-вторых, SC графический, Synaptic графический, aptitude консольный.
имхо удаление aptitude не связано ни с synaptic'ом ни с software-center.
Во-вторых, SC графический, Synaptic графический, aptitude консольный.
имхо удаление aptitude не связано ни с synaptic'ом ни с software-center.
Другое дело чем они освобождающееся место забивают.
Нужными ли вещами?
и Синаптик и Аптитуду, всё убрали. Оставили только Software Center.
Они его и разрабатывали как альтернативу ВСЕМ остальным автоматизированным средствам установки и чтобы оставить его одного в итоге. Что и сделали.
Нужными ли вещами?
и Синаптик и Аптитуду, всё убрали. Оставили только Software Center.
Они его и разрабатывали как альтернативу ВСЕМ остальным автоматизированным средствам установки и чтобы оставить его одного в итоге. Что и сделали.
Synaptic однако ещё не убрали, но думаю уже в 11.04 очень возможно что уберут.
http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=synaptic+11.04
http://www.google.ru/search?aq=1&oq=ubuntu+10.10+aptitude&sourceid=chrome&ie=UTF-8&q=ubuntu+10.10+aptitude+command+not+found
Сколько мне память не изменяет, в 10.10 почему-то (по непонятным мне причинам) выпилили aptitude по умолчанию. Поэтому написано Debian, а не убубу.
Думаю, не проблема поставить aptitude обратно ;)
Думаю, не проблема поставить aptitude обратно ;)
Ррррр, меня это страшно раздражает. Ну вот что они наэкономили на выкидывании аптитюды? Наставишь виртуалок, а потом вечно одно и то же
mc, как нет MC???? ааа, ладно, sudo aptitude install mc, как нет аптитюда?? Рррр!!!! sudo apt-get install aptitude, sudo aptitude install mc, mc
mc, как нет MC???? ааа, ладно, sudo aptitude install mc, как нет аптитюда?? Рррр!!!! sudo apt-get install aptitude, sudo aptitude install mc, mc
Хехе
Ну ежели честно, то я предпочитаю emerge -av app-misc/mc
^___^
Ну ежели честно, то я предпочитаю emerge -av app-misc/mc
^___^
>> 15. Копирование своего публичного ssh ключа на сервер для доступа к нему без пароля
есть более простой способ
ssh-copy-id user@server
есть более простой способ
ssh-copy-id user@server
а еще есть scp. это ж линуксы, здесь одна и та же задача может иметь 100500 различных, но тем не менее правильных, решений.
scp это сделать затруднительно - он затрет файл authorized_keys на удаленной машине. :) Да и вообще, вы так говорите будто я умничаю не в тему. Хороший способ же.
я ж не имею ничего против. я просто копировал с помощью scp authorized_keys с одного сервака на другой, что весьма удобно.
history конечно хорошая команда, но Ctrl+r спасет мир быстрее. Правда, и для history тоже есть применение)
при резервном копировании для dd рекомендуют задавать параметр bs.
с значением по-умолчанию копирование может затянутся надолго.
с значением по-умолчанию копирование может затянутся надолго.
Basic авторизация в твиттере не работает с начала сентября. Статья — полный раритет.
Не критика, но комментарии.
mkdir -p не будет обламываться и ругаться, если каталог уже существует.
-=-=-=-=-=-=-=-=-=-=-=-=-=-
Генерация случайных паролей
кажется, что-то такое здесь уже проскальзывало. имхо, проще запомнить:
хотя получится менее криптостойкий вариант ({8})
-=-=-=-=-=-=-=-=-=-=-=-=-=-
setxkbmap -layout us
У меня, кстати, такой скриптик прописан на r_c-r_s:
$ cat /usr/local/bin/xkbby
может, у кого лучше вариант есть?
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
mkdir -p не будет обламываться и ругаться, если каталог уже существует.
-=-=-=-=-=-=-=-=-=-=-=-=-=-
Генерация случайных паролей
кажется, что-то такое здесь уже проскальзывало. имхо, проще запомнить:
mktemp -u XXXXXXXX
хотя получится менее криптостойкий вариант ({8})
-=-=-=-=-=-=-=-=-=-=-=-=-=-
setxkbmap -layout us
У меня, кстати, такой скриптик прописан на r_c-r_s:
$ cat /usr/local/bin/xkbby
#!/bin/sh
exec >/dev/null 2>&1
CURRENT_LAYOUT=`setxkbmap -print | sed -r -n 's/^.*pc\+(<^+>{2})\+.*$/\1/p'`
case "${CURRENT_LAYOUT}" in
by)
setxkbmap -layout "us,ru"
;;
*)
setxkbmap -layout "by"
;;
esac
может, у кого лучше вариант есть?
16 с генерацией паролей содержит ошибку. Там генерятся не пароли с 8 и 16 символами, а с 12 и 24. Учите матчасть! base64 представляет каждые 3 байта как 4, то есть информация в base64 вырастает в размерах примерно на треть. Примерно потому, что base64 ещё и выравнивает число выходных символов до числа, кратного 4 (добивает знаки равно в конец).
"мопед не мой, я просто разместил объяву"
Подожди-подожди. С какой целью ты запостил этот перевод? Распространить знание или просто запостить перевод?
Если распространить знание - то должен поддерживать перевод в актуальном состоянии в соответствии с советами присутствующих здесь - это же сообщество.
А если следовать твоей логике, то если я хочу предложить изменить, например, строку
на, хотя бы "лобовую"
то я должен:
1. Лично выйти на автора статьи, которую перевёл ты
2. Предложить ему замену
3. Отследить его ответ
4. Уведомить тебя, что надо поменять перевод
Не, ну мне, допустим, это не слишком сложно, но я думал, что если человек постит перевод на образовательном ресурсе, он хотя бы интерес к тому, что запостил, должен иметь, а не отвечать на рациональное замечание подобные глупости.
Подожди-подожди. С какой целью ты запостил этот перевод? Распространить знание или просто запостить перевод?
Если распространить знание - то должен поддерживать перевод в актуальном состоянии в соответствии с советами присутствующих здесь - это же сообщество.
А если следовать твоей логике, то если я хочу предложить изменить, например, строку
dd if=/dev/urandom bs=16 count=1 2>/dev/null | base64
на, хотя бы "лобовую"
dd if=/dev/urandom bs=16 count=1 2>/dev/null | base64 | cut -b 1-16
то я должен:
1. Лично выйти на автора статьи, которую перевёл ты
2. Предложить ему замену
3. Отследить его ответ
4. Уведомить тебя, что надо поменять перевод
Не, ну мне, допустим, это не слишком сложно, но я думал, что если человек постит перевод на образовательном ресурсе, он хотя бы интерес к тому, что запостил, должен иметь, а не отвечать на рациональное замечание подобные глупости.
по поводу 15: есть команда ssh-copy-id, которая специально для этого предназначена.
9. Добавить часы к приглашению командной строки
export PS1="${PS1%\\\$*}"' \t \$ '
Результат будет выглядеть как-то так:
16:13:14 $
export PS1="${PS1%\\\$*}"' \t \$ '
Результат будет выглядеть как-то так:
16:13:14 $
Очень заинтересовало, но у меня так не вышло:
<~> %export PS1="${PS1%\\\$*}"' \t \$ '<19:07>
<~> % \t \$
<~> % \t \$
Может быть проблема в zsh?
25. Смена раскладки клавиатуры на лету
setxkbmap -layout us
А как менять раскладку в голой консоли, если иксы не запущены? К двораку привык, а в обычной консоли раскладка us стоит.
setxkbmap -layout us
А как менять раскладку в голой консоли, если иксы не запущены? К двораку привык, а в обычной консоли раскладка us стоит.
3. Очистка содержимого файла
И снова - есть много вариантов это сделать:
:> file
truncate -s0 file
И снова - есть много вариантов это сделать:
:> file
truncate -s0 file
ещё можно так:
> file < cat
Хорошая заметка. По поводу "16. Генерация случайных паролей": как вариант, есть замечательный pwgen.
$ pwgen
eimeJ8ee ki7Ea5ai no9Aighi Aenaibo9 Cie6eiph ohph0eiN eaGu3uaL etexah3C
Ye3toiqu Cah2Acho OoG5chie Iem7weey ThahGh9U aepa1Eel ooS6We3M ojeih1Zo
ish5Ahch Is3eafah kohshoR3 Aesoo4Nu Ieyi7ki6 eiTai2oo daeKaJ2I Ao4ue9ie
fiet8She eenguZi1 Eebohj0u Ooxaeth3 Enu1taf4 gaifaiZ5 Shae8oGh dooB2lov
AhK1waic lorohGh7 ieCooLo0 pee1Ahyi oozeiy2X ewu6ahGh AiGh2soh ienu2Anu
ii4kie7O Egei6aew EiTh3alo JeiTid7r tow3Pech ui7thohK mahmi7Ae OhB7ool3
OMah4lee eu1eeFee hah6Uh4e Angu3map Noghi6La eiw8BahS AePo8eis Oojo3Ier
fizah5Ao Di3pahph Vo8wee0g du6Ahxoh Agoo7wau Ro8Phe9p nahJoi8i eezeeS1j
ohV3eiV6 dah9Puch et1aeg1H uG0oogh9 eiVei6ie ed3Edaig eiV2Uilu OoW2saed
peiSoo3M oob2Hahy shaequ3O yae4yooZ Iec8aeph OoXu9gib jaiQu6Ka Aijaequ6
quie1Ahv Aegahsh8 eiqu4aiM ocheex8N Kah0aiTi AefaeKe4 iP2Yaedu Axuz3aem
Goaki9ch Ohl6or5i pheuC7th jaituCh8 ieX8rew9 Awai4coh pieChai3 Daath9oh
igh2zeiX Eejaiv2t Hee3faer aete6ToL ohDee4so Xaroh0ah Jooy4bee ifi0yeiD
NeePu0ej OobuB2oh Aes2ZaeT Aeb6rie7 Ooyah2ko ti5yie7L Sah0aegh OoSh8hei
Shoxuew8 mahH7fei chahk4Ee Thaewei4 Thaecha2 ahNgohb4 Eegho8Gu cheeFa1e
eiD8Le7z Shex9gae Bi9Ahsit Roo9dang gi3Mee4X Phiv0cho eeLa5uik ieGai3ee
Naexohy7 ieno7Beu que9Cung chohm1Xo Mohf6aex ij5ohP8k eiPh5aek thohc5Ec
RaiShee0 Ceep7iul uGaeg4ku Eing1pie Eew7ozof nahyi7Hu phiu5Ohj aoghu1IP
shai7oaF Nai4tee4 ieS4ofew Heeh4Ho3 gaa5CueN iah6te6R zohsha7I Aez7peig
eiCa6nei au6Aid3a AinahS1t seuh4aiC phu2Wiey Ialai8Uj Iedutu7i oH8ohree
$ pwgen -y 12 6
Vaich>agh5ah phie8Lah&Hoh Maexool;oh2r Wath~ae4Aiw2 ieKoog{eec8h boov6Der%ah3
password for exelens:
sudo: aptitude: command not found
exelens@exelens-P5K:~$ sudo dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg -P
dpkg: запрошенная операция требует привилегий суперпользователя