mds08011 / shell-scripts

GNU General Public License v3.0
0 stars 0 forks source link

shell-scripts

Source: https://www.ubuntupit.com/simple-yet-effective-linux-shell-script-examples/

  1. Hello World
  2. Using echo to Print
  3. Using Comments
  4. Multi-line comments
  5. The While Loop
  6. The For Loop
  7. Receive Input from User
  8. The If Statement
  9. More Control Using If Else
  10. Using the AND Operator
  11. Using the OR Operator
  12. Using Elif
  13. The Switch Construct
  14. Command Line Arguments
  15. Getting Arguments with Names
  16. Concatenating Strings
  17. Extracting Substrings Using Cut
  18. Adding Two Values
  19. Adding Multiple Values
  20. Functions in Bash
  21. Functions with Return Values
  22. Creating Directories from Bash Scripts
  23. Create a Directory after Confirming Existence
  24. Reading Files
  25. Deleting Files
  26. Appending to Files
  27. Test File Existence
  28. Send Mails from Shell Scripts
  29. Parsing Date and Time
  30. The Sleep Command
  31. The Wait Command
  32. Displaying the Last Updated File
  33. Adding Batch Extensions
  34. Print Number of Files or Directories
  35. Cleaning Log Files
  36. Backup Script Using Bash
  37. Check Whether You’re Root
  38. Removing Duplicate Lines from Files
  39. System Maintenance Filename what it does
    alsa-info.sh Third-party. Dump your alsa configuration for easier debugging.
    ansi2html.sh Third-party. pipe your colored shell output and get HTML out
    archive-repo helper script to archive a repo on GitHub by pushing it to an orphan branch
    audible-strip-drm Strip Audible DRM from all Audible-MP4 files in the current directory
    aur.sh dumb AUR helper, for when you don't have yay installed yet
    avi2gif convert an AVI file to a GIF at 10FPS. High quality
    backlight change keyboard brightness for laptops.
    blacklist2hosts.php convert a blacklist file (list of hosts) to a /etc/hosts format file with 0.0.0.0 prepended
    bluetooth-pan.sh Run PAN on a specific bluetooth device.
    brightness.sh change display brightness. Works primarily on laptops
    byzanz-record-region.sh Third-party. Select a screen region and record it using byzanz
    byzanz-record-window.sh Third-party. Select a window and record it using byzanz
    calibre_cleanup.php Old cleanup script for fixing namespace in EPUBs that won't open on my iPad
    cbr2pdf Change a CBR(Comic Book RAR archive) to a PDF
    cbz2pdf Change a CBZ(Comic Book ZIP archive) to a PDF
    cbz-convertor.sh Same as cbz.sh but also syncs them somewhere
    cbz.sh Zips given directories into .cbz (Comic Book ZIP) archives of the smame name (eg "folder name.cbz").
    ccg Third-party. Generate a control graph from a PHP codebase
    changed.sh Search whole filesystem for changed files in the last $1 minutes
    convertSTL.rb Third-party. STL files support binary and ascii encodings. This helps convert b/w them
    cpw Third-party. build an array of all cpw procs for this user that aren't this one.
    cwdterm.sh Picks a sensible-terminal, used by i3. Currently forces alacritty.
    djvu2pdf Third-party. Convert a DJVU file to PDF
    do-common.sh Run S3 commands against Digital Ocean. Unfinished
    do-get@ Run S3 commands against Digital Ocean. Symlink to do-common. Idea was to switch like how busybox does
    dydns.sh I like my local system IP address (192.168.1.*) to be accessible over the network using https://me.captnemo.in. This updates the DNS server by making an API request to CloudFlare.
    emojify Third-party. Substitutes emoji aliases (like :sparkling_heart:) to emoji raw characters.
    epub2mobi.sh Convert all EPUB files in a directory recursively to MOBI using ebook-convert
    extract_uimage.sh Third-party. Extract contents from a uImage, which is the compressed linux kernel format.
    flac2mp3 Convert all flac files to mp3 in current directory in parallel using ffmpeg
    frak Generates a regex from a given input file containing all possible matches using the frak NPM package.
    get_current_track.py Gets my current playing track from /tmp/lastfm.html (which was updated with cron) or the cmus-now-playing status file, whichever existed. Unused now
    get-current-track.sh Same, but in Bash
    ghissues2csv Exports issues from a list of repositories to individual CSV files.
    git-find-blob Given a blob ID, finds the relevant commit
    git-grab Downloads a git directory from a webserver with an exposed .git directory
    github-init-repo Initialize a repo with a first commit and create it on GitHub
    github-team-ssh-keys.sh Get all SSH keys for a given team on GitHub
    gitlistobjectbysize.sh Third-party. Find large Git objects to find out what is taking space in your repository
    git-pushall-branches push all branches.
    git-sync This scrips intends to sync via git near-automatically
    graphpath Third-party. Graphpath generates an ASCII network diagram from the route table of a Unix/Linux
    hda-analyzer Third-party. Alsa debugging helper script
    hosts adblocking hosts file. I use this as fallback sometimes, since it committed
    housekeeping A housekeeping script that clears up space, syncs a few repositories
    hsmarkdown.php Third-party. PHP Markdown Extra with additional syntax for jsMath equations
    i3-get-window-criteria Third-party. Get criteria for use with i3 config commands
    i3lock-fancy Fancy i3lock
    i3lock.sh Custom i3lock script
    i3-pomodoro i3blocks pomodoro script
    imguralbum.py Third-party. Download a whole imgur album in one go.
    json.sh Third-party. Parse a JSON file using BASH.
    LICENSE Licenses for third party scripts.
    lock.sh Calls betterlockscreen
    lowbatterycron.sh Cron I run using systemd that notifies me if I am on low battery and power isn't connected
    mdtable2csv Third-party. Converts a markdown table in a file to CSV format
    mobile-pass-sync@ Sync helper for syncing my mobile-passwords. Now I use housekeeping
    offline_filter.pl Third-party. Simple liferea (and possibly for other things) conversion filter to download content for offline viewing during feed updates.
    parallel Third-party. GNU parallel
    pass-show Helper script to just output a one-line-password
    pdf-parser.py Third-party script to parse a PDF
    pip2arch.py Third-party script to generate PKGBUILD from pip packages
    plutil.pl implementation of binary/UTF-8 (text) XML conversion of plist files
    port_block_check.sh Run this behind a firewall to see if there are any outbound ports that are blocked
    prettyping Third-party, runs a nice graphical ping
    pulse-recorder.py Records a pulse audio stream easily.
    resty Third-party. A tiny command line REST interface for bash and zsh.
    reverse_video.sh Reverse a video
    rip-git.pl Third-party. Brute force and download a publicly exposed .git directory
    s3-common.sh Do S3 operations from Bash
    s3-delete Do S3 operations from Bash
    s3-get Do S3 operations from Bash
    s3-head Do S3 operations from Bash
    s3-put Do S3 operations from Bash
    screencast Select a screen region and generate a nice GIF
    screen-darken.sh Darken my laptop screen by running xrandr
    screen-off Turn off the display by xset dpms. It will turn back on when on user-input
    seagate Old sync script that I used to sync content to an external HDD regularly
    sem GNU parallell (sem)
    shrinkpdf Third-party. Shrinks a PDF by downsampling images (and a few other things)
    signcerts.sh Runs dehydrated locally to update my certificates via LetsEncrypt. Sets my CloudFlare config and runs dehdyrated
    sleepsize.sh Checks and reports the file size every 5 seconds. Helpful when you're copying large files, or waiting for something to complete.
    snippy.sh Third-party. Helper script for i3 to let me create snippets and type them easily.
    split-audio-by-chapters Splits a audiobook by its various chapters. I added support for providing a chapters.txt file with chapter names in case the M4B file doesn't have correct names
    split-by-audible Similar to split-audio-by-chapters, but this one uses a different chapter-listing format, which is what you get when you copy the Audible tracklist from the Audible web player.
    split-by-silence ffmpeg wrapper to use silence detection to split files. Source
    sql Third-party. Runs SQL commands against different drivers based on DBURL. This is a GNU project
    ssl-cipher-test.sh Runs a SSL Cipher test by testing all available ciphers against an upstream server
    stream-audio.sh Streams pulseaudio to RTSP
    swaks Third-party. Swaks is a swiss-knife toolkit for testing SMTP
    synaptic-tweaks.sh Third-party. Minor configuration tweaks for synaptic touchpads
    syncMedia Old script for syncing content
    syncrepos Old script for syncing content. Now merged with housekeeping
    undelete Attempt to find open file descriptors that are pointing to deleted files and try to recover them
    unimatrix Third-party. Matrix animation on the terminal
    update.koreader Updates KOReader on my Kindle.
    vimeo_downloader.sh Third-party. Downloads a video fro Vimeo
    vtt2srt Converts a VTT subtitle file to SRT (PHP)
    whoisplaying Find out which process is playing audio.
    xsetup Touchpad and other X configuration.
    yadisk Download a file from Yandex Disk (like Dropbox) by using their API.
    yubi-insert.sh Run when I insert a yubikey. Checks the Serial, and if they don't match, lock my screen
    yubilock.sh Lock my screen when I remove my device. Runs using udev triggers
    ec script to edit common configuration
    get-nav Get NAV of a mutual fund from the Kuvera API
    audiobook2video Generates a video for a music file, with a background
    fix-audible-m4a Third-party. Fixes audible m4a fiels with incorrect Audio Object Type Specific Config bit. Source: https://rentry.co/n4ost
aps ascii to .ps a file with specified fontsize (need a2ps installed)
clnM clean ^M from DOS files (using sed)
clnMdir clean ^M from each file in [dir] or ./ (using sed)
clnblanklines delete blank lines from a file
clnduplines clean duplicate lines in a file
clnmail remove junk mail headers from a mail file
clnmaildir remove junk mail headers from all mail files in a dir
clnns clean out the netscape cache
clntex clean out the tex/latex .aux .log
cntduplines count duplicate lines in a file
cntfiles count # of files and subdirs
cntlast count # of logins, sort output by user
cntword count # of times a word appears in ./
deldir delete an entire directory tree
dvi dvips a .dvi file and produce .ps (need dvips installed)
e1ps enscript pretty .ps of $file with $fontsize $fontfamily
e2ps enscript pretty .ps to 2 columns
FtoC Fahrenheit to Celcius conversion (using awk)
ffl find file location (a simple glimpse substitute; see mkfiles)
g2dvi groff a file and produce file.dvi (need groff installed)
g2ps groff a file and produce file.ps (need groff installed)
gplot gpgp gnuplot via script: plot and view dat file and produce file.ps (need: gplot, gpgp, gnuplot.sh, gnuplot_plot)
killns kill a messed up / frozen netscape
latex2ps latex file.tex and produce file.ps (need latex installed)
linkfiles link each file from source_dir to targer_dir
listfonts view xlsfonts with more
mail2list mail a msgfile to a list of addresses without mailalias
manf troff and view uninstalled man page file
manmo view a manpage in a new xterm with more, ...
mkhtml.zip create index.html listing all files in a dir as links
mkfiles create listing of files for easy finding with script "ffl"
octalcharset generate all characters from # \0000 to \0377
ps2html convert .ps to .html with webify
psg ps on "process", to see if running
pso ps on owner processes, to see which running
psoA ps on all processes, to see what's running
refs find a name in Refs.list file (primitive database search)
run $aout < $data > $output and append timing to $output
sg remote get "file" from "host" (scp must be functioning)
sp remote put "file" to "host" (scp must be functioning)
scbig sc spreadsheet on "file".sc (big size: 160x60)(need sc installed)
scsmall sc spreadsheet on "file".sc (small size: 120x35)(need sc)
tarf tar tf file.tar | more
tarx tar xovf : untar a file.tar
tr2html convert troff (ms) file to HTML 2.0 with unroff (need unroff)
up uncompress/display/extract files of various types (.gz, .zip, .tar.gz, .Z) interactively ... very convenient!
zpdir zip dir.zip dir/* (need zip, of course)