嵌入式-基础二

SSH服务
检查安装了那些:dpkg –l |grep –i ssh #应安装 server 和client(自带)
安装:apt-get install openssh-server
提示解析失败原因:1.中途更换网络,重启解决。
2.改/etc/resolvconf/resolv.conf.d/base文件,
加入dns服务器地址:nameserver 202.96.134.133
nameserver 8.8.8.8
sudo /etc/init.d/ssh start # 启动服务

一个test.c文件的 预处理,编译,汇编,链接

#include<stdio.h>
int main()
{
  printf("wrap me in plastic ");
}

法1:gcc -o test.exe test.c

  ./test.exe

法2:  gcc -E test.c > test.i  #预处理

    gcc -S test.i -o test.s  #编译

    gcc -c test.s -o test.o  #汇编

    gcc test.o -o test.exe  #链接

    ./test.exe        #执行

*****标准I/O

 

使用sudo apt-get install 安装软件的时候报错:

dpkg: 处理归档 /var/cache/apt/archives/libexpat1-dev_2.2.5-3_amd64.deb (--unpack)时出错:
 正试图覆盖 /usr/include/expat.h,它同时被包含于软件包 expat-devel 2.2.6-2
dpkg-deb: 错误: 子进程 粘贴 被信号(断开的管道) 终止了
在处理时有错误发生:
 /var/cache/apt/archives/libexpat1-dev_2.2.5-3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

终端输入  sudo dpkg -i --force-overwrite /var/cache/apt/archives/*.deb  然后再执行就没问题了

 makefile 编写例子

  包含本目录下的.h文件,使用include" "  ,make 过后正常运行可执行文件使用命令  ./

  若会修改头文件,将头文件包含到main.c中,这样每次编译一定会重新编译到

  第一个目标文件指定完备所有的依赖文件。例如

1 main:main.o aa.o bb.o  
2     gcc -o main main.o aa.o bb.o    #行前要有Tab
3 aa.o:
4     gcc -o aa.o -c aa.c
5 .PHONY:clean rebuild
6 clean:
7     rm -f main.o aa.o bb.o *~
rebuild:clean main

 变量方式

    变量分类:用户自定义变量,自动变量,预定义变量,环境变量。

  格式:变量名:=变量值  或  变量名=变量值

  

1 SOURCE:=test.o 1.c
2 EXE:=test
3 $(EXE):$(SOURCE)
4      gcc -o $(EXE) -c test.c
5 test.o:test.c   
7     gcc -o test.o -c test.c

 隐含规则:.o文件自动依赖.c或.cc文件,是cc编译器进行编译,  上面蓝色的规则可缺省。

%.o:%.c      #采用模式匹配,指定gcc编译器编译
gcc -o $@ -c $^  #必须这种格式,可以不报错

自动变量:$@  当前规则目标文件  #写在规则里面用作代替

$<  当前规则第一个依赖文件  $^  所有的依赖文件

eg:

$(EXE):$(SOURCE)
     gcc -o $@ $^  #这两个是不一样的,命令前加 @  静默执行,将不显示命令

test.o:test.c
    gcc -o $@ -c $^
预定义变量:系统里面设定好的变量
  把生成的后缀相同文件放到指定位置,每一个生成的变量前面都要引用目录变量。
DIR:=./mulu/
$(DIR)test:$(DIR)test.o $(DIR)1.o
  gcc -o $(DIR)test $(DIR)test.o $(DIR)1.o -c test.c 1.c

 执行时  ./test  就可以

当makefile文档名不是 makefile时执行时加上 make -f filename

两系统间复制粘贴:

第一步: sudo apt-get autoremove open-vm-tools

第二步:sudo apt-get install open-vm-tools-desktop


定时清理内存:

  创建cleanCache.sh

#!/bin/bash
# 每一小时清除一次缓存
echo "开始清除缓存"
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 3 > /proc/sys/vm/drop_caches

chmod +x cleanCache.sh  #设置可执行

./cleanCache.sh    #以管理员身份创建任务

修改/etc/rsyslog.d/50-default.conf   文件,删除 cron.* 前面的注释符号#

sudo  service rsyslog  restart 

sudo  service cron restart 

#######若提示没有cron,尝试 :apt-get install --reinstall rsyslog  再运行  ./cleanCache.sh

查看日志文件:tail -f /var/log/cron.log  #按CTRL+c退出

 

原文地址:https://www.cnblogs.com/wddx5/p/12402641.html