Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

How can I either create or find a list of 3-letter unix commands on Mac OS X?

I'd like to create a new program/command for a project. I'd like to make it a 3-letter name, but I don't want to conflict with other unix commands. I am interested in seeing what is available before I settle on a particular name.

share|improve this question
1  
Pick your app name then Google "manpage <URNAME>" if theres a manpage for that combination change it. –  Rhyuk Jul 13 '12 at 17:25
    
I'm interested in seeing my options before picking a name though. –  Kyle Tolle Jul 13 '12 at 17:34
    
I would agree - picking a name that makes sense and then checking for and adjusting to work around conflicts seems like a better way to not confuse your user than just starting out with all of the TLA namespace not already taken. –  jw013 Jul 13 '12 at 20:19
add comment

3 Answers

up vote 6 down vote accepted

Try this

compgen -A function -abck | awk 'length($0) == 3'

(edit: its a bash builtin, so you should execute it in bash, and it will immediately give you the list of 3 char commands)

share|improve this answer
    
Chosen for its simplicity. –  Kyle Tolle Jul 14 '12 at 0:38
add comment

A-Z OSX Commands.

http://ss64.com/osx/

alias     Create an alias 
  alloc     List used and free memory
  apropos   Search the whatis database for strings
  awk       Find and Replace text within file(s)

b
  basename  Convert a full pathname to just a filename
  bash      Bourne-Again SHell
  bg        Send to background •
  bind      Display readline key and function bindings •
  bless     Set volume bootability and startup disk options.
  break     Exit from a For, While, Until or Select loop •
  builtin   Execute a shell builtin •
  bzip2     Compress or decompress files
c
  cal       Display a calendar
  caller    Return the context of a subroutine call •
  case      Conditionally perform a command •
  cat       Concatenate and print (display) the content of files
  cd        Change Directory •
  chflags   Change a file or folder's flags
  chgrp     Change group ownership
  chmod     Change access permissions
  chown     Change file owner and group
  chroot    Run a command with a different root directory
  cksum     Print CRC checksum and byte counts
  clear     Clear terminal screen
  cmp       Compare two files
  comm      Compare two sorted files line by line
  command   Run a command (not a function) •
  complete  Edit a command completion [word/pattern/list] •
  continue  Resume the next iteration of a loop •
  cp        Copy one or more files to another location
  cron      Daemon to execute scheduled commands
  crontab   Schedule a command to run at a later date/time
  csplit    Split a file into context-determined pieces
  curl      Transfer data  from or to a server
  cut       Divide a file into several parts
d
  date      Display or change the date & time
  dc        Desk Calculator
  dd        Data Dump - Convert and copy a file
  declare   Declare variable & set attributes •
  defaults  Set preferences, show hidden files
  df        Display free disk space
  diff      Display the differences between two files
  diff3     Show differences among three files
  dig       DNS lookup
  dirname   Convert a full pathname to just a path
  dirs      Display list of remembered directories •
  diskutil  Disk utilities - Format, Verify, Repair
  disown    Unbind a job from the current login session •
  ditto     Copy files and folders
  dot_clean Remove dot-underscore files
  drutil    Interact with CD/DVD burners
  dscacheutil  Query or flush the Directory Service/DNS cache
  dseditgroup  Edit, create, manipulate, or delete groups
  dsenableroot Enable root access
  dsmemberutil View user and groups rights
  dscl      Directory Service command line utility
  du        Estimate file space usage
e
  echo      Display message on screen •
  ed        A line-oriented text editor (edlin)
  enable    Enable and disable builtin shell commands •
  env       List or Set environment variables
  eval      Evaluate several commands/arguments •
  exec      Execute a command •
  exit      Exit the shell •
  expand    Convert tabs to spaces
  expect    Programmed dialogue with interactive programs
            Also see AppleScript
  export    Set an environment variable •
  expr      Evaluate expressions
f
  false     Do nothing, unsuccessfully
  fc        Fix command (history)
  fdisk     Partition table manipulator for Darwin UFS/HFS/DOS
  fg        Send job to foreground •
  file      Determine file type
  find      Search for files that meet a desired criteria
  fmt       Reformat paragraph text
  fold      Wrap text to fit a specified width
  for       Loop command •
  fsck      Filesystem consistency check and repair
  fsaclctl  Filesystem enable/disable ACL support
  fs_usage  Filesystem usage (process/pathname)
  ftp       Internet file transfer program
g
  GetFileInfo Get attributes of HFS+ files
  getopt    Parse positional parameters
  getopts   Parse positional parameters •
  goto      Jump to label and continue execution
  grep      Search file(s) for lines that match a given pattern
  groups    Print group names a user is in
  gzip      Compress or decompress files
h
  halt      Stop and restart the operating system
  hash      Refresh the cached/remembered location of commands •
  head      Display the first lines of a file
  hdiutil   Manipulate iso disk images
  history   Command History •
  hostname  Print or set system name
i
  iconv     Convert the character set of a file
  id        Print user and group names/id's
  if        Conditionally perform a command •
  ifconfig  Configure network interface parameters
  info      Help info
  install   Copy files and set attributes
j
  jobs      List active jobs •
  join      Join lines on a common field
k
  kextfind  List kernel extensions
  kickstart Configure Apple Remote Desktop
  kill      Stop a process from running
l
  l         List files in long format (ls -l)
  last      Indicate last logins of users and ttys
  launchctl Load or unload daemons/agents
  ll        List files in long format, showing invisible files (ls -la)
  less      Display output one screen at a time
  let       Evaluate expression •
  lipo      Convert a universal binary
  ln        Make links between files (hard links, symbolic links)
  local     Set a local (function) variable •
  locate    Find files
  logname   Print current login name
  login     log into the computer
  logout    Exit a login shell (bye) •
  lpr       Print files
  lprm      Remove jobs from the print queue
  lpstat    Printer status information
  ls        List information about file(s)
  lsregister Reset the Launch Services database
  lsbom     List a bill of materials file
  lsof      List open files
m
  man       Help manual
  mdfind    Spotlight search
  mdutil    Manage Spotlight metadata store
  mkdir     Create new folder(s)
  mkfifo    Make FIFOs (named pipes)
  more      Display output one screen at a time
  mount     Mount a file system
  mv        Move or rename files or directories
n
  nano      Simple text editor
  net       Manage network resources
  netstat   Show network status
  networksetup Network and System Preferences
  nice      Set the priority of a command
  nohup     Run a command immune to hangups
  ntfs.util NTFS file system utility
o
  onintr    Control the action of a shell interrupt
  open      Open a file/folder/URL/Application
  opensnoop Snoop file opens as they occur
  osacompile Compile Applescript
  osascript Execute AppleScript
p
  passwd    Modify a user password
  paste     Merge lines of files
  pbcopy    Copy data to the clipboard
  pbpaste   Paste data from the Clipboard
  ping      Test a network connection
  pkgutil   Query and manipulate installed packages
  plutil    Property list utility
  pmset     Power Management settings
  popd      Restore the previous value of the current directory •
  pr        Convert text files for printing
  printenv  List environment variables
  printf    Format and print data •
  ps        Process status
  pushd     Save and then change the current directory
  pwd       Print Working Directory •
q
  quota     Display disk usage and limits
r
  rcp       Copy files between machines
  read      Read one line from standard input •
  readonly  Mark a variable or function as read-only •
  reboot    Stop and restart the system
  return    Exit a function •
  rev       Reverse lines of a file
  rm        Remove files
  rmdir     Remove folder(s)
  rpm       Remote Package Manager
  rsync     Remote file copy - Sync file tree (also RsyncX)
s
  say       Convert text to audible speech
  screen    Multiplex terminal, run remote shells via ssh
  screencapture Capture screen image to file or disk
  sdiff     Merge two files interactively
  security  Administer Keychains, keys, certificates and the Security framework
  sed       Stream Editor
  select    Generate a list of items •
  set       Set a shell variable = value •
  setfile   Set attributes of HFS+ files
  shift     Shift positional parameters •
  shopt     Set shell options •
  shutdown  Shutdown or restart OS X
  sips      Scriptable image processing system
  sleep     Delay for a specified time
  softwareupdate System software update tool
  sort      Sort text files
  source    Execute commands from a file •
  split     Split a file into fixed-size pieces
  stop      Stop a job or process
  su        Substitute user identity
  sudo      Execute a command as another user
  sum       Print a checksum for a file
  suspend   Suspend execution of this shell •
  sw_vers   Print Mac OS X operating system version
  system_profiler  Report system configuration
  systemsetup Computer and display system settings
t
  tail      Output the last part of files
  tar       Tape ARchiver
  tcpdump   Dump traffic on a network
  tee       Redirect output to multiple files
  test      Condition evaluation •
  textutil  Manipulate text files in various formats (Doc,html,rtf)
  time      Measure Program Resource Use
  times     Print shell & shell process times •
  top       Display process information
  touch     Change file timestamps
  tr        Translate, squeeze, and/or delete characters
  trap      Execute a command when the shell receives a signal •
  traceroute Trace Route to Host
  true      Do nothing, successfully
  tty       Print filename of terminal on stdin
  type      Describe a command •
u
  ufs.util  Mount/unmount UFS file system
  ulimit    limit the use of system-wide resources •
  umask     Users file creation mask
  umount    Unmount a device
  unalias   Remove an alias •
  uname     Print system information
  unexpand  Convert spaces to tabs
  uniq      Uniquify files
  units     Convert units from one scale to another
  unset     Remove variable or function names •
  until     Loop command •
  uptime    Show how long system has been running
  users     Print login names of users currently logged in
  uuencode  Encode a binary file 
  uudecode  Decode a file created by uuencode
  uuidgen   Generate a Unique ID (UUID/GUID)
  uucp      Unix to Unix copy
v
  vi        Text Editor
w
  wait      Wait for a process to complete •
  wc        Print byte, word, and line counts
  whatis    Search the whatis database for complete words
  where     Report all known instances of a command
  which     Locate a program file in the user's path
  while     Loop command •
  who       Print all usernames currently logged on
  whoami    Print the current user id and name (`id -un')
  write     Send a message to another user
x
  xargs     Execute utility - passing arguments
  yes       Print a string until interrupted
  !!        Run the last command again
share|improve this answer
add comment

Quick and dirty method, iterating over PATH and checking each directory. Make sure your $PATH is something sensible before running.

save_IFS=$IFS
IFS=:
for dir in $PATH; do
        for file in "$dir"/???; do # ??? for 3 letter name
                if [ -x "$file" ]; then
                        printf %s\\n "$file"
                fi
        done
done
IFS=$save_IFS
share|improve this answer
    
printf is a little excessive for that task, innit? Why not echo? –  Warren Young Jul 13 '12 at 18:15
2  
Why not echo? Just personal habit of never passing variable strings to echo, since echo is extremely non portable when passed arguments that look like options or contain backslashes. In this case echo would probably be fine because on any reasonable system the first character of $dir would be /, although the path could still contain `, so printf` is still better. How is it excessive? I hardly think the difference in efficiency matters for this task. The few extra characters of typing save me the brain cycles of determining when passing variables directly to echo is safe. –  jw013 Jul 13 '12 at 18:31
    
This didn't seem to work for me. I tried to echo $IFS and got an empty string. –  Kyle Tolle Jul 13 '12 at 18:34
2  
@WarrenYoung: printf is more flexible, and much more consistent, than echo. I agree that echo would almost certainly work fine in this case. Both echo and printf are built-in commands, at least in bash. –  Keith Thompson Jul 13 '12 at 20:43
2  
I'd pipe the output through something like sed 's,.*/,,' | sort -u to remove the directory names and strip duplicates, and then perhaps through fmt so the output fits on my screen. –  Keith Thompson Jul 13 '12 at 20:45
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.