Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I love Ubuntu Linux - especially the commmand line. But I have to admit that, at least for now, Windows is more user-friendly - there's more software for it, more drivers, and more stuff just works.

Knowing that Mac is built on Unix makes me wonder if it's the sweet spot between them. But I wonder: how similar is the Mac command line to Linux's bash? Could I pick right up with using vim and bash scripting and git, etc? Would common commands like changing directories be different? Does anybody know an online "compare and contrast" resource?

share|improve this question
add comment

6 Answers 6

up vote 20 down vote accepted

Mac OS X is a Unix OS and its command line is 99.9% the same as any Linux distribution. bash is your default shell and you can compile all of the same programs and utilities. There's no notable difference. You can also find various projects like MacPorts which provide package management for Mac.

share|improve this answer
1  
+1: the above is true. You may need to bear in mind weather your mac uses an intel or a powerpc processor when it comes to compiling code or using pre-built packages, i understand new macs are only intel but i may be wrong. typo @ w0rm: package* management. :-) –  Sirex Aug 23 '10 at 10:54
2  
Although your scripts will probably work for both Mac and Linux, it's always wise to test them on both platforms. I've seen quite some (subtle) differences between linux distributions and even between different versions of the same linux version. –  Roalt Aug 23 '10 at 11:07
    
FeeBSD to be exact. –  digitxp Aug 23 '10 at 18:27
4  
@digit, that must be the BSD version they charge for? s/F/Fr/ ;) –  John T Aug 23 '10 at 18:30
5  
99.9% is not correct. OS X is a BSD variant and does not have GNU utilities. You can always install them but an a lot of commands have different options. It's Unix but not Linux. –  Matteo May 10 '13 at 18:50
show 4 more comments

It's very similar, but if you know of any BSD v. Linux differences, expect the Mac to have the BSD behavior.

share|improve this answer
add comment

Bash is bash so the shell and it's built-ins are the same. But be aware that the behaviour of some tools like "ps" or "head" can differ in the details thus your sripts might fail.

share|improve this answer
3  
Bear in mind that this isn't so much a Mac vs. Linux problem, rather than a various flavors of unix do things slightly different problem. You would find the same (actually more differences) between Linux and, for example, HP-UX. –  KeithB Aug 23 '10 at 13:08
add comment

A couple things - it really depends on what you mean by command line.

  1. You'll probably run bash, which will be the same as bash on any other UNIX. The bash programming language will be the same too - as long as it's the same version. Bash versions have slight differences in the language, but this has nothing to do with MacOSX vs. Linux per se.

  2. bash by itself is a small subset of 'command line'. To be useful you typically use some other common UNIX utilities such as awk, or ls, or cut. Because of its history (it's descended from BSD, not Linux or SystemV), the Mac versions of utilities will be different than the ones you're used to on Linux (a.k.a. GNU versions). These will have at least some flag differences, and some output and functionality differences than Linux. Scripts that use these will have to be changed to compensate. BSD awk vs GNU gawk is pretty different. OR, you can get these GNU versions from macports, and set your PATH so that these are the defaults (over the built in versions).

  3. MacOS X also has some new cool tools. open is nice, it will open the object as if you double clicked it. defaults allows you to set some preferences, some not even in the GUI preferences panels. textutil can be useful and say can be fun.

share|improve this answer
add comment

The command line functionality on Mac and Linux are indeed similar as OS X has a flavour of UNIX (called Darwin) underneath the GUI that you see.

The default shell on OS X is bash, so if you're familiar with that you will adjust nicely.

On a Mac, the default command line application is Terminal. There are also a number of other emulators out there but overall Terminal provides a very similar look and feel to the shell you are used to in Linux.

The primary source of differences though are:

  • Different command line arguments at times (i.e. see du for example). The primary commands like cd or ls etc. are similar.
  • There are more parts of OS X that shouldn't be edited by hand as you might do in Linux. This is a topic of its own, but just be aware that running a Mac is not exactly like running a Linux box in terms of configuration and upkeep.

That being said there are also a lot of cool hacks available from the command line in OS X (e.g. open commnand). There are lots of previous threads and blog posts out there with more info.

You can also get your hands on a bunch of opensource packages (i.e. git, hg, etc.) via MacPorts, Fink or a few other package management systems for OS X. You can also build other source packages intended for UNIX/Linux like systems as necessary.

share|improve this answer
add comment

Here is one difference. Try this command in both Mac and Linux bash shell

find /etc -name "*.conf"

Mac displays nothing, even though there are lot of .conf file inside /etc.

share|improve this answer
    
Maybe you could tell people why this is. –  Mads Aug 28 '12 at 13:58
    
Not sure, maybe it has got to do with the pathname expansions in POSIX. This command works find /etc/* -name "*.conf" . Nevertheless, that was provided as an example to contrast MAC command line to LINUX command line. Cannot reason a -ve vote. –  Antony Thomas Aug 29 '12 at 4:42
1  
That's because /etc on OSX is a symbolic link. If you try find /etc/ -name "*.conf" it indicates /etc is a directory instead of a file. Does find in Linux treat symbolic links to directories as directories by default? –  MechEthan Nov 8 '12 at 17:13
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.