linux知识学习,总结常用

来源:互联网 发布:mysql数据库的增删改查 编辑:程序博客网 时间:2024/05/17 08:25

-------------------------配置网络--------------------------
//查看网卡
ifconfig -a
//配置网卡IP和网关
ifconfig eth2 192.168.1.227 netmask 255.255.255.0 up
//重启网卡
ifconfig eth2 up
//配置路由
route add default gw 192.168.1.1
//DNS配置文件
DNS: /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
-------------------------shell 命令--------------------------
1.du  
(1)du -sh 目录:查看目录所占总大小
 du -ah 目录:查看目录下所有文件分别所在大小
 du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
(2)du常用的选项:
  -h:以人类可读的方式显示
  -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
  -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
  -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  --apparent-size:显示目录或文件自身的大小
  -l :统计硬链接占用磁盘空间的大小
  -L:统计符号链接所指向的文件占用的磁盘空间大小
2. cp -R 源目录名 新目录名:拷贝目录及目录下所有文件
3. ./执行文件名 &:设置执行进程为后台进程,退出shell运行的命令可以继续运行。
4. vi编辑器永久显示行号
   vi ~/.vimrc文件中写入 set nu 保存推出。
5. ld 命令是GNU的连接器,将目标文件连接为可执行程序。
6. ln命令
 ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如 果要创建符号连接必须使用"-s"选项。
 注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置 存取权限是没有意义的。
   语法
 ln(选项)(参数)
 选项
 -b或--backup:删除,覆盖目标文件之前的备份;
 -d或-F或——directory:建立目录的硬连接;
 -f或——force:强行建立文件或目录的连接,不论文件或目录是否存在;
 -i或——interactive:覆盖既有文件之前先询问用户;
 -n或--no-dereference:把符号连接的目的目录视为一般文件;
 -s或——symbolic:对源文件建立符号连接,而非硬连接;
 -S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字  尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;
 -v或——verbose:显示指令执行过程;
 -V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾  会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指  定不同备份方式时,也会产生不同字尾的备份字符串;
 --help:在线帮助;
 --version:显示版本信息。
7. cp -fp:强制拷贝文件并保留源文件或目录的属性
8. -m32为生成32位的动态链接库,-m64位生成64位的动态链接库。
   .生成静态链接库:
   g++ -m32 hello1.cpp -c -o hello1.o //编译hello1.cpp 生成中间文件hello1.o
   g++ -m32 hello2.cpp -c -o hello2.o //编译hello2.cpp 生成中间文件hello1.o
   ar rcs libhello.a hello2.o hello1.o //将hello1.o和hello2.o添加到静态链接库
  .生成动态链接库:
   g++ -m32 hello1.cpp hello2.cpp -fPIC -shared -o ../lib/linux32/libhello.so
9. Linux中变量#,@,0,1,2,*,$$,$?的含义
 $# 是传给脚本的参数个数
 $0 是脚本本身的名字
 $1 是传递给该shell脚本的第一个参数
 $2 是传递给该shell脚本的第二个参数
 $@ 是传给脚本的所有参数的列表
 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
 $$ 是脚本运行的当前进程ID号
 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
 区别:@*
 相同点:都是引用所有参数
 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在123)
 则"*" 等价于"123"(传递了一个参数);而"@" 等价于 "1""2" "$3"(传递了三个参数)
10. 查看当前时间
date:     2017年 09月 03日 星期日 12:38:48 CST
date +"%H:%M:%S": 时(24小时制)分(00-59)秒(00-59)
date +"%Y-%m-%d": 年  月(01-12)日(01-31)


-------------------------linux 环境下库的编译和安装--------------------------
1. linux编译jsoncpp
(1) 下载jsoncpp源码(https://github.com/open-source-parsers/jsoncpp ),解压后得到jsoncpp-master文件夹。终端下进入jsoncpp-master目录。
(2)SCons工具编译jsoncpp库
   安装SCons,直接在终端敲命令即可完成SCons安装。
      sudo apt-get install scons  
(3)在终端jsoncpp-master目录运行 scons platform=linux-gcc
(4)生成的动态库和静态库:libs/linux-gcc-4.4.7/
 libjson_linux-gcc-4.4.7_libmt.a
 libjson_linux-gcc-4.4.7_libmt.so
2. linux编译MIRACL
 
(Miracl是一个用C语言写的,主要用来操作大数的密码开发库。)
(1) 从github上下载其源码-https://github.com/miracl/MIRACL
(2) 新建目录miracl,将zip包拷贝进去
(3)进入miracl目录,解压命令 unzip -j -aa -L MIRACL.zip
(4) 32位系统执行 bash linux;64位系统执行bashlinux64
(5) 测试编译是否成功:./pk-demo,无报错标志编译成功
(6) 测试执行正确但是并不表明安装成功,为了避免出现以下错误:
        fatal error: sys/cdefs.h: No such file or directory
 $sudo apt-get purge libc6-dev
 或者32位:
 sudo apt-get install libc6-dev-i386
    编译完成之后生成链接文件miracl.a,应该将其放在系统对应的/usr/lib
 $cp /miracl/miracl.a /usr/lib/libmiracl.a
 并且在/usr/include下面建立文件夹miracl,执行:
 $cp /miracl/*.h /usr/include/miracl
    调用miracl时便可直接在自己的程序头文件中加入:
 include <miracl/miracl.h>
3. linux编译openssl
(1) 安装zlib
(2) 下载源码https://www.openssl.org/,解压(tar -zxvf openssl-xxx.tar.gz)得到openssl-xxx目录。
终端进入openssl-xxx目录
(3) OpenSSL默认安装路径是:/usr/local/ssl,
    Module type : dynamically and staticly loaded modules, *.so *.a。
    prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库。
 openssl-xxx]# ./config  --prefix=/usr/local --openssldir=/usr/local/ssl  
 openssl-xxx]# make  
 openssl-xxx]# make install  
  
    // 建议只生成动态链接库  
 openssl-xxx]# ./config shared --prefix=/usr/local --openssldir=/usr/local/ssl  
 openssl-xxx]# make clean  
 openssl-xxx]# make   
 openssl-xxx]# make install
(4) 更新系统
 vim /etc/ld.so.conf  
 添加/usr/local/ssl,然后运行ldconfig。
(5) 使用
 头文件目录 /usr/local/ssl/include  
 gcc编译的时候加-lssl,同时指定libssl.so。









-------------------------Makefile 选项--------------------------
1. CFLAGS:指定头文件的路径,如CFLAGS=-l/user/include
表示用于C编译器的选项。

原创粉丝点击