Todo

While the first version of this e-book is being written this list will be largely mechanical stuff which needs to be done to get the e-book into a suitable state. Subsequently it will be more a list of unix stuff for which I/we stilll need to find or document a PowerShell equivalent.

# for version ‘1.0’

  • more or the resources, perhaps
  • check each page in pdf or word

for future versions

test conditions (not entirely sure that’s the right unix terminology) - built
test conditions like if file exists and is not a directory, if variable exists
and is not null

pushd/popd

shutdown -r - restart-computer

more/less - remember it doesn’t work in ISE

find - the various options. -newer, -exec

uname
uname options

crontab -l
cp -r
ls -R
.profile

bg
cp
cut

env
eval
file
find
free (memory)
fuser filename
head

tee

/var/log/message
write
& (run in background)
PS1 (line contunuation prompt)
declare -F
type
Parameter passing
cut -f 3
for (p127)
while (p139)
until
case
select p113, p136
String comparisons p118
File attribute operations p122
fileinfo
Number comparisons p126
IFS (internal field separator) p127
PS3
getopts p145
let p145
arrays p160
here -documents p165
debugging stuff p221
-n (syntax check)
-v
-x

For the section on ‘ | egrep -i’ i.e. how to search for something within the pipeline, I’ve currently got instructions on how to use -like against a particular property. It would be good to have an alternative which did allow you to search across the whole output. Not very useful typically, but it would be nice to cover it off

export (variables)

my search history function

Mark L’s comments

  • would expect to see stuff like ‘if-then-else’ in the introductory pages
  • would be worth looking at the man pages for bash itself (and perhaps for cmd)
  • cover re-direction
  • ‘special variables’ - $HOME, $PROFILE

More detail on invoke-locate ?

Cover Get-Item as well as Get-ChildItem for ls

Convert from gwmi to get-ciminstance

More on mailx/send-mailmessage

Think about whether to expand any and all aliases to the full command name

More on mv?

Fill out detail on the ps process tree option. All unix processes being
descendants of root, windows processes not necessarily being descendants of
anything

More on more :). More isn’t an alias for out-host -paging

ps options - starting with those in the cygwin or bash help

ps -0 (get security info)
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM

….have been looking at the cim but not got anything much yet. http://powershell.com/cs/blogs/tips/archive/2009/12/17/get-process-owners.aspx has wmi

ps -o

  1. To see every process with a user-defined format:
  2. ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
  3. ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
  4. ps -eopid,tt,user,fname,tmout,f,wchan

ps -C

  1. Print only the process IDs of syslogd:
  2. ps -C syslogd -o pid=

ps -p

  1. Print only the name of PID 42:
  2. ps -p 42 -o comm=

rm options

rmdir

sort and sort -uniq - more detail on each

uptime - restore the ‘sos’ function etc….but work out what the approved verb would be for ‘show’

who am i - as opposed to whoami. I think it shows the user you originally logged on as

the non-alphabetical stuff: \ and backtick

$ env | sort
_=/bin/env
CVS_RSH=ssh
G_BROKEN_FILENAMES=1
HISTSIZE=1000
HOME=/home/matt
HOSTNAME=whatever.co.uk
INPUTRC=/etc/inputrc
LANG=en_GB
LESSOPEN=|/usr/bin/lesspipe.sh %s
LOGNAME=matt
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:.cmd=00;32:.exe=00;32:.com=00;32:.btm=00;32:.bat=00;32:.sh=00;32:.csh=00;32:.tar=00;31:.tgz=00;31:.arj=00;31:.taz=00;31:.lzh=00;31:.zip=00;31:.z=00;31:.Z=00;31:.gz=00;31:.bz2=00;31:.bz=00;31:.tz=00;31:.rpm=00;31:.cpio=00;31:.jpg=00;35:.gif=00;35:.bmp=00;35:.xbm=00;35:.xpm=00;35:.png=00;35:.tif=00;35:
MAIL=/var/spool/mail/matt
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/matt/bin
PS1=$
PWD=/home/matt
SHELL=/bin/bash
SHLVL=1
SSH_TTY=/dev/pts/1
TERM=xterm