mirror of
https://github.com/ddworken/hishtory.git
synced 2025-04-17 14:08:32 +02:00
update FAQ + usage + longer lines
This commit is contained in:
parent
e0199f830f
commit
10eac23f7c
@ -16,6 +16,6 @@ repos:
|
||||
pass_filenames: false
|
||||
- id: html-tidy
|
||||
name: html-tidy
|
||||
entry: tidy -quiet -modify -indent web/landing/www/index.html
|
||||
entry: tidy -quiet -modify -indent -wrap 140 web/landing/www/index.html
|
||||
language: system
|
||||
pass_filenames: false
|
||||
|
@ -1,18 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="generator" content=
|
||||
"HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content=
|
||||
"width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<title>Hishtory: Better Shell History</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<title>Hishtory: Better Shell History</title><!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
|
||||
<script async src=
|
||||
"https://www.googletagmanager.com/gtag/js?id=UA-144207374-1"></script>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-144207374-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
@ -22,23 +18,14 @@
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-144207374-1');
|
||||
</script><!-- Font Awesome Icons -->
|
||||
<link href="vendor/fontawesome-free/css/all.min.css" rel=
|
||||
"stylesheet" type="text/css"><!-- Google Fonts -->
|
||||
<link href=
|
||||
"https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700"
|
||||
rel="stylesheet">
|
||||
<link href=
|
||||
'https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic'
|
||||
rel='stylesheet' type='text/css'><!-- Plugin CSS -->
|
||||
<link href="vendor/magnific-popup/magnific-popup.css" rel=
|
||||
"stylesheet"><!-- Theme CSS - Includes Bootstrap -->
|
||||
<link href="css/creative.min.css" rel="stylesheet">
|
||||
<!-- Highlight JS -->
|
||||
<link rel="stylesheet" href=
|
||||
"//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/styles/default.min.css">
|
||||
|
||||
<script src=
|
||||
"//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/highlight.min.js"></script>
|
||||
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css"><!-- Google Fonts -->
|
||||
<link href="https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700" rel="stylesheet">
|
||||
<link href='https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic' rel='stylesheet' type=
|
||||
'text/css'><!-- Plugin CSS -->
|
||||
<link href="vendor/magnific-popup/magnific-popup.css" rel="stylesheet"><!-- Theme CSS - Includes Bootstrap -->
|
||||
<link href="css/creative.min.css" rel="stylesheet"><!-- Highlight JS -->
|
||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/styles/default.min.css">
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/highlight.min.js"></script>
|
||||
<style>
|
||||
li.install-nav-item>:not([active]) {
|
||||
background-color: #f7f7f9
|
||||
@ -47,24 +34,19 @@
|
||||
</head>
|
||||
<body id="page-top">
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light fixed-top py-3"
|
||||
id="mainNav">
|
||||
<nav class="navbar navbar-expand-lg navbar-light fixed-top py-3" id="mainNav">
|
||||
<div class="container">
|
||||
<a class="navbar-brand js-scroll-trigger" href=
|
||||
"#page-top">Hishtory</a>
|
||||
<a class="navbar-brand js-scroll-trigger" href="#page-top">Hishtory</a>
|
||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||
<ul class="navbar-nav ml-auto my-2 my-lg-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link js-scroll-trigger" href=
|
||||
"#about">About</a>
|
||||
<a class="nav-link js-scroll-trigger" href="#about">About</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link js-scroll-trigger" href=
|
||||
"#setup">Setup</a>
|
||||
<a class="nav-link js-scroll-trigger" href="#setup">Setup & Usage</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link js-scroll-trigger" href=
|
||||
"#faq">FAQ</a>
|
||||
<a class="nav-link js-scroll-trigger" href="#faq">FAQ</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -72,17 +54,14 @@
|
||||
</nav><!-- Masthead -->
|
||||
<header class="masthead">
|
||||
<div class="container h-100">
|
||||
<div class=
|
||||
"row h-100 align-items-center justify-content-center text-center">
|
||||
<div class="row h-100 align-items-center justify-content-center text-center">
|
||||
<div class="col-lg-12 align-self-end">
|
||||
<h2 class="text-white font-weight-bold">Your shell
|
||||
history: synced, queryable, and in context</h2>
|
||||
<h2 class="text-white font-weight-bold">Your shell history: synced, queryable, and in context</h2>
|
||||
<hr class="divider my-4">
|
||||
</div>
|
||||
<div class="col-lg-8 align-self-baseline">
|
||||
<script id="asciicast-xW0ddZdZm7Utv1iLATegM4Oe4" src=
|
||||
"https://asciinema.org/a/xW0ddZdZm7Utv1iLATegM4Oe4.js"
|
||||
async data-autoplay="true" data-loop="true"></script>
|
||||
<script id="asciicast-xW0ddZdZm7Utv1iLATegM4Oe4" src="https://asciinema.org/a/xW0ddZdZm7Utv1iLATegM4Oe4.js" async data-autoplay=
|
||||
"true" data-loop="true"></script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -91,21 +70,15 @@
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<h2 class="text-white mt-0">Bash scripting is powerful,
|
||||
keep track of how you use it</h2>
|
||||
<h2 class="text-white mt-0">Bash scripting is powerful, keep track of how you use it</h2>
|
||||
<hr class="divider light my-4">
|
||||
<p class="text-white-50 mb-4">Bash keeps a list of every
|
||||
command you run locally, but this list of commands is
|
||||
devoid of context (where did I run that command? what was
|
||||
the output of the command? how long did it take to run?)
|
||||
and it is easily corrupted (open two terminals at once?
|
||||
Say goodbye to your bash history!).<br>
|
||||
<p class="text-white-50 mb-4">Bash keeps a list of every command you run locally, but this list of commands is devoid of context
|
||||
(where did I run that command? what was the output of the command? how long did it take to run?) and it is easily corrupted (open
|
||||
two terminals at once? Say goodbye to your bash history!).<br>
|
||||
<br>
|
||||
Hishtory keeps track of the command you ran, how long it
|
||||
took to run, whether it succeeded or failed, where you
|
||||
ran it, and on what machine. It syncs this information
|
||||
across all your machines, so you can always find that
|
||||
useful bash pipeline you wrote a month ago.</p>
|
||||
Hishtory keeps track of the command you ran, how long it took to run, whether it succeeded or failed, where you ran it, and on
|
||||
what machine. It syncs this information across all your machines, so you can always find that useful bash pipeline you wrote a
|
||||
month ago.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -115,50 +88,43 @@
|
||||
<h2 class="text-center mt-0">Setup Process</h2>
|
||||
<hr class="divider my-4">
|
||||
<p class="text-black-50 mb-4"></p>
|
||||
<div style=
|
||||
"border: solid #f7f7f9; border-width: 2px;border-radius:10px;padding:2%">
|
||||
<ul class="nav nav-tabs nav-pills nav-justified" id="myTab"
|
||||
role="tablist" style=
|
||||
"/*border: solid #f7f7f9; border-width: 2px;*/">
|
||||
<div style="border: solid #f7f7f9; border-width: 2px;border-radius:10px;padding:2%">
|
||||
<ul class="nav nav-tabs nav-pills nav-justified" id="myTab" role="tablist" style="/*border: solid #f7f7f9; border-width: 2px;*/">
|
||||
<li class="nav-item install-nav-item">
|
||||
<a class="nav-link active" id="install-first-tab"
|
||||
data-toggle="tab" href="#install-first" role="tab"
|
||||
style="margin: 10px">First Installation</a>
|
||||
<a class="nav-link active" id="install-first-tab" data-toggle="tab" href="#install-first" role="tab" style="margin: 10px">First
|
||||
Installation</a>
|
||||
</li>
|
||||
<li class="nav-item install-nav-item">
|
||||
<a class="nav-link" id="install-second-tab"
|
||||
data-toggle="tab" href="#install-second" role="tab"
|
||||
style="margin: 10px">Installation on additional
|
||||
computers</a>
|
||||
<a class="nav-link" id="install-second-tab" data-toggle="tab" href="#install-second" role="tab" style=
|
||||
"margin: 10px">Installation on additional computers</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="install-first" role=
|
||||
"tabpanel" aria-labelledby="home-tab">
|
||||
<div class="tab-pane active" id="install-first" role="tabpanel" aria-labelledby="home-tab">
|
||||
<br>
|
||||
To install hishtory on your first machine:<br>
|
||||
<code>curl -o
|
||||
hishtory https://hishtory.dev/binaries/hishtory-linux;
|
||||
chmod +x hishtory; ./hishtory install</code>
|
||||
<code>curl -o hishtory https://hishtory.dev/binaries/hishtory-linux; chmod +x hishtory;
|
||||
./hishtory install</code>
|
||||
</div>
|
||||
<div class="tab-pane" id="install-second" role="tabpanel"
|
||||
aria-labelledby="profile-tab">
|
||||
<div class="tab-pane" id="install-second" role="tabpanel" aria-labelledby="profile-tab">
|
||||
<br>
|
||||
To install hishtory on your second machine, you must
|
||||
first retrieve your secret key from first first
|
||||
machine. To do so, run <code>hishtory status</code> and
|
||||
copy your "Secret Key". Then to install it on your
|
||||
second machine:<br>
|
||||
<code>curl -o
|
||||
hishtory https://hishtory.dev/binaries/hishtory-linux;
|
||||
chmod +x hishtory; ./hishtory install
|
||||
$YOUR_HISHTORY_SECRET</code>
|
||||
To install hishtory on your second machine, you must first retrieve your secret key from first first machine. To do so, run
|
||||
<code>hishtory status</code> and copy your "Secret Key". Then to install it on your second machine:<br>
|
||||
<code>curl -o hishtory https://hishtory.dev/binaries/hishtory-linux; chmod +x hishtory;
|
||||
./hishtory install $YOUR_HISHTORY_SECRET</code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><br>
|
||||
<h2 class="text-center mt-0">Usage</h2>
|
||||
<ul>
|
||||
<li>To query your hishtory: <code>hishtory query foo</code></li>
|
||||
<li>To dump all hishtory entries to stdout: <code>hishtory export</code></li>
|
||||
<li>To temporarily turn on/off hishtory recording: <code>hishtory disable</code> / <code>hishtory enable</code></li>
|
||||
<li>To update to the latest version: <code>hishtory update</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<section class="page-section" id="faq">
|
||||
<section class="page-section bg-primary" id="faq">
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
@ -167,120 +133,73 @@
|
||||
<div class="accordion" id="accordionExample">
|
||||
<div class="card">
|
||||
<div class="card-header" id="headingZero">
|
||||
<h2 class="mb-0"><button class="btn btn-link" type=
|
||||
"button" data-toggle="collapse" data-target=
|
||||
"#collapseZero" aria-expanded="true" aria-controls=
|
||||
"collapseZero">How does this work?</button></h2>
|
||||
<h2 class="mb-0"><button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseZero"
|
||||
aria-expanded="true" aria-controls="collapseZero">How does this work?</button></h2>
|
||||
</div>
|
||||
<div id="collapseZero" class="collapse show"
|
||||
aria-labelledby="headingZero" data-parent=
|
||||
"#accordionExample">
|
||||
<div id="collapseZero" class="collapse show" aria-labelledby="headingZero" data-parent="#accordionExample">
|
||||
<div class="card-body">
|
||||
Hishtory hooks into your shell to record
|
||||
everything you could want to know about your
|
||||
shell history. It supports two modes:
|
||||
<ol>
|
||||
<li>Offline mode: It persists all this data in
|
||||
a local SQLite database</li>
|
||||
<li>Online mode: Only if you opt-in, it syncs
|
||||
this data between all your machines so your
|
||||
history is immediately queryable from every one
|
||||
of your machines</li>
|
||||
</ol>
|
||||
Hishtory hooks into your shell to record everything you could want to know about your shell history. It saves this data
|
||||
in a local sqlite DB, and then syncs an encrypted copy of this DB with all your other computers.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header" id="headingOne">
|
||||
<h2 class="mb-0"><button class=
|
||||
"btn btn-link collapsed" type="button" data-toggle=
|
||||
"collapse" data-target="#collapseOne"
|
||||
aria-expanded="false" aria-controls=
|
||||
"collapseOne">Is this secure?</button></h2>
|
||||
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseOne"
|
||||
aria-expanded="false" aria-controls="collapseOne">Is this secure?</button></h2>
|
||||
</div>
|
||||
<div id="collapseOne" class="collapse"
|
||||
aria-labelledby="headingOne" data-parent=
|
||||
"#accordionExample">
|
||||
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
|
||||
<div class="card-body">
|
||||
This is up to you to judge, but in my opinion:
|
||||
Yes! All data is end-to-end encrypted with a key
|
||||
that never leaves your computer(s). The code is
|
||||
OSS, so you can verify this, and the pre-built
|
||||
binaries are reproducibly built with the commit
|
||||
This is up to you to judge, but in my opinion: Yes! All data is end-to-end encrypted with a key that never leaves your
|
||||
computer(s). The code is OSS, so you can verify this, and the pre-built binaries are reproducibly built with the commit
|
||||
hash embedded in them for easy verification.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header" id="headingTwo">
|
||||
<h2 class="mb-0"><button class=
|
||||
"btn btn-link collapsed" type="button" data-toggle=
|
||||
"collapse" data-target="#collapseTwo"
|
||||
aria-expanded="false" aria-controls=
|
||||
"collapseTwo">What about
|
||||
`.bash_history`?</button></h2>
|
||||
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo"
|
||||
aria-expanded="false" aria-controls="collapseTwo">What about `.bash_history`?</button></h2>
|
||||
</div>
|
||||
<div id="collapseTwo" class="collapse"
|
||||
aria-labelledby="headingTwo" data-parent=
|
||||
"#accordionExample">
|
||||
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
|
||||
<div class="card-body">
|
||||
If it works for you, great! But I find I
|
||||
constantly get annoyed with `.bash_history`
|
||||
either because I lose context (which directory do
|
||||
I need to run that command from?) or because I
|
||||
full on lose the file (it tends to get corrupted
|
||||
if you open multiple terminals at the same time).
|
||||
If it works for you, great! But I find I constantly get annoyed with `.bash_history` either because I lose context (which
|
||||
directory do I need to run that command from?) or because I full on lose the file (it tends to get corrupted if you open
|
||||
multiple terminals at the same time).
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header" id="headingThree">
|
||||
<h2 class="mb-0"><button class=
|
||||
"btn btn-link collapsed" type="button" data-toggle=
|
||||
"collapse" data-target="#collapseThree"
|
||||
aria-expanded="false" aria-controls=
|
||||
"collapseThree">Is this free?</button></h2>
|
||||
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseThree"
|
||||
aria-expanded="false" aria-controls="collapseThree">Is this free?</button></h2>
|
||||
</div>
|
||||
<div id="collapseThree" class="collapse"
|
||||
aria-labelledby="headingThree" data-parent=
|
||||
"#accordionExample">
|
||||
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
|
||||
<div class="card-body">
|
||||
Yes! This is just a hobby project for me that I
|
||||
use, and I hope other people get some use out of.
|
||||
Yes! This is just a hobby project for me that I use, and I hope other people get some use out of.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header" id="headingFour">
|
||||
<h2 class="mb-0"><button class=
|
||||
"btn btn-link collapsed" type="button" data-toggle=
|
||||
"collapse" data-target="#collapseFour"
|
||||
aria-expanded="false" aria-controls=
|
||||
"collapseFour">Who made this?</button></h2>
|
||||
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseFour"
|
||||
aria-expanded="false" aria-controls="collapseFour">Who made this?</button></h2>
|
||||
</div>
|
||||
<div id="collapseFour" class="collapse"
|
||||
aria-labelledby="headingFour" data-parent=
|
||||
"#accordionExample">
|
||||
<div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordionExample">
|
||||
<div class="card-body">
|
||||
Made with ❤️ by <a href=
|
||||
"https://daviddworken.com">David Dworken</a>. I'm
|
||||
a Security Engineer who also enjoys creating
|
||||
software. I built this to solve a problem for
|
||||
myself, and wanted to share it with others who
|
||||
may find it useful.
|
||||
Made with ❤️ by <a href="https://daviddworken.com">David Dworken</a>. I'm a Security Engineer who also enjoys creating
|
||||
software. I built this to solve a problem for myself, and wanted to share it with others who may find it useful.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="divider my-4">
|
||||
<p class="text-muted mb-5">Feedback, thoughts, ideas, or
|
||||
other questions? Let me know!</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-4 text-center">
|
||||
<a class="d-block" href=
|
||||
"mailto:david@daviddworken.com">david@daviddworken.com</a>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<p class="mb-3">Feedback, thoughts, ideas, or other questions? Let me know!</p><a class="text-white-50 d-block" href=
|
||||
"mailto:david@daviddworken.com">david@daviddworken.com</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -293,15 +212,10 @@
|
||||
</div>
|
||||
</footer><!-- Bootstrap core JavaScript -->
|
||||
<script src="vendor/jquery/jquery.min.js"></script>
|
||||
<script src=
|
||||
"vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<!-- Plugin JavaScript -->
|
||||
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script> <!-- Plugin JavaScript -->
|
||||
|
||||
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
|
||||
|
||||
<script src=
|
||||
"vendor/magnific-popup/jquery.magnific-popup.min.js"></script>
|
||||
<!-- Custom scripts for this template -->
|
||||
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
|
||||
<script src="vendor/magnific-popup/jquery.magnific-popup.min.js"></script> <!-- Custom scripts for this template -->
|
||||
|
||||
<script src="js/creative.min.js"></script>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user