1. UNIX Philosophy:
Simplicity
Focus
Reusable Components
Filters
Open File Formats
2. Directories:
/bin: Binaries, programs used in booting the system
/usr/bin: User binaries, standard programs available to users
/usr/local/bin: Local binaries, programs specific to an installation
/opt: Optional operating system components and third-party applications
3. PATH variable is divided by ":", not ";"
4. gcc
-o Name option that tells the compiler where to place the executable
-I Specific header files in sub directories or nonstandard places
-l Search a library by the given name, example, -lm is to find lib named "m", full file name is libm.a
-L Add search directory to compile
-c Prevent the compiler from trying to create a complete program, only create object file *.o
5. ar Create archive static library *.a
6. grep example: grep exad *.h Find all ".h" files which contain "exad" text
7. Static library "*.a" will be copied when it is used by many applications, and it will consume large amount of memory and disk space; Share library can be arranged as a single copy, also it can be updated independently by naming libxxx.so.N, N is the version code.
8. Help "man" can show brief manual, "info" will show total manual.