Linux programming basics

I just started Linux programming (Red Hat) after several years of C ++ on Win32. Therefore, I am not looking for the basics of programming. Rather, I am looking to speed up with things unique to the Linux programming world, such as packages, etc. In other words, I need to know everything at https://www.redhat.com/courses/rhd251_red_hat_linux_programming/details/ without spending 3K. Any ideas on how I can quickly acquire this knowledge (and relatively cheap)?

Update. What I'm used to doing on Windows, for example, creating .exe and dll using VC ++, creating installation scripts, etc. on Linux it runs differently. They use things like yum, make and make install, etc. Things like the dependency walker, which I take for granted in the Windows world, constantly send me to Google when running Linux. Is there a “set” of new skills somewhere that I can view, or does it learn more when you go?

The main problem is this: as a very experienced programmer on Windows, I have to ask simple questions, like what is the difference between usr \ bin and usr \ local \ bin, and I would like to be prepared.

+7
c ++ linux
source share
6 answers

Edited because I had to leave the meeting when I initially filed this, but wanted to complete the information

Half of this material explores development in an environment like Unix, and for this I would recommend the book, as it more strictly filtered useful information from the very beginning.

I would ask you to go to the bookstore and look at these books:

  • Advanced Unix Programming from Stevens and Rago - This book covers topics, networks, IPC, signals, files, process control
  • Unix Network Programming, Volume 1 by Stevens - This book focuses on network programming techniques, design - you may not need this later
  • Unix / Linux System Administration - This book covers more system administrators, such as the directory structure of most Unix and Linux file systems (Linux distributions are more diverse than their equivalent Unix copies in how they can structure their file system)

    Other information available:

  • GCC User Guide - Complete GNU GCC Documentation

  • The Bej Network Programming Guide is a really well-written guide to network programming using the BSD API. If you did winsock , this should be mostly familiar to you.
  • Red Hat Enterprise Linux 5 Deployment Guide - talks about the basic administration and deployment of Red Hat EL 5, such as installing with a package manager, Red Hat Directory Structure ...
  • make is a Wikipedia article that will link to various make documentation there
  • binutils are Linux tools used to manipulate objects / binaries.
  • GNU Build System - Wikipedia article on the traditional GNU software build system using autoconf / automake / autogen

You'll also want to learn about ldd , which is similar to running dependencies on Windows. It lists the target binary dependencies, if any.

And for debugging, check out the https://stackoverflow.com/a/3129609/ for more information about the well-written GDB tutorial, as well as links to the IBM manual.

Happy reading.

+7
source share

This is a fairly large and varied list of topics. for the programming part, I think the C ++ library should be portable, things that shouldn't be documented. for the linux-admin part, I suggest you try using Linux as the main desktop system, since many concepts are absorbed in everyday work, there is no magic tutorial

+1
source share

This is a bit wider.
What programs are you going to do? If you stick to standard C ++, you're good to go ... and just the man is everything else.

0
source share

The most important thing you'll need is a 99 percent laptop called "Sys Admin" located next to your computer. Keep track of everything you install / upgrade, including directory location, date, and method.

0
source share

For POSIX and such, I can recommend Advanced Programming in UNIX and with the tab Unified UNIX Specification .

For GCC / GDB and those tools that I'm afraid of, I cannot give you any good recommendations.

Hope this helps.

Edit: Duck was a little faster.

0
source share

A good source is Advanced Linux Programming .

It is free and covers many of you who are looking for

0
source share

All Articles