-------------------------配置网络--------------------------
//查看网卡
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
//查看网卡
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
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:统计符号链接所指向的文件占用的磁盘空间大小
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:显示版本信息。
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
.生成静态链接库:
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"(传递了三个参数)
$# 是传给脚本的参数个数
$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)
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. 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)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>
(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。
(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
1. CFLAGS:指定头文件的路径,如CFLAGS=-l/user/include
表示用于C编译器的选项。