美文网首页LinuxLinux学习之路嵌入式 Linux C ARM
Linux嵌入式开发日常技术总结(4)

Linux嵌入式开发日常技术总结(4)

作者: QuietHeart | 来源:发表于2020-11-21 21:35 被阅读0次

    Misc

    file

    显示文件总体信息

    $file libbrowser_engine.so
    libbrowser_engine.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped
    
    $file browser
    /browser: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.35, not stripped
    
    $file opera-devices-sdk-4.9.0.176.Wagoner.135-MTK5800.tar.gz 
    opera-devices-sdk-4.9.0.176.Wagoner.135-MTK5800.tar.gz: gzip compressed data, from Unix, last modified: Tue Sep  5 20:18:27 2017
    

    strings

    查看二进制文件中字符串

    $ls
    hello.c  Makefile
    $cat hello.c 
    #include <stdio.h>
    int main(int argc, char *argv[])
    {
            printf("hello!\n");
            return 0;
    }
    $make
    /mtkoss/gnuarm/neon_4.8.2_2.6.35_cortex-a9-ubuntu/x86_64/bin/armv7a-mediatek482_001_neon-linux-gnueabi-gcc hello.c -o hello
    $strings hello
    /lib/ld-linux.so.3
    libgcc_s.so.1
    _ITM_deregisterTMCloneTable
    __gmon_start__
    __aeabi_unwind_cpp_pr0
    _Jv_RegisterClasses
    _ITM_registerTMCloneTable
    __aeabi_unwind_cpp_pr1
    libc.so.6
    puts
    abort
    __libc_start_main
    GLIBC_2.4
    GCC_3.5
    hello!
    
    $strings /etc/ld.so.cache |head -n 10
    ld.so-1.7.0
    glibc-ld.so.cache1.1N
    libz.so.1
    /lib/x86_64-linux-gnu/libz.so.1
    libz.so.1
    /lib/i386-linux-gnu/libz.so.1
    libz.so
    /usr/lib/x86_64-linux-gnu/libz.so
    libz.so
    /usr/lib/i386-linux-gnu/libz.so
    
    $strings liba.so |grep "funca"
    

    screen

    保存与恢复会话(在一些远程登陆如ssh是经常使用)

    1. 首先远程登陆,启动screen

      $ssh xxxx
      $screen
      $...任何正常操作...
      $make
      $...
      
    2. 客户端断开远程链接,但是进程在server端实际还在运行在screen中的远程操作

      断开的原因可能是由于网络,或者客户端电脑的电源管理自动断开等原因。

    3. 再次登陆,恢复之前的会话状态

      $ssh xxxx
      $screen -r
      $...在这里你可以看到之前会话中工作的情况,并且相关的工作仍然在自动运行着...
      
    4. 其它

      参考: man screen, 如 screen -x 用于共享屏幕。

    md5sum

    查看两个文件(比如很大的二进制文件)是否一样

    $md5sum geany-1.25.tar.gz 
    8b60cc7f295fba0118f04fab4db2364a  geany-1.25.tar.gz
    $md5sum rgits.py 
    7b799c601ff2c4d602dff4e72413ca20  rgits.py
    $cp rgits.py rgits.py.bak
    $md5sum rgits.py.bak 
    7b799c601ff2c4d602dff4e72413ca20  rgits.py.bak
    

    sshfs

    挂载远程ssh服务器上的一个目录,(e.g. 将215服务器挂载到本地目录)

    在 172.16.246.215中:

    $ls /home/miracle.lv
    2k18                        bin
    

    在本地:

    $ls mnt/215/
    
    $sshfs miracle.lv@172.16.246.215:/home/miracle.lv/ mnt/215
    $ls mnt/215/
    2k18                        bin
    

    远程文件传输

    SendAnyWhere(国际)

    官网: https://send-anywhere.com/

    支持方式:

    1. 点对点传输
    2. 网页中转传输

    可以不用账号。

    Gdriver(国际)

    网址:drive.google.com

    需要Gdriver账号上传喝下载。

    Cowtransfer(国内)

    官网:https://cowtransfer.com/

    类似wetransfer,通过网页方式上传下载,可无需账号。

    Mega(世界)

    网站:https://cowtransfer.com/

    通过网盘账号上传下载。

    Wps(国内)

    网站:drive.wps.cn

    需要云盘账号上传下载。

    nc

    Linux命令

    client on windows(cygwin):
    nc -l 55555 | tar xzvf -
    
    server:
    tar czvf - <your dir/file> | nc 172.16.246.210 55555
    

    scp

    Linux命令

    $scp 172.16.246.220:/home/share/miracle/2k18masfn/opera_sdk/opera-devices-sdk-4.11.3.57.Carter2.283-MTK5596.tar.gz .
    $scp ./opera-devices-sdk-4.11.3.57.Carter2.283-MTK5596.tar.gz 172.16.246.220:/home/share/miracle/2k18masfn/opera_sdk/

    相关文章

      网友评论

        本文标题:Linux嵌入式开发日常技术总结(4)

        本文链接:https://www.haomeiwen.com/subject/szgebktx.html