Hot answers tagged reference
The autoconf manual has a section on portable shell programming. Although that's not specifically targeting POSIX, it's probably the most complete collection of what to do and not to do when attempting to write portable shell code.
whohas package (link) may help you. Example % whohas pidgin|grep "pidgin " MacPorts pidgin 2.10.6 https://trac.macports.org/browser/trunk/dports/net/pidgin/Portfile Slackware pidgin 2.7.11-i486-3sl slacky.eu ...
I like the TLDP guides http://tldp.org/guides.html There is everything from Beginners to Advanced Bash guides; it's how I learned anyways.
The closest thing I've come across to a tool like this is pkgs.org: pkgs.org - Linux Software Catalog and Packages Search The pkgs.org is created to provide you with the simplest method of searching and downloading the newest versions of the best Linux software - without the usual excessive popups or spyware. Also use it to find alternatives to ...
A good starting point, if you don't know the exact command name, is apropos. You'll find a short description here or with man apropos.
You can't. The format for /etc/hosts is quite simple, and doesn't support including extra files. There are a couple approaches you could use instead: Set up a (possibly local-only) DNS server. Some of these give a lot of flexibility, and you can definitely spread your host files over multiple files, or even machines. If you're trying to include the same ...
All of the guides I've found were incredibly informal, not properly summarising its syntax or telling the most common errors you can make. The best resource, and one that does address common errors, is Greg's Wiki Another very good resource for pointers on syntax and good practice is the Bash Hackers Wiki
Distrowatch has a table show what versions of software specific distros include. If you open your preferred distos in different tabs you can see what version of GIMP they have. Here's Mint, Ubuntu, Debian, and Fedora, there's a radio button to choose between seeing only the major packages and all packages. Select all packages if your package isn't on the ...
The Unix Rosetta Stone (resource for sysadmins) might be the one you had in mind.
http://oswatershed.org/ is also for comparing popular package versions in several distros.It also provides "lag" between upstream release and distro release, which is interesting to see.
In addition to dash and posh, there's bournesh (or bsh), the Heirloom Bourne Shell, that can be used to detect Bashisms. The Heirloom Project also includes "The Heirloom Toolchest", a collection of more than 100 standard Unix utilities (which could serve as a starting point for comparing command line options).
Depending on your Version of MacOS X, you can create your own content for the Dictionary app. There's a lot of pre-generated material out there, and even a few additional tools to convert stuff from other sources. Dict.org converter for pre-Leopard mac-dictionary-kit for Leopard onwards. See blog entry for details - there's more blogs around, google will ...
In addition to apropos (which can also be written man -k), a useful command is man -K key_word (capital K). This searches for a man page with the 'key_word' anywhere in the man page (man -k searches only in the short description part). Either way, the result are shown with the section between brackets: [gojan@Gonux ~]$ man -K copy ... cp (1) - ...
If you want to list all possible commands try hitting <Tab> twice
man intro is the unix way of answering this question.
Writing your scripts using dash might be a start.
I don't know of any online resources that are going to be as helpful as this book: Understanding the Linux Kernel. Chapter 12 covers the Linux VFS layer, and Chapter 18 covers ext2/ext3 specifically. The book probably about due for a fourth edition, since it's circa 2.6.10, but the basics are still the same. There's a lot going on in filesystems these days, ...
Similar to this answer, try executing your script in posh. Also, don't forget to set the POSIXLY_CORRECT environment variable to true, as this causes many programs (not only the shell) to adhere more strictly to the POSIX standards.
Today, you can usually find a POSIX shell on a system, and so that generally means you can script in the POSIX language (modulo running into compliance bugs). The only problem is that /bin/sh is sometimes not a POSIX shell. And you must hard-code the #! line into scripts that are to behave as nice executables; you can't just ask the user to research the ...
To a little extend, you can try checkbashisms in Debian/Ubuntu's devscripts package. It is not perfect, but it has the benefit of being an existing starting point. For example, it doesn't see the classical glitches with sed/find concerning the GNU vs BSD/other differences. By default, it is Debian+dash oriented, the -p flag can be useful for in your case.
To be honest, I find myself in the same situation that you are quite often. Even though I'm not a beginner. But knowing which tool does what is, is something that will haunt you forever, especially, since new tools are coming in quite fast, are Distro dependent, and the UI changes sometimes from version to version (as with tar, that changed the meaning of ...
You might want to print out or bookmark a cheat sheet. I like this one which is the first result on the Google search for "unix cheat sheet" for a reason.
Only top voted, non community-wiki answers of a minimum length are eligible