Write Your Own Bash Scripts for Automation [Tutorial]

Поділитися
Вставка
  • Опубліковано 8 чер 2024
  • Get Our Premium Ethical Hacking Bundle (90% Off): nulb.app/cwlshop
    Make Custom Bash Scripts to Automate Linux Tasks
    Full Tutorial: nulb.app/x6vu9
    Subscribe to Null Byte: goo.gl/J6wEnH
    Kody's Twitter: / kodykinzie
    Cyber Weapons Lab, Episode 209
    Bash is a simple scripting language that's useful for chaining together various Linux tools without requiring you to learn any programming. In this episode of Cyber Weapons Lab, we'll use aliasing to call programs and then use Bash to automate tasks.
    To learn more, check out the full article on Null Byte: nulb.app/x6vu9
    Automate remote SSH with Expect scripts: • Automate Remote SSH Co...
    Automate recon with Bash scripts: • Automate Recon with Yo...
    Follow Null Byte on:
    Twitter: / nullbyte
    Flipboard: flip.it/3.Gf_0
    Website: null-byte.com
    Vimeo: vimeo.com/channels/nullbyte
  • Навчання та стиль

КОМЕНТАРІ • 454

  • @zephyrus7258
    @zephyrus7258 3 роки тому +842

    This is my kind of guy. His eyes tell me he's wasted no more than 3 hours sleeping since birth.

    • @djvincon
      @djvincon 3 роки тому +28

      Pissed my pants lol

    • @rikkertkuklinski4410
      @rikkertkuklinski4410 3 роки тому +14

      he's an EXPERT at what he does, and i like it.

    • @rikkertkuklinski4410
      @rikkertkuklinski4410 3 роки тому +2

      @Badger anti R? Which programming language is that?

    • @aminechei8509
      @aminechei8509 3 роки тому +1

      @@rikkertkuklinski4410 R is the language

    • @rikkertkuklinski4410
      @rikkertkuklinski4410 3 роки тому +8

      @@aminechei8509 just be carefull. Dont piss the guy off. He might hack you while you're taking a dump and staring into your phone ...

  • @jasonpitts8395
    @jasonpitts8395 3 роки тому +142

    Dude where have you been? I was about to call 911 and report you as missing. Glad you are back.

    • @KangJangkrik
      @KangJangkrik 3 роки тому +1

      Oh wow false alarm for 911
      Good luck at trials bro

    • @kingseekerbackup3085
      @kingseekerbackup3085 2 роки тому +2

      @@KangJangkrik It was a joke.

    • @KangJangkrik
      @KangJangkrik 2 роки тому

      @@kingseekerbackup3085 I know

    • @sprBEAST211
      @sprBEAST211 2 роки тому +1

      The grim reaper pulled him into a dimension between space and time, to see who would blink first in exchange for his soul. Cody clearly won 👏👏👏

    • @bitonic589
      @bitonic589 2 роки тому

      @@sprBEAST211 lmao

  • @nickopop77
    @nickopop77 Рік тому +23

    I’ve watched a lot of technical training videos with 20 years in the industry.
    You do a great job explaining things included with real live demos! Thank you for sharing what you do! Helping others learn too. 🙌🏼

  • @sebastiansimon7557
    @sebastiansimon7557 2 роки тому +131

    You didn’t need the `echo $(`…`)` at the end, you just needed to escape the `$` so it doesn’t get expanded in the string: `alias ipaddress="ifconfig | grep broadcast | awk '{print \$2}'"`.

    • @RajivBandaru
      @RajivBandaru Рік тому +3

      Thanks for this tip. It is more short and useful.

    • @DavidConnerCodeaholic
      @DavidConnerCodeaholic 26 днів тому

      Phew I’m glad I’m not the only one that caught this. 😅😅

    • @DavidConnerCodeaholic
      @DavidConnerCodeaholic 26 днів тому +1

      Fortunately for the civilized jq users among us, there is now “ip -json addr show | jq …”
      No more ifconfig (I guess? Honestly I never got the ip tools memo, so this has been very confusing for me)

  • @user-hy2ry3if8h
    @user-hy2ry3if8h 2 роки тому +5

    Great video. Exactly what a bash nab (me) needs to start up, see how to make a basic one then build on it, then add more and more and bit of polish ... brilliant.

  • @kevin_delaney
    @kevin_delaney 8 місяців тому +4

    I shortened that alias and implemented it into all my servers immediately (in my home) because it is simple and brilliant. I know them anyway because they are static, but I love the simplicity of it.

  • @rodrigito78
    @rodrigito78 3 роки тому +6

    Nice bash intro.
    Half the battle when writing bash is knowing which command and arguments (flags) to pass to it;
    # hostname -I
    Returns the system primary IP address. Type hostname --help for details.
    Of course, I understand the exercise was to demonstrate pipping capabilities of bash. But the less pipping the faster your script will run.
    Also, this is much better than without the curly brackets.
    # echo "${STRING}"
    Excellent job.

  • @jonyboi21
    @jonyboi21 3 роки тому +136

    This guy explains it better than my professor did last week

  • @RicondaRacing
    @RicondaRacing 3 роки тому +4

    Studying for my Linux+, this is gold

  • @druzod1496
    @druzod1496 3 роки тому +21

    I love your videos, can't thank you enough for what you do out here, and thanks for taking the time to "give us" this knowledge. Keep. Up the good work!

  • @ramgopalvarma5949
    @ramgopalvarma5949 3 роки тому +1

    Thank you for showing the error you ran into and the work arounds in the video.

  • @AmbushEveryone
    @AmbushEveryone 2 роки тому +3

    just getting started with Linux Mint on a VM. This video just taught me so much. thank you :)

  • @garcand
    @garcand 3 роки тому +6

    Just what I needed. I was literally just thinking about this! Thumbs up

    • @whitedaniel53
      @whitedaniel53 3 роки тому

      Same bro, thought the algorithms recent update was to read my mind xD

  • @AstroDenny
    @AstroDenny 3 роки тому +7

    Cool video- There is a lot of content like this on youtube but your style makes this easy to ingest for beginners. Couple if things though- You don't have to have .sh at the end of it and it you're going to run it with `bash ` you don't need the shebang either. Also, why did you have to fuzz the ifconfig command?
    I hope you continue this series- bash offers some much more advanced capabilities.

  • @Neodeejay0500
    @Neodeejay0500 3 роки тому +2

    thanks from France!! I can't wait for the next video about bash scripting ! :)

  • @Alex-uc3ye
    @Alex-uc3ye 3 роки тому +35

    Writing bash scripts has saved me thousands of hours over the years. Thank you for the video, this is incredibly useful.

    • @charlesmagno28
      @charlesmagno28 Рік тому +4

      any real world sample you can share? thanks

    • @bald_agent_smith
      @bald_agent_smith 2 місяці тому

      @@charlesmagno28I got the same situation. For example - it really helps handle server apps, particularly deploy updates (or configs, patches), do system tasks

  • @Ben12312312
    @Ben12312312 3 роки тому +122

    “Oops this isn’t python” hahah

  • @chffguy
    @chffguy Рік тому

    Been trying to execute a bash file forever! First resource that actually helped!

  • @novikovPrinciple
    @novikovPrinciple 3 роки тому +22

    Intermediate Tip: Use "man bash" to learn the semantic differences of: "&" (ampersand), "&&" (double ampersand), "|" (bar), and ";" (semi-colon).
    Most of my aliased commands use these punctuations, with one being "firefox & discord &" and another being "git fetch ; git status ;".
    GL, HF

  • @OmarImrharn
    @OmarImrharn Рік тому

    I ENJOY your helpful interventions and your professional knowlege. TANK'S TOO MUCH.

  • @tamirmaidani
    @tamirmaidani 3 роки тому +1

    Amaizing ,i did this tutorial on termux(android) , works like magic! Thanx alot!

  • @oxycodin2253
    @oxycodin2253 2 роки тому +1

    I taught my self this exact thing for batch scripting, time to learn bash!

  • @danlule1
    @danlule1 9 місяців тому

    Thanks a lot, this is very well explained. It is the best explanation I have come across unlike many scripting/programming videos where the narrator often spends a lot of time even hours talking to themselves in vain because they are so badly explained.

  • @codygaudet8071
    @codygaudet8071 3 роки тому +32

    You guys are reading my mind! This is EXACTLY the video I was looking for. This video is gold. More like this.

    • @sachinmaurya3259
      @sachinmaurya3259 3 роки тому +5

      this is what i was gonna type in comment .....lol

    • @jpablosaavedrag
      @jpablosaavedrag 3 роки тому +4

      @@sachinmaurya3259 I was going to type this too haha

    • @jpablosaavedrag
      @jpablosaavedrag 3 роки тому +1

      @@dawidsadzak8137 sad u.u but great they made this video

    • @codygaudet8071
      @codygaudet8071 3 роки тому +1

      ​@@dawidsadzak8137Way to devalue for the video for others my guy. If you don't get excited about this, you're in the wrong place.

    • @jpablosaavedrag
      @jpablosaavedrag 3 роки тому +2

      @@dawidsadzak8137 True. I've seen a few. But it was a nice coincidence to watch this video today. I know how the world works, still, i think it's a great short video about things you can do with bash scripting.

  • @AadilAnsari-ee3ds
    @AadilAnsari-ee3ds Рік тому

    Amazing. Actually the advance commands was awesome

  • @mojo3318
    @mojo3318 2 роки тому +2

    My dad had me watch this video for a class I'm going to take. This looks interesting. I like coding.

  • @ondregonzalez
    @ondregonzalez 3 роки тому +1

    Awesome presentation! Thanks for the clarification.

  • @1ukastesar
    @1ukastesar Рік тому +10

    In the case of shebang, it's better to use `/usr/bin/env bash` instead of the exact shell location so it can be ram on different machines without changing a single line.

    • @zeta_eclipse
      @zeta_eclipse 10 місяців тому

      thank you :D

    • @zuberkariye2299
      @zuberkariye2299 8 місяців тому +2

      thats neat and smart tip, if i was to write malware on my linux machine and wanted to transfer to a remote machine somewhere else that might be using different shell. It could in cases like that then

  • @HikikomoriDev
    @HikikomoriDev 3 роки тому +1

    A lot of power to the user. Very useful.

  • @elitetechnicalspecialists6170
    @elitetechnicalspecialists6170 3 роки тому +1

    Great work man 😀 love your videos 👍

  • @worldboy9684
    @worldboy9684 Рік тому

    Nice trick using a subprocess in an alias! Thanks

  • @frantiseksmrha992
    @frantiseksmrha992 Рік тому

    Thanks man, you helped me a lot. I appreciate your work.

  • @dogbyte7875
    @dogbyte7875 2 роки тому +1

    Hey Kody, Thank you for your time and for your video

  • @Anandhpt
    @Anandhpt 3 роки тому

    Last task was awesome..thnx man

  • @ashpakpinjari9214
    @ashpakpinjari9214 3 роки тому

    Please continue this bash series.

  • @kuldeepsingh2983
    @kuldeepsingh2983 3 роки тому +3

    I was looking exactly for this. Very nice content.

  • @jackfletch2001
    @jackfletch2001 2 роки тому +1

    Holy crap, I'm shocked I actually know almost all of this. I was genuinely nervous thinking I forgot a lot of this stuff.

  • @tusharmotka1583
    @tusharmotka1583 3 роки тому +1

    Need more parts of it. 😍

  • @theazza
    @theazza 3 роки тому

    Thanks dude, great description.

  • @jpedithe2171
    @jpedithe2171 2 роки тому +1

    Hello , très interessant ce tuto de découverte . J'ai apprécié vos explications et vous dis un grand merci pour ce partage .

  • @cryptonservices9749
    @cryptonservices9749 3 роки тому +1

    Yay I'm early - I love your videos man ❤

  • @DavidLindes
    @DavidLindes 2 роки тому

    Thanks for sharing.
    A minor correction, re 2:17 - the .sh extension is not actually necessary.
    And just a note re 12:55, while some folks do call those "curly brackets", a less-confusing name for them would be "braces" -- { and } -- whereas "brackets" (or "square brackets") would be [ and ].

  • @zexsen85
    @zexsen85 2 роки тому

    woooow, Vibrasphere - Sweet september music on the beging.... I am delighted... :)

  • @seratonyn
    @seratonyn 3 роки тому +2

    Nice~♡ dig the first ifconfig 🤣

  • @charbelalam2648
    @charbelalam2648 2 роки тому

    He stares the information into my soul.

  • @Clean_Slate
    @Clean_Slate 3 роки тому +3

    Even though it's quite a simple quide, it's great!
    Thank you!

  • @imrharnomar9099
    @imrharnomar9099 Рік тому

    I enjoy your support. your work is very benefit. TANK'S.

  • @diegoleon1144
    @diegoleon1144 3 роки тому +1

    This guy teach like a master.

  • @Jose_T131
    @Jose_T131 2 роки тому

    Excellent video brother

  • @moth5005
    @moth5005 3 роки тому

    sick video , the alias thing is really cool.

    • @gedeonducloitre-delavarenn8106
      @gedeonducloitre-delavarenn8106 3 роки тому

      From man bash: For almost every purpose, aliases are superseded by shell functions.
      So no, aliases are not cool (apart maybe for just one command, but it gets crazy when you want to put more than one command with quotes; and also they can't handle arguments). Functions are cool!

  • @chickenpotthighs9387
    @chickenpotthighs9387 3 роки тому +1

    Thank you so so much for this tutorial.

  • @tomigoe376
    @tomigoe376 3 роки тому

    Amazing video. Ty Nullbytes

  • @ggsap
    @ggsap 2 роки тому +3

    Actually to find out the shell you are currently using you need to execute which $SHELL since most of the time you want your current shell to interpret your script

  • @BurningtunaDC
    @BurningtunaDC 3 роки тому

    "Kody"? Jackie is the punk. Thanks for shooting and sharing such a great tutorial.

  • @imagreatguy1250
    @imagreatguy1250 Рік тому

    This is good stuff mate 🧠👍

  • @pcampbell-edu8508
    @pcampbell-edu8508 3 роки тому +26

    Good habits put in a "header" with the date, your name and purpose of the script.
    Also keep upper case vars for env vars.
    ^^^ being kind to your future self

  • @vikramnanda2833
    @vikramnanda2833 Рік тому

    Thanks for the video
    Please do make more videos for daily task automation

  • @The_Digital_Samurai
    @The_Digital_Samurai 3 роки тому +1

    Bash scripting in the new Windows Terminal is very useful.

  • @jeanelkhoury8077
    @jeanelkhoury8077 3 роки тому

    great video wish we could have more of

  • @naeem8434
    @naeem8434 3 роки тому

    AMazing video sir for beginners.

  • @davidabba7663
    @davidabba7663 2 роки тому

    well this was fun and educational thanks!

  • @GeneralBlorp
    @GeneralBlorp 3 роки тому +5

    Bash was my entry point into coding!
    I just wanted to save time on repetitive tasks and chill more while at work; upside was that I learned I could annoy my supervisor by being such a TryHard.

    • @pianochannel100
      @pianochannel100 3 роки тому +3

      See but now they'll just give you more work if you prove yourself to be so efficient.

    • @justinc4782
      @justinc4782 3 роки тому +2

      @@pianochannel100 yes if you ever make these kind of tweaks keep it to yourself and dont brag about it! :)

    • @derpoblizist9076
      @derpoblizist9076 Рік тому

      @@justinc4782 it depends where you want to go, to have a cushiony job with few working hours, then just quietly do your part.
      If you want to be more successful and have a job that recognizes this effort, then ask for more work.

    • @wasssuuuppp
      @wasssuuuppp Рік тому

      Any book recommendations to learn it more advanced?

  • @mathematicalninja2756
    @mathematicalninja2756 3 роки тому +1

    I swear this is what I wanted

  • @anaghr1252
    @anaghr1252 Рік тому

    Thank you man for sharing this stuff

  • @jeremymesloh1981
    @jeremymesloh1981 3 роки тому +21

    You could also do ifconfig | awk '/broadcast/ {print $2}' which would let awk grep and parse column.

    • @analactica
      @analactica 3 роки тому

      Yeah that's definitely WAAAAY ahead my level atm , i didn't understand a thing , hopefully within a year I would 🤣🤦🏻‍♂️

    • @rodrigito78
      @rodrigito78 3 роки тому +5

      # hostname -I (uppercase i)

    • @analactica
      @analactica 3 роки тому

      @Learn Linux im starting to get the idea actually , my issue is the way i learn , unlike most people i need the bigger picture first , then the break down , not the other way around , sooo ya lol

  • @nevorchi
    @nevorchi 2 роки тому

    Greatly appreciated sir!

  • @Shaddymaze
    @Shaddymaze 3 роки тому

    Well made! Thank you 😁

  • @Ms.Robot.
    @Ms.Robot. 3 роки тому +1

    This term, Linux, good timing❤️💋

  • @amnakhan1741
    @amnakhan1741 Рік тому

    Cool You really help me Well done!

  • @pianochannel100
    @pianochannel100 3 роки тому +3

    The no-blink guy is back!

  • @lollubrick
    @lollubrick 3 роки тому +1

    I was going to comment to bash you for using nano but then I realized that I started doing anything on the *nix command line using nano instead of vi so I can't really say stuff; but vi is the best thing to learn.

  • @FrankieTheOne
    @FrankieTheOne Рік тому

    didnt know th alias command. Thanks

  • @BRBTechTalk
    @BRBTechTalk Рік тому

    Thank God you did not use "Hello World". I have created scripts before and I understand them but this was helpful for other variables I have not used.

  • @terrencegivens9032
    @terrencegivens9032 2 роки тому

    Very well explained

  • @cryptolicious3738
    @cryptolicious3738 3 роки тому +6

    Argumentative bash script! hilarious :D
    that cracked me up bro

  • @ruszomalkuko
    @ruszomalkuko 3 роки тому +1

    That's sweet! You can put target IP in $IP and bash scripting enumeration easily now

  • @Romanslost
    @Romanslost 3 роки тому +2

    Great timing 😁

  • @maurolimaok
    @maurolimaok Рік тому

    I've been searching for a tutorial to make my terminal look like this, old green monitor, for a long time.
    Do you have any tutorial for that?
    I'm a complete newbie here in Brazil, learning Linux and Terminal prior to learn coding itself.
    Thanks for the video.

  • @benjamindreyer9884
    @benjamindreyer9884 3 роки тому +37

    Me thinking about something*
    One day later this dude who never blinks says: “hmm maybe i should make a video about that”

  • @smithwill9952
    @smithwill9952 Рік тому

    Industrious intelligent geek. Awesome!

  • @vk-chinni
    @vk-chinni 3 роки тому +1

    @Null Byte what that "Codes" book behind you?

  • @davegcomedy1267
    @davegcomedy1267 Рік тому

    Great video, thanks for sharing

  • @hackstarcool
    @hackstarcool 3 роки тому

    You made my life so much easier

  • @ritvikdayal3735
    @ritvikdayal3735 3 роки тому

    A person talking to his code is a brother. 😍😍😍

  • @karlostj4683
    @karlostj4683 4 місяці тому

    It's fascinating that Mr. Kinzie explains that you need a "Ubuntu or Kali Linux system, really any Linux system" and then proceeds to create and run bash scripts on a macOS machine without mentioning that macOS does bash as well.

    • @dnyaneshwariulhe2224
      @dnyaneshwariulhe2224 Місяць тому

      hey,,can you plz tell what is he using to type that script..cause if iuse vscode i amd not the sam eoutput.thank you!

    • @karlostj4683
      @karlostj4683 Місяць тому

      @@dnyaneshwariulhe2224 VSCode is a better editor IMHO but may be more complicated and sometimes simpler is better. Not sure why you're having trouble getting VSCode to work with his examples. I did just try the first script he typed in using VSCode instead of nano, and it works just fine.

  • @krotizmultika
    @krotizmultika 3 роки тому +3

    "belive"... Great video, as always, though.

  • @bzero7857
    @bzero7857 3 роки тому

    Your videos are perfect to learn

  • @gdekerdanet
    @gdekerdanet 6 місяців тому

    The man doesn’t blink😱

  • @jelos6397
    @jelos6397 2 роки тому

    That's very cool thanks!

  • @surajmishra5661
    @surajmishra5661 3 роки тому +1

    Can you make a script for making post on social media as planed per user and on given time

  • @jpdominator
    @jpdominator 3 роки тому +4

    I wouldn’t recommend using aliases like that. Make them little scripts. Aliases are part of bash expansion. Using grep with your alias… womp womp. Gotta single tick it. Aliases for obscure references. Scripts for other stuff, not piped commands.

  • @ianp6742
    @ianp6742 3 роки тому

    Good info, thank you.

  • @sepehrghasemy1267
    @sepehrghasemy1267 2 роки тому

    very usefull for netcat abusing in kali systems

  • @sirprancealott2003
    @sirprancealott2003 Рік тому

    Great work Mate. Keep Staring

  • @ovokteb9671
    @ovokteb9671 Місяць тому

    Really helpful video . Do you have any course on Udemy that I can purchase ?

  • @nergalactic2275
    @nergalactic2275 3 роки тому

    Thanks for this video!

  • @ben9262
    @ben9262 7 місяців тому

    do we have to edit with nano or is it cool to create the .sh files with vim?

  • @YannMetalhead
    @YannMetalhead 2 місяці тому

    Good video!

  • @nickt423
    @nickt423 2 роки тому

    Can you have windows scheduler run a shell file as an admin? If so, how would you do that?

  • @EdwardVarner
    @EdwardVarner 2 роки тому

    Why would I put a command (like whoami) into echo to get it to appear when I can just put whoami on a line in the script and it does the same thing?