{"id":27019068,"url":"https://github.com/jabbalaci/bash-utils","last_synced_at":"2026-03-11T21:33:02.612Z","repository":{"id":140437201,"uuid":"1561380","full_name":"jabbalaci/Bash-Utils","owner":"jabbalaci","description":"Miscellaneous small utils, mainly for the Bash shell.","archived":false,"fork":false,"pushed_at":"2025-06-01T16:01:02.000Z","size":291,"stargazers_count":130,"open_issues_count":0,"forks_count":44,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-06-02T01:50:39.539Z","etag":null,"topics":["bash","python","utils"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jabbalaci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-04-03T00:30:46.000Z","updated_at":"2025-06-01T16:01:05.000Z","dependencies_parsed_at":"2025-05-18T02:00:23.554Z","dependency_job_id":"a286276d-9f91-4a5f-817a-6629de21c037","html_url":"https://github.com/jabbalaci/Bash-Utils","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jabbalaci/Bash-Utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbalaci%2FBash-Utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbalaci%2FBash-Utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbalaci%2FBash-Utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbalaci%2FBash-Utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jabbalaci","download_url":"https://codeload.github.com/jabbalaci/Bash-Utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbalaci%2FBash-Utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30401949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T21:02:20.017Z","status":"ssl_error","status_checked_at":"2026-03-11T20:59:32.667Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","python","utils"],"created_at":"2025-04-04T17:18:54.624Z","updated_at":"2026-03-11T21:33:02.593Z","avatar_url":"https://github.com/jabbalaci.png","language":"Python","readme":"Bash Utils (miscellaneous small utils for the Bash shell)\n=========================================================\n\n**New (Jan 9, 2017)!** All scripts were updated to Python 3. The original Python 2 version (which is not maintained anymore) is tagged as \"v0.1\". You can find that\nunder the \"release\" link.\n\nHere I collect some small command-line utils.\n\n* Author:  Laszlo Szathmary, 2011-2017 (jabba.laci@gmail.com)\n* Github:  https://github.com/jabbalaci/Bash-Utils\n\ndictionary/meaning.py\n---------------------\n* Look up the meaning of a word.\n* Usage: `meaning pen`\n* Meaning: what does the word `pen` mean?\n\ndropbox/dropbox_permissions.py\n------------------------------\n* Set directory/file permissions in your Dropbox folder in an intelligent way.\n* Intended audience: Linux users who also use Windows sometimes.\n* Usage: put the script in the root of your Dropbox folder and launch it.\n* [blog post](https://ubuntuincident.wordpress.com/2011/05/08/setting-file-permissions-in-your-dropbox-folder-recursively/)\n\ndropbox/get_public_link.py\n--------------------------\n* Show the public Dropbox link(s) of one (or several) file(s).\n* Dropbox made some changes in 2017, so it doesn't work anymore.\n* Usage: `get_public_link [\u003cfile\u003e | -a]`\n* [blog post](https://ubuntuincident.wordpress.com/2011/06/01/get-the-public-dropbox-links-of-several-files/)\n\nfirefox/export_firefox_cookies.py\n---------------------------------\n* This script extracts cookies from Firefox's `cookies.sqlite`  that are specific to a given host. The exported cookies are saved in `cookies.txt`. New! It also exports session cookies from Firefox's `recovery.js` file.\nThe exported cookies are saved to `session_cookies.txt`.\n* The original script was [written by Dirk Sohler](https://old.0x7be.de/2008/06/19/firefox-3-und-cookiestxt/).\n* Usage: `export_firefox_cookies.py \u003chost\u003e`\n* [blog post](https://ubuntuincident.wordpress.com/2011/09/05/download-pages-with-wget-that-are-protected-by-cookies/)\n\nmouse/mousepos_gui.py\n---------------------\n* Monitor the mouse position in real-time.\n* It only worked for me under Python 2!\n* I made it to facilitate the usage of autopy (http://www.autopy.org). Autopy has a [Python 3 port here](https://github.com/Riamse/autopy3).\n* Usage: `mousepos_gui.py`\n* [blog post](https://ubuntuincident.wordpress.com/2011/09/11/gui-to-monitor-mouse/)\n\nradio/radio.py\n--------------\n* A minimalistic radio player.\n* Available stations: Slay Radio, goa, trance, chillout, etc.\n* Usage: `radio.py`\n\nreplace_accents/replace_latex_accents.pl\n----------------------------------------\n* This script allows you to write special Hungarian and French characters in a simple way\n(using the ISO-8859-1 (Latin-1) charset), then convert them to their LaTeX-equivalents.\n* Example: La'szlo'  =\u003e  L\\'{a}szl\\'{o}\n* [blog post]( https://ubuntuincident.wordpress.com/2011/07/01/replace-accents-for-latex/)\n\nreplace_accents/replace_french_accents_to_latex.pl\n--------------------------------------------------\n* This script converts a French accented text to LaTeX replacing the funny characters with their LaTeX equivalents.\n* Example: é  =\u003e  \\'{e}\n* [blog post]( https://ubuntuincident.wordpress.com/2011/07/01/replace-accents-for-latex/)\n\nalarm.py\n--------\n* A simple alarm script that plays a list of MP3s at a given time.\nVery useful if you leave your computer switched on during the night.\n* Usage:\n```\n$ alarm -p\n    Play music first to adjust volume.\n$ alarm -t 7h5\n    Set alarm time (5 past 7 in this example).\n```\n* [blog post]( https://ubuntuincident.wordpress.com/2011/04/17/alarm-script/)\n\ncb.py\n-----\n* Print the content of the clipboard to the standard output.\n* Usage: `cb.py`\n\nfftabs.py\n---------\n* A command line program for manipulating Firefox tabs.\n* Requirements: Firefox + MozRepl add-on.\n* Help: `fftabs -h`\n\nfrom_base64.py\n--------------\n* Ask a base64 string and convert it back to a normal string (decode).\n* Usage: `from_base64`\n\nget_alap.py\n-----------\n* An interactive program to generate a skeleton source code.\n* Supported languages: Python, Go, Java, C, D.\n* Usage: `get_alap.py`\n\nget_images.py\n-------------\n* Extract image links from a web page.\n* Usage: `get_images URL [URL]... [-l]`\n\nget_links.py\n------------\n* Extract all links from a web page.\n* Usage: `get_links.py \u003cURL\u003e`\n* [blog post](https://pythonadventures.wordpress.com/2011/03/10/extract-all-links-from-a-web-page/)\n\ngithub_user_email.py\n--------------------\n* An interactive program that figures out the email address of a GitHub user.\n* Usage: `github_user_email.py`\n\nhere.py and here.sh\n-------------------\n* Print just the name of the current directory. For instance, if you are in `/home/students/solo`, then this script will print just `solo`.\n* `here.sh` simply prints the output, while `here.py`, in addition, copies the output to the clipboards.\n* Usage: `here`\n\nimg_to_base64.py\n----------------\n* Take an image file and encode it with BASE64. Put the encoded data in an \"img\" HTML tag.\n* Usage: `img_to_base64 \u003cimage_file\u003e`\n* [blog post](https://ubuntuincident.wordpress.com/2011/04/17/embed-images-in-html-pages/)\n\ninout.py\n--------\n* An interactive script for 1) compressing a folder to another directory, and\n  2) uncompressing an archive file to a destination directory.\n* Rationale: I always forget the order of parameters...\n* Usage: `inout`\n\nis_net_back.py\n--------------\n* Play a sound when the Internet connection is back.\n* Usage: `is_net_back`\n\nmyip.py\n-------\n* My external IP address.\n* Usage: `myip`\n\nocr.py\n------\n* A wrapper script around the [Tesseract](https://github.com/tesseract-ocr/tesseract) OCR engine. Convert an image to string.\n* Usage: `ocr \u003cimage_file\u003e`\n\nopen_in_tabs.py\n---------------\n* Read URLs from the standard input and open them in separated browser tabs.\n* Usage: `cat url_list.txt | open_in_tabs`\n* [blog post](https://ubuntuincident.wordpress.com/2011/03/09/open-urls-in-browser-tabs-simultaneously/)\n\nprettify.py\n-----------\n* Prettify an HTML page, i.e. pretty print its HTML source.\n* The script prints the HTML source that is built by BeautifulSoup (BS). Idea: if you want to manipulate a page with BS, analyze the prettified source instead of the original because this is how BS stores it.\n* Usage: `prettify \u003cURL\u003e`\n* [blog post](https://pythonadventures.wordpress.com/2011/04/03/prettify-html-with-beautifulsoup/)\n\nprettyjson.py\n-------------\n* Prettify a JSON file.\n* Usage: `prettyjson ugly.json`\n\npy2rtf.py\n---------\n* Transform a python source file to RTF.\n* Usage: `py2rtf [-f] hello.py`\n* Meaning: the output is written to `hello.rtf`\n* [blog post](http://ubuntuincident.wordpress.com/2012/08/07/insert-syntax-highlighted-source-in-powerpoint/)\n\nredirect_to.py\n--------------\n* This script tells you where a webpage redirects.\n* Usage: `redirect_to.py \u003cURL\u003e`\n* [blog post](http://pythonadventures.wordpress.com/2010/12/21/where-does-a-page-redirect-to/)\n\nrep.py\n------\n* Repeat a bash command several times.\n* Usage: `rep \u003crep\u003e \u003ccmd\u003e`\n* Example: `rep 3 echo hello`\n* Meaning: print the text \"hello\" three times.\n\nslogan.py\n------\n* Generate some slogans from a keyword.\n* Usage: `slogan \u003ckeyword\u003e`\n\nsp.py\n-----\n* Print the absolute path of a file. If no parameter is passed, show the current path. The name stands for \"show path\".\n* This is one of my most useful scripts :) I use it every day.\n* Usage: `sp [\u003cfilename\u003e]`\n* [blog post](https://ubuntuincident.wordpress.com/2011/03/17/show-the-absolute-path-of-a-file/)\n\nto_base64.py\n------------\n* Ask a string and convert it to a base64 string (encode).\n* Usage: `to_base64`\n\nto_md5.py\n---------\n* This scripts reads a text *interactively* and prints its\nmd5-encoded version. The output is a 32-character long\nhexa string.\n* Usage: `to_md5`\n\nto_utf8.py\n----------\n* Convert a text file to an UTF-8-encoded text. The output is printed to the screen.\n* Usage: `to_utf8 input.txt`\n\ntocb.py\n-------\n* Copy the text from the standard input to ALL clipboards. Thus, you can use any paste method to insert your text (middle mouse button or Shift+Insert). The name stands for \"to clipboard(s)\".\n* Usage: `cat file.txt | tocb`\n* Options: with `-t` you can trim the text first (remove whitespaces from both ends of the text).\n* [blog post](https://pythonadventures.wordpress.com/2011/03/05/copy-string-to-x-clipboards/)\n\ntop10.py\n--------\n* Show the top 10 largest files in the current directory. Filesizes can be shown in a human-readable format with the `-h` option.\n* Usage: `top10 [-h]`\n\ntwitch2mp3.py\n-------------\n* Grab a twitch video in mp3.\n* Usage: `twitch2mp3 TWITCH_VIDEO_URL`\n\nuserpass.py\n-----------\n* Username and password generator.\n* Usage: `userpass`\n\nus.py\n-----\n* Change spaces to underscores. Pass a string as a parameter OR pass it\non the standard input.\n* Example #1: `us \"How to Think Like a Computer Scientist.pdf\"`\n* Result #1: `How_to_Think_Like_a_Computer_Scientist.pdf`\n* Example #2: `echo \"he he\" | us`\n* Result #2: `he_he`\n\nxml2json.py\n-----------\n* Convert an XML file to JSON.\n* This is a wrapper around the excellent [xmltodict](https://github.com/martinblech/xmltodict) library.\n* Usage: `xml2json \u003cinput.xml\u003e`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabbalaci%2Fbash-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjabbalaci%2Fbash-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabbalaci%2Fbash-utils/lists"}