this post was submitted on 23 Jul 2024
140 points (97.9% liked)

Linux

47969 readers
1016 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 3 months ago (3 children)

is there a way to save commands from history? i tried to figure this out when i was starting to use linux regularly, to help learn commands and to make a reference for myself as to what the commands do. i'm familiar with things like man, info, tldr and others but i wanted to put things in my own words since i remember better that way.

what i'm wanting but can't seem to automate: -save commands from bash history to a file with only the command and arguments used, no line numbers or time stamps. -filenames can be kept, but if filenames are removable easily, that would be better. -file saved in should have the list sorted with any duplicates removed and happen after any terminal session ends. -i've read about changing the prompt but not done it correctly and not sure if possible or the safest way. -i've tried using .bash_logout but it doesn't seem to do anything and i'm not sure why.

this isn't too important anymore, as i've grown more comfortable with linux and bash but it bugs me that i never got it to work. i can copy and paste more detailed notes of what i tried but i'd need to redact a bunch of cursing and frustrated whining.

[–] [email protected] 2 points 3 months ago* (last edited 3 months ago) (2 children)

You mean sth like cat <(history | cut -c 8-) history.txt | sort | uniq > history.txt? Not sure if it possible to remove the file names.

It should probably work to put it in .bash_logout.

[–] [email protected] 2 points 3 months ago (1 children)

yeah that looks exactly like what i wanted, thanks! i probably should have asked my question a couple years ago but i was still very new to linux and didn't quite know the lingo. i'm still not quite sure how < works in general but i get the pipe and other redirects at least.

putting it in .bash_logout doesn't always work. something involving login shells i don't quite understand yet but i'll read more about it. i saw mention of putting exit_session() { . "$HOME/.bash_logout" } trap exit_session SIGHUP in .bashrc to make it always work but i also don't understand trap yet either so i'll look into that too.

thanks again, your reply helped point me in the right direction of things i want to learn!

[–] [email protected] 1 points 3 months ago* (last edited 3 months ago)

when calling cat <(echo data from the stdin stream) from_file.txt, you get the data in the first argument from a stream. With the .bash_logout I do not have much experience yet.