Portál AbcLinuxu, 30. dubna 2025 11:22

Bash_completion

20.8.2011 21:05 | Přečteno: 1024× | Gentoo mini-návod | Výběrový blog | poslední úprava: 1.9.2011 22:03

Zápisek se věnuje vlastnosti která je užitečná pro doplňování voleb v příkazech které se zadávají v konzoli a to s použitím TABelátoru (výchozí chování je jeho dvojitý stisk) v distribuci Gentoo, ale možná nejen v něm. Záměrně se snaží vyhnout v použití nástrojů této distribuce, které v jiných nejsou.
  1. Přidat
    echo "[[ -f /etc/profile.d/bash-completion.sh ]] && source /etc/profile.d/bash-completion.sh" >> /etc/bash/bashrc
  2. Vytvořit symlinky, buď pro celý systém,
    ln -s /usr/share/bash-completion/* /etc/bash_completion.d/
    nebo jen pro roota
    mkdir /root/.bash_completion
    a
    ln -s /usr/share/bash-completion/* /root/.bash_completion/
    nebo zvlášť pro obyč. uživatele
    mkdir /home/user/.bash_completion a
    ln -s /usr/share/bash-completion/* /home/user/.bash_completion/
  3. source /etc/bash/bashrc
  4. Po přepnutí do jiné konzole to musí jít.

Starší článek o stejném tématu.

       

Hodnocení: 80 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

20.8.2011 21:24 loki
Rozbalit Rozbalit vše Re: Bash_completion
Odpovědět | Sbalit | Link | Blokovat | Admin
Jake distro pouzivas???
Marián Kyral avatar 20.8.2011 22:45 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Bash_completion
Odpovědět | Sbalit | Link | Blokovat | Admin
dnes 21:05 | Gentoo | poslední úprava: dnes 21:12
Jinak na ty linky lze použít eselect:
$ eselect bashcomp 
Usage: eselect bashcomp <action> <options>

Standard actions:
  help                      Display help text
  usage                     Display usage information
  version                   Display version information

Extra actions:
  disable <target>          Disable specified completion(s)
    --global                  Disable for all users
    <target>                  Target name or number (from 'list' action)
  enable <target>           Enable specified completion(s)
    --global                  Enable for all users
    <target>                  Target name or number (from 'list' action)
  list                      List available completions
    --global                  List globally enabled completions
Jendа avatar 21.8.2011 01:08 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bash_completion
Odpovědět | Sbalit | Link | Blokovat | Admin
echo "[[ -f /etc/profile.d/bash-completion.sh ]] && source /etc/profile.d/bash-completion.sh >> /etc/bash/bashrc
  1. Chybí ti tak uvozovka
  2. On nějaký systém nenačítá soubory z adresář.d/ automaticky?
21.8.2011 03:22 jadd | skóre: 34 | blog: Greenhorn
Rozbalit Rozbalit vše Re: Bash_completion
1. Díky, 2. Poznáš to z toho ?
M51Va jadd # cat /etc/profile
# /etc/profile: login shell setup
#
# That this file is used by any Bourne-shell derivative to setup the
# environment for login shells.
#

# Load environment settings from profile.env, which is created by
# env-update from the files in /etc/env.d
if [ -e /etc/profile.env ] ; then
	. /etc/profile.env
fi

# You should override these in your ~/.bashrc (or equivalent) for per-user
# settings.  For system defaults, you can add a new file in /etc/profile.d/.
export EDITOR=${EDITOR:-/bin/nano}
export PAGER=${PAGER:-/usr/bin/less}

# 077 would be more secure, but 022 is generally quite realistic
umask 022

# Set up PATH depending on whether we're root or a normal user.
# There's no real reason to exclude sbin paths from the normal user,
# but it can make tab-completion easier when they aren't in the
# user's PATH to pollute the executable namespace.
#
# It is intentional in the following line to use || instead of -o.
# This way the evaluation can be short-circuited and calling whoami is
# avoided.
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
	PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}"
else
	PATH="/usr/local/bin:/usr/bin:/bin:${PATH}"
fi
export PATH
unset ROOTPATH

if [ -n "${BASH_VERSION}" ] ; then
	# Newer bash ebuilds include /etc/bash/bashrc which will setup PS1
	# including color.  We leave out color here because not all
	# terminals support it.
	if [ -f /etc/bash/bashrc ] ; then
		# Bash login shells run only /etc/profile
		# Bash non-login shells run only /etc/bash/bashrc
		# Since we want to run /etc/bash/bashrc regardless, we source it 
		# from here.  It is unfortunate that there is no way to do 
		# this *after* the user's .bash_profile runs (without putting 
		# it in the user's dot-files), but it shouldn't make any 
		# difference.
		. /etc/bash/bashrc
	else
		PS1='\u@\h \w \$ '
	fi
else
	# Setup a bland default prompt.  Since this prompt should be useable
	# on color and non-color terminals, as well as shells that don't
	# understand sequences such as \h, don't put anything special in it.
	PS1="${USER:-$(type whoami >/dev/null && whoami)}@$(type uname >/dev/null && uname -n) \$ "
fi

for sh in /etc/profile.d/*.sh ; do
	[ -r "$sh" ] && . "$sh"
done
unset sh
Jendа avatar 21.8.2011 03:33 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bash_completion
2. Poznáš to z toho ?
for sh in /etc/profile.d/*.sh ; do
	[ -r "$sh" ] && . "$sh"
done
Poznám z toho, že ten první krok je zbytečný, protože se ten soubor spouští automaticky.
21.8.2011 15:49 jadd | skóre: 34 | blog: Greenhorn
Rozbalit Rozbalit vše Re: Bash_completion
Takže stačí jen source /etc/bash/bashrc ? Popravdě já to env-update dělám pořád, takže úplně zbytečně ?

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.