Ядро не требуется, чтобы отслеживать параметры командной строки. Когда программа запущена через execve
звоните, ядро должно скопировать аргументы в память процесса (так, чтобы они были доступны как argv
в программе C, например). После этого ядро может отбросить память, используемую для хранения начальных параметров командной строки. Процессу позволяют перезаписать его копию аргументов. Таким образом, не может просто быть никакой трассировки аргументов.
Некоторые варианты Unix действительно сохраняют копию аргументов в некоторой форме. Солярис выставляет некоторые данные в /proc/$pid
. С OpenSolaris 2009.06 единственная трассировка аргументов находится в /proc/$pid/psinfo
, где они связываются с промежуточными пробелами (таким образом, Вы не можете различать foo "one" "two"
и foo "one two"
) и получившая строка является усеченной к 80 байтам. Это поле в /proc/$pid/psinfo
что ps
печать в args
столбец.
Между прочим, -f
и -l
опции управляют тем, какие поля печатаются, не, являются ли поля усеченными к некоторой ширине.
CentOS должен иметь Вкусный репозиторий EPEL, включенный для установки пакета завершения удара.
См. https://fedoraproject.org/wiki/EPEL для деталей.
Загрузите bash-completion
Об/мин
wget http://www.caliban.org/files/redhat/RPMS/noarch/bash-completion-20060301-1.noarch.rpm
Установите об/мин
rpm -ivh bash-completion-20060301-1.noarch.rpm
Выполните команду
. /etc/bash_completion
Теперь можно попробовать автозавершение
yum ins — [TAB][TAB]
Править: для Centos 6 можно захватить этого об/мин
Есть только одна команда, которая должна получить bash-завершение:
yum install epel-release.noarch bash-completion.noarch
Если у вас не установлен EPEL, сначала запустите:
yum install epel-release
Затем выполните следующую команду:
yum install bash-completion --enablerepo=epel
После установки вам необходимо выйти/войти, чтобы программа начала работать. Чтобы начать использовать его в текущем сеансе, введите его с помощью команды .
:
. /etc/bash_completion