嵌入式開發經常使用的一些命令

  • 文件查找

find * -name "xarina_evb_defconfig"  html

grep "TEXT_BASE" * -nRlinux

find . ! -name "*.txt" -print   搜索除了*.txt以外的文件git

 

  • 查看文件的實際內容

od -c peng.txt   vim

-c 表示以字符方式打印文件的內容數組

  • 嵌入式開發之清除root開機密碼

passwd -d rootbash

  • 文件權限和所屬chmod chown

chown http.http /etc/httpd // 將目錄/etc/httpd 的屬主修改成 http,組修改成 http架構

chmod 的經常使用選項: -R 對指定目錄全部文件和子目錄遞歸式地進行一樣的操做
-h 若是 file_name 是符號連接,則只對符號連接自己進行操做
less

chgrp http /etc/httpd// 將目錄/etc/httpd 的所屬組修改成 httptcp

  • 符號鏈接

ln -s source_path target_pathsvn

  • 在開發板上掛載PC機上的目錄:

      mount  -t nfs  -o nolock -o tcp 192.168.8.129:/source/rootfs  /mnt/nfs

  •  開發板上uboot下的復位命令

      reset

  • 開發板上Linux下的復位命令:

      reboot

  •  當前目錄的大小:du -sh .
  •  當前目錄中全部文件的大小:du  -Sh
  • 拷貝連接文件時,用CP命令,應該加上 -raf 參數
  • 參看磁盤使用率  df  -h  或者 df  -m
  • xxd

 這是另一個讓我難以置信是最近才知道的命令。xxd能夠生成所給與文件的十六進制拷貝,也能夠將編輯好的十六進制拷貝還原成二進制格式。它也能夠將十六進制拷貝輸出成C的數組,,這個操做很方便:

 

 我也用這個命令來經過比較兩個文件的十六進制拷貝來比較兩個二進制文件。要查看更多信息,請參考 xxd man page(http://linuxcommand.org/man_pages/xxd1.html )

  •  ps aux | grep telnet
  •  察看可執行程序所依賴的庫: objdump -x XXXX | grep -Shared
  •  清除NandFlash中的壞塊標記   nand scrub
  •  遞歸將A目錄下的全部的C文件拷貝到B目錄下: 查看壓縮包中有哪些文件: tar -vtf A.tar.gz 查看可執行程序依賴那些庫: objdump -x XXX | grep NEEDED
  •  find A -name "*.c" -print0 | xargs -0 -I {} cp {} B (這裏須要注意的是:-print後面的那個是零,不是字母,xargs後面的那個參數也是零,不是字母0)
  •  grep 排除文件和目錄: grep --exclude-dir=".svn" U_BOOT_CMD * -nR --exclude="cscope.out"
  •  反彙編

                                    objdump -D -S file_elf > file_dis  

注意:若是file_elf文件沒有strip,那麼反彙編以後在file_dis文件中會同時出現c和彙編。-S 的做用就是反彙編的時候同時假如C源代碼,要顯示C代碼,那麼在編譯生成file_elf文件的時候應該加上-g。

  • 批量修改文件的建立時間     find -name "*" | xargs touch
  • 在vim中刪除空白行    :g/^$/d
  • 安裝某個軟件時,忘記名字,如想安裝openjdk7,可是名字記不全了:

    sudo apt-cache searce openjdk*

         就會列出符合的軟件包的名字:

...... openjdk-6-doc - OpenJDK Development Kit (JDK) documentation openjdk-6-jdk - OpenJDK Development Kit (JDK) openjdk-6-jre - OpenJDK Java runtime, using Hotspot JIT openjdk-6-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless) openjdk-6-jre-lib - OpenJDK Java runtime (architecture independent libraries) ...... openjdk-6-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark openjdk-7-dbg - Java runtime based on OpenJDK (debugging symbols) openjdk-7-demo - Java runtime based on OpenJDK (demos and examples) openjdk-7-doc - OpenJDK Development Kit (JDK) documentation openjdk-7-jdk - OpenJDK Development Kit (JDK) openjdk-7-jre - OpenJDK Java runtime, using Hotspot JIT openjdk-7-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
.....
  •  使用awk命令刪除文件中包含某個字符串的行:
awk '{if(/WindowManager/); else print $0}' richard.log-1 > richard.log-2
  •  ps -AF  能夠顯示PID和PPID
  •  nfs啓動   setenv bootargs root=/dev/nfs nfsroot=192.168.9.120:/source/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.9.233
  •  yaffs2 根文件系統掛載 setenv bootargs 'noinitrd root=/dev/mtdblock2 rootfstype=yaffs2  init=/linuxrc console=ttySAC0,115200n8'
  •  批量刪除文件中的^M  find -type f | xargs sed -i 's/^M//'  (注意:^M 的輸入  Ctrl+V Ctrl+M)
  • 查看bash提供的快捷鍵: bind -p | grep -v '^\#' | grep -v "self-insert"
  • 多種高亮: ,m    此外,還能夠選中要高亮的字符串,而後,m
  • 在當前文件中篩選光標下的字符串,並放到quickfix窗口中: ,lv
  • 若是根目錄是以只讀的方式掛載的,可使用右面的命令從新掛載,增長寫權限: mount -o remount,rw /
  • 刪除log文件中包含指定字符串的行: sed -e /LOGGER/d  -e /Binder_1/d   logcat.2 -i
  • 查看某個文件的改動記錄: git log   --pretty=oneline  sound/soc/soc-compress.c | awk '{print $1}' | xargs git show
  • 查看linux源碼的時候,生成某個架構相關的文件的tags: make ARCH=arm64 tags 或者 make ARCH=x86 tags 或者 make ARCH=arm tags
  • 查看二進制文件內容: hexdump -C file 或者 xxd file

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 ==

相關文章
相關標籤/搜索