hostname
command uname
commandwhoami
commandwho am i
commandwho
commandusers
command w
command
finger
commanddate
commandenv
commandexport
commandhostname
commandhostname
command returns the name of the unix
machine which the user's shell is running on.
-s returns just the short name of the host, no domain information -d returns just the domain name without the name of the host
uname
commanduname
command returns the name of the unix host on
which the user's shell is running. It has several options which can display
additional information about the host.
-o returns the operating system name -m returns the machine type -a displays all information uname can determine about the host
whoami
command whoami
simply returns the login name of the user who is
logged in and running the current shell. It only returns the login
ID and no additional information.
who am i
command"who
-m"
. On some systems this can be replaced with almost
any odd text such as who did this
.
An example:
|
||||
mark@platypus:~> mark@platypus:~> who am i mark pts/39 Jan 19 02:28 (dialup1952.wnskvtao.sover.net) mark@platypus:~> who found me mark pts/39 Jan 19 02:28 (dialup1952.wnskvtao.sover.net) mark@platypus:~> |
The output lists the login name of the user running the shell, what terminal they are logged in on, when they logged in, and how they are connected to the host. In the above example the username is "mark", the terminal is identified as pts/39 (a pseudo terminal), the user logged in on Jan 19 and was logged in from a computer in the sover.net domain.
who
commandwho
command returns a list of all users currently
logged in on the host where the shell is running.
|
||||
mark@platypus:~> who mark :0 Jan 18 12:55 mark pts/40 Jan 19 11:38 (dialup2139.wnskvtao.sover.net) mark@platypus:~> |
users
command users
command simply ists the login names of all
accounts which are presently logged in.
|
||||
tuckerm@kangaroo:~> users fingerhutb fingerhutb fingerhutb fingerhutb fingerhutb fingerhutb tuckerm tuckerm@kangaroo:~> |
Notice that if the same user is logged on more than one terminal their username will be listed more than once.
w
commandw
command returns a list of usernames of who is
logged in and some information about what they are doing.
|
||||
[loriotg@gollum ~] w 16:53:39 up 68 days, 21:53, 3 users, load average: 0.67, 0.38, 0.30 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT loriotg tty8 :0 13:25 68days 7:14 0.23s gnome-session loriotg pts/0 :0.0 16:14 4:55 0.88s 0.83s ssh -X -Y apoll loriotg pts/1 :0.0 14:07 0.00s 0.04s 0.01s w [loriotg@gollum ~] |
The output first line lists some statistics about the computer followed by row headings for the remainder of the output. The USER column lists the username(s) for all users logged in on the computer. TTY lists the terminal or graphical display the user is logged in on. FROM lists where the user is logged in from (the dash "-" indicates a login on the local graphical display. LOGIN@ is the time that the user logged in. IDLE lists how much time the user has been IDLE. The IDLE time is based on CPU utilization and may not really reflect the wall clock. JCPU lists how much cpu time the user has utilized from this terminal. PCPU list how much cpu time the user's process (listed in the WHAT column) has taken. The WHAT column lists the process currently being run by the user on the listed terminal at the time the w program was run.
finger
commandfinger
is a program that will display a list of users
logged in on the system and some information about their account.
|
||||
mark@platypus:~> finger Login Name Tty Idle Login Time Office Office Phone mark Mark Tucker *:0 Jan 18 12:55 vail 444a x6328 mark Mark Tucker *pts/18 10 Jan 19 11:40 (:pts/40:S.0) mark Mark Tucker pts/30 9:26 Jan 19 11:40 (:pts/40:S.1) mark Mark Tucker pts/39 Jan 19 11:40 (:pts/40:S.2) mark Mark Tucker *pts/40 Jan 19 11:38 (dialup2139.wnskvtao.sover.net) mark@platypus:~> |
finger may be used to get information about a specific user
regardless of being logged in or not.
|
||||
tuckerm@kangaroo:~> finger fingerhutb Login: fingerhutb Name: Bill Fingerhut Directory: /mnt/homes/fingerhutb Shell: /bin/tcsh Office: Faculty, 20030601 On since Mon Jan 10 14:27 (GMT) on pts/0 (messages off) On since Mon Jan 10 14:28 (GMT) on pts/1 from :42.0 (messages off) On since Mon Jan 10 14:28 (GMT) on pts/2 from :42.0 (messages off) On since Thu Jan 13 18:21 (GMT) on pts/142 (messages off) On since Thu Jan 13 18:22 (GMT) on pts/143 from :42.0 (messages off) On since Thu Jan 13 18:22 (GMT) on pts/144 from :42.0 (messages off) Last login Thu Jan 13 18:21 (GMT) on pts/141 from vail433win.lsc.vsc.edu No mail. No Plan. tuckerm@kangaroo:~> |
finger also has the ability to report information about users on
a remote host. This has proven to be a security problem over the
years and is not usually available on most networks. Here is an
example of how it doesn't work:
|
||||
mark@platypus:~> finger tuckerm@metlab16 [metlab16.lsc.vsc.edu] finger: connect: Connection refused mark@platypus:~> |
date
commanddate
command will return the system date and time in various
formats depending on what options and arguments are passed to the
command. There are many, many ways of manipulating the
output from date
. By default, date
returns the current date and
time for the set time zone, formatted by the system default
language.
|
||||
mark@platypus:~> date Wed Jan 19 13:38:06 GMT 2005 mark@platypus:~> |
date
has a quite a few ways of specifying the format of the output
so that the exact data requested can be printed.
%Y year (1970...) %j day of year (001..366) %a locale's abbreviated weekday name (Sun..Sat) %b locale's abbreviated month name (Jan..Dec) %d day of month (01..31) %H hour (00..23) %M minute (00..59) %Z time zone (e.g., EDT), or nothing if no time zone is determinableAn example of how to specify these formats:
|
||||
mark@platypus:~> date +%Y 2005 mark@platypus:~> |
or print the year and month:
|
||||
mark@platypus:~> date +%b%Y Jan2005 mark@platypus:~> |
env
commandenv
command will lists all of these name value pairs that are stored by
the current shell. Note that each shell has its own set of
environment variables and that changing a value in one shell will
not have any impact on a shell running on another terminal - even
for the same user on the same machine. These values are used by the
shell to determine how some functions will behave. Many unix
programs look to their shell environment to determine how to
function, what to operate on, or where to find data files.
A sample of env output:
|
||||
mark@platypus:~> env CPLUS_INCLUDE_PATH=/usr/lib/qt/include:/usr/lib/qt/include MANPATH=/usr/local/man:/usr/man:/usr/X11R6/man:/usr/lib/java/man:/usr/lib/qt/doc /man:/usr/share/texmf/man SSH_AGENT_PID=8094 HOSTNAME=platypus.lsc.vsc.edu MRXVT_TABTITLE=Terminal TERM=rxvt SHELL=/bin/bash DBUS_SESSION_BUS_PID=8107 WINDOWID=31457282 QTDIR=/usr/lib/qt USER=mark SSH_AUTH_SOCK=/tmp/ssh-Obqlxp8070/agent.8070 KDEDIR=/opt/kde SESSION_MANAGER=local/platypus:/tmp/.ICE-unix/8109 USERNAME=mark XPSERVERLIST= T1LIB_CONFIG=/usr/share/t1lib/t1lib.config MINICOM=-c on PATH=/software/mcidas/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games :/usr/lib/java/bin:/usr/lib/java/jre/bin:/opt/kde/bin:/usr/lib/qt/bin:/usr/share /texmf/bin:.:/software/gempak/GEMPAK5.7.4/bin/linux:/software/gempak/GEMPAK5.7.4 /bin/scripts:/opt/kde/bin:/software/vmware/bin DESKTOP_SESSION=xfce LC_COLLATE=C GDM_XSERVER_LOCATION=local INPUTRC=/etc/inputrc PWD=/home/mark |
The shell environment variables can be referenced individually by prefixing their name with a dollar sign ($). Here is an example using the USER environment variable: mark@platypus:~> echo $USER mark mark@platypus:~>
export
export
command will create a variable and assign it a
value. If the variable already exists, its value is updated with
the export
command.
|
||||
mark@platypus:~> mark@platypus:~> echo $TESTVAR TESTVAR: Undefined variable. mark@platypus:~> mark@platypus:~> export TESTVAR=9999 mark@platypus:~> echo $TESTVAR 9999 mark@platypus:~> mark@platypus:~> export TESTVAR=zoom mark@platypus:~> echo $TESTVAR zoom mark@platypus:~> |
Environment variables can be removed entirely with the
unset
command to remove the variable.
|
||||
mark@platypus:~> echo $TESTVAR 9999 mark@platypus:~> unset TESTVAR mark@platypus:~> echo $TESTVAR TESTVAR: Undefined variable. mark@platypus:~> |