what the español commands linux unix shell command-line

commands - the linux command line español pdf



¿Qué directorio es ''~'' cuando escribo ''cd ~''? (11)

/ es la raíz del sistema de archivos ~ / o ~ es la raíz de su perfil, ~ / es siempre / home / username

Solo soy nuevo en el uso de SSH, pero cuando inicio sesión termino en el directorio ~, que en general es el mismo directorio cuando estoy haciendo FTP. Todavía puedo ir a /, pero no sé lo que significa ~ . ¿Casa? ¿Dónde está en relación con /, o cómo podría averiguarlo?



Sí, es el directorio de inicio del usuario que inició sesión como. Puede usar el comando pwd (imprimir directorio de trabajo) para ver dónde se encuentra en el sistema de archivos.


Y el hogar, en relación a /, no necesariamente está siempre en el mismo lugar. Es por eso que ~ el atajo es muy útil. El camino a casa debe estar en $ HOME. Prueba escribiendo

echo $HOME


~ es su directorio personal, sí. Lo cual es muy bueno ya que su directorio de inicio no siempre está donde usted cree que debería estar (/ home /).

Además, es un hecho divertido: puede usar "cd ~ myuser" para acceder al directorio de inicio del usuario "myuser".


~ se expande a su directorio de inicio, como se ha señalado, pero creo que vale la pena señalar que no es una característica de ssh en sí.

ssh (¡entre muchas otras características maravillosas!) le permite establecer un shell remoto, y este shell puede ser proporcionado por muchos diferentes tipos de software.

En un sistema * nix, su cuenta se asociará con un shell en particular, GNU bash es una opción popular. Y sucede que en bash, y en la mayoría de las demás conchas que cumplen con POSIX, el carácter de tilde se expande como un acceso directo al directorio de inicio .


~ es un alias del directorio de inicio de los usuarios actualmente conectados. Para saber dónde está realmente, escriba pwd (siglas en inglés de Print Working Directory) justo después de iniciar sesión , que le proporcionará la ubicación relativa a / . Probablemente sea algo así como:

/home/myusername


Como otros han comentado, la tilde indica su directorio $HOME actual. Esto puede o no ser el mismo que el valor de ~username de ~username para su nombre de usuario. En mi máquina, $HOME y ~ ambos se refieren a /work1/jleffler . Sin embargo, ~jleffler es una referencia a un directorio montado de NFS, /u/jleffler , como se especifica en el /etc/passwd (o cualquier base de datos equivalente: el estándar POSIX define el comportamiento en términos de la función getpwnam() continuación ) Mi perfil establece cuidadosamente $HOME . Es interesante (también conocido como exasperante) averiguar qué paquetes de software usan una definición incorrecta del directorio de inicio.

Para la mayoría de las personas, ~ y ~username son los mismos para su nombre de usuario, pero eso no es obligatorio. Dado que usted está haciendo la pregunta, es casi seguro que ~ y ~username son lo mismo.

Cita de la sección 2.6.1 ''Tilde Expansion'' de POSIX.1-2008:

Un "prefijo de tilde" consiste en un carácter <tilde> comillas al principio de una palabra, seguido de todos los caracteres que preceden a la primera <slash> en la palabra, o todos los caracteres en la palabra si no hay <slash> . [...] Si el nombre de inicio de sesión es nulo (es decir, el prefijo tilde contiene solo la tilde), el prefijo tilde se reemplaza por el valor de la variable INICIO. Si HOME está desarmado, los resultados no están especificados. De lo contrario, el prefijo tilde se reemplazará por un nombre de ruta del directorio de trabajo inicial asociado con el nombre de inicio de sesión obtenido utilizando la función getpwnam() [...]. Si el sistema no reconoce el nombre de inicio de sesión, los resultados no están definidos.


Diferentes proyectiles pueden o no manejar esto de manera diferente, pero Johnathan consiguió lo más cercano sin salir y decirlo. El shell expande "~" a lo que está almacenado en la variable de entorno $ HOME. El intérprete de comandos expande ~ nombre de usuario a lo que aparece en el campo de shell de / etc / passwd para el nombre de usuario dado. Si no lo anula, el shell (o ssh, dependiendo de la implementación) configurará $ HOME como el campo base de / etc / passwd, por lo que ambos son iguales (suponiendo que sea "nombre de usuario") hasta que cambies uno.

En cuanto a por qué ves un ~ en ssh ...

El mensaje dice "~" es su directorio actual más probable porque está utilizando Bash como su shell, y el valor de $ PS1 (la cadena de solicitud que ve, está establecida en / etc / profile o /etc/profile.d/ *, más que probable) contiene un / w o un / W en alguna parte. La cadena / w en el mensaje muestra el directorio actual, y colapsa a "~" cuando está en el directorio especificado por $ HOME. Aquí hay una pequeña demostración que comienza en mi hogar: observe cómo la "/ w" se reemplaza con el directorio actual o con un ~, según el valor de HOME configurado. También tenga en cuenta que la barra inclinada final no funciona: HOME no puede finalizar con una barra para que esto funcione. :)

danny@machine ~ > export PS1=''/w > '' # change my prompt (effective on next line) ~ > cd /tmp # move to /tmp to demonstrate /tmp > export HOME=/tmp/ # set HOME to include trailing / /tmp > export HOME=/tmp # try again without trailing / ~ > # notice that this works ~ > cd /home/danny # back to homedir /home/danny > export HOME=/home/danny # see how it''s /home/danny, not ~ ~ > export PS1=''danny@machine /w > '' # after resetting $HOME, it should work ok danny@machine ~ > # hooray!


~ es su directorio de inicio. Para ver el tipo de ruta:

echo ~

en la terminal


El directorio de inicio no necesariamente tiene que estar en / home como ha señalado Kigurai .