{"id":33206959,"url":"https://github.com/unixnut/scripts","last_synced_at":"2026-03-29T15:30:24.571Z","repository":{"id":14274646,"uuid":"16982596","full_name":"unixnut/scripts","owner":"unixnut","description":"Small, useful platform-agnostic scripts (mostly just for Linux) that don't justify having their own repo","archived":false,"fork":false,"pushed_at":"2025-06-07T06:05:24.000Z","size":333,"stargazers_count":25,"open_issues_count":0,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-07T07:18:28.954Z","etag":null,"topics":["bash","clowncar","linux","python","scripts","shell","smooth","userlist"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unixnut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":"deidle","publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-02-19T11:46:46.000Z","updated_at":"2025-06-07T06:05:29.000Z","dependencies_parsed_at":"2024-07-15T17:16:09.991Z","dependency_job_id":"836f104e-957b-4d62-a383-8a091b36b084","html_url":"https://github.com/unixnut/scripts","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/unixnut/scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unixnut%2Fscripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unixnut%2Fscripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unixnut%2Fscripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unixnut%2Fscripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unixnut","download_url":"https://codeload.github.com/unixnut/scripts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unixnut%2Fscripts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31149344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-29T15:04:47.762Z","status":"ssl_error","status_checked_at":"2026-03-29T15:00:58.474Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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","clowncar","linux","python","scripts","shell","smooth","userlist"],"created_at":"2025-11-16T10:00:27.376Z","updated_at":"2026-03-29T15:30:24.557Z","avatar_url":"https://github.com/unixnut.png","language":"Shell","funding_links":[],"categories":["Remote work"],"sub_categories":["Chess :chess_pawn:"],"readme":"scripts\n=======\n\nSmall, useful platform-agnostic scripts (mostly just for Linux) that don't justify having their own repo\n\nHighlights\n----------\n* **[clowncar](clowncar)**: This is a wrapper for `useradd` that handles an\n  SSH public key.  It can be run in order to create a user immediately, or be\n  run in \"clowncar factory mode\" to create a script that will create the user\n  later.  In either case it prompts for a key.\n* **[smooth](smooth)**: Unified wrapper for various source control systems.  Assumes\n  collaborative workflow.  [Full documentation](doc/s for smooth source control.md)\n* **[userlist](userlist)**: Shows columns of useful information about Unix\n  users, including account expiry and everything to do with password (when run\n  as root).  Has many modes to show extra stuff.\n\nScripts\n-------\n* **[_s.sh](_s.sh)**: \n* **[_template.sh](_template.sh)**: \n* **[alias_dups](alias_dups)**: \n* **[archive](archive)**: \n* **[argdemo](argdemo)**: \n* **[argtest](argtest)**: \n* **[aws-host-fingerprints](aws-host-fingerprints)**: Crawls the EC2 instance logs for a hosts's SSH key fingerprints\n* **[aws-iterate](aws-iterate)**: \n* **[aws-upload-cert](aws-upload-cert)**: \n* **[aws_create_vpn_sg](aws_create_vpn_sg)**: \n* **[bbracket](bbracket)**: \n* **[c_dump](c_dump)**: \n* **[c_fp](c_fp)**: \n* **[c_fprint](c_fprint)**: \n* **[c_hash](c_hash)**: \n* **[c_info](c_info)**: \n* **[c_issuer](c_issuer)**: \n* **[c_name](c_name)**: \n* **[c_sans](c_sans)**: \n* **[c_sans.py](c_sans.py)**: \n* **[c_verify](c_verify)**: \n* **[clockoff](clockoff)**: \n* **[clockon](clockon)**: \n* **[clowncar](clowncar)**: \n* **[codefold](codefold)**: \n* **[colour_name](colour_name)**: \n* **[colsum](colsum)**: \n* **[commit](commit)**: \n* **[compare_times](compare_times)**: \n* **[config_hierarchy.py](config_hierarchy.py)**: \n* **[crate](crate)**: \n* **[current-song](current-song)**: Scrobbles the currently play song details to STDOUT\n* **[d](d)**: \n* **[deidle](deidle)**: \n* **[delsubst](delsubst)**: \n* **[dequote](dequote)**: \n* **[desktop_url](desktop_url)**: \n* **[dir](dir)**: \n* **[dump-crontabs](dump-crontabs)**: \n* **[dups](dups)**: \n* **[e-mail](e-mail)**: \n* **[elm-pager](elm-pager)**: \n* **[elm-pager.awk](elm-pager.awk)**: \n* **[erecover](erecover)**: \n* **[extract_addr](extract_addr)**: \n* **[extract_addr.sed](extract_addr.sed)**: \n* **[extract_alt_text](extract_alt_text)**: \n* **[file-format](file-format)**: Reports line ending type for a group of files\n* **[fileinfo](fileinfo)**: Prints time \u0026 inode info about a file\n* **[find_co](find_co)**: \n* **[find_encrypted](find_encrypted)**: \n* **[find_folders](find_folders)**: \n* **[find_grep](find_grep)**: \n* **[find_swapfiles](find_swapfiles)**: \n* **[find_templates](find_templates)**: \n* **[find_witdocs](find_witdocs)**: \n* **[find_writerdocs](find_writerdocs)**: \n* **[fix_pandoc_html](fix_pandoc_html)**: \n* **[fix_vimfile](fix_vimfile)**: \n* **[flagged_mail](flagged_mail)**: \n* **[foldlines](foldlines)**: \n* **[follow_link](follow_link)**: \n* **[gcal_view](gcal_view)**: \n* **[get](get)**: \n* **[getiso](getiso)**: \n* **[git_add_me](git_add_me)**: \n* **[grok_mail_folder](grok_mail_folder)**: \n* **[help](help)**: \n* **[hex](hex)**: \n* **[hostrename](hostrename)**: Portable host rename tool\n* **[html_title](html_title)**: \n* **[html_unescape.sed](html_unescape.sed)**: \n* **[idate](idate)**: \n* **[ifaddr](ifaddr)**: \n* **[includes](includes)**: \n* **[installbuilddeps](installbuilddeps)**: \n* **[ipe2txt.xsl](ipe2txt.xsl)**: \n* **[isobackup](isobackup)**: \n* **[k_dump](k_dump)**: \n* **[k_pubkey](k_pubkey)**: \n* **[libmozrecent.xsl](libmozrecent.xsl)**: \n* **[list_dotfiles](list_dotfiles)**: \n* **[load_monitor](load_monitor)**: \n* **[logconsole](logconsole)**: \n* **[lspam](lspam)**: \n* **[mailman_arcdump](mailman_arcdump)**: \n* **[mailopen](mailopen)**: \n* **[makehtml](makehtml)**: \n* **[markdown2pdf](markdown2pdf)**: \n* **[md2pdf](md2pdf)**: \n* **[microseconds](microseconds)**: \n* **[migrateuser](migrateuser)**: \n* **[milliseconds](milliseconds)**: \n* **[minicombine](minicombine)**: Produces an all-of-the-above blob from variant versions of text files\n* **[minidiff](minidiff)**: Produces Git-style output from variant versions of text files\n* **[minimerge](minimerge)**: Produces Git-style output from variant versions of text files\n* **[mk_ssh_access](mk_ssh_access)**: \n* **[mkhtml](mkhtml)**: \n* **[mklist](mklist)**: \n* **[mkto](mkto)**: \n* **[moz_bookmarks](moz_bookmarks)**: Shows Mozilla bookmarks within a menu\n* **[moz_export](moz_export)**: Makes a Mozilla importable .html file from a given bookmark folder\n* **[moz_find](moz_find)**: Free-text search on bookmark names or URLs\n* **[moz_menus](moz_menus)**: Shows all Mozilla menus\n* **[mozrecent_orphans.xsl](mozrecent_orphans.xsl)**: \n* **[mozrecent_saved.xsl](mozrecent_saved.xsl)**: \n* **[mprint](mprint)**: \n* **[mutt_compose_editor](mutt_compose_editor)**: \n* **[mygrep](mygrep)**: \n* **[myip](myip)**: \n* **[myip4](myip4)**: \n* **[myip6](myip6)**: \n* **[mymeminfo](mymeminfo)**: \n* **[myxconsole](myxconsole)**: \n* **[nanoseconds](nanoseconds)**: \n* **[newpkgs](newpkgs)**: \n* **[normdate](normdate)**: \n* **[nsgrep](nsgrep)**: \n* **[oprint](oprint)**: \n* **[pathdequote](pathdequote)**: \n* **[pem-foreach](pem-foreach)**: \n* **[perl_test.cgi](perl_test.cgi)**: \n* **[pfq](pfq)**: \n* **[pgp_verify](pgp_verify)**: \n* **[ps_bytime](ps_bytime)**: \n* **[pvim](pvim)**: \n* **[quoteshrink](quoteshrink)**: \n* **[quotewrap](quotewrap)**: \n* **[r_dump](r_dump)**: \n* **[r_name](r_name)**: \n* **[rdiff](rdiff)**: \n* **[reactivate](reactivate)**: \n* **[recover_swapfiles](recover_swapfiles)**: \n* **[remove-runapp-entry](remove-runapp-entry)**: \n* **[renfiles](renfiles)**: \n* **[replace-file-fragments](replace-file-fragments)**: \n* **[rindex.awk](rindex.awk)**: \n* **[ripname](ripname)**: \n* **[rms_triple](rms_triple)**: \n* **[rnethack](rnethack)**: \n* **[rotate](rotate)**: \n* **[ruby_wrapper](ruby_wrapper)**: \n* **[run-without-xscreensaver](run-without-xscreensaver)**: \n* **[s](s)**: \n* **[s_dump_http](s_dump_http)**: \n* **[s_dump_imap](s_dump_imap)**: \n* **[s_dump_imaps](s_dump_imaps)**: \n* **[s_dump_smtp](s_dump_smtp)**: \n* **[s_verify_http](s_verify_http)**: \n* **[s_verify_imap](s_verify_imap)**: \n* **[s_verify_imaps](s_verify_imaps)**: \n* **[s_verify_smtp](s_verify_smtp)**: \n* **[save_archives](save_archives)**: \n* **[script_interp_versions](script_interp_versions)**: \n* **[seconds](seconds)**: \n* **[show-users](show-users)**: \n* **[show_moz_dl](show_moz_dl)**: \n* **[showcn](showcn)**: \n* **[sizedelta](sizedelta)**: \n* **[sm_attach_total](sm_attach_total)**: \n* **[sm_restore](sm_restore)**: \n* **[sm_save](sm_save)**: \n* **[smooth](smooth)**: \n* **[snackdemo](snackdemo)**: \n* **[sort_addr](sort_addr)**: \n* **[spamfwd](spamfwd)**: \n* **[spell](spell)**: \n* **[splitlist](splitlist)**: \n* **[ssh_fp](ssh_fp)**: \n* **[ssh_fprint](ssh_fprint)**: Show all host key fingerprints \u0026 ASCII art\n* **[stripcomments](stripcomments)**: \n* **[tfm](tfm)**: \n* **[timestamp](timestamp)**: \n* **[to-do](to-do)**: \n* **[total](total)**: \n* **[uconv](uconv)**: \n* **[unwrap](unwrap)**: \n* **[update](update)**: \n* **[update_index](update_index)**: \n* **[urldequote](urldequote)**: \n* **[vbd_dl](vbd_dl)**: \n* **[vcf2del](vcf2del)**: \n* **[vcf2list](vcf2list)**: \n* **[vcfimport](vcfimport)**: \n* **[vcftweak](vcftweak)**: \n* **[vless](vless)**: \n* **[wcal](wcal)**: \n* **[wrap](wrap)**: \n* **[x](x)**: \n* **[xsudo](xsudo)**: \n* **[xwintitle](xwintitle)**: \n* **[zonedate](zonedate)**: Prints a DNS zone file timestamp\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funixnut%2Fscripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funixnut%2Fscripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funixnut%2Fscripts/lists"}