linux基础知识积累

1.GUN、GCC、gcc、g++区别。(GUN包含GCC,GCC包含gcc、g++、ICC)

GNU:可以看作一个开源平台。里面有大量开源项目。
GCC:GNU中的编译器项目。集成了多种语言的编译器,包括有gcc、g++。
g++:GCC中的c++编译器。
gcc:GCC中的c编译器

2.netstat -an
查询tcp端口

3.查询可执行文件包含哪些动态库方法
readelf -a xxx|grep library

4.gcc编译显示详细细节
gcc --verbose

5.printk的使用及等级调整
cat /proc/sys/kernel/printk
7 4 1 7 (分别对应console_loglevel、default_message_loglevel、minimum_c onsole_loglevel、default_console_loglevel)
#define KERN_EMERG “<0>” 系统崩溃
#define KERN_ALERT "<1>"必须紧急处理
#define KERN_CRIT “<2>” 临界条件,严重的硬软件错误
#define KERN_ERR “<3>” 报告错误
#define KERN_WARNING “<4>” 警告
#define KERN_NOTICE “<5>” 普通但还是须注意
#define KERN_INFO “<6>” 信息
#define KERN_DEBUG “<7>” 调试信息
通过echo 8 > /proc/sys/kernel/printk 可以修改console_loglevel使其打印所有日志

6. sscanf高级用法 正则表达式
用法不详细介绍,网上资料很多,这里简单介绍自己遇到的一种情况
需求描述: 使用sscanf解析如下字符串时,期望从中获取到完整ssid(ssid( TPGuest D7F5)中带有空格字符)
d2:76:e7:db:d7:f5 2457 -44 WPA-PSK-CCMP TPGuest D7F5
问题描述: 上述字符串使用\t隔开,我在解析时使用空格作为分隔符解析,最终导致ssid被截断只获取到TPGuest
解决方法: 在使用sscanf解析时,使用其正则表达式功能,取最后一个元素时对空格字符进行过滤
如:sscanf(line, “%s %d %d %s %[^\n]”, bssid, &freq, &rssi, flags, ssid);

7. linux三剑客 sed、awk、grep, shell脚本中可通过三剑客进行数据解析
sed -i “s/aaa/bbb/” test.txt (将text.txt文本中的aaa替换成bbb)

8.shell脚本使用(循环执行某个命令)
#!/bin/sh
while true
do
echo m 0 2000 100 >proc/xxx
done
如上,执行时通过命令bash xxx & (xxx为sh脚本名称)
常见问题:
a.提示syntax error near unexpected token
将windows下面的CR LF,转换为Linux下面的LF(即转换文本为UNIX,使用notepad++转换即可)

9.makefile 编译告警:
  a. -w : 关闭所有警告,不建议使用
  b. -W 开启所有gcc 能提供的警告
  c. -werror : 将所有警告转为错误,开启该选项,遇到警告会终止编译
d. -Wall: 编译后显示所有警告.
10.节省空间: -ffunction-sections -fdata-sections
使用方法:CFLAGS += -ffunction-sections -fdata-sections
     LDFLAGS += -Wl,–gc-sections

11. xargs的用法
例如 find -name *.h | xargs grep -rni EINVAL,将Find的结果作为grep的参数

12.VM ubuntu 挂在失败处理方法
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

13.删除某个文件中的特定字符 (查看日志时存在刷屏打印)
sed -i ‘/string_to_delete/d’ file.txt

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值