ProIT: медіа для профі в IT
3 хв

Використання вбудованих команд compgen bash у Linux

author avatar ProIT NEWS

Команда Linux compgen – це вбудований bash, який використовується для надання різної інформації. Команда compgen у Linux насправді не є командою Linux, це частина виконуваного файлу bash. Отже, якби ви ввели «which compgen», ваша оболонка пробігла б усі місця, включені у вашу змінну $PATH, але просто не знайшла б її, повідомляє NetworkWorld.

Очевидно, команді which не пощастило його знайти.

$ which compgen /usr/bin/which: no compgen in (.:/home/shs/.local/bin:/home/shs/bin:/usr/local/bin: /usr/bin:/usr/local/sbin:/usr/sbin)

З іншого боку, якщо ви введете «man compgen», то потрапите на сторінку довідки для оболонки bash. З цієї довідкової сторінки можна прокрутити вниз до цього пояснення, якщо у вас достатньо терпіння, щоб його знайти.

compgen [option] [word]

Generate possible completion matches for  word  according  to  the  options,

which  may be any option accepted by the complete builtin with the exception

of -p and -r, and write the matches to the standard output.  When using  the

-F  or  -C options, the various shell variables set by the programmable com‐

pletion facilities, while available, will not have useful values.

The matches will be generated in the same way as if the programmable comple‐

tion  code  had generated them directly from a completion specification with

the same flags.  If word is specified, only those completions matching  word

will be displayed.

The return value is true unless an invalid option is supplied, or no matches

were generated.

Введення «help compgen» дасть вам короткий опис лише команди compgen:

$ help compgen

compgen: compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]

Display possible completions depending on the options.

Intended to be used from within a shell function generating possible

completions.  If the optional WORD argument is supplied, matches against

WORD are generated.

Exit Status:

Returns success unless an invalid option is supplied or an error occurs.

Список команд за допомогою compgen

compgen – це вбудований bash, який використовується для надання різної інформації. Наприклад, він може перерахувати всі команди, які можна виконати в системі Linux.

Щоб отримати список усіх команд, доступних для прямого виконання, скористайтеся командою, подібною до наведеної нижче, але очікуйте більшого результату, ніж той, який ви бачите тут! Результати нижче серйозно скорочені.

$ comgen -c | column big5                       pkaction c                                               pkcheck egrep                                             pkexec fgrep                                           pkttyagent grep                                          virt-admin install                                         virt-host-validate l.                                    virt-ssh-helper ll                                              nm-online ls                                                nmcli myprocs                                         udisksctl myps                                            cd-create-profile rec                                             cd-fix-profile update                                 cd-iccdump which                                           cd-it8 xzegrep                                             colormgr

Наведена нижче команда показує, скільки рядків виведення буде згенеровано командою, наведеною вище, якщо її не скоротити:

Перелік вбудованих bash за допомогою compgen

Також можна використовувати compgen, щоб отримати список усіх вбудованих bash. Наприклад, передавати вивід команді column, щоб полегшити перегляд.

Перелік ваших псевдонімів за допомогою compgen

Щоб змусити compgen перелічувати ваші псевдоніми, скористайтеся параметром -a так:

$ compgen -a | column

big5    egrep   grep    l.      ls      myps    update  xzegrep xzgrep  zfgrep

c       fgrep   install ll      myprocs rec     which   xzfgrep zegrep  zgrep

Звичайно, можна використати команду псевдоніма (ймовірно, її легше запам’ятати) і побачити команду, з якою пов’язаний кожен псевдонім.

$ alias

alias big5='du -h | sort -h | tail -5'

alias c='clear'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias install='sudo dnf install'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias myprocs='ps -ef | grep shs'

alias myps='ps -ef | grep shs | awk '\''{print $2}'\'' '

alias rec='ls -ltr | tail -3'

alias update='sudo dnf upgrade –refresh'

alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'

alias xzegrep='xzegrep --color=auto'

alias xzfgrep='xzfgrep --color=auto'

alias xzgrep='xzgrep --color=auto'

alias zegrep='zegrep --color=auto'

alias zfgrep='zfgrep --color=auto'

alias zgrep='zgrep --color=auto'

Підсумки

Команда compgen може бути дуже зручною, але вона має багато параметрів для використання та визначення найкорисніших. З дуже короткими поясненнями вони перераховані нижче:

Підписуйтеся на ProIT у Telegram, щоб не пропустити жодну публікацію!

Приєднатися до company logo
Продовжуючи, ти погоджуєшся з умовами Публічної оферти та Політикою конфіденційності.