【嵌入式Linux笔记】01-Linux命令、文件类型、vi的使用、虚拟机共享目录设置、gcc编译过程、ubuntu网络配置、系统编译器配置

本文内容:Linux命令、文件类型、vi的使用、虚拟机共享目录设置、gcc编译过程、ubuntu网络配置、系统编译器配置

目录

Linux命令

常用命令

高级命令

文件类型(7种)

vi的使用

虚拟机共享目录的设置

gcc编译过程

ubuntu网络配置:

系统编译器配置


  • Linux命令

常用命令

   1.ls
       列举当前目录下所有的文件和目录(Windows文件夹)
       ls -l
       tree    以树状的形式列举

   2.pwd
       显示当前工作目录

   3.cd 目录名
       进入这个目录
       cd ..    返回上一目录
       cd ~    回家目录
       cd        同上,回家目录
       cd -    返回刚才的工作目录

   4.touch 文件名
       创建一个新文件

   5.c
       清屏(指令:clear,c不是系统的)

   6.mkdir 目录名
       创建一个新目录

   7.rm 文件名(注意!!!一定要谨慎操作,删除就真的没了。)
       删除文件
    rm 目录名 -r    删除目录

   8.cp 旧文件名 新文件名
       复制旧文件,成为新文件。
       cp 文件名 目录名:复制文件到目录中
    
   9.mv 文件名 目录名
       剪切文件到目录中
       mv 旧文件名 新文件名:将旧文件名重命名为新文件名

   10.    chmod 777 文件名
       赋予文件所有权限(最高)
           7    八进制数    --->二进制:111  ---> rwx
           5 ---> 101    -->r-x

高级命令

1.生成软连接,符号链接(类似于windows中的快捷方式)
      ln  文件名   软链接名   -s  (注意不要再共享目录中生成软连接,Windows不支持这种格式)
    生成硬链接 (相当于给文件取了一个别名)
      ln   文件名  硬链接名     (注意不要再共享目录中生成软连接,Windows不支持这种格式)

 2.    查找
        find +文件名
        grep "a" 2.txt -Hnw  (H表示打印文件名字,n打印行号,w全字匹配)
        
 3.输出
        echo  输出字符串
        echo "helloworld"
        cat 2.txt  查看并打印2.txt中的内容

 4.给命令取别名
        alias   c='clear'
    取消别名
        unalias 别名
 
 5.linux在线安装程序
    配置网络:(步骤)
    下载并安装程序:sudo apt-get  install  你要下载安装程序的名字
     卸载程序:apt-get remove  程序名
     更新下载资源: apt-get update
    linux离线安装
    
  6.查看文件属性 file
      file  +文件名
      
  7.linux当中常见的两种压缩文件
        不要在共享目录里面直接解压,可能会导致错误
        查看压缩包里面的内容:    tar -tf 压缩名字    
            bz2结尾:
                    压缩: tar  -jcf  ***.tar.bz2  文件名1  文件名2
                              tar -jcf  88.tar.bz2  1.txt  2.txt  3.txt
                    解压: tar  -jxf  ***.tar.bz2
                              tar  -jxf  88.tar.bz2
            gz结尾:
                    压缩:tar -zcf ***.tar.gz  文件名1  文件名2
                            tar -zcf  88.tar.gz  1.txt  2.txt  3.txt
                    解压: tar  -zxf  ***.tar.bz2
                              tar  -zxf  88.tar.bz2
        -v 可以查看详细的信息 arm-linux-gcc -v
      
  8.查看系统的所有环境变量
       env

  • 文件类型(7种)

            -    普通文件
            d    目录文件
            l    链接文件(link)(类似于Windows快捷方式)
            p    管道文件(Pipe)(进程间通信)
            s    套件字文件(Socket)(网络通信)
            c    字符设备文件(Character)这两种都是硬件的操作文件
            b    块设备文件(Block)

 

  • vi的使用

        vi文本编辑器:
             Linux当中最基础的文本编辑器。
            命令模式:保存,退出,撤销,复制粘贴。。。。
            编辑模式:编辑、输入数据
    
      使用方法:
          使用vi打开文本之后,默认是命令模式,输入 i 切换为编辑模式。
           按下键盘左上角的ESC,切换回命令模式。输入 :wq 保存并退出

vim命令
命令含义
  :wq    保存并退出    
  :q!不保存直接退出
  :w    只保存
  i切换到编辑模式
  a切换到编辑模式,并把光标往后移一位
  o切换到编辑模式,并换行
  u撤销
  ctrl+r恢复
  yy复制一行
  dd    剪切一行
  p    粘贴
  gg    跳到第一行
   G跳到最后一行
:%s/old/new将文件中所有的 old字符串替换成 new

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vi的高级用法
     查找字符串:在命令模式中输入: /查找内容  从前往后查找内容(按字母’n‘不断查找下一个)
                                                ?查找内容      从后往前找
      
     替换字符串:在命令模式输入:  %s/旧的字符串/新的字符串  
                                                    把每一行的第一次出现字符串的位置替换
                                               %s/旧的字符串/新的字符串/g
                                                     把所有的字符串换成新的
                                               n,ms/旧的字符串/新的字符串/g
                                                    把第n行开始到第m行所有替换

    实现代码的跳转 :50gg  跳到50行
    实现代码跳转
    1.安装软件  ctags ---- sudo apt-get install ctags
    2.在项目的最顶层目录创一个关联文件(在创建的目录下运行ctags -R),会生成一个tags文件
    3.配置文件/etc/vim/vimrc
    在50行下面添加
    set ai 
    set tags+=./tags
    set tags+=/usr/include/tags
    进入到/usr/include目录下运行ctags -R
    4.打开项目中任意一个文件把光标移动到函数或变量名上在按ctrl+],返回ctrl+o:

 

  • 虚拟机共享目录的设置

在Windows中设置一个文件夹,将这个文件夹挂载到Linux中。
设置步骤:
    1.在Windows中新建一个文件夹,名字最好是英文。
    2.虚拟机-设置-选项-共享文件夹-选择已启用-将上面的文件夹添加到里面去
    3.看看是否挂载成功?进入挂载目录
        cd /mnt/hgfs/winshare(输入cd /mn 之后一直按TAB键可以自动补齐)
备注:
    1.如果进入cd /mnt/hgfs之后,下面没有任何目录,说明挂载失败。
        解决方法:先将当前的Ubuntu关机。
                打开VMware的安装目录,找到 vmplayer(三个黄色的箭头)
                打开虚拟机,找到Ubuntu标准教学系统。
                进入之后,再去看看是否有挂载目录
                    cd /mnt/hgfs/winshare
    2.建好共享目录之后,以后就可以在Windows环境写代码了~可以自己下载代码编辑器:Notepad++、Sublime、VC

 

  • gcc编译过程

编译指令:gcc hello.c -o hello
                     gcc     调用gcc编译器
                     hello.c 待编译的.c文件(可以1个以上,中间使用空格隔开)
                     -o         输出选项(output)
                     hello    最终程序名(名字可以随便取)

另外的编译指令:
        gcc -o hello hello.c
        gcc hello.c        (直接输出为  a.out 程序)

上面的编译指令,对于一个.c文件来说,编译过程分为4步:
        1.预处理 :gcc hello.c -E -o hello.i
            一般来说,生成.i文件
            使用预处理器cpp,完成宏展开,处理条件编译,删除注释工作。
            
        2.编译 (翻译):gcc hello.c -S -o hello.s
            一般来说,生成.s文件
            调用编译器cc1,把源程序翻译成对应于目标系统的汇编文件.s
            
        3.汇编 :gcc hello.c -c -o hello.o
            一般来说,生成.o文件
            调用汇编器as,将汇编指令翻译成机器指令,生成可重定位目标文件
            
        4.链接 :gcc hello.c -o hello
            将以上所有内容进行链接,最终生成程序
            调用链接器ld,将生成的可重定位文件与相关库文件链接,生成可执行目标文件

刚开始写代码,最好在编译指令后面加上 -Wall    ,让编辑器不忽略任何警告。
    
编译时:    
test.c:5:2: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration]
test.c:5:2: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
    解决方法:加上‘printf’这个函数的头文件

  • ubuntu网络配置:

1,检查电脑网线是否插好,确保 虚拟机---设置---网络适配器---已连接,桥接模式

2,检查网络是否通畅,如果没返回信息出来,往下面看。
   ping www.baidu.com

3,使用ifconfig查看当前活跃网络接口,是否有eth0(有线网卡)
   ifconfig

4,配置IP地址、子网掩码、网关地址
   sudo vi /etc/network/interfaces

    a.)确保此文件中有以下信息:(固定IP地址为192.168.12.xxx)
    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 192.168.12.xxx
    gateway 192.168.12.1
    netmask 255.255.255.0

    b.)或者:(动态IP地址,就是系统自动获取IP)
    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet dhcp


5,重启网络服务(ubuntu-12.04)
   sudo /etc/init.d/networking force-reload
   sudo /etc/init.d/networking restart

   重启网络服务(ubuntu-14.04以上)
   sudo service networking force-reload
   sudo service networking restart


6,配置DNS服务
   sudo vi /etc/resolvconf/resolv.conf.d/base
    确保此文件中有以下信息:

    nameserver 113.57.184.2
    nameserver 114.114.114.114
    nameserver 202.114.176.10


7,重启DNS服务
   sudo /etc/init.d/resolvconf restart(ubuntu-12.04)
   sudo service resolvconf restart(ubuntu-14.04以上)


8,重新启停以下虚拟网卡
   sudo ifconfig eth0 down
   sudo ifconfig eth0 up


9,手工添加默认网关
   sudo route add default gw 192.168.12.1


10,终极大招:重启电脑

11,如果还是不行,选择VM虚拟机---编辑---虚拟网络编辑器---还原默认设置。

  • 系统编译器配置

windows --》可执行程序是exe格式
linux      --》可执行程序ELF格式
LSB        --》小端序
gcc        --》只适合在intel的x86平台cpu上运行(预处理,编译,汇编,链接)
     arm-linux-gcc ---》开发板使用的是ARM架构的cpu
  (1)ARM架构--->ARM架构的cpu
           手机,平板
           ARM -->英国一家半导体公司,负责芯片的内核设计,自己不生成芯片
           ARM架构的芯片:分为两大系列
                    cortex  A  --》高端应用场合(手机)  A7  A8  A15  A53  A73
                    cortex  M  --》低端  stm32(比51单片高级)
  (2)安装交叉工具链
           arm-linux-as            编译ARM 汇编程序 
           arm-linux-ar            把多个.o 合并成一个.o 或静态库(.a) 
           arm-linux-ranlib        为库文件建立索引,相当于arm-linux-ar 
           arm-linux-ld            连接器(Linker), 把多个.o 或库文件连接成一个可执行文件 
           arm-linux-objdump       查看目标文件(.o)和库(.a)的信息    
           arm-linux-objcopy       转换可执行文件的格式 
           arm-linux-strip         去掉elf 可执行文件的信息. 使可执行文件变小 
           arm-linux-readelf       读elf 可执行文件的信息 
           arm-linux-gcc           编译.c 或.S 开头的C 程序或汇编程序 
           arm-linux-g++           编译c++程序 
         开发板上不允许编译程序的
         交叉编译:程序编写,编译在PC端进行,但是程序的运行是在开发板上执行
    步骤:
            1.将压缩包拷贝到家目录(纯粹的linux环境中),然后解压
            2.设置环境变量(如果不设置,每次要写arm-linux-gcc的绝对路径,很麻烦)
                 环境变量:系统默认的一个路径
                 export PATH=/home/gec/arm-2009q3/bin:$PATH
                 
                 
    步骤:
  a.将arm-linux-gcc-4.4.3.tar.gz解压到Ubuntu
    cd /mnt/hgfs
    sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C /
  b.将交叉编译工具拷贝到用户目录
    cd /opt/FriendlyARM/toolschain
    sudo cp 4.4.3 /usr/local/arm -rf
  c.配置环境变量
    vi ~/.bashrc
    修改最后两行的环境变量
    export PATH=/usr/local/arm/4.4.3/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/arm/4.4.3/lib:$LD_LIBRARY_PATH 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason~shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值