美文网首页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