Следуя в духе Скрытые возможности PowerShell и различные другие на Stack Overflow, какие команды Linux или комбинации команд вы считаете важными в своей работе?
Также см:
Скрытые возможности MySQL
Скрытые возможности PowerShell
Скрытые возможности Oracle Database
Скрытые возможности Windows 2008
Скрытые возможности Solaris / OpenSolaris
Скрытые возможности SQL Server
Скрытые возможности IIS (6.0 / 7.0)
Чтобы получить мяч, я нахожу экран быть существенным:
Когда вызывается экран, он создает одно окно с оболочкой в нем (или указанной командой), а затем уходит с вашего пути, чтобы вы могли использовать программу, как обычно. Затем в любое время вы можете создавать новые (полноэкранные) окна с другими программами в них (включая дополнительные оболочки), закрывать текущее окно, просматривать список активных окон, включать и выключать ведение журнала вывода, копировать текст между windows, просматривать историю прокрутки, переключаться между окнами и т. д. Все окна запускают свои программы полностью независимо друг от друга. Программы продолжают работать, когда их окно в настоящее время не отображается, и даже когда весь сеанс экрана отключен от пользовательского терминала.
Возможно, я не использую их каждый день, но я использую их часто:
lsof часто игнорируется, это очень полезный инструмент. lsof позволяет просматривать список всех открытых файлов в системе, кто / что их использует и т. д.
Например:
root@tower:~ # umount /mnt/hardy
umount: /mnt/hardy: device is busy
umount: /mnt/hardy: device is busy
root@tower:~ # lsof | grep /mnt/hardy
bash 5966 root cwd DIR 253,2 1024 2 /mnt/hardy
root@tower:~ #
Теперь я вижу, что я вошел в оболочку другого терминала, а / mnt / hardy - мой текущий рабочий каталог. Поэтому я могу либо убить эту оболочку, либо перейти к другому терминалу и выйти из этого каталога, чтобы его можно было размонтировать.
Это действительно тривиальный пример, он очень удобен для устранения случайных заражений «ботами». Параметры обширны, подробнее см. Man lsof.
Я был удивлен, обнаружив, что вы можете запускать удаленные приложения с графическим интерфейсом через SSH, используя параметр «-X». Например:
# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &
На моем локальном компьютере появляется окно gedit, редактирующее файл «my.cnf» на сервере.
Я предполагаю, что это работает только в том случае, если на вашем клиентском компьютере есть среда X - другими словами, не в Windows. Но он отлично работает на моем Mac!
Чтобы перейти в последний каталог, в котором вы были:
cd -
Сетевой стек можно оставить работающим после остановки системы. Я не знаю, актуально ли это для ядер серии 2.6.x, но в более старых версиях вы могли настроить брандмауэр / маршрутизацию, а затем остановить систему без отключения, оставив работающим только сетевой стек. Это позволит вам сделать дешевый (хотя и статический) брандмауэр, который "невозможно взломать" - потому что там ничего нет к взломать, так как нет программ или служб, только часть сетевого стека ядра, передающего пакеты туда и обратно ...
Мне нравится «найти» - это намного более простой способ поиска файлов, чем корявый «find. -Name xxxx -print». Обратите внимание, что вы должны использовать команду updatedb для обновления индекса вашего файла; подробности см. на страницах руководства.
Я считаю "ngrep" действительно полезным для отладки сетевого кода на удаленных серверах без необходимости копировать файлы tcpdump:
ngrep -d any -W byline port 80
например, покажет вам живые HTTP-запросы и ответы.
Еще одна вещь, которую я часто нахожу полезной, - это переключатель "-e" в strace:
strace -p <pid> -e trace=open
покажет все системные вызовы open () для данного pid, и
strace -p <pid> -e trace=\!rt_sigprocmask
исключит все вызовы rt_sigprocmask () из вывода (полезно для отладки кода RoR, который, похоже, делает очень много этих вызовов при построении с использованием pthreads).
apropos
ОПИСАНИЕ Каждая страница руководства имеет краткое описание. apropos ищет в описаниях экземпляры ключевого слова.
gyaresu@debian:~/bin$ apropos ettercap
etter.conf (5) - Ettercap configuration file
ettercap (8) - (unknown subject)
ettercap_curses (8) - (unknown subject)
ettercap_plugins (8) - (unknown subject)
К счастью, мне понадобилось всего пару раз, но Клавиша Magic SysRq по-прежнему остается одной из моих любимых скрытых функций.
Alt + SysRq + RSEIUB
NAME
units -- conversion program
DESCRIPTION
The units program converts quantities expressed in various scales to their
equivalents in other scales. The units program can only handle multiplicative
scale changes. It cannot convert Celsius to Fahrenheit, for example.
It works interactively by prompting the user for input:
You have: meters
You want: feet
* 3.2808399
/ 0.3048
You have: cm^3
You want: gallons
* 0.00026417205
/ 3785.4118
You have: meters/s
You want: furlongs/fortnight
* 6012.8848
/ 0.00016630952
You have: 1|2 inch
You want: cm
* 1.27
/ 0.78740157
ssh-copy-id для передачи ключей ssh. Старый способ заключался в том, чтобы пропустить ключ через ssh, а еще более старый способ заключался в том, чтобы скопировать ключ, а затем скопировать ключ. Если вы используете нестандартный порт ssh, это поможет вам.
ssh-copy-id -i / путь / к / ключу '-p нестандартное имя хоста'
В противном случае..
ssh-copy-id -i / путь / к / ключевому имени хоста
На самом деле это не так уж и важно, но может быть так для тех, у кого нет опыта, но мне очень нравится иметь возможность давать списки и позволять bash расширять их, как в:
cp arq{,.bak}
что то же самое, что вводить
cp arq arq.bak
Я также использую ярлыки истории (не думаю, что это правильный термин, но ...), например
!!
повторить последнюю команду, или
^foo^bar
заменить foo на bar в последней команде
Мне нравится пакет debian-goodies:
Description: Small toolbox-style utilities for Debian systems These programs are designed to integrate with standard shell tools, extending them to operate on the Debian packaging system. . dgrep - Search all files in specified packages for a regex dglob - Generate a list of package names which match a pattern . These are also included, because they are useful and don't justify their own packages: . debget - Fetch a .deb for a package in APT's database dpigs - Show which installed packages occupy the most space debman - Easily view man pages from a binary .deb without extracting debmany - Select manpages of installed or uninstalled packages checkrestart - Help to find and restart processes which are using old versions of upgraded files (such as libraries) popbugs - Display a customized release-critical bug list based on packages you use (using popularity-contest data)
а также moreutils, который по сути представляет собой отличный инструмент для работы с трубами на колесах:
Description: additional unix utilities This is a growing collection of the unix tools that nobody thought to write thirty years ago. . So far, it includes the following utilities: - sponge: soak up standard input and write to a file - ifdata: get network interface info without parsing ifconfig output - ifne: run a program if the standard input is not empty - vidir: edit a directory in your text editor - vipe: insert a text editor into a pipe - ts: timestamp standard input - combine: combine the lines in two files using boolean operations - pee: tee standard input to pipes - zrun: automatically uncompress arguments to command - mispipe: pipe two commands, returning the exit status of the first - isutf8: check if a file or standard input is utf-8 - lckdo: execute a program with a lock held Homepage: http://kitenet.net/~joey/code/moreutils/
Виртуальные консоли. Большинство людей знают, как использовать (Ctrl-) Alt-F1, чтобы перейти к первой консоли и т. Д., Но что, если у вас их больше 12? Вы можете использовать Alt-Left и Alt-Right, чтобы просмотреть остальные из них. :-D
Возможно, одна из замечательных особенностей Linux, в отличие от Windows, заключается в том, что по дизайну почти нет скрытых функций. Надеюсь, что если какие-либо недокументированные функции достаточно важны, чтобы знать о сообществе, они сделают свое дело.
Мне всегда нравились люди, которые помогали новичкам в системе.
Отличная «функция», которую я использую каждый день на работе: возможность прослушивания SSH на порту 443, чтобы я мог создать туннель, который обходит мой рабочий брандмауэр, что позволяет мне запускать локальный прокси-сервер SOCKS, туннелированный через SSH на мой интернет-сервер Linux. .
Я могу полностью игнорировать свой корпоративный брандмауэр.
Вот несколько, которые я использовал регулярно:
sar
- показывает активность системыvmstat
- статистика виртуальной памятиiostat
- статистика iopkill
- лайк pgrep
но позволяет убить возвращенный идентификатор процессаxargs -I<string>
- позволяет заменять строки передаваемыми даннымиat
- запланировать задачуtkdiff
- графический diff
утилитаОни, вероятно, не «скрытые», но я считаю их чрезвычайно полезными:
df -hk
- показать использование диска в удобочитаемом форматеls -ltr
- список файлов, отсортированных по датеwhile :; do...done
- (Bash) замена для watch
если недоступенperl -e
- запустить Perl
фрагмент в командной строкеfree -kt
- показать информацию о памяти (килобайты / всего)ESC + .
'Вставляет' последний параметр из предыдущей строки в текущую подсказку
например
ls -l /home/someuser/somedir/somefile
с последующим
rm
ESC + .
переводится на
rm /home/someuser/somedir/somefile
Начать с Эта статья с некоторыми отличными трюками Linux. Мне больше всего нравится pstree, который отображает ваши процессы в древовидном формате, чтобы вы могли видеть, какой процесс породил.
curl чертовски превосходит wget практически для всего, для чего вы бы использовали wget.
zgrep и zless отлично подходят для поиска сжатых файлов журнала, поэтому вам не нужно передавать их через gunzip или оставлять несжатые файлы в / var / log.
Концепция заключается в том, что все в Linux - это файл.
Все конфигурации находятся в текстовых файлах, и все в Linux обрабатывается как файл. Это гораздо более простой подход, который позволяет очень легко изменять что-то в Linux. В Linux даже саму файловую систему можно рассматривать как файл.
Я вижу yes
команда очень хорошая:
yes | do_you_agree
Со страницы руководства:
NAME
yes - output a string repeatedly until killed
SYNOPSIS
yes [STRING]...
yes OPTION
Скрытая особенность в том, что скрытых функций нет. Система предоставляет огромное количество энергии, к которой у вас есть полный доступ. Вы должны понимать каждую часть этого и каждый доступный инструмент, чтобы знать, какая сила у вас под рукой.
Вы должны начать с понимания каждой команды в / bin, / sbin, / usr / bin, / usr / sbin и каждого виртуального файла в / proc. Прочтите руководства, другую документацию и исходный код по мере необходимости.
Если вам неудобно читать справочную страницу или читать исходный код, это ваша скрытая функция.
Это открытый исходный код. Ничего не «спрятано», если вы потрудитесь посмотреть.
tee
является удивительным. Вывод на экран и лог-файл? Проверьте.
od
- файлы дампа в восьмеричном и других форматах. Полезно, например, чтобы проверить, есть ли какая-то хрень спецификации в начале файлаfile
- какой может быть тип данного файла?lshw
, lsusb
, lspci
- список оборудованияtracepath
- здесь мы имеем дело с проблемой MTU?netwox
содержит более 200 сетевых инструментовip
- для сетевой конфигурации / информацииsysctl
- информация о файловой системе / сети / ядреebtables
- iptables для мостаvconfig
- Конфигурация VLANbrctl
- Конфигурация мостаsocat
- netcat
на стероидахipgrab
- tcpdump
-подобная утилита, выводящая подробную информацию заголовкаdig
- Что сейчас с DNS-сервером?grep, awk и sed
верхняя
Только что нашел это сегодня:
dmidecode:
Сообщает информацию об аппаратном обеспечении вашей системы, как описано в BIOS вашей системы, в соответствии со стандартом SMBIOS / DMI. Эта информация обычно включает в себя производителя системы, название модели, серийный номер, версию BIOS, метку ресурса, а также множество других деталей, представляющих различный уровень интереса и надежности в зависимости от производителя. Это часто будет включать статус использования сокетов ЦП, слотов расширения (например, AGP, PCI, ISA) и слотов модулей памяти, а также список портов ввода-вывода (например, последовательный, параллельный, USB).
Это определенно упрощает ответы на вопросы о somerandomserver27 на предприятии Colo!
Не совсем Linux, скорее Bash: подмена процесса,
diff some_local_file <(ssh somehost "cat some_remote_file")
Это различает локальный и удаленный файлы, полученные через SSH, в одной строке.