terminal¶
The terminal package calls Bash, Unix, POSIX, Git, and other command-line tools from Python. It is useful for small build scripts, local automation, examples, and command-line experiments that should stay close to shell syntax.
Basic Commands¶
from domonic.terminal import date, df, du, echo, ls, pwd
print(pwd())
print(ls())
print(ls("-al"))
print(echo("hello"))
print(date())
print(df())
print(du())
Small Automation Scripts¶
from domonic.terminal import grep, ls, pwd
print("cwd:", pwd())
print("python files:", ls("*.py"))
print(grep("domonic README.md"))
Git and Build Helpers¶
from domonic.terminal import git, make
print(git("status", "--short"))
print(make("--version"))
Run Arbitrary Commands¶
from domonic.terminal import command
print(command.run("echo hi"))
domonic.terminal¶
call command line functions in python 3
- exception domonic.terminal.TerminalException(error=None, message='An error message was received from terminal')[source]
Bases:
Exceptionraised if the terminal throws an exception
- class domonic.terminal.command(*args, **kwargs)[source]
Bases:
objectwrapper class for all terminal commands
- static run()[source]
runs any command on the terminal
- static run_args(args, **kwargs)[source]
Run a command without shell parsing and return its stdout.
- run_command()[source]
- class domonic.terminal.cd(*args, **kwargs)[source]
Bases:
commandNOTE - ‘cd’ does not run on terminal - cd is pointless as session opens and closes - so is overridden to change dirs via pure python
- run_command()[source]
- class domonic.terminal.ls(*args, **kwargs)
Bases:
command- iterable = True
- name = 'ls'
- class domonic.terminal.ln(*args, **kwargs)
Bases:
command- name = 'ln'
- class domonic.terminal.rmdir(*args, **kwargs)
Bases:
command- name = 'rmdir'
- class domonic.terminal.touch(*args, **kwargs)
Bases:
command- name = 'touch'
- class domonic.terminal.df(*args, **kwargs)
Bases:
command- iterable = True
- name = 'df'
- class domonic.terminal.du(*args, **kwargs)
Bases:
command- iterable = True
- name = 'du'
- class domonic.terminal.ps(*args, **kwargs)
Bases:
command- iterable = True
- name = 'ps'
- class domonic.terminal.cat(*args, **kwargs)
Bases:
command- iterable = True
- name = 'cat'
- class domonic.terminal.mv(*args, **kwargs)
Bases:
command- name = 'mv'
- class domonic.terminal.cp(*args, **kwargs)
Bases:
command- name = 'cp'
- class domonic.terminal.rm(*args, **kwargs)
Bases:
command- name = 'rm'
- class domonic.terminal.chmod(*args, **kwargs)
Bases:
command- name = 'chmod'
- class domonic.terminal.chown(*args, **kwargs)
Bases:
command- name = 'chown'
- class domonic.terminal.users(*args, **kwargs)
Bases:
command- iterable = True
- name = 'users'
- class domonic.terminal.useradd(*args, **kwargs)
Bases:
command- name = 'useradd'
- class domonic.terminal.userdel(*args, **kwargs)
Bases:
command- name = 'userdel'
- class domonic.terminal.groups(*args, **kwargs)
Bases:
command- name = 'groups'
- class domonic.terminal.groupadd(*args, **kwargs)
Bases:
command- name = 'groupadd'
- class domonic.terminal.groupdel(*args, **kwargs)
Bases:
command- name = 'groupdel'
- class domonic.terminal.uniq(*args, **kwargs)
Bases:
command- name = 'uniq'
- class domonic.terminal.sort(*args, **kwargs)
Bases:
command- name = 'sort'
- class domonic.terminal.diff(*args, **kwargs)
Bases:
command- name = 'diff'
- class domonic.terminal.ssh(*args, **kwargs)
Bases:
command- name = 'ssh'
- class domonic.terminal.scp(*args, **kwargs)
Bases:
command- name = 'scp'
- class domonic.terminal.less(*args, **kwargs)
Bases:
command- name = 'less'
- class domonic.terminal.head(*args, **kwargs)
Bases:
command- iterable = True
- name = 'head'
- class domonic.terminal.tail(*args, **kwargs)
Bases:
command- iterable = True
- name = 'tail'
- class domonic.terminal.uptime(*args, **kwargs)
Bases:
command- name = 'uptime'
- class domonic.terminal.bash(*args, **kwargs)
Bases:
command- name = 'bash'
- class domonic.terminal.shutdown(*args, **kwargs)
Bases:
command- name = 'shutdown'
- class domonic.terminal.reboot(*args, **kwargs)
Bases:
command- name = 'reboot'
- class domonic.terminal.killall(*args, **kwargs)
Bases:
command- name = 'killall'
- class domonic.terminal.mkfile(*args, **kwargs)
Bases:
command- name = 'mkfile'
- class domonic.terminal.ifconfig(*args, **kwargs)
Bases:
command- iterable = True
- name = 'ifconfig'
- class domonic.terminal.ipconfig(*args, **kwargs)
Bases:
command- iterable = True
- name = 'ipconfig'
- class domonic.terminal.finger(*args, **kwargs)
Bases:
command- name = 'finger'
- class domonic.terminal.passwd(*args, **kwargs)
Bases:
command- name = 'passwd'
- class domonic.terminal.whoami(*args, **kwargs)
Bases:
command- name = 'whoami'
- class domonic.terminal.ping(*args, **kwargs)
Bases:
command- iterable = True
- name = 'ping'
- wait = True
- class domonic.terminal.man(*args, **kwargs)
Bases:
command- name = 'man'
- class domonic.terminal.find(*args, **kwargs)
Bases:
command- name = 'find'
- class domonic.terminal.awk(*args, **kwargs)
Bases:
command- name = 'awk'
- class domonic.terminal.grep(*args, **kwargs)
Bases:
command- name = 'grep'
- class domonic.terminal.cut(*args, **kwargs)
Bases:
command- name = 'cut'
- class domonic.terminal.apt(*args, **kwargs)
Bases:
command- name = 'apt'
- class domonic.terminal.gunzip(*args, **kwargs)
Bases:
command- name = 'gunzip'
- class domonic.terminal.tar(*args, **kwargs)
Bases:
command- name = 'tar'
- class domonic.terminal.gzip(*args, **kwargs)
Bases:
command- name = 'gzip'
- class domonic.terminal.cron(*args, **kwargs)
Bases:
command- name = 'cron'
- class domonic.terminal.crontab(*args, **kwargs)
Bases:
command- name = 'crontab'
- class domonic.terminal.xargs(*args, **kwargs)
Bases:
command- name = 'xargs'
- class domonic.terminal.nautilus(*args, **kwargs)
Bases:
command- name = 'nautilus'
- class domonic.terminal.date(*args, **kwargs)
Bases:
command- name = 'date'
- class domonic.terminal.cal(*args, **kwargs)
Bases:
command- name = 'cal'
- class domonic.terminal.bc(*args, **kwargs)
Bases:
command- name = 'bc'
- class domonic.terminal.rsync(*args, **kwargs)
Bases:
command- name = 'rsync'
- class domonic.terminal.git(*args, **kwargs)
Bases:
command- name = 'git'
- class domonic.terminal.wget(*args, **kwargs)
Bases:
command- name = 'wget'
- class domonic.terminal.nmap(*args, **kwargs)
Bases:
command- name = 'nmap'
- class domonic.terminal.nohup(*args, **kwargs)
Bases:
command- name = 'nohup'
- class domonic.terminal.python(*args, **kwargs)
Bases:
command- name = 'python'
- class domonic.terminal.npm(*args, **kwargs)
Bases:
command- name = 'npm'
- class domonic.terminal.cowsay(*args, **kwargs)
Bases:
command- name = 'cowsay'
- class domonic.terminal.pip(*args, **kwargs)
Bases:
command- name = '/home/docs/checkouts/readthedocs.org/user_builds/domonic/envs/latest/bin/python -m pip'
- class domonic.terminal.say(*args, **kwargs)
Bases:
command- name = 'say'
- class domonic.terminal.gcc(*args, **kwargs)
Bases:
command- name = 'gcc'
- class domonic.terminal.jq(*args, **kwargs)
Bases:
command- name = 'jq'
- class domonic.terminal.curl(*args, **kwargs)
Bases:
command- name = 'curl'
- class domonic.terminal.ffmpeg(*args, **kwargs)
Bases:
command- name = 'ffmpeg'
- class domonic.terminal.convert(*args, **kwargs)
Bases:
command- name = 'convert'
- class domonic.terminal.figlet(*args, **kwargs)
Bases:
command- name = 'figlet'
- class domonic.terminal.banner(*args, **kwargs)
Bases:
command- name = 'banner'
- class domonic.terminal.ar(*args, **kwargs)
Bases:
command- name = 'ar'
- class domonic.terminal.asa(*args, **kwargs)
Bases:
command- name = 'asa'
- class domonic.terminal.at(*args, **kwargs)
Bases:
command- name = 'at'
- class domonic.terminal.basename(*args, **kwargs)
Bases:
command- name = 'basename'
- class domonic.terminal.batch(*args, **kwargs)
Bases:
command- name = 'batch'
- class domonic.terminal.cc(*args, **kwargs)
Bases:
command- name = 'cc'
- class domonic.terminal.cflow(*args, **kwargs)
Bases:
command- name = 'cflow'
- class domonic.terminal.chgrp(*args, **kwargs)
Bases:
command- name = 'chgrp'
- class domonic.terminal.cksum(*args, **kwargs)
Bases:
command- name = 'cksum'
- class domonic.terminal.comm(*args, **kwargs)
Bases:
command- name = 'comm'
- class domonic.terminal.compress(*args, **kwargs)
Bases:
command- name = 'compress'
- class domonic.terminal.csplit(*args, **kwargs)
Bases:
command- name = 'csplit'
- class domonic.terminal.ctags(*args, **kwargs)
Bases:
command- name = 'ctags'
- class domonic.terminal.cxref(*args, **kwargs)
Bases:
command- name = 'cxref'
- class domonic.terminal.dd(*args, **kwargs)
Bases:
command- name = 'dd'
- class domonic.terminal.delta(*args, **kwargs)
Bases:
command- name = 'delta'
- class domonic.terminal.dirname(*args, **kwargs)
Bases:
command- name = 'dirname'
- class domonic.terminal.ed(*args, **kwargs)
Bases:
command- name = 'ed'
- class domonic.terminal.env(*args, **kwargs)
Bases:
command- name = 'env'
- class domonic.terminal.ex(*args, **kwargs)
Bases:
command- name = 'ex'
- class domonic.terminal.expand(*args, **kwargs)
Bases:
command- name = 'expand'
- class domonic.terminal.expr(*args, **kwargs)
Bases:
command- name = 'expr'
- class domonic.terminal.file(*args, **kwargs)
Bases:
command- name = 'file'
- class domonic.terminal.fold(*args, **kwargs)
Bases:
command- name = 'fold'
- class domonic.terminal.fort77(*args, **kwargs)
Bases:
command- name = 'fort77'
- class domonic.terminal.fuser(*args, **kwargs)
Bases:
command- name = 'fuser'
- class domonic.terminal.gencat(*args, **kwargs)
Bases:
command- name = 'gencat'
- class domonic.terminal.get(*args, **kwargs)
Bases:
command- name = 'get'
- class domonic.terminal.getconf(*args, **kwargs)
Bases:
command- name = 'getconf'
- class domonic.terminal.iconv(*args, **kwargs)
Bases:
command- name = 'iconv'
- class domonic.terminal.ipcrm(*args, **kwargs)
Bases:
command- name = 'ipcrm'
- class domonic.terminal.ipcs(*args, **kwargs)
Bases:
command- name = 'ipcs'
- class domonic.terminal.join(*args, **kwargs)
Bases:
command- name = 'join'
- class domonic.terminal.lex(*args, **kwargs)
Bases:
command- name = 'lex'
- class domonic.terminal.link(*args, **kwargs)
Bases:
command- name = 'link'
- class domonic.terminal.locale(*args, **kwargs)
Bases:
command- name = 'locale'
- class domonic.terminal.localedef(*args, **kwargs)
Bases:
command- name = 'localedef'
- class domonic.terminal.logger(*args, **kwargs)
Bases:
command- name = 'logger'
- class domonic.terminal.logname(*args, **kwargs)
Bases:
command- name = 'logname'
- class domonic.terminal.lp(*args, **kwargs)
Bases:
command- name = 'lp'
- class domonic.terminal.m4(*args, **kwargs)
Bases:
command- name = 'm4'
- class domonic.terminal.mailx(*args, **kwargs)
Bases:
command- name = 'mailx'
- class domonic.terminal.make(*args, **kwargs)
Bases:
command- name = 'make'
- class domonic.terminal.mesg(*args, **kwargs)
Bases:
command- name = 'mesg'
- class domonic.terminal.mkdir(*args, **kwargs)
Bases:
command- name = 'mkdir'
- class domonic.terminal.mkfifo(*args, **kwargs)
Bases:
command- name = 'mkfifo'
- class domonic.terminal.more(*args, **kwargs)
Bases:
command- name = 'more'
- class domonic.terminal.newgrp(*args, **kwargs)
Bases:
command- name = 'newgrp'
- class domonic.terminal.nice(*args, **kwargs)
Bases:
command- name = 'nice'
- class domonic.terminal.nl(*args, **kwargs)
Bases:
command- name = 'nl'
- class domonic.terminal.nm(*args, **kwargs)
Bases:
command- name = 'nm'
- class domonic.terminal.od(*args, **kwargs)
Bases:
command- name = 'od'
- class domonic.terminal.paste(*args, **kwargs)
Bases:
command- name = 'paste'
- class domonic.terminal.patch(*args, **kwargs)
Bases:
command- name = 'patch'
- class domonic.terminal.pathchk(*args, **kwargs)
Bases:
command- name = 'pathchk'
- class domonic.terminal.pax(*args, **kwargs)
Bases:
command- name = 'pax'
- class domonic.terminal.pr(*args, **kwargs)
Bases:
command- name = 'pr'
- class domonic.terminal.prs(*args, **kwargs)
Bases:
command- name = 'prs'
- class domonic.terminal.qalter(*args, **kwargs)
Bases:
command- name = 'qalter'
- class domonic.terminal.qdel(*args, **kwargs)
Bases:
command- name = 'qdel'
- class domonic.terminal.qhold(*args, **kwargs)
Bases:
command- name = 'qhold'
- class domonic.terminal.qmove(*args, **kwargs)
Bases:
command- name = 'qmove'
- class domonic.terminal.qmsg(*args, **kwargs)
Bases:
command- name = 'qmsg'
- class domonic.terminal.qrerun(*args, **kwargs)
Bases:
command- name = 'qrerun'
- class domonic.terminal.qrls(*args, **kwargs)
Bases:
command- name = 'qrls'
- class domonic.terminal.qselect(*args, **kwargs)
Bases:
command- name = 'qselect'
- class domonic.terminal.qsig(*args, **kwargs)
Bases:
command- name = 'qsig'
- class domonic.terminal.qstat(*args, **kwargs)
Bases:
command- name = 'qstat'
- class domonic.terminal.qsub(*args, **kwargs)
Bases:
command- name = 'qsub'
- class domonic.terminal.renice(*args, **kwargs)
Bases:
command- name = 'renice'
- class domonic.terminal.rmdel(*args, **kwargs)
Bases:
command- name = 'rmdel'
- class domonic.terminal.sact(*args, **kwargs)
Bases:
command- name = 'sact'
- class domonic.terminal.sccs(*args, **kwargs)
Bases:
command- name = 'sccs'
- class domonic.terminal.sed(*args, **kwargs)
Bases:
command- name = 'sed'
- class domonic.terminal.sh(*args, **kwargs)
Bases:
command- name = 'sh'
- class domonic.terminal.sleep(*args, **kwargs)
Bases:
command- name = 'sleep'
- class domonic.terminal.split(*args, **kwargs)
Bases:
command- name = 'split'
- class domonic.terminal.strings(*args, **kwargs)
Bases:
command- name = 'strings'
- class domonic.terminal.strip(*args, **kwargs)
Bases:
command- name = 'strip'
- class domonic.terminal.stty(*args, **kwargs)
Bases:
command- name = 'stty'
- class domonic.terminal.tabs(*args, **kwargs)
Bases:
command- name = 'tabs'
- class domonic.terminal.talk(*args, **kwargs)
Bases:
command- name = 'talk'
- class domonic.terminal.tee(*args, **kwargs)
Bases:
command- name = 'tee'
- class domonic.terminal.test(*args, **kwargs)
Bases:
command- name = 'test'
- class domonic.terminal.time(*args, **kwargs)
Bases:
command- name = 'time'
- class domonic.terminal.tput(*args, **kwargs)
Bases:
command- name = 'tput'
- class domonic.terminal.tr(*args, **kwargs)
Bases:
command- name = 'tr'
- class domonic.terminal.true(*args, **kwargs)
Bases:
command- name = 'true'
- class domonic.terminal.tsort(*args, **kwargs)
Bases:
command- name = 'tsort'
- class domonic.terminal.tty(*args, **kwargs)
Bases:
command- name = 'tty'
- class domonic.terminal.uname(*args, **kwargs)
Bases:
command- name = 'uname'
- class domonic.terminal.uncompress(*args, **kwargs)
Bases:
command- name = 'uncompress'
- class domonic.terminal.unexpand(*args, **kwargs)
Bases:
command- name = 'unexpand'
- class domonic.terminal.unget(*args, **kwargs)
Bases:
command- name = 'unget'
- class domonic.terminal.unlink(*args, **kwargs)
Bases:
command- name = 'unlink'
- class domonic.terminal.uucp(*args, **kwargs)
Bases:
command- name = 'uucp'
- class domonic.terminal.uudecode(*args, **kwargs)
Bases:
command- name = 'uudecode'
- class domonic.terminal.uuencode(*args, **kwargs)
Bases:
command- name = 'uuencode'
- class domonic.terminal.uustat(*args, **kwargs)
Bases:
command- name = 'uustat'
- class domonic.terminal.uux(*args, **kwargs)
Bases:
command- name = 'uux'
- class domonic.terminal.val(*args, **kwargs)
Bases:
command- name = 'val'
- class domonic.terminal.wc(*args, **kwargs)
Bases:
command- name = 'wc'
- class domonic.terminal.what(*args, **kwargs)
Bases:
command- name = 'what'
- class domonic.terminal.who(*args, **kwargs)
Bases:
command- name = 'who'
- class domonic.terminal.write(*args, **kwargs)
Bases:
command- name = 'write'
- class domonic.terminal.yacc(*args, **kwargs)
Bases:
command- name = 'yacc'
- class domonic.terminal.zcat(*args, **kwargs)
Bases:
command- name = 'zcat'
- class domonic.terminal.alias(*args, **kwargs)
Bases:
command- name = 'alias'
- class domonic.terminal.bg(*args, **kwargs)
Bases:
command- name = 'bg'
- class domonic.terminal.bind(*args, **kwargs)
Bases:
command- name = 'bind'
- class domonic.terminal.builtin(*args, **kwargs)
Bases:
command- name = 'builtin'
- class domonic.terminal.caller(*args, **kwargs)
Bases:
command- name = 'caller'
- class domonic.terminal.compgen(*args, **kwargs)
Bases:
command- name = 'compgen'
- class domonic.terminal.complete(*args, **kwargs)
Bases:
command- name = 'complete'
- class domonic.terminal.compopt(*args, **kwargs)
Bases:
command- name = 'compopt'
- class domonic.terminal.declare(*args, **kwargs)
Bases:
command- name = 'declare'
- class domonic.terminal.dirs(*args, **kwargs)
Bases:
command- name = 'dirs'
- class domonic.terminal.disown(*args, **kwargs)
Bases:
command- name = 'disown'
- class domonic.terminal.echo(*args, **kwargs)
Bases:
command- name = 'echo'
- class domonic.terminal.enable(*args, **kwargs)
Bases:
command- name = 'enable'
- class domonic.terminal.exit(*args, **kwargs)
Bases:
command- name = 'exit'
- class domonic.terminal.export(*args, **kwargs)
Bases:
command- name = 'export'
- class domonic.terminal.fc(*args, **kwargs)
Bases:
command- name = 'fc'
- class domonic.terminal.fg(*args, **kwargs)
Bases:
command- name = 'fg'
- class domonic.terminal.getopts(*args, **kwargs)
Bases:
command- name = 'getopts'
- class domonic.terminal.jobs(*args, **kwargs)
Bases:
command- name = 'jobs'
- class domonic.terminal.kill(*args, **kwargs)
Bases:
command- name = 'kill'
- class domonic.terminal.let(*args, **kwargs)
Bases:
command- name = 'let'
- class domonic.terminal.local(*args, **kwargs)
Bases:
command- name = 'local'
- class domonic.terminal.logout(*args, **kwargs)
Bases:
command- name = 'logout'
- class domonic.terminal.mapfile(*args, **kwargs)
Bases:
command- name = 'mapfile'
- class domonic.terminal.popd(*args, **kwargs)
Bases:
command- name = 'popd'
- class domonic.terminal.printf(*args, **kwargs)
Bases:
command- name = 'printf'
- class domonic.terminal.pushd(*args, **kwargs)
Bases:
command- name = 'pushd'
- class domonic.terminal.pwd(*args, **kwargs)
Bases:
command- name = 'pwd'
- class domonic.terminal.read(*args, **kwargs)
Bases:
command- name = 'read'
- class domonic.terminal.readarray(*args, **kwargs)
Bases:
command- name = 'readarray'
- class domonic.terminal.readonly(*args, **kwargs)
Bases:
command- name = 'readonly'
- class domonic.terminal.shift(*args, **kwargs)
Bases:
command- name = 'shift'
- class domonic.terminal.shopt(*args, **kwargs)
Bases:
command- name = 'shopt'
- class domonic.terminal.source(*args, **kwargs)
Bases:
command- name = 'source'
- class domonic.terminal.suspend(*args, **kwargs)
Bases:
command- name = 'suspend'
- class domonic.terminal.times(*args, **kwargs)
Bases:
command- name = 'times'
- class domonic.terminal.trap(*args, **kwargs)
Bases:
command- name = 'trap'
- class domonic.terminal.typeset(*args, **kwargs)
Bases:
command- name = 'typeset'
- class domonic.terminal.ulimit(*args, **kwargs)
Bases:
command- name = 'ulimit'
- class domonic.terminal.umask(*args, **kwargs)
Bases:
command- name = 'umask'
- class domonic.terminal.unalias(*args, **kwargs)
Bases:
command- name = 'unalias'
- class domonic.terminal.unset(*args, **kwargs)
Bases:
command- name = 'unset'
- class domonic.terminal.wait(*args, **kwargs)
Bases:
command- name = 'wait'