aboutsummaryrefslogtreecommitdiffhomepage
path: root/print.html
diff options
context:
space:
mode:
authorjohannst <johannst@users.noreply.github.com>2020-12-18 23:42:29 +0000
committerjohannst <johannst@users.noreply.github.com>2020-12-18 23:42:29 +0000
commitf6fa901a0906fc6ba8c6d851060d646c3049f8ea (patch)
treeb5b0e411196c14d74a6943c6fb04c25664352555 /print.html
parente3fd207e72ba389be33b65e56e0e3a06162773dc (diff)
downloadnotes-f6fa901a0906fc6ba8c6d851060d646c3049f8ea.tar.gz
notes-f6fa901a0906fc6ba8c6d851060d646c3049f8ea.zip
deploy: b7f4aee7a60b03db06475f2a017706494d9a2d44
Diffstat (limited to 'print.html')
-rw-r--r--print.html105
1 files changed, 104 insertions, 1 deletions
diff --git a/print.html b/print.html
index 7b8e3ac..d3416cd 100644
--- a/print.html
+++ b/print.html
@@ -83,7 +83,7 @@
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div id="sidebar-scrollbox" class="sidebar-scrollbox">
- <ol class="chapter"><li class="expanded "><a href="tools/index.html"><strong aria-hidden="true">1.</strong> Tools</a></li><li><ol class="section"><li class="expanded "><a href="tools/zsh.html"><strong aria-hidden="true">1.1.</strong> zsh</a></li><li class="expanded "><a href="tools/bash.html"><strong aria-hidden="true">1.2.</strong> bash</a></li><li class="expanded "><a href="tools/fish.html"><strong aria-hidden="true">1.3.</strong> fish</a></li><li class="expanded "><a href="tools/tmux.html"><strong aria-hidden="true">1.4.</strong> tmux</a></li><li class="expanded "><a href="tools/git.html"><strong aria-hidden="true">1.5.</strong> git</a></li><li class="expanded "><a href="tools/awk.html"><strong aria-hidden="true">1.6.</strong> awk</a></li><li class="expanded "><a href="tools/emacs.html"><strong aria-hidden="true">1.7.</strong> emacs</a></li><li class="expanded "><a href="tools/gdb.html"><strong aria-hidden="true">1.8.</strong> gdb</a></li><li class="expanded "><a href="tools/radare2.html"><strong aria-hidden="true">1.9.</strong> radare2</a></li></ol></li><li class="expanded "><a href="monitor/index.html"><strong aria-hidden="true">2.</strong> Resource analysis &amp; monitor</a></li><li><ol class="section"><li class="expanded "><a href="monitor/lsof.html"><strong aria-hidden="true">2.1.</strong> lsof</a></li><li class="expanded "><a href="monitor/pidstat.html"><strong aria-hidden="true">2.2.</strong> pidstat</a></li><li class="expanded "><a href="monitor/pgrep.html"><strong aria-hidden="true">2.3.</strong> pgrep</a></li><li class="expanded "><a href="monitor/pmap.html"><strong aria-hidden="true">2.4.</strong> pmap</a></li><li class="expanded "><a href="monitor/pstack.html"><strong aria-hidden="true">2.5.</strong> pstack</a></li></ol></li><li class="expanded "><a href="trace_profile/index.html"><strong aria-hidden="true">3.</strong> Trace and Profile</a></li><li><ol class="section"><li class="expanded "><a href="trace_profile/strace.html"><strong aria-hidden="true">3.1.</strong> strace</a></li><li class="expanded "><a href="trace_profile/ltrace.html"><strong aria-hidden="true">3.2.</strong> ltrace</a></li><li class="expanded "><a href="trace_profile/perf.html"><strong aria-hidden="true">3.3.</strong> perf</a></li><li class="expanded "><a href="trace_profile/oprofile.html"><strong aria-hidden="true">3.4.</strong> OProfile</a></li><li class="expanded "><a href="trace_profile/time.html"><strong aria-hidden="true">3.5.</strong> time</a></li></ol></li><li class="expanded "><a href="binary/index.html"><strong aria-hidden="true">4.</strong> Binary</a></li><li><ol class="section"><li class="expanded "><a href="binary/od.html"><strong aria-hidden="true">4.1.</strong> od</a></li><li class="expanded "><a href="binary/xxd.html"><strong aria-hidden="true">4.2.</strong> xxd</a></li><li class="expanded "><a href="binary/readelf.html"><strong aria-hidden="true">4.3.</strong> readelf</a></li><li class="expanded "><a href="binary/objdump.html"><strong aria-hidden="true">4.4.</strong> objdump</a></li><li class="expanded "><a href="binary/nm.html"><strong aria-hidden="true">4.5.</strong> nm</a></li></ol></li><li class="expanded "><a href="development/index.html"><strong aria-hidden="true">5.</strong> Development</a></li><li><ol class="section"><li class="expanded "><a href="development/c++filt.html"><strong aria-hidden="true">5.1.</strong> c++filt</a></li><li class="expanded "><a href="development/c++.html"><strong aria-hidden="true">5.2.</strong> c++</a></li><li class="expanded "><a href="development/glibc.html"><strong aria-hidden="true">5.3.</strong> glibc</a></li><li class="expanded "><a href="development/gcc.html"><strong aria-hidden="true">5.4.</strong> gcc</a></li><li class="expanded "><a href="development/make.html"><strong aria-hidden="true">5.5.</strong> make</a></li><li class="expanded "><a href="development/ld.so.html"><strong aria-hidden="true">5.6.</strong> ld.so</a></li></ol></li><li class="expanded "><a href="arch/index.html"><strong aria-hidden="true">6.</strong> Arch</a></li><li><ol class="section"><li class="expanded "><a href="arch/x86_64.html"><strong aria-hidden="true">6.1.</strong> x86_64</a></li><li class="expanded "><a href="arch/arm64.html"><strong aria-hidden="true">6.2.</strong> arm64</a></li></ol></li></ol>
+ <ol class="chapter"><li class="expanded "><a href="tools/index.html"><strong aria-hidden="true">1.</strong> Tools</a></li><li><ol class="section"><li class="expanded "><a href="tools/zsh.html"><strong aria-hidden="true">1.1.</strong> zsh</a></li><li class="expanded "><a href="tools/bash.html"><strong aria-hidden="true">1.2.</strong> bash</a></li><li class="expanded "><a href="tools/fish.html"><strong aria-hidden="true">1.3.</strong> fish</a></li><li class="expanded "><a href="tools/tmux.html"><strong aria-hidden="true">1.4.</strong> tmux</a></li><li class="expanded "><a href="tools/git.html"><strong aria-hidden="true">1.5.</strong> git</a></li><li class="expanded "><a href="tools/awk.html"><strong aria-hidden="true">1.6.</strong> awk</a></li><li class="expanded "><a href="tools/emacs.html"><strong aria-hidden="true">1.7.</strong> emacs</a></li><li class="expanded "><a href="tools/gpg.html"><strong aria-hidden="true">1.8.</strong> gpg</a></li><li class="expanded "><a href="tools/gdb.html"><strong aria-hidden="true">1.9.</strong> gdb</a></li><li class="expanded "><a href="tools/radare2.html"><strong aria-hidden="true">1.10.</strong> radare2</a></li></ol></li><li class="expanded "><a href="monitor/index.html"><strong aria-hidden="true">2.</strong> Resource analysis &amp; monitor</a></li><li><ol class="section"><li class="expanded "><a href="monitor/lsof.html"><strong aria-hidden="true">2.1.</strong> lsof</a></li><li class="expanded "><a href="monitor/pidstat.html"><strong aria-hidden="true">2.2.</strong> pidstat</a></li><li class="expanded "><a href="monitor/pgrep.html"><strong aria-hidden="true">2.3.</strong> pgrep</a></li><li class="expanded "><a href="monitor/pmap.html"><strong aria-hidden="true">2.4.</strong> pmap</a></li><li class="expanded "><a href="monitor/pstack.html"><strong aria-hidden="true">2.5.</strong> pstack</a></li></ol></li><li class="expanded "><a href="trace_profile/index.html"><strong aria-hidden="true">3.</strong> Trace and Profile</a></li><li><ol class="section"><li class="expanded "><a href="trace_profile/strace.html"><strong aria-hidden="true">3.1.</strong> strace</a></li><li class="expanded "><a href="trace_profile/ltrace.html"><strong aria-hidden="true">3.2.</strong> ltrace</a></li><li class="expanded "><a href="trace_profile/perf.html"><strong aria-hidden="true">3.3.</strong> perf</a></li><li class="expanded "><a href="trace_profile/oprofile.html"><strong aria-hidden="true">3.4.</strong> OProfile</a></li><li class="expanded "><a href="trace_profile/time.html"><strong aria-hidden="true">3.5.</strong> time</a></li></ol></li><li class="expanded "><a href="binary/index.html"><strong aria-hidden="true">4.</strong> Binary</a></li><li><ol class="section"><li class="expanded "><a href="binary/od.html"><strong aria-hidden="true">4.1.</strong> od</a></li><li class="expanded "><a href="binary/xxd.html"><strong aria-hidden="true">4.2.</strong> xxd</a></li><li class="expanded "><a href="binary/readelf.html"><strong aria-hidden="true">4.3.</strong> readelf</a></li><li class="expanded "><a href="binary/objdump.html"><strong aria-hidden="true">4.4.</strong> objdump</a></li><li class="expanded "><a href="binary/nm.html"><strong aria-hidden="true">4.5.</strong> nm</a></li></ol></li><li class="expanded "><a href="development/index.html"><strong aria-hidden="true">5.</strong> Development</a></li><li><ol class="section"><li class="expanded "><a href="development/c++filt.html"><strong aria-hidden="true">5.1.</strong> c++filt</a></li><li class="expanded "><a href="development/c++.html"><strong aria-hidden="true">5.2.</strong> c++</a></li><li class="expanded "><a href="development/glibc.html"><strong aria-hidden="true">5.3.</strong> glibc</a></li><li class="expanded "><a href="development/gcc.html"><strong aria-hidden="true">5.4.</strong> gcc</a></li><li class="expanded "><a href="development/make.html"><strong aria-hidden="true">5.5.</strong> make</a></li><li class="expanded "><a href="development/ld.so.html"><strong aria-hidden="true">5.6.</strong> ld.so</a></li></ol></li><li class="expanded "><a href="arch/index.html"><strong aria-hidden="true">6.</strong> Arch</a></li><li><ol class="section"><li class="expanded "><a href="arch/x86_64.html"><strong aria-hidden="true">6.1.</strong> x86_64</a></li><li class="expanded "><a href="arch/arm64.html"><strong aria-hidden="true">6.2.</strong> arm64</a></li></ol></li></ol>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
@@ -159,6 +159,7 @@
<li><a href="tools/./git.html">git</a></li>
<li><a href="tools/./awk.html">awk</a></li>
<li><a href="tools/./emacs.html">emacs</a></li>
+<li><a href="tools/./gpg.html">gpg</a></li>
<li><a href="tools/./gdb.html">gdb</a></li>
<li><a href="tools/./radare2.html">radare2</a></li>
</ul>
@@ -853,6 +854,7 @@ multiple times. Actions with those patterns are <strong>executed exactly once</s
<li><code>FS</code> <em>field separator</em>: regex to split records into fields, by default
<space></li>
<li><code>NR</code> <em>number record</em>: number of current record</li>
+<li><code>NF</code> <em>number fields</em>: number of fields in the current record</li>
</ul>
<h3><a class="header" href="#special-statements--functions" id="special-statements--functions">Special statements &amp; functions</a></h3>
<ul>
@@ -890,6 +892,10 @@ For floats one can use <code>%N.Mf</code>, <code>N</code> is the total number in
</code></pre>
<p>The pattern <code>NR%2 == 0</code> matches every second record and the action <code>{ print $0 }</code>
prints the whole record.</p>
+<h3><a class="header" href="#access-last-fields-in-records" id="access-last-fields-in-records">Access last fields in records</a></h3>
+<pre><code class="language-bash">echo 'a b c d e f' | awk '{ print $NF $(NF-1) }'
+</code></pre>
+<p>Access last fields with arithmetic on the <code>NR</code> number of fields variable.</p>
<h3><a class="header" href="#capture-in-variables" id="capture-in-variables">Capture in variables</a></h3>
<pre><code class="language-bash"># /proc/&lt;pid&gt;/status
# Name: cat
@@ -1122,6 +1128,103 @@ in the <code>user</code> variable and then print it.</p>
q quit
</code></pre>
+<h1><a class="header" href="#gpg1" id="gpg1">gpg(1)</a></h1>
+<pre><code>gpg
+ -o|--output Specify output file
+ -a|--armor Create ascii output
+ -u|--local-user &lt;name&gt; Specify key for signing
+ -r|--recipient Encrypt for user
+</code></pre>
+<h2><a class="header" href="#generate-new-keypair" id="generate-new-keypair">Generate new keypair</a></h2>
+<pre><code class="language-bash">gpg --full-generate-key
+</code></pre>
+<h2><a class="header" href="#list-keys" id="list-keys">List keys</a></h2>
+<pre><code>gpg -k / --list-key # public keys
+gpg -K / --list-secret-keys # secret keys
+</code></pre>
+<h2><a class="header" href="#edit-keys" id="edit-keys">Edit keys</a></h2>
+<pre><code class="language-bash">gpg --edit-key &lt;KEY ID&gt;
+</code></pre>
+<p>Gives prompt to modify <code>KEY ID</code>, common commands:</p>
+<pre><code class="language-bash">help show help
+save save &amp; quit
+
+list list keys and user IDs
+key &lt;N&gt; select subkey &lt;N&gt;
+uid &lt;N&gt; select user ID &lt;N&gt;
+
+expire change expiration of selected key
+
+adduid add user ID
+deluid delete selected user ID
+
+addkey add subkey
+delkey delete selected subkey
+</code></pre>
+<h2><a class="header" href="#export--import-keys" id="export--import-keys">Export &amp; Import Keys</a></h2>
+<pre><code class="language-bash">gpg --export --armor --output &lt;KEY.PUB&gt; &lt;KEY ID&gt;
+gpg --import &lt;FILE&gt;
+</code></pre>
+<h2><a class="header" href="#search--send-keys" id="search--send-keys">Search &amp; Send keys</a></h2>
+<pre><code class="language-bash">gpg --keyserver &lt;SERVER&gt; --send-keys &lt;KEY ID&gt;
+gpg --keyserver &lt;SERVER&gt; --search-keys &lt;KEY ID&gt;
+</code></pre>
+<h2><a class="header" href="#encrypt-passphrase" id="encrypt-passphrase">Encrypt (passphrase)</a></h2>
+<p>Encrypt file using <code>passphrase</code> and write encrypted data to <code>&lt;file&gt;.gpg</code>.</p>
+<pre><code class="language-bash">gpg --symmetric &lt;file&gt;
+
+# Decrypt using passphrase
+gpg -o &lt;file&gt; --decrypt &lt;file&gt;.gpg
+</code></pre>
+<h2><a class="header" href="#encrypt-public-key" id="encrypt-public-key">Encrypt (public key)</a></h2>
+<p>Encrypt file with <code>public key</code> of specified <code>recipient</code> and write encrypted
+data to <code>&lt;file&gt;.gpg</code>.</p>
+<pre><code class="language-bash">gpg --encrypt -r foo@bar.de &lt;file&gt;
+
+# Decrypt at foos side (private key required)
+gpg -o &lt;file&gt; --decrypt &lt;file&gt;.gpg
+</code></pre>
+<h2><a class="header" href="#signing" id="signing">Signing</a></h2>
+<p>Generate a signed file and write to <code>&lt;file&gt;.gpg</code>.</p>
+<pre><code class="language-bash">gpg --sign -u foor@bar.de &lt;file&gt;
+
+# Verify
+gpg --verify &lt;file&gt;
+
+# Extract content from signed file
+gpg -o &lt;file&gt; --decrypt &lt;file&gt;.gpg
+</code></pre>
+<blockquote>
+<p>Without <code>-u</code> use first private key in list <code>gpg -K</code> for signing.</p>
+</blockquote>
+<p>Files can also be <code>signed</code> and <code>encrypted</code> at once, gpg will first sign the
+file and then encrypt it.</p>
+<pre><code class="language-bash">gpg --sign --encrypt &lt;file&gt;
+</code></pre>
+<h2><a class="header" href="#signing-detached" id="signing-detached">Signing (detached)</a></h2>
+<p>Generate a <code>detached</code> signature and write to <code>&lt;file&gt;.asc</code>.
+Send <code>&lt;file&gt;.asc</code> along with <code>&lt;file&gt;</code> when distributing.</p>
+<pre><code class="language-bash">gpg --detach-sign --armor -u foor@bar.de &lt;file&gt;
+
+# Verify
+gpg --verify &lt;file&gt;.asc &lt;file&gt;
+</code></pre>
+<blockquote>
+<p>Without <code>-u</code> use first private key in list <code>gpg -K</code> for signing.</p>
+</blockquote>
+<h2><a class="header" href="#abbreviations" id="abbreviations">Abbreviations</a></h2>
+<ul>
+<li><code>sec</code> secret key</li>
+<li><code>ssb</code> secret subkey</li>
+<li><code>pub</code> public key</li>
+<li><code>sub</code> public subkey</li>
+</ul>
+<h2><a class="header" href="#keyservers" id="keyservers">Keyservers</a></h2>
+<ul>
+<li>http://pgp.mit.edu</li>
+<li>http://keyserver.ubuntu.com</li>
+<li>hkps://pgp.mailbox.org</li>
+</ul>
<h1><a class="header" href="#gdb1" id="gdb1">gdb(1)</a></h1>
<h1><a class="header" href="#cli" id="cli">CLI</a></h1>
<pre><code class="language-markdown"> gdb [opts] [prg [-c coredump | -p pid]]