3
aarfa
6y

I'm trying to level up my Linux skills. What projects should I work upon. Which projects are you guys working upon?
P.S:- I'm using Linux from 3, years

Comments
  • 3
    in what area do you want to level-up? linux core development? scripting? administration? desktop user? etc..?
  • 1
    @netikras thanks. I'll selling suggestions mostly for scripting and system development side
  • 3
    @aarfa
    As for scripting -- automate shit. Learn at least basic usage syntax of awk, sed, grep/egrep, sort, uniq, column, tr, nc, curl. At least these are the tools I mostly use in my scripts. Master at least one shell scripting syntax. And I mean it. Find as many caveats as you can, tune your scripts for performance, readability, security. Learn how to hack scripts and how to protect them from hacking. Try to both: use bashisms for performance and rewrite your scripts in POSIX for portability (run your script in dash to see whether it's posix-compliant).

    What to write? anything. Try to create a devRant client in shell. An RSS engine polling for new events on your FB account, games in bash (I did ping-pong once. That was a fun challenge), etc.

    As for system development - I did not get what you mean
  • 1
    @netikras You've hooked me :) I already know what I'm doing this evening. Will try to add autocomplete to my shell-based JSON parser :D

    https://gitlab.com/netikras/bjson
  • 0
    @netikras @netikras how should I proceed for creating client like devrant client in shell. Have you done it?
  • 0
    @netikras wow seems interesting
  • 1
    I'm currently working on a shell script that fucking hates me, welcome to hell!
  • 1
    @aarfa Yes I have. https://gitlab.com/netikras/... . Do not cheat :)

    If you want to learn -- google and manpage your ass off to find the WHATs, WHYs and HOWs. Take a day or two to find your starting point
  • 1
    @linuxxx Uuuhhhh, that sounds very tempting! What's the script? What's the problem? I know you didn't ask for help, but I LOVE shell scripting challenges :) Maybe even more than the java ones
  • 1
    @netikras that's a serious motivation pal. It's nice feet such new ideas. Thanks.
    I'll be in touch regarding these scripts
  • 0
    @aarfa Cheers.
    As in programming try to write a stub first. Then - implement the main flow, make it work at least once. Then - tune the shit out of every component to make the whole script stable, reliable and able to handle errors. Always leave all the configurables at the top of the script.

    DO NOT use `...` (backticks) for evaluation. Use $(...) instead. And get into a habbit of referring your variables with ${var_name} rather than $var_name.
  • 1
    @netikras Solved! Read somewhere online that one can use the source command and ./script.sh and that it works the same but it doesn't I figured now.

    It works :)
  • 1
    @linuxxx naah, these are different uses :) but if you lose slash and replace it with a whitespace - you'd have an alternative of 'source': `. script.sh`

    But that's what you've prolly figured out yourself :)
  • 1
    @netikras Yeah haha. I'm writing a script which blocks all ip's/ranges of an AS number at iptables level.

    This way I can block out everything from Microsoft etc at firewall level :)
  • 0
    @aarfa yet another idea. Create a console-based multi-user chat application. With channels and PMs.

    I did one in my prev workplace. Came in very handy. Had to leave src code behind.
  • 0
    @netikras
    Have you ever tried to make a script to email someone from the terminal only
  • 0
    Not that much of a script... If sendmail is configured, sending email is as difficult as

    echo hello | mail -t test1 aaa@bbb.Ccc
  • 0
    @netikras yes if I've configured ssmtp, then can we send email to anyone like the way ew suggested
  • 0
    @rutee07 that sounds interesting too. And what you did was more practical and a smart work. I'll also examine such situations in my company and try to automate them
  • 0
    @aarfa solving actual problems is the best way to learn indeed. But the problem with real world is that you'll eventually run out of problems or ther solutions will begin to repeat themselves. While repetition est mater studiorum, there will be areas you will not even touch. For instance - vt100/xterm control sequences, unnamed fd usages, etc. That's where simulated problems/games come in handy - they will help you to touch areas you would miss with real-life problems' solutions.

    The only problem with games/simulated solutions is that they will not be used. Hence garder to get motivation, harder to finish, impossible to get complaints about bugs :)
Add Comment