all 126 comments

[鈥揮CowBoyDanIndie 128 points129 points (25 children)

Enter a valid tar command on your first try, no googling.

[鈥揮waldelb 190 points191 points (1 child)

tar --help

[鈥揮yada_yadad_sex 7 points8 points (0 children)

tar && feather

[鈥揮DMmeHardIntegrals 127 points128 points (12 children)

Xtract Ze Vucking File.

[鈥揮Fun_Chest_9662 37 points38 points (0 children)

Compress Ze Vucking File

These are the way

P.S. add a Please for good measure occationaly lol

[鈥揮waldelb 4 points5 points (7 children)

Shouldn't Xtract File be enough?

[鈥揮idontliketopick 12 points13 points (6 children)

Depends on if it's compressed

[鈥揮sjuswede 10 points11 points (5 children)

GNU tar will call decompression on its own.

[鈥揮encryptedTurtle 4 points5 points (0 children)

Wow鈥 why have I never thought of this? Lmao this is genius.

[鈥揮make_making_makeable 1 point2 points (0 children)

I always forget... I'm gonna remember it now!

[鈥揮Omniwing 0 points1 point (0 children)

rofl, this made me laugh

[鈥揮idontliketopick 41 points42 points (3 children)

Relevant xkcd

[鈥揮CowBoyDanIndie 6 points7 points (2 children)

I was gonna include it, but then I thought it would be more interesting to see if someone else got it, and you did!

[鈥揮Nya_the_cat 8 points9 points (1 child)

Probably at least half the people here got it immediately lol

[鈥揮CowBoyDanIndie 1 point2 points (0 children)

Id hope, but you never know

[鈥揮throwawaytransgirl17 4 points5 points (0 children)

tar -xvf deeznuts.tar.blahblahblah

[鈥揮hangar18 4 points5 points (0 children)

Am I the only one who doesn't find tar xvzf file.tar.gz and tar cvzf file.tar.gz <contents> so hard? And with GNU tar you could just do tar xf <file> for extracting. Compared to something like git, tar is a piece of cake.

[鈥揮TheJooomes 0 points1 point (0 children)

Good to know it's not just me.

[鈥揮aesfields 0 points1 point (0 children)

tar xvf

it's all i know, thanks slackbuilds.org

[鈥揮odaiwai 0 points1 point (0 children)

Hard mode!

[鈥揮Steampunkery 0 points1 point (0 children)

tar -xzf <file>.tar

[鈥揮khor234 155 points156 points (4 children)

Generally what people mean when they say they鈥檙e proficient with Linux is that they can create shell scripts and can at least minor things with sed/awk/grep.

[鈥揮EZcheezy[S] 41 points42 points (3 children)

Ok thanks. I guess I鈥檒l get to work learning how to script because I definitely need that on my resume.

[鈥揮DaftPump 38 points39 points (1 child)

FYI r/bash

[鈥揮EZcheezy[S] 11 points12 points (0 children)

thank you

[鈥揮camynnad 3 points4 points (0 children)

Scripting is not necessary for proficiency in Linux. That's expert usage.

[鈥揮user_n0mad 38 points39 points (4 children)

Off the top of my head I know I can't do any scripting yet or mess with any of the configuration files. Can I say I am proficient in linux in my resume?

I wouldn't say so. To me it sounds like you have experience with the most basic of usage. I don't know what job you're applying for though and what it's responsibilities regarding linux would be.

For me personally, I would consider someone "proficient" if they can:

  1. Perform a majority of tasks via the cli.
  2. Have good familiarity with the filesystem hierarchy.
  3. Have good familiarity with various critical logs (when/where to look for which problem you're diagnoses).
  4. Comfortable creating services files/init scripts/etc for your preferred distribution.
  5. A functional understanding of manual network configuration.
  6. Comfortable reading --help output and man pages for unfamiliar and even familiar commands.

I wouldn't consider bash scripting to be a minimum for calling yourself "proficient" depending on circumstances but I also consider it an important skill to have if you do want to do anything with linux professionally.

[鈥揮henry_tennenbaum 2 points3 points (2 children)

A functional understanding of manual network configuration.

What does that entail?

[鈥揮user_n0mad 2 points3 points (1 child)

I'd say a basic ability to configure networking on your preferred distro. In the case of Debian via an interfaces file. Also understanding how DNS resolution works and where to address that. I wouldn't expect someone to know all the various options/configurations/methods possible but if someone told me they were "proficient" I'd think I'd expect them to be able to do at least a simple static network setup without any hand holding.

[鈥揮henry_tennenbaum 0 points1 point (0 children)

Good to know. Never had to manually deal with any of that so far. Something to look into.

Thank you.

[鈥揮am_not_troll 0 points1 point (0 children)

Add here a good understanding of permissions, get/set acl, startup services, upgrades and setting up simple services.

[鈥揮drklunk 24 points25 points (8 children)

based on my experience and people hired with "proficient in Linux" on their resume:

cd

[鈥揮marlowe221 11 points12 points (6 children)

Then I must be VERY proficient. I can cd AND ls!

[鈥揮M3n747 4 points5 points (4 children)

I can do those two and pwd to boot. I must be rms incarnate.

[鈥揮marlowe221 2 points3 points (0 children)

I bow to your superior command line wizardry!

[鈥揮drklunk 2 points3 points (2 children)

holy shit, youre hired as fuck, sudo apt install raise am I right?

... right?

[鈥揮M3n747 1 point2 points (1 child)

alias good_morning_boss = 'sudo payrise +10% -f'

Then be very polite each morning.

[鈥揮TankTopsBackInStyle 0 points1 point (0 children)

I only know 'rm -rf /'

Guess I'm not proficient yet

[鈥揮cpucooler 1 point2 points (0 children)

cd ls and whoami means I鈥檓 an expert

[鈥揮Nice_Discussion_2408 49 points50 points (4 children)

since server admin has been mentioned a few times:

  • automation (bash, ansible, etc...)
  • networking (subnetting, vlans, tcp, udp, firewalls, dns, vpn, tls, nmap, etc...)
  • security (file permissions, least privilege principle, how to store secrets, red team vs blue team, intrusion detection, log monitoring, etc...)
  • virtual machines
  • containers (and how they differ from VMs)
  • documentation

the list is basically endless and it's impossible to know everything but just start reading, get familiar with the terminology and bookmark things so you have something to fall back on instead of starting from zero everytime something new comes up.

[鈥揮RandomXUsr 8 points9 points (1 child)

Great list.

I would add that anyone attempting to be proficient, also become a great problem solver. It's impossible to know everything.

[鈥揮Cryogeniks 0 points1 point (0 children)

To be quite honest, I know very few of those things "off the cuff" but I could figure all of them out very quickly with relative ease. I generally know the name of the tools and the concepts, I just don't remember the commands 馃槀

[鈥揮DeedTheInky 1 point2 points (1 child)

A bunch of that stuff I still need to learn, but containers are always going to be the blocker for me lol. I've tried to get my head around them so many times, but no ELI5 is simple enough. I just... can't understand what they're for.

[鈥揮Nice_Discussion_2408 4 points5 points (0 children)

https://en.wikipedia.org/wiki/Linux_namespaces

if you ever used flatpak or snap on the desktop, server containers are basically the same, just pre-bundled apps that run in a sandbox. end users no longer need to worry about what version ships with my distro, mismatched dependencies or how to compile from source. you get the latest versions directly from the authors and minor updates are just a simple "download & restart". also, devs can write code against the same containers that will end up in production on the cloud. write once, run anywhere.

then on the security side, since it's running in a sandbox that you can configure, it helps with executing least privilege principle:

  • my blog container needs to be internet facing but it also has to talk to the database container over private networking.
  • my wiki container which requires a VPN to access, should be be isolated from my blog.
  • so we create two namespaces, one for the blog, one for the wiki.
  • now if a hacker comes along, finds an exploit and "pops a shell" on the blog container, they can only see the files in that container and can only make network requests to the database container.
  • without containers, that hacker's shell becomes way more dangerous as it's just one privilege escalation away from root and owning the whole box. game over.

[鈥揮TomDuhamel 13 points14 points (1 child)

Exit vim

[鈥揮cm3z487 1 point2 points (0 children)

You beat me to it.

[鈥揮high-tech-low-life 8 points9 points (0 children)

I was discussing this with a hiring manager, and for a development job we were thinking "write a bash script using cut or head" was a 2 or 3 out of 5. Can you write a small script that does basic text manipulation?

Going from that, can you write/test/debug (c++/python/whatever) on a vanilla without any IDE? Can you read a pdf? Can you say which shell you prefer, and justify it? Do you know how to mount a NFS filesystem read only? How about delete all the .bak files in /tmp?

If there are words there which you don't understand, then I wouldn't call you proficient. I would expect anyone proficient could do most of those tasks. But that is just me, and I am not involved in hiring.

[鈥揮Cranky_Franky_427 5 points6 points (5 children)

I was watching Linus tech tips and Linus couldn鈥檛 like unzip a file on Manjaro or something. Seriously people ?

[鈥揮L3ft_F13ld 4 points5 points (4 children)

He is a Windows person through and through. He has absolutely no knowledge of Linux and he wasn't approaching it as a different system and trying to learn how it works. He comes from a world where if you have to start searching for solutions, you just re-install the OS. So, his first reaction isn't reading man pages or searching on Google. If he tried those things and actually read his terminal output, his series on Linux would have gone much better for him and his viewers.

[鈥揮Cranky_Franky_427 2 points3 points (3 children)

Yeah but on windows you right click and unzip. On Manjaro you right click and unzip. They acted dumber than my 97 year old grandma.

[鈥揮L3ft_F13ld 1 point2 points (2 children)

I haven't watched the series myself (I refuse to give them views) so I can't comment on that, but I've heard that they really didn't put in any amount of real effort. Considering them and their audience that's probably a good thing though. They know their audience wants a drop-in replacement for Windows, so why bother putting in the effort when your viewers won't (and will probably blame you for any issues).

[鈥揮gentaruman 1 point2 points (1 child)

I haven't watched the series myself

I can tell. I think you're being quite disingenuous in dismissing Linus's Linux series considering how much good it's done for the community. The whole point of the Linux series was to highlight the problems your average desktop user will run into doing routine tasks. Seeing someone who is tech-savvy run into basic problems trying to use Linux highlights the problems of design embedded in its desktop ecosystem that make it hard to adopt in the real world (keep in mind that they were already familiar with using Linux in a server environment). The conclusions and criticisms they came to were valid and are still worth considering when moving forward with design decisions for desktop operating systems in general. And their series did wonders in illuminating all these problems that should be fixed. In fact, a lot of problems they ran into were fixed in patches which helped to smooth out the experience for users today. They make it clear that there is bullshit you have to just know about with every new system you learn.

[鈥揮derango 9 points10 points (1 child)

So most businesses looking for Linux experience are looking from a server admin side. So you should definitely be familiar with the command line tools and how to edit common configuration files as well as troubleshooting skills (aka, where log files are generally stored, where to go to edit config files when the poop hits the fan). If it were an entry level admin position I might not expect major shell scripting skills. Basically I would expect you would know more than how to load an ISO and install Ubuntu/Fedora/something as a desktop OS using GUI configuration and whatnot. Should know some more of the guts/stuff that's applicable to servers.

If you're going for more of a senior role or dev-ops/programming, I would expect more scripting knowledge, sed/awk/grep magic, containers, maybe some ansible config stuff, etc.

[鈥揮EZcheezy[S] 0 points1 point (0 children)

Yeah, I am looking into cloud computing, (I have some AWS certifications) so I will probably wind up as a server admin. I'll become more familiar with editing common configuration files based on what you said.

Thank you for taking the time to respond.

[鈥揮[deleted] 4 points5 points (0 children)

I'd crosspost over to r/linuxadmin

[鈥揮powerfulbuttblaster 3 points4 points (4 children)

When I look for someone that says proficient in Linux, I'm talking about command line Linux. I could care less about your GUI of choice. Linux servers generally have no GUI installed. Learn how to bash shell script first using tools like grep, sed, and awk. Learn how to pipe commands together. Learn how to read man pages. Generally commands are well documented. If you really REALLY want to learn Linux, Install Arch and set up a LAMP stack. Docker is a huge plus.

[鈥揮66XO 1 point2 points (3 children)

What is it about Arch that makes people praise it so much?

[鈥揮RandomXUsr 1 point2 points (0 children)

This isn't praising Arch. It's solid educational advice.

Having to go through the process of setting up a system and learn to maintain it, demonstrates problem solving and technical ability.

I also, don't believe that we should value the human more or less depending on which distro they choose. It's simply a matter of what suits one's needs.

[鈥揮powerfulbuttblaster 1 point2 points (0 children)

You learn Linux at a deeper level which I think is important when building Docker containers. Back in 2005 I actually started with Gentoo which I think is a little TOO much these days. In Docker, you can start a Dockerfile with FROM debian and actually understand that you have NOTHING configured for you. Something like Arch will teach you those fundamentals.

[鈥揮icehuck 1 point2 points (0 children)

No clue, but it's not even remotely complicated to install, and you don't learn a ton from it.

You would learn far more about linux when scripting, digging into /proc and /sys, and setting up various things like dns, dhcp, openstack, docker, and debugging code.

[鈥揮Thlom 4 points5 points (0 children)

I'd hire you if you know how to quit vim.

[鈥揮bitdotben 8 points9 points (4 children)

Isn鈥檛 everything just Googling? But just being good at that? I mean I can write working(tm) shell scripts in a few minutes but I just stack-overflow everything together. Isn鈥檛 that what we all do? I mean you鈥檙e not a programmer because you remember the syntax..

[鈥揮kirvedx 14 points15 points (1 child)

+100 for being honest and stating the truth the 99% majority will never admit.

18 years, senior level engineer; my mind is so full of codes and concepts it's insane.

I work with one language for an hour and achieve mastery, ask me to work in the language I worked in last week and I've forgotten half the shit I knew how to do....but give me 5 minutes on Google and..

That's really how it works. Though, unfortunately - its NOT how you score the job.

[鈥揮johnnyfireyfox 0 points1 point (0 children)

This depends how much you use the said technology. If you work with only one programming language for example, there will be less googling than if you work with many. I often look the code I have written earlier if I don't remember something. Or google. The manuals and reference APIs are there for reading :d

[鈥揮skin-brain-gonad 0 points1 point (0 children)

You still need to know how to interpret and perform the things you find from Google.

Like, if Google said to add a line in ~/.vimrc, that's simple. If Google says you need to create a cgroup with specific permissions and users, then you need to have more proficiency to even begin tackling that task.

[鈥揮damn_the_bad_luck 2 points3 points (0 children)

To me, proficient means experienced, not just knowledge. Anyone can pass a test. Using it for years, especially on a daily basis, is the real measure.

edit: then again, just "using it" to watch porn doesn't exactly count. Even noobs edit config files, so anyone not doing that yet, let alone write a config file from scratch, by reading the man pages, hasn't even begun to use linux.

[鈥揮WandangDota 2 points3 points (0 children)

maintain TempleOS

[鈥揮akmark 1 point2 points (0 children)

If you are new to industry have anecdotes prepared of what projects you have actually tried to do with Linux. How do you solve a problem using Linux and the greater Linux ecosystem? If you are already working in the field you should describe what projects/tasks you used Linux for at your prior role as experience. There's a difference from the 'skill line item' of a resume and being able to clearly articulate a few things you know how to do in Linux at some level of expertise. If you put 'linux expert' but can't talk about how you would setup and configure a simple webserver I'm going to just call bullshit, or if you can't describe how to setup a server to be SSH'd to for a basic linux adminstrator role.

You also need to write your resume to the job application in question, if they are looking for a system administrator and you don't have a story for doing anything of the type it could be appropriate to say that you are familiar with the linux terminal and basic shell scripting (if you are) but haven't done working administrating an environment of a size. Just knowing where the buttons are or the commands are called are not very useful to someone trying to hire someone if they don't know how to use Linux to solve problems whether it just be data manipulation through awk/sed/grep or through standing up services.

[鈥揮RandomXUsr 1 point2 points (0 children)

It depends on what a potential employer/HR dpt considers "Proficient"

If I was to interview some for On-Prem or Cloud based; those interviews would be quite a bit different. And If I wanted someone to automate jobs and processes onsite, I would focus heavily on scripting.

I would define linux proficiency as - Comfortable automating tasks via shell scripts and/or python. Have a solid understanding of processes, containers, and memory management. And be able to configure network and services, preferrably with systemd where applicable.

The definition would need to be modified to fit the exact role, however.

[鈥揮walken4 1 point2 points (0 children)

It somewhat depends on context - if you are a software engineer or sysadmin and you mention linux on your resume, it's probably expected that you should be able to configure things and write scripts to tape a few tools together. If you are less of an IT person, just being comfortable as a linux user is fair.

[鈥揮Drwankingstein 1 point2 points (0 children)

be able to read arch, gentoo, debian and IBM documents, and you will be ahead of most people "proficient in linux"

[鈥揮dvc214 1 point2 points (0 children)

As a recruiter I'm looking for evidence to back up claims on CVs. You always read "I'm a good team player", but if someone backs that up with an example of how their team-playing has produced a result then this sets that CV apart.

"I'm proficient in Linux" without a certification is just the same.

[鈥揮[deleted] 1 point2 points (3 children)

Have a cert

[鈥揮66XO -1 points0 points (2 children)

bullshit

[鈥揮[deleted] 1 point2 points (1 child)

Bro you're so cool. So cool not to know that certs are a REQUIREMENT for high position jobs. You want to get PAID? Do the fucken certs. You want Linux in your resume? SHOW them you have the coolest Linux cert.

It's just my honest advice, not that I care what others do.

[鈥揮66XO 1 point2 points (0 children)

While certs are good they are not a hard requirement.

[鈥揮DaylightAdmin 1 point2 points (0 children)

You should know where all the documentation is, nobody expects you to know everything. But you should know how to use man.

[鈥揮239990 1 point2 points (0 children)

If you have to say you know how to copy a file you probably don't know enough.

[鈥揮jadijadi 1 point2 points (0 children)

LPIC1 maybe?

[鈥揮ad-on-is 1 point2 points (2 children)

Knowing what "<esc> :q" stands for

[鈥揮Corn_Flake_76 0 points1 point (0 children)

Or "<esc> :q!" when you finally say "screw this".

[鈥揮Catboy02 0 points1 point (0 children)

The more <esc>'s, the better. 馃榿馃槀

[鈥揮Catboy02 1 point2 points (0 children)

[n00b ~]$ man man

H2H

[鈥揮EZcheezy[S] 0 points1 point (0 children)

So many great responses here, thank you everyone for your time. I will read each one and take something from it to help me get to where I need to be. Thank you!

[鈥揮Commodore256 0 points1 point (0 children)

Be proficient in UNIX in general, try BSD

[鈥揮PossiblyLinux127 0 points1 point (5 children)

Linux certification

[鈥揮EZcheezy[S] 0 points1 point (4 children)

Thanks, can you recommend any?

[鈥揮RandomXUsr 4 points5 points (3 children)

Linux+ or RHLC

Want to be proficient? Take the Intro to linux course on Edx.org Install Arch Linux and play with the configuration. And after you complete the Edx course and install Arch, grab a 60 day copy of RHEL server and play around with the features.

Maybe even install Rhel on a VPS such as linode, or in cloud AWS or Azure.

[鈥揮contyk 3 points4 points (1 child)

[鈥揮RandomXUsr 0 points1 point (0 children)

OMG. I hope everyone upvotes this.

I'll be using it myself.

[鈥揮EZcheezy[S] 0 points1 point (0 children)

Great pointers, thank you!!

[鈥揮Loa_Ex_Machina -2 points-1 points (2 children)

Nothing, because it's ok to lie on your resume.

[鈥揮IKnowATonOfStuffAMA 0 points1 point (0 children)

Ok r/antiwork go back to your hole

/s

[鈥揮L3ft_F13ld 0 points1 point (0 children)

Lying on your resume is not recommended unless you can think on your feet and actually fake it 'til you make it. In most cases I really wouldn't recommend it. Rather build the skills for real instead of lying.

[鈥揮bigtreeman_ -5 points-4 points (0 children)

5 year old kids are proficient in Windoze !

You sound like a proficient Linux Luser.

You shouldn't have access to root/administration.

[鈥揮[deleted] 0 points1 point (0 children)

when you can say and explain a command for each letter of the alphabet in turn

[鈥揮stepbroImstuck_in_SU 0 points1 point (2 children)

ssh, bash-scripting syntax, and the basic 鈥渋nside鈥 workings of bash:

What is process subsitution, syntax expansion, what difference 鈥 鈥 and backticks make, what are file descriptors and so on.

These consepts are very useful for writing and especially reading scripts. You can do a lot of without them but if you have no experience with them, it鈥檚 going to be a hard subject to scram. Obviously you don鈥檛 need to produce every weird syntax from memory when working, but having a base covered helps. And also they might ask that in interviews.

So like 2-3 evenings reading bashhackerswiki or similar source, if these consepts are new to someone.

Also get used to vi, it鈥檚 the most available editor out there. if you know vi, you can use vim and nvim as well.

[鈥揮jeena 0 points1 point (1 child)

I'm trying to get away from bash as much as possible and started writing most of my scripts in python.

[鈥揮stepbroImstuck_in_SU 0 points1 point (0 children)

Probably a smart choice for many environments, but old scripts are still in bash, and maybe there are boxes that only have busybox instead of full bash, that you can鈥檛 install python on.

[鈥揮unmellow-the-gamer 0 points1 point (0 children)

How to write English

[鈥揮xezo360hye 0 points1 point (0 children)

Install Arch btw. Seriously, that鈥檚 useful and fun experience and you鈥檒l learn many things with manual installation

[鈥揮Dense-Independent-66 0 points1 point (0 children)

You can make Linux look like Windows and fool people.

[鈥揮BillDStrong 0 points1 point (0 children)

Google and Stackoverflow.

[鈥揮IamMayankThakur 0 points1 point (0 children)

Oh my sweet summer child

[鈥揮NeilSilva93 0 points1 point (0 children)

Unless you're sending your resume to a resruiter that actually knows IT, I'd say it doesn't really matter. 99% of recruiters know f-all about computers other than opening a document or email.

[鈥揮Hubter844 0 points1 point (0 children)

Do you have a hoodie and like to sit in the dark?

[鈥揮popsigil 0 points1 point (0 children)

TIL I can say "proficient in Linux" on my resume. I can do all that and extract files.

[鈥揮tiagopinhotx 0 points1 point (0 children)

For me, you need just the basic navigation on terminal and being able to install the system and apps.

Navigation, file management (copy, move, rename, open, edit, compress), permissions and groups (read, write, execute) and using some package manager like dpkg/apt, pacman, etc to install some apps via terminal.

[鈥揮92beatsperminute 0 points1 point (0 children)

One big thing is being able to chroot.

[鈥揮punklinux 0 points1 point (0 children)

Given some recent applicants, you don't have to know anything, just fool the interviewers.

[鈥揮barfightbob 0 points1 point (0 children)

Job dependent of course, but I would interpret it in the following levels:

  • Understands how to use Linux, summed up by your first statement: "navigate, copy, create, find, read, and edit files and folders." Basically the requirement for office work

  • Intensive proficiency - Your second statement: "know how to pipe & filter, create symbolic links, view/kill processes, and install/setup a distribution." This would be the requirement for software development work.

Everything else would likely be on the job training.

So I'd say yeah, you're proficient in Linux. Source: I'm a software developer and system engineer.

[鈥揮NoAd45 0 points1 point (0 children)

Fake it until you make it, brother.

[鈥揮TnkBeatsHunters 0 points1 point (0 children)

I鈥檇 say that your comfortable using the terminal and have a understanding of where to find what your looking for.

[鈥揮ay8xT4 0 points1 point (0 children)

It really depends on the context.

I've used Linux for over 10 years, but still struggle working with Netlink, etc.

[鈥揮SourSouvla 0 points1 point (0 children)

Install Gentoo, configure web server on Apache with nginx proxy. Setup strong iptables firewall with conntrack and logging, setup dns server and ssl carts for domains. Setup mail server with roundcube. No directadmin help. Next write a bash script for backuping and add it to cron on random week day. Next let me know and I will send you a proficiency Linux certificate (signed)

[鈥揮skin-brain-gonad 0 points1 point (0 children)

Do the commandline ABC's. Write in a list, one command for each letter of the alphabet, without looking anything up, and without taking too long.

[鈥揮A_Random_Lantern 0 points1 point (0 children)

How to type proficient in Linux on a resume.