Увидел команду из этого поста https://askubuntu.com/a/266839/75967 , которую я хотел бы назвать
find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis | sort | less
Я предполагаю less
или |
мешает, но как сделать так, чтобы команда псевдонима игнорировала те символы, которые вызывают проблемы?
т.е. Это не работает
alias cccc='find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis | sort | less'
cccc
Возвращает
pell0modem-manager0airserv-ng0usermod0vipw0filefrag0update-software-center0ntpdate-
debian0usbmuxd0foomatic-extract-text0cupsenable0dpkg-divert0dpkg-preconfigure0foomatic-
getpjloptions0ldattach0hplj10200bccmd0vpnc-disconnect0madwifi-
unload0cupsd0tcpd0hplj10180pppstats0service0update-icon-caches0atieventsd0hpljP15050grub-
set-default0userdel0arpd0gpsdctl0remove-shell0cpgr0winbindd0cracklib-format0update-catalog0wesside-ng0vmware-authdlauncher0aireplay-ng0install-docs0hciattach0lpc0install-menu0ck-log-system-restart0foomatic-printermap-to-gutenprint-xml0setvesablank0gconf-schemas0airmon-ng0zic0update-apt-xapian-index0pm-suspend0rebuild-
вместо
[ (1) - check file types and compare values
2to3 (1) - Python2 to Python3 converter
2to3-2.7 (1) - Python2 to Python3 converter
2to3-3.2 (1) - Python2 to Python3 converter
411toppm (1) - convert Sony Mavica .411 image to ppm
7z (1) - A file archiver with highest compression ratio
7za (1) - A file archiver with highest compression ratio
a2p (1) - Awk to Perl translator
accept (2) - accept a connection on a socket
accessdb (8) - dumps the content of a man-db database in a human read...
aclocal-1.11 (1) - manual page for aclocal 1.11.6
aclocal (1) - manual page for aclocal 1.11.3
, когда вы выполняете команду самостоятельно.
After the Fact - Supplemental
Я также добавил еще одну полезную функцию для запроса через строку этого каталога команд. blockquote>fff() { find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis |& grep $1 }
Поэтому, если вы введете команду
fff pdf
, она покажет вам все связанные команды, связанные с pdf, например:pdfunite (1) - Portable Document Format (PDF) page merger ps2pdf13 (1) - Convert PostScript to PDF 1.3 (Acrobat 4-and-later com... pdftotext (1) - Portable Document Format (PDF) to text converter (vers... ps2pdfwr (1) - Convert PostScript to PDF without specifying Compatibi... pdfdetach (1) - Portable Document Format (PDF) document embedded file ... ps2pdf (1) - Convert PostScript to PDF using ghostscript ps2pdf12 (1) - Convert PostScript to PDF 1.2 (Acrobat 3-and-later com... pdf2dsc (1) - generate a PostScript page list of a PDF document pdfimages (1) - Portable Document Format (PDF) image extractor (versio... pdftoppm (1) - Portable Document Format (PDF) to Portable Pixmap (PPM... foomatic-ppdfile (1) - Generate a PPD file for a given printer/driver combo dvipdf (1) - Convert TeX DVI file to PDF using ghostscript and dvips qpdf (1) - PDF transformation software pdftocairo (1) - Portable Document Format (PDF) to PNG/JPEG/PDF/PS/EPS/... pdfseparate (1) - Portable Document Format (PDF) page extractor pdftops (1) - Portable Document Format (PDF) to PostScript converter... ps2pdf14 (1) - Convert PostScript to PDF 1.4 (Acrobat 5-and-later com... pdfinfo (1) - Portable Document Format (PDF) document information ex... pdftohtml (1) - program to convert PDF files into HTML, XML and PNG im... pdfopt (1) - Ghostscript PDF Optimizer pdffonts (1) - Portable Document Format (PDF) font analyzer (version ... pdf2ps (1) - Ghostscript PDF to PostScript translator
Я думаю, что это полезно для знания всех доступные команды
Не беспокойтесь псевдонимами для более сложных вещей, используйте вместо этого функцию оболочки:
function cccc() {
find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis | sort | less
}
См. man bash
для обоснования:
определение и использование псевдонимов несколько сбивают с толку. Bash всегда читает хотя бы одну полную строку ввода перед выполнением любой из команд в этой строке. Псевдонимы раскрываются при чтении команды, а не при ее выполнении. Поэтому определение псевдонима, отображаемое в той же строке, что и другая команда, не вступает в силу до тех пор, пока не будет прочитана следующая строка ввода. На команды, следующие за определением псевдонима в этой строке, новый псевдоним не влияет. Такое поведение также проблема, когда функции выполняются. Псевдонимы раскрываются при чтении определения функции, а не при ее выполнении, поскольку определение функции само по себе является составной командой. Как следствие, псевдонимы, определенные в функции, будут недоступны до тех пор, пока эта функция не будет выполнена. Для безопасности всегда помещайте определения псевдонимов в отдельной строке и не используйте псевдоним в составных командах.
BLOCKQUOTE>