Править: Нарезанный это еще немного.
Вы могли бы найти это полезным от администрации Debian: введение для избиения завершения.
Полный сценарий: /some/location/my_ssh_autocomplete_script
(только предназначенный как короткий начинающий):
#!/bin/bash
_get_rsync_file_list()
{
# For test:
#local -a flist=("foo" "bar")
#printf "%s " "${flist[@]}"
# Or:
ls /tmp
# For live something in direction of:
#ssh user@host 'ls /path/to/dir' <-- but not ls for other then dirty testing.
}
_GetOptSSH()
{
local cur
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
-*)
COMPREPLY=( $( compgen -W '-h --help' -- "$cur" ) );;
*)
# This could be done nicer I guess:
COMPREPLY=( $( compgen -W "$(_get_rsync_file_list)" -- "$cur" ) );;
esac
return 0
}
Загрузите сценарий /some/location/my_ssh_download_script
:
#!/bin/bash
server="myserver"
path="/home/pierre/downloads"
download_from_myserver() {
for file; do
rsync "$server:$path/$file"
done
}
case "$1" in
"-h"|"--help")
echo "Download files from '$server', path: '$path'" >&2
exit 0;;
esac
download_from_myserver "$@"
В .bash_aliases
:
alias download_from_myserver='/some/location/my_ssh_download_script'
В .bash_completion
:
# Source complete script:
if . "/some/location/my_ssh_autocomplete_script" >/dev/null 2>&1; then
# Add complete function to download alias:
complete -F _GetOptSSH download_from_myserver
fi
Я вхожу в систему как root в моей оболочке и набрав , который
, и это вывод.
who
root tty1 2014-08-25 14:01 (:0)
root pts/0 2014-09-05 10:22 (:0.0)
root pts/3 2014-09-19 10:08 (xxx.xxx.edu)
Эффективно показывает все пользователи, которые установили соединение.
ssh ramesh@hostname
Бег ВОЗ
снова приведет к другой записи для пользователя Ramesh.
who
root tty1 2014-08-25 14:01 (:0)
root pts/0 2014-09-05 10:22 (:0.0)
root pts/3 2014-09-19 10:08 (xxx.xxx.edu)
ramesh pts/4 2014-09-19 12:11 (xxx.xxx.edu)
Внутри корня
оболочка, я просто делаю Su Ramesh
, а затем даю WHOAMI
. Это даст мне вывод как текущий пользователь, который является Ramesh.
Настолько эффективно с , который
Это дает список всех пользователей, в настоящее время вошли в машину и с WHOAMI
Вы можете знать текущий пользователь, который находится в оболочке.
Кто:
Распечатайте информацию о пользователях, которые в настоящее время вошли в систему.
WHOAMI:
Печать эффективного имени пользователя RAN WHOAMI.
Например:
mohsen@debian:~$ who ## list logged in usernames
mohsen :0 2014-09-19 16:31 (:0)
mohsen pts/0 2014-09-19 16:32 (:0)
mohsen pts/1 2014-09-19 19:42 (:0)
mohsen@debian:~$ whoami
mohsen ##### print my username (mohsen)
mohsen@debian:~$
Я также рекомендую команду лучше, чем , который
: команду W
. Его выход:
mohsen@debian:~$ w
21:45:45 up 5:16, 3 users, load average: 0.68, 0.54, 0.46
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
mohsen :0 :0 16:31 ?xdm? 1:40m 0.27s gdm-session-wor
mohsen pts/0 :0 16:32 1.00s 0.15s 0.01s w
mohsen pts/1 :0 19:42 2:03m 0.13s 14.06s /usr/bin/python
См. Также:
Последняя команда
, / var / log / btmp и / var / log / wtmp-файлы
Nota sobre la diferencia entre who
y whoami
.
El comando who
siempre mostrará la cuenta que utilizó para iniciar sesión (la información de usuario real ).
El comando whoami
mostrará su usuario efectivo.
Por ejemplo, si inicia sesión como "blammy", los comandos who
y whoami
mostrarán algo como esto:
> who
blammy pts/0 2011-04-23 13:43 (123.23.123.123)
> whoami
blammy
Esto indica que el usuario "blammy" inició sesión el 23 de abril de 2011 a las 13 :43 desde la IP "123.23.123.123".
Si luego ejecuta su - kapow
, cambias tu usuario efectivo para que sea "kapow".
Ahora, los comandos who
y whoami
mostrarán algo como esto:
> who
blammy pts/0 2011-04-23 13:43 (123.23.123.123)
> whoami
kapow
Tenga en cuenta que la información who
permanece igual, pero la información whoami
cambia según el su.