0 votos

¿Es posible sustituir mi nombre de usuario en el Terminal por caracteres especiales?

He encontrado este que parece estar cerca de la solución, pero no está del todo ahí.

EDIT: Con JavaScript, sé que puedo simplemente ejecutar test.replace(/\w/g, "*") , donde test es mi nombre de usuario, pero no conozco el equivalente para la Terminal.

1voto

user3439894 Puntos 5883

El PS1 se define en /etc/bashrc y el valor por defecto suele ser PS1='\h:\W \u\$ ' . Reemplazarías el \u con ***** . También puede añadir, por ejemplo export PS1='\h:\W *****\$ ' a su ~/.bash_profile mientras que el archivo del sistema ( /etc/bashrc ) solo.

1voto

John N Puntos 400

¿El nombre de usuario oculto debe tener la misma longitud que el nombre de usuario original? Así:

Alices-MacBook:~ *****

Bobs-MacBook:~ ***

El siguiente fragmento de código debería hacer el trabajo (y, como extra, también ocultará el nombre de host). Añádelo a tu ~/.bash_profile, o a cualquier lugar en el que configures PS1. (Yo creé un archivo temporal - test.sh - para probar, y luego puse la fuente de ese archivo - '. ./test.sh'. Si algo ha ido espectacularmente mal, y he hecho mi símbolo del sistema ilegible, podría simplemente reiniciar el terminal y volver a mi antiguo símbolo del sistema).

PROMPT_COMMAND=__prompt_command

__hide_string()
{
    echo "$1" | sed 's/./\*/g'
}

__prompt_command()
{
    PS1="$(__hide_string $HOSTNAME):\W $(__hide_string $USER)\$"
}

Esto reemplazará cada carácter en el nombre de usuario con un "*" (también lo hará para el nombre de host, para mostrar la reutilización de la función). Considero que esto es menos que ideal - la función es llamada (dos veces - una para el usuario, una para el nombre de host) cada vez que se muestra el prompt (aunque el nombre de usuario no haya cambiado): con un poco de hacking debería ser posible modificarlo para que sólo llame a la función '__hide_string' cuando PS1 está activado (es decir, en el inicio de sesión).

Explicación: la función __prompt_command que hemos definido establece PS1 cada vez que se muestra el prompt. (Esto es probablemente exagerado, pero mantiene las cosas 'dinámicas'). PS1 debería ser familiar; lo único nuevo es que ' \h ' y ' \u ' se sustituyen por llamadas a la función __hide_string (y utilizan $HOSTNAME y $USER como argumentos). __hide_string es la parte divertida: hace eco de su argumento a sed, que sustituye cada carácter individual por un '*'.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X