Linux基础知识点小结

1、目录结构   /lib /home /boot /proc /usr /var /mnt /root ……

2、-普通文件  d目录文件  l链接文件  p管道文件  c,b设备文件   s套接字

3、权限:chomd  r 4   w 2   x 1  -  0

4、基本命令:

文件:ls(显示当前目录下的文件)touch(新建普通文件)rm(删除普通文件)rmdir(删除空目录)  cp(拷贝)mkdir(创建目录文件)  mv(重命名)  more(分屏幕显示)  vi/vim(文本编辑)  find (查找文件) grep(tail (查看日志文件) cat(合并文件cat file1->file(将file1文件合并到file 中)) less(查看尾几行文件)head(查看头几行)wc(统计文件数目) ctrl+c(终止进程)ctrl+d(停止输入) ctrl+z(停止进程,还可恢复)lib(库文件) root(管理员) dev(设备文件)tar gzip(解压压缩文件)

进程:ps(查看进程)  kill pid(结束进程)  &(在后台运行程序)  jobs(显示后台和挂起的进程任务)kill -9 pid(强制结束进程)kill -stop pid(挂起进程)pstree(以树状图显示进程)

管理:halt  init  0 ……  useradd(添加用户)   passwd(显示当前工作目录绝对路径) reboot(重启)shutdown(立即关机)ldd(可查看可执行程序用到哪些共享库)

网络:ifconfig  netstat(查看进程连接端口号)   topdump(进行抓包)ltrace(跟踪库函数)

编译:gcc(c语言语法)/g++(按c++语法,默认不连接c++标准库,需要手动指定)

调试:gdb            l,b,n,b,p,c,s,finish,q(具体可见另外一博客)ps -elf(显示当前线程)

监测:taskset 命令 -p 掩码(让进程在指定cpu上运行,让一个进程固定在一个cpu上运行)top(产看负载及内部信息)lsof(列出当前系统打开的所有文件描述符) free(显示当前系统运行统计信息) ipcrm -s/-q/-m id 根据id分别删除信号量,消息队列,共享内存)ipcs -s/-q/-m 分别显示系统的信号量,消息队列,共享内存

5、库文件:预先编译好的方法的集合

libxx.a 静态库 可执行程序用到的方法

程序在链接的过程中,链接器从库文件中取得所需的代码,复制到生成的可执行文件中。因此,静态库是在程序的链接阶段被复制到程序当中,和程序的执行过程没有任何关系。

libxx.so 共享库 可执行程序不包含用到的方法,只做标记

动态库在链接过程中并没有被加载到程序当中,而程序在运行时被系统动态加载到内存当中供程序使用。

                                                                                                                                                                                                          

1.同样的程序,使用静态库比使用共享库,程序更大。

2.静态库在编译链接时,就可加入到可执行程序中,共享库是在运行程序时动态装载。

3.目标主机没有静态库,程序可以运行,没有共享库运行不了。

4.共享库升级后,程序不需要重新编译,可以直接被使用,静态库需要重新编译,链接新方法。

静态库和共享库的区别:

静态库的可执行文件中包含了库代码的一份完整的拷贝,因此,当它被多次使用时就会有多份没用的拷贝在内存中,所以比较占内存,而动态库系统只需载入一次动态库,不同的程序可以得到内存当中相同的动态库的副本,因此会节省很多内存。


5、makefile管理工具

功能:关系到整个工程的编译规则,也可在执行操作做系统的命令,实现自动化编译整个工程3提高编译效率(只会编译修改的和依赖于修改的哪些文件)

编写步骤:现有5个文件,分别为:main.c test1.h test2.h test1.c test2.c

编写makefile文件,名称为makefile过程如下:

main:main.o test1.o test2.o

gcc -o main main.o test1.o test2.o

main.o:main.c test1.h test2.h

gcc -c main.c

test1.o:test1.c test1.h

gcc -c test1.c

test2.o:test2.c test2.h

gcc -c test2.c

clean:rm -f *.o main

执行命令:make 姐可以生成可执行文件main,如果要删除可执行文件及所有的中间目标文件,只需要执行下make clean

**clean不是一个文件,它只是一个动作的名字。

make和makefile的联系:

make是一个命令,makefile是一个文件,当makefile文件写好后,只需要一个make命令就可以将makefile文件运行起来。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章