Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- compgen -c
- compgen -a # will list all the aliases you could run.
- compgen -b # will list all the built-ins you could run.
- compgen -k # will list all the keywords you could run.
- compgen -A function # will list all the functions you could run.
- compgen -A function -abck # will list all the above in one go.
- whence -pm '*'
- print -rl -- $commands
- print -rl -- ${(ko)commands}
- IFS=':';for i in $PATH; do test -d "$i" && find "$i" -maxdepth 1 -executable -type f -exec basename {} ;; done
- find ${PATH//:/ } -maxdepth 1 -executable
- python -c 'import os;import sys;output = lambda(x) : sys.stdout.write(x + "n"); paths = os.environ["PATH"].split(":") ; listdir = lambda(p) : os.listdir(p) if os.path.isdir(p) else [ ] ; isfile = lambda(x) : True if os.path.isfile(os.path.join(x[0],x[1])) else False ; isexe = lambda(x) : True if os.access(os.path.join(x[0],x[1]), os.X_OK) else False ; map(output,[ os.path.join(p,f) for p in paths for f in listdir(p) if isfile((p,f)) and isexe((p,f)) ])'
- import os
- import sys
- # This is just to have a function to output something on the screen.
- # I'm using python 2.7 in which 'print' is not a function and cannot
- # be used in the 'map' function.
- output = lambda(x) : sys.stdout.write(x + "n")
- # Get a list of the components in the PATH environment variable. Will
- # abort the program is PATH doesn't exist
- paths = os.environ["PATH"].split(":")
- # os.listdir raises an error is something is not a path so I'm creating
- # a small function that only executes it if 'p' is a directory
- listdir = lambda(p) : os.listdir(p) if os.path.isdir(p) else [ ]
- # Checks if the path specified by x[0] and x[1] is a file
- isfile = lambda(x) : True if os.path.isfile(os.path.join(x[0],x[1])) else False
- # Checks if the path specified by x[0] and x[1] has the executable flag set
- isexe = lambda(x) : True if os.access(os.path.join(x[0],x[1]), os.X_OK) else False
- # Here, I'm using a list comprehension to build a list of all executable files
- # in the PATH, and abusing the map function to write every name in the resulting
- # list to the screen.
- map(output, [ os.path.join(p,f) for p in paths for f in listdir(p) if isfile((p,f)) and isexe((p,f)) ])
- { set -f; IFS=:; for d in $PATH; do set +f; [ -n "$d" ] || d=.; for f in "$d"/.[!.]* "$d"/..?* "$d"/*; do [ -f "$f" ] && [ -x "$f" ] && printf '%sn' "${x##*/}"; done; done; } | sort
- { IFS=:; for d in $PATH; do for f in $d/*; do [ -f $f ] && [ -x $f ] && echo ${x##*/}; done; done; } | sort
- { IFS=:; set -f; find -H $PATH -prune -type f -perm -100 -print; } | sed 's!.*/!!' | sort
- { IFS=:; ls -H $PATH; } | sort
- #!/usr/bin/env python
- import os
- from os.path import expanduser, isdir, join, pathsep
- def list_executables():
- paths = os.environ["PATH"].split(pathsep)
- executables = []
- for path in filter(isdir, paths):
- for file_ in os.listdir(path):
- if os.access(join(path, file_), os.X_OK):
- executables.append(file_)
- return executables
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement