¿Qué significa ~ $?

27

¿Qué significa ~$? Por ejemplo:

user@ubuntu:~$

Hasta ahora sé que el $signo es un símbolo para un usuario normal. Si no me equivoco roottengo #al final.

También encontré muchos comandos en los foros que comienzan con $:

$ sudo apt-get update 

Entonces, ¿qué significa $realmente?

EDITAR (28.01.2014):

Hoy me encontré con este video que responde totalmente a mi pregunta de hace 8 meses y decidí compartirlo aquí :)

Conceptos básicos de BASH: https://www.youtube.com/watch?v=x73WTEltyHU

FEARBG
fuente

Respuestas:

33

Los ~y $son elementos de la línea de comandos . Esto indica que su computadora (o más exactamente, supongo, el shell que está ejecutando) está esperando la entrada del usuario. Le está pidiendo que ingrese un comando.

El $es simplemente un separador o divisor. Separa el símbolo del sistema del comando que lo sigue. Cuando las personas escriben cosas como $ sudo apt-get update(su ejemplo), simplemente le dicen que el comando, en este caso sudo apt-get update, debe ingresarse en el símbolo del sistema. Estrictamente hablando, tal vez, $es redundante en este contexto.

Se pueden utilizar otros separadores en otras situaciones. Por ejemplo, #se usa para un shell raíz.

El ~(llamado 'tilde') es la abreviatura de su directorio de inicio. Cuando aparece en un símbolo del sistema, por ejemplo, user@hostame:~$indica que el directorio de trabajo actual es su directorio de inicio. Por lo tanto, si ejecuta el comando de lista ls, sin especificar ningún directorio en particular, mostrará el contenido de su directorio de inicio.

(Por cierto, $HOMEno es un comando, como sugiere, sino una variable de entorno . Determina la ubicación de su directorio de inicio. Puede ver su valor ejecutando $ echo $HOME).

camsolo
fuente
10
@FEarBG Creo que esta respuesta falla en un aspecto pequeño: el mensaje es completamente personalizable y es solo una decoración; puede decidir tener una solicitud vacía o utilizar los símbolos que desee (p. ej., en mi computadora, he reemplazado $con `̃∴` como símbolo de solicitud). Puede cambiar su solicitud configurando la PS1variable de entorno a su gusto.
Bakuriu
@Bakuriu Asumiendo bash, por supuesto. Otras conchas PUEDEN ser diferentes.
un CVn
1
"Estrictamente hablando, tal vez, el $ es redundante en este contexto". - Sí, es por eso que generalmente preferimos evitarlo $si no es necesario (que existe para copias de registro o salidas de ejemplo, por ejemplo).
user98085
12

Tradicionalmente, un indicador de shell termina con $,% o #. Si termina con $, esto indica un shell que es compatible con el shell Bourne (como un shell POSIX o un shell Korn o Bash). Si termina con%, esto indica un shell C (csh o tcsh). Si termina con #, esto indica que el shell se está ejecutando como la cuenta de superusuario del sistema (root).

Fuente : aquí

Mukund
fuente
en algunos sistemas (antiguos, por lo general), tiene "#" incluso como usuario habitual (tal vez para mantenerse alerta) ... es decir, algunos shells más antiguos no cambian el símbolo si es root: vs- usuario habitual.
Olivier Dulac
10
  • ~ representa su directorio de inicio.
  • $es un separador para su sistema, proviene del comando \$de la página del manual.

Entonces, si encuentra un comando que comienza con $él, simplemente dice que no se debe agregar nada antes.

user@ubuntu:~$

useres el nombre de usuario con el que has iniciado sesión.
@es solo decir que aquí hay un enlace.
ubuntues el nombre del sistema en el que inició sesión.
:~dice que estás en el userdirectorio de inicio ahora.
$proviene de la \$secuencia de escape en el $PS1. página man.

Pero todo esto se puede cambiar leyendo la página del manual. Gracias @demure por la ayuda.

Alvar
fuente
2
Para ser específicos, es la \$parte de $ PS1, que está diseñada para mostrar, $si no la raíz (de lo contrario, será #) la página del manual ejercida
recatada el
@denure actualizó mi respuesta, si cree que puede mejorarla, hágalo.
Alvar
6

El signo $ es el final del indicador en la terminal cuando agrega un comando como el que mostró, no escriba el $ else, no funcionará.

Entonces $ sudo apt-get update

se escribiría como:

sudo apt-get update 

Espero que ayude.

Editar

El ~ representa su carpeta de inicio, por name@pc_name:~/Desktop$lo que mostraría que está en la carpeta Inicio> Escritorio.

SimplySimon
fuente
3
Tal vez para mostrar que debe ingresar el comando en el indicador.
SimplySimon
44
Y también para distinguir entre un comando ejecutado por un usuario normal (en el indicador $) frente a root (el indicador #).
coneslayer
@FEarBG: es una convención arbitraria, no relacionada (hasta donde yo sé) con el uso de $para denotar un nombre de variable. Solo hay tantos caracteres imprimibles disponibles en un teclado. DOS y Windows usan >en las indicaciones, Unix generalmente usa $o %. Le dice "esto es un aviso" sin desperdiciar espacio en su pantalla (o, en los viejos tiempos, tinta y papel).
Keith Thompson
Y, por supuesto, en el uso de variables de entorno de DOS y Windows %. Como dices, es en gran medida arbitrario; es necesario que haya algo , pero no tiene que ser igual en todas partes (aunque sería bueno si lo fuera).
un CVn