tor' content='cgit v1.2.3'/>
<meta name='robots' content='index, nofollow'/>
<link rel='stylesheet' type='text/css' href='/cgit.css'/>
<link rel='shortcut icon' href='/favicon.ico'/>
<link rel='alternate' title='Atom feed' href='https://git.lirion.de/dotfiles/atom/.bash/aliases.bash?h=v1.2.4' type='application/atom+xml'/>
<!--
# vim: syntax=html
-->
<style type="text/css">
* {	
	box-sizing:border-box;/*-moz-box-sizing:border-box;*/
}
html,body {
	font-family:"Telex","Helvetica Neue",Helvetica,Arial,sans-serif;
	/*width:auto;max-width:900px;margin:0 auto;padding:0;*/
	width:auto;margin:0 auto;padding:0;
	/*background-color:#fff;*/color:#000;
}
html {
	width:100%;max-width:none;background: #c0c0c0 url('/assets/forest-2.svg') top center no-repeat fixed;
	/*width:100%;max-width:none;background: rgba(192,192,192,0.5) url('./assets/forest-1.svg') top center no-repeat fixed;*/
	background-size: 100% auto; /* 100% auto for keeping the aspect ratio */
}
/*html {
	background:transparent url('./lirionnet-border-left.png') top left repeat-y scroll;
	padding-left:10px;height:100%;
}
body {
	background:transparent url('./lirionnet-border-right.png') top right repeat-y scroll;
	padding-right:10px;overflow:auto;height:100%;
}
body>* {padding-left:10px;padding-right:10px;}*/
h1,h2,h3 {
	font-family:'Alte DIN 1451 Mittelschrift gep','Alte DIN 1451 Mittelschrift','Alte DIN 1451',Futura,'Lucida Grande','Gill Sans',Verdana,Helvetica,sans-serif;
	font-weight:normal;
}
header h1 a {
	color: #000;
	text-decoration: none;
}
#maint h2 {font-size:100%;padding:0;margin:0 auto;}
h1,h2,h3,h4,h5,h6 {/*text-rendering:optimizelegibility;*/}
h3 {font-size:120%;border-bottom:1px solid;}
header { width:auto;margin:0 auto;margin-top:2.8em;}
header h1 {
	text-align:center;font-size:3.666em;margin:0 auto;
}
header h1+p {
	text-align:center;font-style:italic;margin-top:0;text-transform:lowercase;font-size:0.9em;
}
#maint {
	text-align:center;color:#b00;font-style:italic;font-size:2em;color:#fc9032;text-shadow: 1px 1px #999;
	font-weight:bold;margin-top:4em;
}


nav {
	position:absolute;top:0;left:0;
	text-align:center;width:100%;
	background-color:#333;color:#eee;
	border-bottom:2px solid #111;font-size:0.9em;
}
nav>a {
	display:inline-block;padding:0.5em 2em;
	font-family:'Alte DIN 1451 Mittelschrift gep','Alte DIN 1451 Mittelschrift','Alte DIN 1451',Futura,'Lucida Grande','Gill Sans',Verdana,Helvetica,sans-serif;
	text-transform:lowercase;color:#eee;
	text-decoration:none;text-shadow:0.1em 0.1em #000;
	font-size:1.3em;
	width:1em;z-index:99;
	/*border-left:1px solid #444;border-right:1px solid #444;*/
	margin-left:0;margin-right:0;
}
nav > a:first-child {border-left:none;} nav > a:nth-last-child(1) , nav a:last-child {border-right:none;}
nav > a:hover {color:#a0e090;}
nav > a:before {font-family:"Elusive Icons";z-index:99;}
nav a[title="home"]:before {content:"\e6a3";}
nav a[title="links"]:before {content:"\e68f";}
nav a[title="about"]:before {content:"\e61f";}
nav a[title="contact"]:before {content:"\e6e1";}
nav a[title="teamspeak"]:before {content:"\e661";}
nav a[title="minecraft"]:before {content:"\e627";}
nav a[title="git"]:before {content:"\e6b8";}
nav a[title="blog"]:before {content:"\e671";}
nav a[title="philosophy"]:before {content:"\262f";}
nav a[title="hots"]:before {
	content:" ";
	background:transparent url('//lirion.de/heroes-of-the-storm.svg') center center;
	background-size:1em 1em;
	width:1em;height:1em;text-align:center;margin:0 auto;padding:0;display:inline-block;}
nav a[title="autoconf"]:before {content:"\e604";}
nav a[title="redhat"] {
	background:transparent url('/assets/fedora.png') no-repeat center center;
	/*background-size:auto 1.3em;*/
	margin-right:-1em;
}
nav a[title="mastodon"]:before {content:"\e72a";}
nav a[title="packages"]:before {content:"\e69e";}
nav > a >span {display:none;font-size:0;width:1px;}

ul {list-style-type: square;}


/*section#maint {
	background-color:rgba(204,204,204,.75);border-radius:8px;
	-moz-box-shadow: 0 1px 4px rgba(0,0,0,0.5), inset 0 1px rgba(255,255,255,0.3),
		inset 0 5px rgba(255,255,255,0.2), inset 0 5px 10px rgba(255,255,255,0.25),
		inset 0 -8px 15px rgba(0,0,0,0.3);
	box-shadow: 0 1px 4px rgba(0,0,0,0.5), inset 0 1px rgba(255,255,255,0.3),
		inset 0 5px rgba(255,255,255,0.2), inset 0 5px 10px rgba(255,255,255,0.25),
		inset 0 -8px 15px rgba(0,0,0,0.3);
}*/

section,main.page-content,footer,#cgit {
	/*background-color:rgba(245,245,245,.8);
	box-shadow: 0 0 3px 0 rgba(0,0,0,0.25);*/
	/*background-color:rgba(200,245,205,0.7);*/
	background-color:rgba(210,240,216,0.7);
	box-shadow:0 0 4px 0 rgba(0,10,0,0.4);
	/*-moz-box-shadow: 0 0 3px 0 rgba(0,0,0,0.25);*/
	padding:0.5em 1em;
	margin:0 auto;
	margin-top:2em;/*margin-bottom:2em;*/
	max-width:70%;
}
div#cgit {
	background-color:rgba(210,240,216,0.7)!important;
	margin: auto;
	margin-top:2em!important;
	padding:1em!important;
	width:75em!important;
	font-family:"Telex","Helvetica Neue",Helvetica,Arial,sans-serif;
}
div#cgit div.content {background:#f5f5f5!important;overflow:auto;}
div#cgit div.footer {color:#888!important;}
div#cgit div.footer a {color:#666!important;}
#cgit h1,#cgit h2,#cgit h3 {
	font-family:"Telex","Helvetica Neue",Helvetica,Arial,sans-serif;
}
div#cgit table#header td.main {word-spacing:0.1em;}
/*div#cgit pre {white-space:pre-wrap;} :( */
footer {margin-bottom:2em;}
section:nth-last-child(3) {margin-bottom:5em;}

section h2 {text-align:center;margin-top:0;padding-top:0;}
section a {text-decoration:none;}
section a, section a:visited {color:#007a37;}
section a:hover, section a:active {color:#e56b00;}

#links ul {list-style-type:none;text-transform:lowercase;}
/*#links ul li {border-bottom:1px solid #e0e0e0;padding:0.4em 0 0.3em 0;width:15em;margin:0 auto;text-align:center;}*/
#links ul li {padding:0.2em 0 0.3em 2em;margin:0.1em 0 0.1em 0;width:19em;}
#links ul li:nth-child(2n) {float:right;}
#links ul li:nth-child(4n) {background:rgba(80,80,80,0.1);}
#links ul li:nth-child(2n+1) {float:left;}
#links ul li:nth-child(4n-1) {background:rgba(80,80,80,0.1);}
#links:after {clear:both;content:" ";display:block;}

#teamspeak_srv {background-color:rgba(225,245,220,0.7);}
#teamspeak_srv>div.content {margin:0 auto;font-size:13px;width:29.5em;font-family:"Telex","Helvetica Neue",Helvetica,Arial,sans-serif;}
#teamspeak_srv div.copy { display:none!important; }
#teamspeak_srv .content:last-child { margin-bottom:2em; }

aside#ts3remark {margin-top:4em;font-size:66%;text-align:center;font-style:italic;}


#validate {
	transform: rotate(45deg);
	/*-webkit-transform: rotate(45deg); /*FUCK YOU CHROME, SAFARI AND OPERA*/
	/*-ms-transform: rotate(45deg); /*FUCK YOU INTERNET EXPLORER 9 AND BELOW*/
	position:fixed;bottom:0;left:0;text-align:center;text-transform:lowercase;width:100%;margin-left:-45.666%;margin-bottom:1.666em;
}
#validate > p {margin:0;font-weight:bold;}
#validate a {text-decoration:none;}
#validate a:hover{text-decoration:none;}
#validate > p:first-child {/*background:#0092bf;*/color:white;border-top:1px solid;border-color:#058;background:rgba(0,126,178,.8);}
#validate > p:nth-child(2) {/*background:#90c140;*/color:white;border-bottom:1px solid;border-color:#591;background:rgba(124,178,54,.8);}
#validate > p a {
	color:white;display:inline-block;padding:0.3em 25px 0.3em 0.3em;box-sizing:content-box;height:100%;
	background-size:auto 24px;
}
#validate > p:first-child a {
	background:transparent url('/flags/html5.png') right center no-repeat scroll;
}
#validate > p:nth-child(2) a {
	background:transparent url('/flags/css3.png') right center no-repeat scroll;
}
#validate > p span:last-child {display:none;}
/*#validate > p:last-child a {color:#3e7000;}
#validate > p:last-child a:hover {color:#c9910e;}*/
/*#mail h2:before {content:"\2709\fe0f\000a";display:block;font-size:4em;}*/
#mail h2:before {content:"\2709";display:block;font-size:4em;}
#mail,#philosophy,#hots {text-align:justify;}
#mail h2:before, #philosophy h2:before,#hots h2:before {
	font-family:"Elusive Icons";
	display:block;font-size:3em;font-weight:normal;
}
#mail h2:before {content:"\e6e1";}
#mail .remark,#philosophy .remark,#hots .remark {font-size:80%;margin-top:2em;font-style:italic;}
#mail strong,#philosophy strong {color:#a00;}
/*#philosophy h2:before {content:"\262f\fe0f\000a";display:block;font-size:4em;}*/
#philosophy h2:before {content:"\262f";}
#hots h2:before {
	content:" ";
	background:transparent url('//lirion.de/heroes-of-the-storm.svg') center center;
	background-size:1.5em 1.5em;
	width:1.5em;height:1.5em;text-align:center;margin:0 auto;padding:0;display:block;
}
#hots p#hotslogs {text-align:center; margin:0 auto;margin-bottom:1em;}
#rebuild {text-decoration:blink;color:#30c000;}
#os-releases {/*width:66.6%;*/margin-left:2em;}
#os-releases th {text-align:left;}
#os-releases tr:nth-child(2n-1) td {background-color:#bcd1c1;}
#os-releases tr td,#os-releases tr th {padding:0 0.75em;}
#os-releases tr td.hash {font-family:"DejaVu Sans Mono",Monospace,monospace,serif;font-size:90%;}
#nowww {
	position:fixed;top:4em;right:1em;margin:0;padding:0;
	background:transparent url('/assets/no_www.png') bottom right no-repeat;
	background-size:80px auto;width:80px;height:80px;
}
#nowww a {
	display:block;margin:0;padding:0;
	width:80px;height:80px;
}
#nowww a span {display:none;}

div.markdown-body p:last-child { padding-bottom:1.5em; }
div#cgit {margin-bottom:2em;}
@keyframes fadeDown {
	0% {
		opacity: 0;
		transform: translateY(-20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.fadeDown, header {
	animation:fadeDown 1s ease;
}

/* jekyll */

header.post-header { margin-top: 0.1337em; }
.post h1 { font-size:2.1337em; text-align: left; }
.post h1+p { text-align: left; }
ul.post-list {
	background: #f0f0f0;
	list-style: none;
	padding-inline-start: 0;
	padding: 0.8em;
}
ul.post-list li { padding:0.4em; }
ul.post-list li:nth-child(2n-1) { background-color:#ffffff; }
ul.post-list li span.post-meta {
	font-weight: bold;font-style: oblique;font-size:100%;
}
ul.post-list li span.post-meta:after { content: ':'; }
ul.post-list li h3 {
	font-size: 100%;font-weight: normal; display: inline;
	margin-left: 1em;
	font-family: "Telex","Helvetica Neue",Helvetica,Arial,sans-serif;
	border-bottom: none;
}
ul.post-list li h3 a {
	text-decoration: none;
}
nav.blog-nav {
    background: transparent;
	position: static;
	border: none;
}
.blog-nav .nav-trigger { display:none; }
.blog-nav .menu-icon { display:none; }
.post-content table {
  margin-bottom: 30px;
  width: 100%;
  text-align: left;
  color: #3f3f3f;
  border-collapse: collapse;
  border: 1px solid #d0d0d0; }
  .post-content table tr:nth-child(odd) {
    background-color: #e0e0e0; }
  .post-content table tr:nth-child(even) {
    background-color: #f0f0f0; }
  .post-content table th, table td {
    padding: 10px 15px; }
  .post-content table th {
    background-color: #f0f0f0;
    border: 1px solid #dedede;
    border-bottom-color: #c9c9c9; }
  .post-content table td {
    border: 1px solid #e8e8e8; }
.blog-nav a.page-link {
	text-decoration: none;
	font-size:110%;
	border-left: 1px solid;
	border-right: 1px solid;
	margin-left: 0.1em;margin-right:0.1em;
	padding-left:0.7331em;padding-right: 0.7331em;
	display: inline-block;
}
.blog-nav a.page-link:first-child {
	margin-left: 0;
	border-left: 0;
}
.blog-nav a.page-link:last-child {
	margin-right: 0;
	border-right: 0;
}
figure.highlight {
	margin: 0 auto;
	margin-left: 1em;
	padding: 0.666em;
}
figure.highlight pre {
	margin-top: 0;
	margin-bottom: 0;
	overflow-x: auto;
    overflow-y: hidden;
}
figure.highlight pre code, code.highlighter-rouge {
	font-size: 0.8em;
}
article.post div.post-content, #tocw {
	background: rgba(251,255,253,0.6);
	padding: 0.666em;
}
main.page-content a, footer.site-footer a {
	text-decoration: none;
	color: #169b62;
	font-weight: 550;
}
main.page-content a:hover, footer.site-footer a:hover, main.page-content a:active,
footer.site-footer a:active {
	color: #ff883e;
}
.highlight { background: #e8fff0; }
#tocw ol {
	list-style-type: decimal;
	counter-reset: item;
    padding-left: 10px;
}
#tocw ol li {
	display: block;
}
#tocw > ol > li {
	padding-left: 0.5em;
}
#tocw > ol > li > ol > li {
	padding-left: 0.666em;
}
#tocw > ol > li > ol > li > ol > li {
	padding-left: 1.337em;
}
#tocw ol li:before {
    content: counters(item, ".") ". ";
    counter-increment: item
}
/*main.page-content h2:before {
	content: counter(heading)". ";
	counter-increment: heading;
}
main.page-content h2 {
	counter-reset: subheading;
}
main.page-content h3:before {
	content: counter(heading)"." counter(subheading)". ";
	counter-increment: subheading;
}*/
/**
 * Syntax highlighting styles
 */
.highlight {
  background: #fff; }
  .highlighter-rouge .highlight {
    background: #eef; }
  .highlight .c {
    color: #998;
    font-style: italic; }
  .highlight .err {
    color: #a61717;
    background-color: #e3d2d2; }
  .highlight .k {
    font-weight: bold; }
  .highlight .o {
    font-weight: bold; }
  .highlight .cm {
    color: #998;
    font-style: italic; }
  .highlight .cp {
    color: #999;
    font-weight: bold; }
  .highlight .c1 {
    color: #998;
    font-style: italic; }
  .highlight .cs {
    color: #999;
    font-weight: bold;
    font-style: italic; }
  .highlight .gd {
    color: #000;
    background-color: #fdd; }
  .highlight .gd .x {
    color: #000;
    background-color: #faa; }
  .highlight .ge {
    font-style: italic; }
  .highlight .gr {
    color: #a00; }
  .highlight .gh {
    color: #999; }
  .highlight .gi {
    color: #000;
    background-color: #dfd; }
  .highlight .gi .x {
    color: #000;
    background-color: #afa; }
  .highlight .go {
    color: #888; }
  .highlight .gp {
    color: #555; }
  .highlight .gs {
    font-weight: bold; }
  .highlight .gu {
    color: #aaa; }
  .highlight .gt {
    color: #a00; }
  .highlight .kc {
    font-weight: bold; }
  .highlight .kd {
    font-weight: bold; }
  .highlight .kp {
    font-weight: bold; }
  .highlight .kr {
    font-weight: bold; }
  .highlight .kt {
    color: #458;
    font-weight: bold; }
  .highlight .m {
    color: #099; }
  .highlight .s {
    color: #d14; }
  .highlight .na {
    color: #008080; }
  .highlight .nb {
    color: #0086B3; }
  .highlight .nc {
    color: #458;
    font-weight: bold; }
  .highlight .no {
    color: #008080; }
  .highlight .ni {
    color: #800080; }
  .highlight .ne {
    color: #900;
    font-weight: bold; }
  .highlight .nf {
    color: #900;
    font-weight: bold; }
  .highlight .nn {
    color: #555; }
  .highlight .nt {
    color: #000080; }
  .highlight .nv {
    color: #008080; }
  .highlight .ow {
    font-weight: bold; }
  .highlight .w {
    color: #bbb; }
  .highlight .mf {
    color: #099; }
  .highlight .mh {
    color: #099; }
  .highlight .mi {
    color: #099; }
  .highlight .mo {
    color: #099; }
  .highlight .sb {
    color: #d14; }
  .highlight .sc {
    color: #d14; }
  .highlight .sd {
    color: #d14; }
  .highlight .s2 {
    color: #d14; }
  .highlight .se {
    color: #d14; }
  .highlight .sh {
    color: #d14; }
  .highlight .si {
    color: #d14; }
  .highlight .sx {
    color: #d14; }
  .highlight .sr {
    color: #009926; }
  .highlight .s1 {
    color: #d14; }
  .highlight .ss {
    color: #990073; }
  .highlight .bp {
    color: #999; }
  .highlight .vc {
    color: #008080; }
  .highlight .vg {
    color: #008080; }
  .highlight .vi {
    color: #008080; }
  .highlight .il {
    color: #099; }
</style>
<link rel="stylesheet" type="text/css" href="/fonts/telex-ht-regular.css"/>
<link rel="stylesheet" type="text/css" href="/fonts/alte-din.css"/>
<link rel="stylesheet" type="text/css" href="/fonts/elusive-icons.css"/>
	<!-- Matomo -->
	<script type="text/javascript">
		var _paq = window._paq = window._paq || [];
		/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
		// require user consent before processing data
		_paq.push(['requireConsent']);
		_paq.push(['trackPageView']);
		_paq.push(['rememberConsentGiven']);
		_paq.push(['enableLinkTracking']);
		(function() {
			var u="https://piwik.lirion.de/";
			_paq.push(['setTrackerUrl', u+'matomo.php']);
			_paq.push(['setSiteId', '2']);
			var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
			g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
		})();
	</script>
	<!-- End Matomo Code -->
</head>
<body>
<header>
	<h1>git.lirion.de</h1>
	<p>Of git, get, and gud</p>
</header>
<nav>
	<a href="//lirion.de/" title="home"><span>lirion.de</span></a>
	<a href="//lirion.de/" title="links"><span>Links</span></a>
	<a href="//lirion.de/" title="about"><span>About</span></a>
	<a href="//mail.lirion.de/" title="contact"><span>Contact</span></a>
	<a href="//git.lirion.de" title="git"><span>GIT</span></a>
	<a href="//blog.lirion.de" title="blog"><span>Blog</span></a>
	<a href="//autoconfig.lirion.de" title="autoconf"><span>autoconf</span></a>
	<a href="//packages.lirion.de" title="packages"><span>packages</span></a>
	<a href="//proboscidea.lirion.de" title="mastodon"><span>Mastodon</span></a>
</nav>
<div id='cgit'><table id='header'>
<tr>
<td class='logo' rowspan='2'><a href='/'><img src='/cgit.png' alt='cgit logo'/></a></td>
<td class='main'><a href='/'>index</a> : <a href='/dotfiles/'>dotfiles</a></td><td class='form'><form method='get'>
<input type='hidden' name='id' value='d83a51722f5779626ca68dbaa831cbd1bde319d8'/><select name='h' onchange='this.form.submit();'>
<option value='master'>master</option>
<option value='testing'>testing</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Personal dotfiles</td><td class='sub right'>H. P.</td></tr></table>
<table class='tabs'><tr><td>
<a href='/dotfiles/about/?h=v1.2.4'>about</a><a href='/dotfiles/?h=v1.2.4'>summary</a><a href='/dotfiles/refs/?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>refs</a><a href='/dotfiles/log/.bash/aliases.bash?h=v1.2.4'>log</a><a class='active' href='/dotfiles/tree/.bash/aliases.bash?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>tree</a><a href='/dotfiles/commit/.bash/aliases.bash?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>commit</a><a href='/dotfiles/diff/.bash/aliases.bash?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>diff</a><a href='/dotfiles/stats/.bash/aliases.bash?h=v1.2.4'>stats</a></td><td class='form'><form class='right' method='get' action='/dotfiles/log/.bash/aliases.bash'>
<input type='hidden' name='h' value='v1.2.4'/><input type='hidden' name='id' value='d83a51722f5779626ca68dbaa831cbd1bde319d8'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/dotfiles/tree/?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>root</a>/<a href='/dotfiles/tree/.bash?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>.bash</a>/<a href='/dotfiles/tree/.bash/aliases.bash?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>aliases.bash</a></div><div class='content'>blob: 86334b7c3211566cae032c2401ddc64591f7bd56 (<a href='/dotfiles/plain/.bash/aliases.bash?h=v1.2.4&amp;id=d83a51722f5779626ca68dbaa831cbd1bde319d8'>plain</a>)
<table summary='blob content' class='blob'>
<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
<a id='n2' href='#n2'>2</a>
<a id='n3' href='#n3'>3</a>
<a id='n4' href='#n4'>4</a>
<a id='n5' href='#n5'>5</a>
<a id='n6' href='#n6'>6</a>
<a id='n7' href='#n7'>7</a>
<a id='n8' href='#n8'>8</a>
<a id='n9' href='#n9'>9</a>
<a id='n10' href='#n10'>10</a>
<a id='n11' href='#n11'>11</a>
<a id='n12' href='#n12'>12</a>
<a id='n13' href='#n13'>13</a>
<a id='n14' href='#n14'>14</a>
<a id='n15' href='#n15'>15</a>
<a id='n16' href='#n16'>16</a>
<a id='n17' href='#n17'>17</a>
<a id='n18' href='#n18'>18</a>
<a id='n19' href='#n19'>19</a>
<a id='n20' href='#n20'>20</a>
<a id='n21' href='#n21'>21</a>
<a id='n22' href='#n22'>22</a>
<a id='n23' href='#n23'>23</a>
<a id='n24' href='#n24'>24</a>
<a id='n25' href='#n25'>25</a>
<a id='n26' href='#n26'>26</a>
<a id='n27' href='#n27'>27</a>
<a id='n28' href='#n28'>28</a>
<a id='n29' href='#n29'>29</a>
<a id='n30' href='#n30'>30</a>
<a id='n31' href='#n31'>31</a>
<a id='n32' href='#n32'>32</a>
<a id='n33' href='#n33'>33</a>
<a id='n34' href='#n34'>34</a>
<a id='n35' href='#n35'>35</a>
<a id='n36' href='#n36'>36</a>
<a id='n37' href='#n37'>37</a>
<a id='n38' href='#n38'>38</a>
<a id='n39' href='#n39'>39</a>
<a id='n40' href='#n40'>40</a>
<a id='n41' href='#n41'>41</a>
<a id='n42' href='#n42'>42</a>
<a id='n43' href='#n43'>43</a>
<a id='n44' href='#n44'>44</a>
<a id='n45' href='#n45'>45</a>
<a id='n46' href='#n46'>46</a>
<a id='n47' href='#n47'>47</a>
<a id='n48' href='#n48'>48</a>
<a id='n49' href='#n49'>49</a>
<a id='n50' href='#n50'>50</a>
<a id='n51' href='#n51'>51</a>
<a id='n52' href='#n52'>52</a>
<a id='n53' href='#n53'>53</a>
<a id='n54' href='#n54'>54</a>
<a id='n55' href='#n55'>55</a>
<a id='n56' href='#n56'>56</a>
<a id='n57' href='#n57'>57</a>
<a id='n58' href='#n58'>58</a>
<a id='n59' href='#n59'>59</a>
<a id='n60' href='#n60'>60</a>
<a id='n61' href='#n61'>61</a>
<a id='n62' href='#n62'>62</a>
<a id='n63' href='#n63'>63</a>
<a id='n64' href='#n64'>64</a>
<a id='n65' href='#n65'>65</a>
<a id='n66' href='#n66'>66</a>
<a id='n67' href='#n67'>67</a>
<a id='n68' href='#n68'>68</a>
<a id='n69' href='#n69'>69</a>
<a id='n70' href='#n70'>70</a>
<a id='n71' href='#n71'>71</a>
<a id='n72' href='#n72'>72</a>
<a id='n73' href='#n73'>73</a>
<a id='n74' href='#n74'>74</a>
<a id='n75' href='#n75'>75</a>
<a id='n76' href='#n76'>76</a>
<a id='n77' href='#n77'>77</a>
<a id='n78' href='#n78'>78</a>
<a id='n79' href='#n79'>79</a>
<a id='n80' href='#n80'>80</a>
<a id='n81' href='#n81'>81</a>
<a id='n82' href='#n82'>82</a>
<a id='n83' href='#n83'>83</a>
<a id='n84' href='#n84'>84</a>
<a id='n85' href='#n85'>85</a>
<a id='n86' href='#n86'>86</a>
<a id='n87' href='#n87'>87</a>
<a id='n88' href='#n88'>88</a>
<a id='n89' href='#n89'>89</a>
<a id='n90' href='#n90'>90</a>
<a id='n91' href='#n91'>91</a>
<a id='n92' href='#n92'>92</a>
<a id='n93' href='#n93'>93</a>
<a id='n94' href='#n94'>94</a>
<a id='n95' href='#n95'>95</a>
<a id='n96' href='#n96'>96</a>
<a id='n97' href='#n97'>97</a>
<a id='n98' href='#n98'>98</a>
<a id='n99' href='#n99'>99</a>
<a id='n100' href='#n100'>100</a>
<a id='n101' href='#n101'>101</a>
<a id='n102' href='#n102'>102</a>
<a id='n103' href='#n103'>103</a>
<a id='n104' href='#n104'>104</a>
<a id='n105' href='#n105'>105</a>
<a id='n106' href='#n106'>106</a>
<a id='n107' href='#n107'>107</a>
<a id='n108' href='#n108'>108</a>
<a id='n109' href='#n109'>109</a>
<a id='n110' href='#n110'>110</a>
<a id='n111' href='#n111'>111</a>
<a id='n112' href='#n112'>112</a>
<a id='n113' href='#n113'>113</a>
<a id='n114' href='#n114'>114</a>
<a id='n115' href='#n115'>115</a>
<a id='n116' href='#n116'>116</a>
<a id='n117' href='#n117'>117</a>
<a id='n118' href='#n118'>118</a>
<a id='n119' href='#n119'>119</a>
<a id='n120' href='#n120'>120</a>
<a id='n121' href='#n121'>121</a>
<a id='n122' href='#n122'>122</a>
<a id='n123' href='#n123'>123</a>
<a id='n124' href='#n124'>124</a>
<a id='n125' href='#n125'>125</a>
<a id='n126' href='#n126'>126</a>
<a id='n127' href='#n127'>127</a>
<a id='n128' href='#n128'>128</a>
<a id='n129' href='#n129'>129</a>
<a id='n130' href='#n130'>130</a>
<a id='n131' href='#n131'>131</a>
<a id='n132' href='#n132'>132</a>
<a id='n133' href='#n133'>133</a>
<a id='n134' href='#n134'>134</a>
<a id='n135' href='#n135'>135</a>
<a id='n136' href='#n136'>136</a>
<a id='n137' href='#n137'>137</a>
<a id='n138' href='#n138'>138</a>
<a id='n139' href='#n139'>139</a>
<a id='n140' href='#n140'>140</a>
<a id='n141' href='#n141'>141</a>
<a id='n142' href='#n142'>142</a>
<a id='n143' href='#n143'>143</a>
<a id='n144' href='#n144'>144</a>
<a id='n145' href='#n145'>145</a>
<a id='n146' href='#n146'>146</a>
<a id='n147' href='#n147'>147</a>
<a id='n148' href='#n148'>148</a>
<a id='n149' href='#n149'>149</a>
<a id='n150' href='#n150'>150</a>
<a id='n151' href='#n151'>151</a>
<a id='n152' href='#n152'>152</a>
<a id='n153' href='#n153'>153</a>
<a id='n154' href='#n154'>154</a>
<a id='n155' href='#n155'>155</a>
<a id='n156' href='#n156'>156</a>
<a id='n157' href='#n157'>157</a>
<a id='n158' href='#n158'>158</a>
<a id='n159' href='#n159'>159</a>
<a id='n160' href='#n160'>160</a>
<a id='n161' href='#n161'>161</a>
<a id='n162' href='#n162'>162</a>
<a id='n163' href='#n163'>163</a>
<a id='n164' href='#n164'>164</a>
<a id='n165' href='#n165'>165</a>
<a id='n166' href='#n166'>166</a>
<a id='n167' href='#n167'>167</a>
<a id='n168' href='#n168'>168</a>
<a id='n169' href='#n169'>169</a>
<a id='n170' href='#n170'>170</a>
<a id='n171' href='#n171'>171</a>
<a id='n172' href='#n172'>172</a>
<a id='n173' href='#n173'>173</a>
<a id='n174' href='#n174'>174</a>
<a id='n175' href='#n175'>175</a>
<a id='n176' href='#n176'>176</a>
<a id='n177' href='#n177'>177</a>
<a id='n178' href='#n178'>178</a>
<a id='n179' href='#n179'>179</a>
<a id='n180' href='#n180'>180</a>
<a id='n181' href='#n181'>181</a>
<a id='n182' href='#n182'>182</a>
<a id='n183' href='#n183'>183</a>
<a id='n184' href='#n184'>184</a>
<a id='n185' href='#n185'>185</a>
<a id='n186' href='#n186'>186</a>
<a id='n187' href='#n187'>187</a>
</pre></td>
<td class='lines'><pre><code><style>pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #aaaaaa; font-style: italic } /* Comment */
.highlight .err { color: #FF0000; background-color: #FFAAAA } /* Error */
.highlight .k { color: #0000aa } /* Keyword */
.highlight .ch { color: #aaaaaa; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #aaaaaa; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #4c8317 } /* Comment.Preproc */
.highlight .cpf { color: #aaaaaa; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #aaaaaa; font-style: italic } /* Comment.Single */
.highlight .cs { color: #0000aa; font-style: italic } /* Comment.Special */
.highlight .gd { color: #aa0000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00aa00 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #0000aa } /* Keyword.Constant */
.highlight .kd { color: #0000aa } /* Keyword.Declaration */
.highlight .kn { color: #0000aa } /* Keyword.Namespace */
.highlight .kp { color: #0000aa } /* Keyword.Pseudo */
.highlight .kr { color: #0000aa } /* Keyword.Reserved */
.highlight .kt { color: #00aaaa } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #aa5500 } /* Literal.String */
.highlight .na { color: #1e90ff } /* Name.Attribute */
.highlight .nb { color: #00aaaa } /* Name.Builtin */
.highlight .nc { color: #00aa00; text-decoration: underline } /* Name.Class */
.highlight .no { color: #aa0000 } /* Name.Constant */
.highlight .nd { color: #888888 } /* Name.Decorator */
.highlight .ni { color: #880000; font-weight: bold } /* Name.Entity */
.highlight .nf { color: #00aa00 } /* Name.Function */
.highlight .nn { color: #00aaaa; text-decoration: underline } /* Name.Namespace */
.highlight .nt { color: #1e90ff; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #aa0000 } /* Name.Variable */
.highlight .ow { color: #0000aa } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #009999 } /* Literal.Number.Bin */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sa { color: #aa5500 } /* Literal.String.Affix */
.highlight .sb { color: #aa5500 } /* Literal.String.Backtick */
.highlight .sc { color: #aa5500 } /* Literal.String.Char */
.highlight .dl { color: #aa5500 } /* Literal.String.Delimiter */
.highlight .sd { color: #aa5500 } /* Literal.String.Doc */
.highlight .s2 { color: #aa5500 } /* Literal.String.Double */
.highlight .se { color: #aa5500 } /* Literal.String.Escape */
.highlight .sh { color: #aa5500 } /* Literal.String.Heredoc */
.highlight .si { color: #aa5500 } /* Literal.String.Interpol */
.highlight .sx { color: #aa5500 } /* Literal.String.Other */
.highlight .sr { color: #009999 } /* Literal.String.Regex */
.highlight .s1 { color: #aa5500 } /* Literal.String.Single */
.highlight .ss { color: #0000aa } /* Literal.String.Symbol */
.highlight .bp { color: #00aaaa } /* Name.Builtin.Pseudo */
.highlight .fm { color: #00aa00 } /* Name.Function.Magic */
.highlight .vc { color: #aa0000 } /* Name.Variable.Class */
.highlight .vg { color: #aa0000 } /* Name.Variable.Global */
.highlight .vi { color: #aa0000 } /* Name.Variable.Instance */
.highlight .vm { color: #aa0000 } /* Name.Variable.Magic */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */</style><div class="highlight"><pre><span></span><span class="ch">#!/usr/bin/env bash</span>
<span class="c1"># vim:syntax=sh</span>

<span class="c1"># This file actually has aliases _and_ functions.</span>

<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$TERM</span><span class="s2">&quot;</span><span class="w"> </span>!<span class="o">=</span><span class="w"> </span><span class="s2">&quot;dumb&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">eval</span><span class="w"> </span><span class="s2">&quot;</span><span class="k">$(</span>dircolors<span class="w"> </span>-b<span class="k">)</span><span class="s2">&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">ls</span><span class="o">=</span><span class="s2">&quot;ls --color=auto&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">grep</span><span class="o">=</span><span class="s2">&quot;grep --color=auto&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">egrep</span><span class="o">=</span><span class="s2">&quot;egrep --color=auto&quot;</span>
<span class="k">fi</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">lst</span><span class="o">=</span><span class="s2">&quot;ls -l --time-style=full-iso&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">cls</span><span class="o">=</span><span class="s1">&#39; echo -ne &quot;\033c&quot;&#39;</span>
<span class="nb">alias</span><span class="w"> </span>pip-update<span class="o">=</span><span class="s2">&quot;sudo pip freeze --local | grep -v &#39;^\-e&#39; | cut -d = -f 1  | xargs -n1 sudo pip install -U&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">matrix</span><span class="o">=</span><span class="s1">&#39;cmatrix -sbu6 -C cyan&#39;</span>
<span class="nb">command</span><span class="w"> </span>-v<span class="w"> </span>colordiff<span class="w"> </span>&gt;/dev/null<span class="w"> </span><span class="m">2</span>&gt;<span class="p">&amp;</span><span class="m">1</span><span class="o">&amp;&amp;</span><span class="nb">alias</span><span class="w"> </span><span class="nv">diff</span><span class="o">=</span><span class="s2">&quot;colordiff&quot;</span>
<span class="nb">command</span><span class="w"> </span>-v<span class="w"> </span>colormake<span class="w"> </span>&gt;/dev/null<span class="w"> </span><span class="m">2</span>&gt;<span class="p">&amp;</span><span class="m">1</span><span class="o">&amp;&amp;</span><span class="nb">alias</span><span class="w"> </span><span class="nv">make</span><span class="o">=</span><span class="s2">&quot;colormake&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">perllint</span><span class="o">=</span><span class="s2">&quot;perl -Mstrict -Mdiagnostics -cw&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">scredit</span><span class="o">=</span><span class="s1">&#39;gimp &quot;${SCRSHDIR}/$(ls -rt1 $SCRSHDIR/|tail -n1)&quot;&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">scrview</span><span class="o">=</span><span class="s1">&#39;pqiv -i &quot;${SCRSHDIR}/$(ls -rt1 $SCRSHDIR/|tail -n1)&quot;&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">fuck</span><span class="o">=</span><span class="s1">&#39;sudo $(history -p \!\!)&#39;</span>
<span class="nb">alias</span><span class="w"> </span>x509-out<span class="o">=</span><span class="s1">&#39;openssl x509 -text -certopt no_version,no_pubkey,no_sigdump,no_aux,no_header -noout -in&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">isocreate</span><span class="o">=</span><span class="s1">&#39;rm -vf /tmp/image.iso &amp;&amp; mkisofs -v -r -J -translation-table -hide-joliet-trans-tbl -iso-level 4 -o /tmp/image.iso&#39;</span>
<span class="c1">#alias isoburn=&#39;sudo cdrecord -v -speed=10 dev=/dev/sr0 -data&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">isoburn</span><span class="o">=</span><span class="s1">&#39;sudo cdrecord -v dev=/dev/sr0 -data&#39;</span>
<span class="c1"># voice messages e.g. for whatsapp (on libpurple). use &quot;voicemsg OUTPUT.ogg&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">voicemsg</span><span class="o">=</span><span class="s1">&#39;ffmpeg -f pulse -i default -ac 1 -ar 16000 -c:a libopus -y&#39;</span>
<span class="k">if</span><span class="w"> </span><span class="nb">command</span><span class="w"> </span>-v<span class="w"> </span>colordiff<span class="w"> </span>&gt;<span class="w"> </span>/dev/null<span class="p">;</span><span class="k">then</span><span class="w"> </span><span class="nb">alias</span><span class="w"> </span><span class="nv">diff</span><span class="o">=</span><span class="s2">&quot;colordiff&quot;</span><span class="p">;</span><span class="k">fi</span>
<span class="c1"># aliases like this are relevant if you use multiple passwordstore stores, e.g.</span>
<span class="c1"># your common store is a department-wide one but you still need to store personal credentials</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">ppass</span><span class="o">=</span><span class="s1">&#39;PASSWORD_STORE_DIR=~/.password-store pass&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">ifs</span><span class="o">=</span><span class="s1">&#39;printf &quot;%q\\n&quot; &quot;$IFS &quot;&#39;</span>
<span class="c1"># ----- CHOO CHOO ----- #</span>
<span class="k">if</span><span class="w"> </span><span class="nb">command</span><span class="w"> </span>-v<span class="w"> </span>sl<span class="w"> </span>&gt;/dev/null<span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">sl</span><span class="o">=</span><span class="s1">&#39;sl -e&#39;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">LS</span><span class="o">=</span><span class="s1">&#39;LS -e&#39;</span>
<span class="k">fi</span>
<span class="c1"># ----- LIBVIRT ----- #</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">vl</span><span class="o">=</span><span class="s2">&quot;virsh list --all --title&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">vnl</span><span class="o">=</span><span class="s2">&quot;virsh net-list --all&quot;</span>
<span class="c1"># shellcheck disable=SC2154</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">vifl</span><span class="o">=</span><span class="s1">&#39;for i in $(virsh list --name --all);do echo $i;virsh domiflist $i;done&#39;</span>
<span class="c1"># shellcheck disable=SC2154</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">vifl</span><span class="o">=</span><span class="s1">&#39;for i in $(virsh list --name --all);do echo $i;virsh domiflist $i;done&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">v</span><span class="o">=</span><span class="s1">&#39;vnl;vl;vifl&#39;</span>
<span class="c1"># ----- BYOBU/TMUX ----- #</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">ba</span><span class="o">=</span><span class="s1">&#39;byobu has -t &quot;$BSNAME&quot; &gt;/dev/null 2&gt;&amp;1 &amp;&amp;byobu list-sessions&amp;&amp;sleep 1&amp;&amp;byobu attach-session -t &quot;$BSNAME&quot;||printf &quot;No session called %b!\\n&quot; &quot;$BSNAME&quot;&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">bl</span><span class="o">=</span><span class="s2">&quot;byobu list-sessions&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">bo</span><span class="o">=</span><span class="s2">&quot;byobu list-sessions \; list-windows&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">tc</span><span class="o">=</span><span class="s1">&#39;tmux save-buffer -|xclip -i&amp;&amp;echo &quot;tmux buffer copied&quot;&#39;</span>
<span class="c1"># ----- NETWORK ----- #</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">openports</span><span class="o">=</span><span class="s1">&#39;ss --all --numeric --processes --ipv4 --ipv6&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">myip4</span><span class="o">=</span><span class="s1">&#39;curl -k &quot;https://diagnostic.opendns.com/myip&quot;&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">myip6</span><span class="o">=</span><span class="s1">&#39;curl -6 &quot;https://icanhazip.com&quot;&#39;</span>
<span class="c1"># ----- MEDIA ----- #</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dvdb</span><span class="o">=</span><span class="s1">&#39;dvdbackup -i /dev/dvd1 -M&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dvdburn</span><span class="o">=</span><span class="s1">&#39;brasero&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dosbox</span><span class="o">=</span><span class="s1">&#39;export SDL_VIDEO_X11_DGAMOUSE=0;dosbox;unset SDL_VIDEO_X11_DGAMOUSE&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">mdf2iso</span><span class="o">=</span><span class="s2">&quot;iat&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">bin2iso</span><span class="o">=</span><span class="s2">&quot;iat&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">replaygain</span><span class="o">=</span><span class="s1">&#39;mp3gain -s i&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">jackdrc</span><span class="o">=</span><span class="s2">&quot;/usr/bin/jackd -T -u -dalsa -r48000 -p1024 -n2 -D -Chw:CODEC &amp;&gt;/dev/null &amp;&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">html2png</span><span class="o">=</span><span class="s2">&quot;cutycapt&quot;</span>
<span class="c1"># ----- WM ----- #</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">startgnome</span><span class="o">=</span><span class="s2">&quot;sxs gnome&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">startkde</span><span class="o">=</span><span class="s2">&quot;sxs kde&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">starte16</span><span class="o">=</span><span class="s2">&quot;sxs e16&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">startxmonad</span><span class="o">=</span><span class="s2">&quot;sxs xmonad&quot;</span>
<span class="c1"># ----- SSH ----- #</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">saa</span><span class="o">=</span><span class="s2">&quot;source ~/.ssh/sshenv;ssh-add &gt;/dev/null 2&gt;&amp;1;ssh-add -l&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">sshr</span><span class="o">=</span><span class="s1">&#39;ssh -o StrictHostKeyChecking=no&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">sshk</span><span class="o">=</span><span class="s1">&#39;ssh -o PasswordAuthentication=yes -o PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">sshg</span><span class="o">=</span><span class="s2">&quot;ssh-with-gpg&quot;</span>
<span class="k">function</span><span class="w"> </span>add-sshagent-init<span class="w"> </span><span class="o">{</span>
<span class="w">	</span><span class="k">for</span><span class="w"> </span>KEY<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">SSHKEYS</span><span class="p">[@]</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">;</span><span class="k">do</span>
<span class="w">		</span><span class="nv">FFPRINT</span><span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span>ssh-keygen<span class="w"> </span>-Esha256<span class="w"> </span>-lf<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$KEY</span><span class="s2">&quot;</span><span class="k">)</span><span class="s2">&quot;</span>
<span class="w">		</span><span class="k">if</span><span class="w"> </span>!<span class="w"> </span>ssh-add<span class="w"> </span>-l<span class="w"> </span><span class="m">2</span>&gt;/dev/null<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$FFPRINT</span><span class="s2">&quot;</span><span class="w"> </span>&gt;/dev/null<span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">			</span>ssh-add<span class="w"> </span>-q<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$KEY</span><span class="s2">&quot;</span>
<span class="w">		</span><span class="k">fi</span>
<span class="w">	</span><span class="k">done</span>
<span class="o">}</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">sshmaster</span><span class="o">=</span><span class="s1">&#39;ssh -O&#39;</span>
<span class="c1"># ----- FS ----- #</span>
xstat<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">	</span><span class="k">for</span><span class="w"> </span>target<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="p">@</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">;</span><span class="k">do</span>
<span class="w">		</span><span class="c1"># shellcheck disable=SC2012</span>
<span class="w">		</span><span class="nv">inode</span><span class="o">=</span><span class="k">$(</span>ls<span class="w"> </span>-di<span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">target</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">|</span>cut<span class="w"> </span>-d<span class="w"> </span><span class="s1">&#39; &#39;</span><span class="w"> </span>-f<span class="w"> </span><span class="m">1</span><span class="k">)</span>
<span class="w">		</span><span class="nv">fs</span><span class="o">=</span><span class="k">$(</span>df<span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">target</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">|</span>tail<span class="w"> </span>-n<span class="w"> </span><span class="m">1</span><span class="p">|</span>awk<span class="w"> </span><span class="s1">&#39;{print $1}&#39;</span><span class="k">)</span>
<span class="w">		</span><span class="nv">crtime</span><span class="o">=</span><span class="k">$(</span>sudo<span class="w"> </span>debugfs<span class="w"> </span>-R<span class="w"> </span><span class="s1">&#39;stat &lt;&#39;</span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">inode</span><span class="si">}</span><span class="s2">&quot;</span><span class="s1">&#39;&gt;&#39;</span><span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">fs</span><span class="si">}</span><span class="s2">&quot;</span><span class="w"> </span><span class="m">2</span>&gt;/dev/null<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-oP<span class="w"> </span><span class="s1">&#39;crtime.*--\s*\K.*&#39;</span><span class="k">)</span>
<span class="w">		</span><span class="nb">printf</span><span class="w"> </span><span class="s2">&quot;%s\t%s\n&quot;</span><span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">crtime</span><span class="si">}</span><span class="s2">&quot;</span><span class="w"> </span><span class="s2">&quot;</span><span class="si">${</span><span class="nv">target</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="w">	</span><span class="k">done</span>
<span class="o">}</span>
<span class="c1"># ----- PACKAGE MANAGERS ----- #</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-x<span class="w"> </span><span class="s2">&quot;/usr/bin/pikaur&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pkgclean</span><span class="o">=</span><span class="s2">&quot;pikaur --no-confirm -Sc&quot;</span>
<span class="k">elif</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-x<span class="w"> </span><span class="s2">&quot;/usr/bin/pacman&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pkgclean</span><span class="o">=</span><span class="s2">&quot;/usr/bin/sudo /usr/bin/pacman --no-confirm -Sc&quot;</span>
<span class="k">elif</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-x<span class="w"> </span><span class="s2">&quot;/usr/bin/apt&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pkgclean</span><span class="o">=</span><span class="s2">&quot;/usr/bin/sudo /usr/bin/apt clean&quot;</span>
<span class="k">elif</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-x<span class="w"> </span><span class="s2">&quot;/usr/bin/dnf&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pkgclean</span><span class="o">=</span><span class="s2">&quot;/usr/bin/sudo /usr/bin/dnf clean packages&quot;</span>
<span class="k">elif</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-x<span class="w"> </span><span class="s2">&quot;/usr/bin/zypper&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pkgclean</span><span class="o">=</span><span class="s2">&quot;/usr/bin/sudo /usr/bin/zypper clean&quot;</span>
<span class="k">fi</span>
<span class="c1"># ----- GRAFANA ----- #</span>
<span class="k">if</span><span class="w"> </span><span class="nb">command</span><span class="w"> </span>-v<span class="w"> </span>grafana-cli<span class="w"> </span>&gt;/dev/null<span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">gfpi</span><span class="o">=</span><span class="s1">&#39;sudo grafana-cli plugins install&#39;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">gfpl</span><span class="o">=</span><span class="s1">&#39;sudo grafana-cli plugins list&#39;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">gfplr</span><span class="o">=</span><span class="s1">&#39;sudo grafana-cli plugins list-remote&#39;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">gfrs</span><span class="o">=</span><span class="s2">&quot;sudo systemctl restart grafana-server.service;systemctl is-active grafana-server.service;sudo ss -pantl|grep :3000&quot;</span>
<span class="k">fi</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">gfs</span><span class="o">=</span><span class="s2">&quot;systemctl is-active grafana-server.service&amp;&amp;sudo ss -pantl|grep :3000&quot;</span>
<span class="c1"># ----- ZE PASSWORDS ----- #</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-r<span class="w"> </span><span class="s2">&quot;/etc/os-release&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nv">osid</span><span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span>grep<span class="w"> </span>^ID<span class="w"> </span>/etc/os-release<span class="p">|</span>awk<span class="w"> </span>-F<span class="o">=</span><span class="w"> </span><span class="s1">&#39;{print $2}&#39;</span><span class="p">|</span>tail<span class="w"> </span>-n1<span class="k">)</span><span class="s2">&quot;</span>
<span class="w">	</span><span class="k">case</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$osid</span><span class="s2">&quot;</span><span class="w"> </span><span class="k">in</span>
<span class="w">		</span>fedora<span class="p">|</span>centos<span class="p">|</span>rhel*<span class="o">)</span>
<span class="w">			</span><span class="nb">alias</span><span class="w"> </span><span class="nv">mkpsk</span><span class="o">=</span><span class="s2">&quot;makepasswd -c &#39;1234567890abcdef&#39; -l 64&quot;</span>
<span class="w">			</span><span class="nb">alias</span><span class="w"> </span><span class="nv">mkpw</span><span class="o">=</span><span class="s2">&quot;makepasswd -c &#39;qwertzuiopasdfghjkyxcvbnmQWERTZUPASDFGHJKLYXCVBNM23456789#!_&#39; -l 24&quot;</span>
<span class="w">		</span><span class="p">;;</span>
<span class="w">		</span>*suse*<span class="o">)</span>
<span class="w">			</span><span class="nb">alias</span><span class="w"> </span><span class="nv">mkpsk</span><span class="o">=</span><span class="s2">&quot;mimimi :(&quot;</span>
<span class="w">			</span><span class="nb">alias</span><span class="w"> </span><span class="nv">mkpw</span><span class="o">=</span><span class="s2">&quot;mimimi :(&quot;</span>
<span class="w">		</span><span class="p">;;</span>
<span class="w">		</span>*<span class="o">)</span>
<span class="w">			</span><span class="nb">alias</span><span class="w"> </span><span class="nv">mkpsk</span><span class="o">=</span><span class="s2">&quot;makepasswd --string=&#39;1234567890abcdef&#39; --chars=&#39;64&#39;&quot;</span>
<span class="w">			</span><span class="nb">alias</span><span class="w"> </span><span class="nv">mkpw</span><span class="o">=</span><span class="s2">&quot;makepasswd --string=&#39;qwertzuiopasdfghjkyxcvbnmQWERTZUPASDFGHJKLYXCVBNM23456789#!_&#39; --chars=&#39;24&#39;&quot;</span>
<span class="w">		</span><span class="p">;;</span>
<span class="w">	</span><span class="k">esac</span>
<span class="w">	</span><span class="nb">unset</span><span class="w"> </span>osid
<span class="k">fi</span>
<span class="c1"># ----- GPG -----#</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">gpg</span><span class="o">=</span><span class="s1">&#39;gpg --expert&#39;</span>
gpg-expmaster<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">	</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="m">0</span>
<span class="w">	</span><span class="nv">HELPTXT</span><span class="o">=</span><span class="s2">&quot;Exports all secrets to master file\nUSAGE:\t</span><span class="si">${</span><span class="nv">FUNCNAME</span><span class="p">[0]</span><span class="si">}</span><span class="s2"> outputfile key-id&quot;</span>
<span class="w">	</span><span class="o">[</span><span class="w"> </span>-z<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]&amp;&amp;</span><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$HELPTXT</span><span class="s2">&quot;</span><span class="o">&amp;&amp;</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="k">$((</span>FRETVAL+1<span class="k">))</span><span class="o">||</span><span class="se">\</span>
<span class="w">	</span><span class="o">[</span><span class="w"> </span>-z<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$2</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]&amp;&amp;</span><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$HELPTXT</span><span class="s2">&quot;</span><span class="o">&amp;&amp;</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="k">$((</span>FRETVAL+1<span class="k">))</span><span class="o">||</span><span class="se">\</span>
<span class="w">	</span>gpg2<span class="w"> </span>--armour<span class="w"> </span>--output<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span><span class="w"> </span>--export-secret-key<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$2</span><span class="s2">&quot;</span><span class="o">||</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="k">$((</span>FRETVAL+1<span class="k">))</span>
<span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$FRETVAL</span><span class="s2">&quot;</span>
<span class="o">}</span>
gpg-exppaper<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">	</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="m">0</span>
<span class="w">	</span><span class="nv">HELPTXT</span><span class="o">=</span><span class="s2">&quot;Exports all secrets to paper\nUSAGE:\t</span><span class="si">${</span><span class="nv">FUNCNAME</span><span class="p">[0]</span><span class="si">}</span><span class="s2"> key-id&quot;</span>
<span class="w">	</span><span class="o">[</span><span class="w"> </span>-z<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]&amp;&amp;</span><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$HELPTXT</span><span class="s2">&quot;</span><span class="o">&amp;&amp;</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="k">$((</span>FRETVAL+1<span class="k">))</span><span class="o">||</span><span class="se">\</span>
<span class="w">	</span>gpg2<span class="w"> </span>--export-secret-key<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span><span class="p">|</span>paperkey<span class="p">|</span>lpr<span class="o">||</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="k">$((</span>FRETVAL+1<span class="k">))</span>
<span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$FRETVAL</span><span class="s2">&quot;</span>
<span class="o">}</span>
gpg-removekey<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">	</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="m">0</span>
<span class="w">	</span><span class="nv">HELPTXT</span><span class="o">=</span><span class="s2">&quot;Removes a key ID from keystore\nUSAGE:\t</span><span class="si">${</span><span class="nv">FUNCNAME</span><span class="p">[0]</span><span class="si">}</span><span class="s2"> key-id&quot;</span>
<span class="w">	</span><span class="o">[</span><span class="w"> </span>-z<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]&amp;&amp;</span><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$HELPTXT</span><span class="s2">&quot;</span><span class="o">&amp;&amp;</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="k">$((</span>FRETVAL+1<span class="k">))</span><span class="o">||</span><span class="se">\</span>
<span class="w">	</span>gpg-connect-agent<span class="w"> </span><span class="s2">&quot;DELETE_KEY </span><span class="nv">$1</span><span class="s2">&quot;</span><span class="w"> </span>/bye<span class="o">||</span><span class="nv">FRETVAL</span><span class="o">=</span><span class="k">$((</span>FRETVAL+1<span class="k">))</span>
<span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$FRETVAL</span><span class="s2">&quot;</span>
<span class="o">}</span>
<span class="c1"># ----- CERTIFICATES ----- #</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">certmgr</span><span class="o">=</span><span class="s1">&#39;certutil -d sql:${HOME:?}/.pki/nssdb&#39;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">certlist</span><span class="o">=</span><span class="s2">&quot;certmgr -L&quot;</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">certshow</span><span class="o">=</span><span class="s2">&quot;certmgr -L -n&quot;</span>
<span class="c1"># ----- APPLICATION CONTROL ----- #</span>
<span class="nb">alias</span><span class="w"> </span>browser-set<span class="o">=</span><span class="s1">&#39;xdg-settings set default-web-browser&#39;</span>
<span class="nb">alias</span><span class="w"> </span>browser-get<span class="o">=</span><span class="s1">&#39;xdg-settings get default-web-browser&#39;</span>
<span class="c1"># ----- CONTAINERS ----- #</span>
<span class="k">if</span><span class="w"> </span><span class="nb">command</span><span class="w"> </span>-v<span class="w"> </span>podman<span class="w"> </span>&gt;/dev/null<span class="p">;</span><span class="k">then</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pcl</span><span class="o">=</span><span class="s2">&quot;podman container list&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pclj</span><span class="o">=</span><span class="s2">&quot;podman container list --format json&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pnl</span><span class="o">=</span><span class="s2">&quot;podman network ls&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">ppl</span><span class="o">=</span><span class="s2">&quot;podman pod list&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pplj</span><span class="o">=</span><span class="s2">&quot;podman pod list --format json&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pvl</span><span class="o">=</span><span class="s2">&quot;podman volume list&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pvlj</span><span class="o">=</span><span class="s2">&quot;podman volume list --format json&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pci</span><span class="o">=</span><span class="s2">&quot;podman container inspect&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pni</span><span class="o">=</span><span class="s2">&quot;podman network inspect&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">ppi</span><span class="o">=</span><span class="s2">&quot;podman pod inspect&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pvi</span><span class="o">=</span><span class="s2">&quot;podman volume inspect&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pcr</span><span class="o">=</span><span class="s2">&quot;podman container rm&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pnr</span><span class="o">=</span><span class="s2">&quot;podman network rm&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">ppr</span><span class="o">=</span><span class="s2">&quot;podman pod rm&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pvr</span><span class="o">=</span><span class="s2">&quot;podman volume rm&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pcs</span><span class="o">=</span><span class="s2">&quot;podman container start&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pnc</span><span class="o">=</span><span class="s2">&quot;podman network connect&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pps</span><span class="o">=</span><span class="s2">&quot;podman pod start&quot;</span>
<span class="w">	</span><span class="c1"># d=destroy, kvm&#39;s term for &quot;stop vigorously&quot; :-)</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pcd</span><span class="o">=</span><span class="s2">&quot;podman container stop&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">pnd</span><span class="o">=</span><span class="s2">&quot;podman network disconnect&quot;</span>
<span class="w">	</span><span class="nb">alias</span><span class="w"> </span><span class="nv">ppd</span><span class="o">=</span><span class="s2">&quot;podman pod stop&quot;</span>
<span class="k">fi</span>
</pre></div>
</code></pre></td></tr></table>
</div> <!-- class=content -->
<!--/div>
<footer class="footer">
	<p-->
	<div class="footer">
		&copy; 2014-2019 lirion.de &ndash; served by <a href="https://git.zx2c4.com/cgit/about/">cgit</a> &ndash; All Rights Reverse Engineered
	</div>
	<!--/p>
</footer>
<div-->
</div> <!-- id=cgit -->
</body>
</html>
