{"id":15691601,"url":"https://github.com/paradite/bash-cheatsheet","last_synced_at":"2026-02-28T03:46:47.590Z","repository":{"id":73968555,"uuid":"170484452","full_name":"paradite/bash-cheatsheet","owner":"paradite","description":":scroll: bash cheatsheet","archived":false,"fork":false,"pushed_at":"2024-02-03T14:29:01.000Z","size":31,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-04T04:47:11.782Z","etag":null,"topics":["bash","cheat-sheet","cheatsheet","cloc","git","http-server","osx-setup","sed","terminal"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paradite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-02-13T10:01:18.000Z","updated_at":"2023-01-05T10:09:04.000Z","dependencies_parsed_at":"2024-10-23T23:09:08.211Z","dependency_job_id":null,"html_url":"https://github.com/paradite/bash-cheatsheet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradite%2Fbash-cheatsheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradite%2Fbash-cheatsheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradite%2Fbash-cheatsheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradite%2Fbash-cheatsheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paradite","download_url":"https://codeload.github.com/paradite/bash-cheatsheet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240261499,"owners_count":19773474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","cheat-sheet","cheatsheet","cloc","git","http-server","osx-setup","sed","terminal"],"created_at":"2024-10-03T18:22:27.021Z","updated_at":"2026-02-28T03:46:42.560Z","avatar_url":"https://github.com/paradite.png","language":"JavaScript","readme":"# bash cheatsheet\n\n\u003e Specific to OS X only\n\n# TOC\n\n- [nginx](#nginx)\n- [Git](#git)\n\n## kill gpg-agent\n\n```bash\n$ killall gpg-agent\n# or\n$ gpgconf --kill gpg-agent\n```\n\n## make shell scripts executable\n\n```bash\n$ chmod +x script.sh\n```\n\n## static http server\n\n```bash\n# python2\n$ python -m SimpleHTTPServer 8000\n\n# python3\n$ python3 -m http.server\n\n# alias\nalias http=\"python -m SimpleHTTPServer 8000\"\n```\n\n## nginx\n\n```bash\n# check current config and print config path\n$ nginx -t\n\n# update the config\n$ open /usr/local/etc/nginx/\n\n# run\n$ nginx\n\n# stop\n$ nginx -s stop\n\n# restart\n$ nginx -s reload\n```\n\n## modify files using sed\n\n```bash\n# substitute and print to stdout\n$ sed -e 's/one/first/g' test-file.txt\n\n# substitute in place with backup\n$ sed -i '.backup' -e 's/one/first/g' test-file.txt\n\n# substitute in place without backup\n$ sed -i '' -e 's/another/next/g' test-file.txt\n```\n\n[sed example](./sed-example)\n\n## count lines of code for each individual file\n\n```bash\n# count lines of code for jsx files in current folder\n$ wc -l `find . -type f -name \"*.jsx\" | sort -n`\n\n# count lines of code for jsx and css files in current folder\n$ wc -l `find . -type f -name \"*.jsx\" -or -name \"*.css\" | sort -n`\n\n# count lines of code for tsx files in src folder\n$ wc -l `find ./src -type f -name \"*.tsx\" | sort -n`\n\n# count tsx or ts files, excluding *.test.ts and .test.tsx, sort by LOC\n$ wc -l `find ./src -type f '(' -name \"*.tsx\" -or -name \"*.ts\" ')' -not '(' -name \"*.test.ts\" -or -name \".test.tsx\" ')'` | sort -n\n\n# alias\nalias wct=$'wc -l `find ./src -type f -name \"*.tsx\" | sort -n`'\n```\n\n[count example](./count-example)\n\n## Git\n\n### remove old merged git branches that are no longer in remote\n\n```bash\n# prune remote-tracking branches no longer on remote\n$ git fetch --prune\n\n# print local branches that are not found on remote\n$ git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 \u003c(git branch -vv | grep origin) | awk '{print $1}'\n\n# remove local branches that are not found on remote\n$ git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 \u003c(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d\n\n#alias\nalias gfp=\"git fetch --prune\"\nalias gcz=\"git cz\"\nalias grm=$'git branch -r | awk \\'{print $1}\\' | egrep -v -f /dev/fd/0 \u003c(git branch -vv | grep origin) | awk \\'{print $1}\\' | xargs git branch -d'\n```\n\n### Revert to remote origin master\n\n```bash\n$ git checkout origin/master filename\n```\n\n### Sort files by git modified date\n\n\u003e https://serverfault.com/questions/401437/how-to-retrieve-the-last-modification-date-of-all-files-in-a-git-repository#comment1118135_401450\n\n```bash\n$ git ls-tree -r --name-only HEAD | while read filename; do   echo \"$(git log -1 --format=\"%ai\" -- $filename) $filename\"; done | sort\n```\n\n\n## Android emulator\n\n\u003e https://stackoverflow.com/a/48729278/1472186\n\n```bash\n# list devices with identifiers\n$ ~/Library/Android/sdk/emulator/emulator -list-avds\n\n# run in background\n$ ~/Library/Android/sdk/emulator/emulator -avd Pixel_2_API_28 \u0026\n\n$ alias android=\"~/Library/Android/sdk/emulator/emulator -avd Pixel_2_API_28 \u0026\"\n```\n\n## iOS Simulator\n\n```bash\n# list devices with identifiers\n$ instruments -s devices\n\n# start Simulator\n$ open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/\n\n$ alias ios=\"open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/\"\n```\n\n## List open ports\n\n```bash\n$ sudo lsof -iTCP -sTCP:LISTEN -n -P\n$ sudo lsof -i -P -n | grep LISTEN\n```\n\n## List tar/zip file contents\n\n```bash\n$ tar -tvf archive.tar\n```\n\n## Remove node_modules\n\n```bash\n# check\n$ find . -name \"node_modules\" -type d -prune | xargs du -chs\n\n# remove\n$ find . -name \"node_modules\" -type d -prune -exec rm -rf '{}' +\n```\n\n## Remove .DS_Store\n\n```bash\n$ find . -name \".DS_Store\" -delete\n```\n\n## Spotlight indexing\n\n```bash\n# turn off\n$ sudo mdutil -a -i off\n\n# turn on\n$ sudo mdutil -a -i on\n```\n\n## virtualenv\n\n```bash\n$ virtualenv venv\n$ source venv/bin/activate\n$ deactivate\n```\n\n---\n\n## Other cheatsheets\n- [d3-cheatsheet](https://github.com/paradite/d3-cheatsheet)\n- [pure-bash-bible](https://github.com/dylanaraps/pure-bash-bible)\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparadite%2Fbash-cheatsheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparadite%2Fbash-cheatsheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparadite%2Fbash-cheatsheet/lists"}