Linux笔记

  1. linux下载源的指定.目录为/etc/yum.repos.d/Centos-Base.repo

修改其中的url即可,最后执行,yum clean all;yum makecache;yum update;

 

  1. ifconfig命令not found.一般是环境变量没有配置好

修改如下:export PATH=$PATH:/sbin

 

  1. Centos安装命令:yum install xxxx.

例如:安装g++环境,yum install gcc-c++;

安装rz,sz,yum install lrzsz;

 

  1. tar解压命令:

tar -xf filename

tar -cvzf xxxx.tat xxx(目录)

 

  1. C++/C头文件和库文件的设置:home目录下的.bashrc进行修改.如下:

/home/wanghui/.bashrc.其中,C_INCLUDE_PATH c的头文件目录;

CPLUS_INCLUDE_PATHC++头文件目录;LD_LIBRARY_PATH为动态链接库;LIBRARY_PATH为静态链接库

例子如下:

# User specific aliases and functions

#c

export C_INCLUDE_PATH=/home/wanghui/lib/hpr/hpr/include/:$C_INCLUDE_PATH

#cpp

export CPLUS_INCLUDE_PATH=/home/wanghui/lib/hpr/hpr/include/:$CPLUS_INCLUDE_PATH

#ld

export LD_LIBRARY_PATH=/home/wanghui/lib/hpr/hpr/linux/64/:$LD_LIBRARY_PATH

#sld

export LIBRARY_PATH=/home/wanghui/lib/hpr/hpr/linux/64/:$LIBRARY_PATH

 

  1. 使动链接库生效的方式:修改/etc/ld.so.conf配置文件,加入自定义的链接库路径即可.最后,运行/sbin/ldconfig -v; 启动生效.

 

  1. Ctrl+z切换到后台,fg %d把后台进程1,切换到前台;

Jobs查看后台进程

 

  1. g++ 的参数含义:
    1. -c 编译/汇编到目标代码,不进行连接,即生成目标文件(.o)
    1. -o 生成可执行的程序,期间如果需要链接动态库,需要加上-l
    1. -l 链接上动态链接库

 

  1. 关于vim的基本操作:
    1. yy复制一整行
    1. dd剪切一整行
    1. p粘贴
    1. u撤销

 

  1. 关闭防火墙:

service方式: service iptables start //开启

                        service iptables stop //关闭

iptables方式:/etc/init.d/iptables stop

/etc/init.d/iptables start

 

  1. 删除带特殊字符的文件: ls -ilrt; find -inum xxxxx -exec rm '{}' \;

 

 

  1. linux一般默认有设置最大的连接数量,可以通过修改open file的个数来增大数量.操作如下:

ulimit -a 查看open files的个数

Vi /etc/security/limits.conf 进行修改配置,在最后一行添加

  • Soft nofile 32768
  • Hard nofile 32768
  • 设置完后,重新启动系统.

 

  1. 查看端口是否被占用: netstat -apn | grep xxxx

 

  1. 生成静态库的方法: ar crv libxxx.a yyy.o

主要是通过 .o文件来生成静态库

 

  1. 使用静态库的方法

在编译的时候加上 -L. -lxxx;

-L表示指定lib库文件的搜索路径

-lxxx表示指定的lib库名称

-I 表示头文件目录

 

  1. error while loading shared libraries的解決方法

那就表示系统不知道xxx.so 放在哪个目录下。

這个時候就要在/etc/ld.so.conf中加入xxx.so所在的目录。

 一般而言,有很多so檔會在/usr/local/lib這個目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行,可以解決此問題。

  /etc/ld.so.conf存檔後,還要執行「/sbin/ldconfig –v」來更新一下才會生效。

 

  1. makefile中的几个常用符号

$@ 目标文件

$^   所有的依赖文件

$<   第一个依赖文件

 

  1. LIBRARY_PATH环境变量:指定程序静态链接库文件搜索路径

LD_LIBRARY_PATH环境变量:指定程序动态链接库文件搜索路径

  1. 查看目录结构 tree

1,静态库是怎么生成的?

答:.o文件打包生成的。

 

2.o文件编译需要依赖定义吗?

答:不需要

 

3,动态库是怎么生成的?

答:.o文件链接生成的。根据2可知必须在链接时指定外部动态库。

 

4,使用静态库怎么用?

答:直接当作一堆.o参与链接即可,如果某.o依赖外部定义,此时链入即可。

 

5,使用动态库怎么用?

答:包含头文件编译自己的源码生成.o,链接时引入动态库提供定义。

 

6,动态库A还依赖动态库B,会影响使用动态库A的程序吗?

答:不会,程序只要链入动态库A即可,动态库A已经链接过,它知道去哪里找自己需要的B

 

  1. 动态库中调用静态库时,静态在编译的时候需要加上-fPIC

你可能感兴趣的:(linux)