# Bash reference file. To get help with usage info run: ```text $ help or $ h ``` ## Android. Command|Description ---|--- `emulator [NAME]`|Start an Android emulator. Default name is `main`. ## Archive. Command|Description ---|--- `archive [DIRS]`|Archive directories. All directories by default. Supports .archiveignore exclude file. `archive_mt [DIRS]`|Archive using multiple threads. Uses 75% of free RAM. All directories by default. Supports .archiveignore exclude file. `archive_fast [DIRS]`|Archive directories with fast compression. All directories by default. Supports .archiveignore exclude file. `archive_check [FILES]`|Check archives integrity. Checks all archives by default. `archive_prune [NAME] [VERSIONS]`|Delete old versions of an archive. All archives with 1 version by default. `archive_rm [FILES]`|Delete specified or all archive files. `archive_xz [FILES]`|Recompress previously created archive_fast with better compression. `archive_name [ARCHIVE] [NAME]`|Rename archives. If no name specified, it simplifies archive's name. If no archives specified, apply to all archives. `unarchive [FILES]`|Extract previously created archive with checksum validation. `archive_touch [FILES]`|Change archive's filesystem time to match creation date. ## Ask. Command|Description ---|--- `ask `|Ask general AI. `ask_code `|Ask code AI. ## Battery. Command|Description ---|--- `battery_charge`| Print current battery charge in percents. `battery_info`| Get battery's info. ## Bootstrap. Command|Description ---|--- `bootstrap_editorconfig`| Install Editorconfig file (with tabs) in current directory. `bootstrap_editorconfig_space [AMOUNT]`|Install Editorconfig file (with specified spaces, 8 by default) in current directory. `bootstrap_nixos [HOST]`|Install nixos to specified drive. To be run from Live ISO. ## Cd. Command|Description ---|--- `cdd `|CD (back to) directory. Goes to the exact-match dir first. If no exact match found, it finds first directory that contains the input (case-insensitive). ## Checksum. Command|Description ---|--- `checksum_create [FILES]`|Save file checksums. For file with a name `file` it will create a new file called `.file.sha1` with hash in it. All files by default. `checksum_check [FILES]`|Check stored values against actual files. All files by default. `checksum`| Calculate hashes for all files recursively and store in a file called `checksum.sha1`. ## Chmod. Command|Description ---|--- `x `|Add executable flag to file. ## Color. Command|Description ---|--- `color_test`| Print all available colors with their names colored in corresponding color. ## Container. Command|Description ---|--- `ca [NAME]`|Attach/create container box in current directory with specified name. By default uses current dir name. `ck [NAME]`|Remove container box with specified name. By default uses current dir name. `cka`| Remove all container boxes. `cl`| List all container boxes. ## Copypaste. Command|Description ---|--- `copy`| Copy stdin to system clipboard. *Example:* `echo hi \| copy`. `paste`| Paste system clipboard to stdout. *Example:* `paste > file.txt`. ## Cp. Command|Description ---|--- `rcp `|Replaces default cp with rsync. `rcp_merge `|Copy and also merge all changes (delete dst files that do not exist in src). `cp_link `|Copy by creating hardlinks. Works for directories, too. `rcp_test `|Print output of cp_merge without writing anything. ## Date. Command|Description ---|--- `today`| Print today date in yyyyMMdd format. `dow`| Current day of week number. ## Dconf. Command|Description ---|--- `dconf_load`| Load Gnome settings. `dconf_save [FILE]`|Dump Gnome settings into the file. Default name is `gnome.dconf`. Do this before changing settings and after, an then run `diff` to find out what to add to the main `gnome.dconf`. ## Disk. Command|Description ---|--- `pdf`| Show only physical drives info. `tdu [DIRS]`|Show total size in SI. Current dir by default. ## Distrobox. Command|Description ---|--- `da [BOX]`|Create/Attach to the box. Uses name `main` by default. ## Docker. Command|Description ---|--- `docker_volumes `|Show container's volumes. `docker_health`| Check if any container exited. `docker_ip `|Find out container's IP address. `docker_update`| Update all docker images. `dc`| Docker compose shortcut. `dcu [SERVICES]`|Docker compose up. `dcd [SERVICES]`|Docker compose down. `dcp [SERVICES]`|Docker compose pull. `dcl [SERVICES]`|Docker compose logs. `dcr [SERVICES]`|Docker compose restart. `dcs [SERVICES]`|Docker compose stop. `dcdu [SERVICES]`|Docker compose down & up specified services. `dcpu [SERVICES]`|Docker compose pull & up specified services. `dcul [SERVICES]`|Docker compose up & attach to logs for specified services. ## Doc. Command|Description ---|--- `doc_bash`|Generate a markdown file with all the help info. Outputs to `~/.doc/Bash.md`. ## Dvd. Command|Description ---|--- `dvd_burn_iso `|Burn specified iso file to DVD. `cd_burn_iso `|Burn specified iso file to CD. `cd_burn_audio `|Burn specified audio files to CD. `dvd_shell`| Spawn Nix shell with required tools. ## Ffmpeg. Command|Description ---|--- `ffmpeg_mux_audio `|Mux audio into containers. File names in sound and current dirrectories must match. `ffmpeg_mux_cover `|Mux cover into music file. `ffmpeg_music_meta `|Generate music metadata from directory structure. Top dir is the Artist name like this: `The_Beatles`. Next are albums like this: `2010_My_love`. Inside are songs like this: `01_sample.flac`. ## File. Command|Description ---|--- `o `|Open file/dir in GUI. `play [FILE]`|Play media file from CLI. All files by default. `play_shuffle [FILE]`|Play media files shuffled from CLI. All files by default. ## Find. Command|Description ---|--- `find_ext`| Find all file extensions. `find_module`| Find all modules. `find_function [MODULE]`|Find all module functions. Functions from all modules by default. ## Fix. Command|Description ---|--- `fix_ethernet_speed `|Fix when ethernet mistakenly detects 100 Mb instead of 1000 Mb. SPEED is one of 10/100/1000 etc. `fix_files_sftp`| Fix nautilus after typing wrong sftp password. `fix_gradle_lock`| Delete lost Gradle lock files. `fix_gnome_rdp `|Fix Gnome's broken RDP ffs. ## Git. Command|Description ---|--- `gps`| Git push. `gpsa`| Git push all (branches). Useful for pushing all stuff to a new remote. `gpsf`| Git force push. `gpl`| Git pull. `gl`| Git log. `gs`| Git status. `gst`| Git stash. `gd`| Git diff. `gc`| Git commit. `gch`| Git checkout. `gchb `|Git checkout branch. `gb`| Git branch. `gbd `|Git branch delete. `gbda`| Git branch delete all except current. `gf`| Git fetch all. `gt`| Git tag. `gi`| Git ignore files. `gpc `|Git patch create. `gp `|Git patch (apply). `ggc`| Run git garbage collection. `ga [FILES]`|Preview diff while adding. Adds current dir by default. `gr [COMMIT COUNT]`|Rebase by X commits or from root. When COUNT is 0 - rebase from root. Default is 2. `gu [EMAIL]`|Specify git user as Dmitry Voronin with provided email. `gg `|Get my git repo. `gdc [COMMITHASH]`|See diff for a specific commit. Last commit by default. `gv`| Get version number based on commit count. ## Group. Command|Description ---|--- `group_ext [FILES]`|Group files by extension. `group_year [FILES]`|Group files and dirs by year. `group_year_copy [FILES]`|Copy files from current year to the named dir. ## Help. Command|Description ---|--- `help `|Get help about dotfiles bash function. `h `|Short for help. ## Ls. Command|Description ---|--- `l [DIRS]`|List files in dirs. Current dir by default. `ll [DIRS]`|List last modified files first. Current dir by default. `lll [DEPTH] [DIRS]`|List files in tree structure. Current dir by default. Depth can be omitted by passing `-` (dash). `llll [DIRS]`|List files recursively. Current dir by default. `la [DIRS]`|List all files in dirs, incl. hidden files. Current dir by default. `lla [DIRS]`|List all files in dirs, incl. hidden files, sorted by mtime. Current dir by default. ## Markdown. Command|Description ---|--- `markdown_render `|Render markdown in browser using Gitea API. Because I want consistency with Gitea web render. Works only inside LAN. ## Name. Command|Description ---|--- `name [FILES]`|Rename dirs to `snake_case` and files to `PascalCase`. Careful with structured file names like archives! `name_parse [FILES]`|Rename files with provided parser, i.e. `parse_simple`. All files by default. `name_hash [FILES]`|Rename all files to their hashes while keeping extensions. All files by default. `name_hash_check [FILES]`|Check hashes for previously renamed files. All files by default. `name_show [FILES]`|Rename files for Jellyfin shows, i.e. `Episode S01E01.mkv` All files by default. `name_manga [FILES]`|Rename files for Kavita manga format. All files by default. `name_music [FILES]`|Rename files for ffmpeg_music_meta format. All files by default. `name_ext [FILES]`|Rename files with new extension. All files by default. `name_prefix [FILES]`|Change file name prefix. All matching files by default. `name_postfix [FILES]`|Change file name postfix. All matching files by default. `name_replace [FILES]`|Replace part of the name. All matching files by default. `name_fix_numbering [FILES]`|Fix numbering for numbered files. I.e if there are 10 items and some of them start without zero, then append zero to it. 1..10 -> 01..10. ## Nix. Command|Description ---|--- `nix_rebuild [HOSTNAME]`|Rebuild system. Optionally force the hostname. `nix_switch [HOSTNAME]`|Rebuild and switch system. Optionally force the hostname. `nix_update`|Update system versions. `nix_shell [NAME]`|Spawn shell with specified nix environment. Uses flake.nix in current dir by default. `nix_tmpshell `|Spawn nix-shell with specified packages. `nix_live`| Build live image. ## Notify. Command|Description ---|--- `notify `|Send Telegram notification. `notify_silent `|Send silent Telegram notification. ## Own. Command|Description ---|--- `own [USER] [FILES]`|Change file ownership to specified user id and restrict access to him. Root user by default. This directory recursively by default. ## Pack. Command|Description ---|--- `pack [FILES]`|Pack files into desired format. All files and directories by default. `unpack [FILES]`|Attempt to unpack. All supported formats by default. ## Parse. Command|Description ---|--- `parse_simple `|Parse data and output simplified format. `parse_pascal `|Parse to PascalCase. `parse_snake `|Parse to snake_case. `parse_kebab `|Parse to kebab-case. `parse_camel `|Parse to camelCase. `parse_snake_uppercase `|Parse to SNAKE_CASE_UPPERCASE. **NOT STABLE! Repeating results in different output.** `parse_alnum `|Parse data keeping only alphanumeric characters. `parse_ints `|Parse integers from mixed string. `parse_lowercase `|Parse string to lowercase. `parse_uppercase `|Parse string to uppercase. `parse_titlecase `|Parse string to title case. `parse_sentencecase `|Parse string to sentence case. `parse_startcase `|Parse string to start case. `parse_json `|Parse string to pretty Json. ## Permission. Command|Description ---|--- `perm_share`| Recursively change permissions to allow read sharing with group and others. `perm`| Recursively change permissions to restrict access for group and others. ## Prune. Command|Description ---|--- `prune_docker`| Prune everything unused in docker. `prune_nix`| Prune Nix Store. `prune_flatpak`| Uninstall flatpaks not listed in the config. ## Ps. Command|Description ---|--- `fps [PROCESS]`|Find process and filter. ## Random. Command|Description ---|--- `random_file`| Picks a random file or directory. ## Recursive. Command|Description ---|--- `recursive `|Run something recursively over all directories. `recursive1 `|Run something recursively over directories of 1 depth (excluding current dir). ## Save. Command|Description ---|--- `save [TARGETS]`|Backup a game save. ## Ssh. Command|Description ---|--- `sshmount `|Mount FS over ssh. Just extra config for sshfs. ## Su. Command|Description ---|--- `s [USER]`|Su shortcut for lazy me. Root by default. ## Terminal. Command|Description ---|--- `tsize`| Get terminal size. ## Tmp. Command|Description ---|--- `tmp`| CD into host's primary tmp dir. ## Tmux. Command|Description ---|--- `ta [NAME]`|Create/attach to named session. By default uses current dir name. `td`| Detach from running session. `tda`| Detach all other tmux clients. `tl`| List running sessions. `tns [NAME]`|Assign name to session. Uses current dir name by default. `tnw [NAME]`|Assign name to window. Uses current dir name by default. `tk [NAME]`|Kill specified session. By default uses current dir name. `tka`| Kill all sessions. ## Todo. Command|Description ---|--- `todo`| Open `~/.todo.md` file. ## Transcode. Command|Description ---|--- `transcode [FILES]`|Convert between different formats. By default tries to convert all files. ## Try. Command|Description ---|--- `try `|Retry command every 2 sec until it completes successfully. ## Vdl. Command|Description ---|--- `vdl [LINK]`|Download video from URL. When no `[LINK]` specified, it tries to update previously downloaded link. `vdl_vk `|Temporary fix for vk downloads. `vdl_file `|Download all videos from file with links. ## Vi. Command|Description ---|--- `v`| Neovim shortcut. ## Wallpaper. Command|Description ---|--- `wallpaper `|Set specified file as a wallpaper. ## Watch. Command|Description ---|--- `w `|Watch command output with 2 seconds interval. `ww `|Watch command output with minimal interval.