• 0 Posts
  • 22 Comments
Joined 2 years ago
cake
Cake day: June 29th, 2024

help-circle

  • I switched to zsh at a time where completion for commands parameters except file paths in bash wasn’t really a thing, you could add some with a script, but they didn’t work well. I’m sure the situation has improved by now, but someone told me recently, there are still no descriptions for the completions. I find it very helpful and it saves me opening a man page a lot of times. For example, typing grep -<Tab> gives me this: 8167

    And now I’m so used to many little features (mostly around the syntax) that wouldn’t be a reason to switch on their own, that I find bash cumbersome to use.



  • I’m not sure if supports encryption though, which is probably where a dedicated server would be useful.

    Well, ideally you encrypt your data before transferring, so the provider never sees your data. I’m using a storagebox to backup btrfs incremental snapshots (using btrbk) and just AES encrypt them locally before sending them over, so I don’t care if the storagebox itself is encrypted.




  • I used fzf before atuin, and it works pretty similar, but atuin has a few additional features, as it tracks more information than the normal shell history. For example, you can also search only for commands that you executed in the current directory (great for stuff that is project specific). Or, if you use the history syncing feature, you can toggle search for commands you executed on either any or only the current machine.




  • The only thing I still use Postman for at work is when running API performance benchmarks, as I wasn’t yet motivated enough to write a curl wrapper to do such tests and plot the results. Especially when doing things like ramp up etc. it becomes more than a simple for-loop.

    Can someone recommend an existing command line tool for that?




  • Do most packages usually have a manual entry ?

    Usually there are manual pages for commands, for libraries and drivers like libwacom it is less common, and they are not necessarily the same as the package name. Some packages also just have a Readme file or an HTML manual installed under /usr/share/doc or similar.

    When unsure, I often just check the list of files that belong to a package, most package managers can do it. E.g. on Debian-based (i.e. apt using) distros, dpkg -L $packagename will list it, in arch based distros it is pacman -Ql $packagename.



  • My theory for why it created copies: The files you listed look like they are all subdirectories from /dev, which is (usually) a separate filesystem. When you try to move a file or directory across filesystems, the OS can’t just change the link, it has to actually copy the files and then remove the original. As a directory is a set of links to files, and the copies are different files, directories are just newly created with the same name in the new location instead of copying the directory filesystem entry. It looks like mv creates these target directories, before it checks if it actually has permission to remove the source, but checks file permissions, before it copies them



  • Regarding snapshots, I use a setup, where at the root of the btrfs partition I have the subvolumes “rootfs”, “home”, and a directory “snapshots”. I can boot into a snapshot by changing the mount options for the rootfs in the kernel command line, e.g.setting subvol=snapshots/rootfs-yyyy-mm-dd.

    The only difference between a snapshot and a regular subvolume is that snapshots are readonly by default, you can keep a writable copy of a snapshot beside it for recovery purposes, if you need it. As long as nothing is written in it, it shouldn’t use any significant extra space.