Linux常用命令

2017年4月29日 没有评论

Linux常用命令


Ctrl-R : 查找历史命令
Ctrl-W : 删除最后一个单词
Ctrl-U : 删除一行
cd – : 回到上一次的工作目录
man bash查找Readline Key Bindings一节来看看bash的默认热键
使用 mtr 会比使用 traceroute 要更容易定位一个网络问题。

Linux查看文件夹大小du -sh 查看当前文件夹大小

du -sh * | sort -n #统计当前文件夹(目录)大小,并按文件大小排序

Notepad++中用正则表达式匹配中文 通常正则表达式匹配中文可以利用Unicode的特点,使用[\u4e00-\u9fa5]匹配。但在Notepad++中不能正常使用。 解决方法是,首先将编码转换成Unicode(菜单->格式->转换为UTF-8,如果不转换可能匹配出错),然后使用[\x{4e00}-\x{9fa5}]就可以实现匹配中文了。

android.(text|hint).*[\x{4e00}-\x{9fa5}]+.*
date +"%Y-%m-%d %T"

file -sL /dev/sd*     //  How do I tell what sort of data (what data format) is in a file?
UUID=3c05a2da-4e6b-4ba7-855e-62914e67c99f /home/war/aosp  ext3    defaults rw 0 0    // sudo vi /etc/fstab
/dev/sda1       /work/          ntfs    defaults,umask=022,uid=1000,gid=1000          0       0
/dev/sda5       /media/         ntfs    defaults,umask=022,uid=1000,gid=1000          0       0
/dev/sda6       /aosp/          ntfs    defaults,umask=022,uid=1000,gid=1000          0       0
sudo ntfslabel /dev/sdb1 my_external   //修改ntfs卷的Label
sudo e2label  

reads a file passed as an argument line by line:


#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
    #echo "Text read from file: $line"
    grep -q \"$line\" strings.xml
    if [ $? != 0 ]; then
        echo $line, "unmatched"
    fi
done < "$1"
分类: Linux 标签: ,

Android 刷机常用命令

2017年4月29日 没有评论

Android 刷机常用命令


刷机指导-Android

ROM Flashing
  • 1、下载合适的ROM
  • 2、拷贝zip格式的ROM文件,到SD卡
  • 3、重启并进入recovery模式
  • 4、备份手机,清除数据
  • 5、菜单选择刷机
  • 6、选择ROM文件
  • 7、确定
  • 8、成功后重启
RUU Flashing
  • 1、Android设备连接电脑。
  • 2、下载ROM升级工具(ROM Upgrade Utilities (RUUs))
  • 3、手机通过USB连接电脑,运行RUU
  • 4、按照RUU说明刷机
  • 5、正在刷机,除非出错
Android Flashing Guide (with fastboot)
Prerequisites(前提)
  • 需要未锁定的bootloader或开发模式的bootloader
Unlocking your bootloader(解锁bootloader)
  • Nexus One (cannot be relocked).
    • fastboot oem unlock
    • 接受/拒绝屏幕警告
  • Nexus S (can be unlocked and relocked)
    • fastboot oem unlock
    • 接受/拒绝屏幕警告
    • fastboot oem lock  //重新锁定bootloader
ROM Flashing
  • 1、下载ROM,记录ROM在PC上的路径
  • 2、重启手机进入fastboot mode,通过下面两种方法之一
    • 1、adb reboot bootloader (需要USB调试开关打开).
    • 2、关机长按音量加和电源按钮
  • 3、清除手机数据
    • fastboot -w
  • 4、升级到ROM
    • fastboot update </path/to/your/RomFile.zip>
  • 5、你的手机将刷机并自动重启到新的ROM
ROM update without SDcard

如果没有SD卡或者SD卡的卡槽坏了,需要第三方recovery如TWRP

  • 1、进入手机Recovery模式
  • 2、adb shell
  • 3、mount data
  • 4、Ctrl+C
  • 5、adb push </path/to/your/RomFile.zip> /data/
  • 6、等待ROM包上传完成,使用命令adb reboot-bootloader重新进入recovery
  • 7、mount data
  • 8、mount /data /sdcard (挂载data文件夹到sdcard挂载点)
  • 9、定位ROM的zip文件
  • 10、确认刷机
  • 11、刷机无错误,重启系统
  • 12、删除data下的ROM刷机包(在ROOT权限下,使用文件浏览器删除,或者命令adb shell rm </path/to/your/RomFile.zip>删除)

安装第三方Recovery

主要有三种标准方法安装第三方Recovery

  • 使用ROM Manager or GooManager
  • 使用Fastboot
  • 使用flash_image
Install ClockworkMod Recovery with ROM Manager:

略…

Install TWRP Recovery with GooManager:

略…

Install any Custom Recovery with Fastboot:
  • 1、下载recovery镜像
    Note:镜像文件为.img后缀文件,下载的如果是zip文件需要先解压缩
  • 2、USB连接Android设备
  • 3、进入fastboot模式
    • adb reboot bootloader
  • 4、flash
    • fastboot flash recovery </path/to/your/recovery.img>
  • 5、等待进度完成,重启手机
    • fastboot reboot
Install any Custom Recovery with flash_image:
  • 1、下载flash image,解压到C盘根目录
  • 2、下载recovery镜像
    Note:镜像文件为.img后缀文件,下载的如果是zip文件需要先解压缩
  • 3、开启手机开发者选项:Menu > Settings > Applications > Development
  • 4、USB连接Android设备
  • 5、命令行敲命令:
    adb push c:\flash_image /sdcard/
    adb push c:\recovery.img /sdcard/
    adb shell
    su
    mount -o remount, rw /system
    cp /sdcard/flash_image /system/bin
    cd /system/bin
    chmod 777 flash_image
    flash_image recovery /sdcard/recovery.img
  • 6、等待进度完成,重启手机
分类: Android 标签: , ,

Android开发常用命令

2017年4月29日 没有评论

Android开发常用命令


ADB Shell 命令

adb shell screencap /sdcard/screen.png  #截图
adb shell screenrecord /sdcard/demo.mp4 #录像,Ctrl+C停止

ADB Debug 命令

adb devices  #查看adb连接设备列表
adb -s <serialNumber> <command>   #在设备serialNumber上执行command

adb install <path_to_apk> #安装Apk
adb forward tcp:6100 tcp:7100 #端口转发,主机TCP端口6100转发到设备TCP端口7100
adb pull <remote> <local>     #拷贝(拉取)设备上的文件
adb push <local> <remote>     #拷贝(推送)文件到设备上

adb kill-server     #终止adb服务
adb start-server    #启动adb服务

#Wireless usage
adb tcpip 5555   #设备adb服务监听5555端口
adb connect <device-ip-address>  #连接设备TCP端口上的adb服务

monkey命令

Android之Monkey全参数(包含隐藏参数)
adb shell monkey [options] <event-count>
#eg : adb shell monkey -s 12345 -v 10000 -p com.example

tcpdump命令

Linux tcpdump命令详解

需要ROOT,下载到Windows/Mac后使用Wireshark打开

adb shell tcpdump -s 0  -w /sdcard/a.pcap  "tcp port 80"   #捕获80端口的tcp数据包,保存到/sdcard/a.pcap

Android命令

How to install Android SDK Build Tools on the command line?
By default, the SDK Manager from the command line does not include the build tools in the list. They're in the "obsolete" category. To see all available downloads available, use
`android list sdk --all`
And then to get one of the packages in that list from the command line, use:
`android update sdk -u -a -t <package no.>`
Where -u stands for --no-ui, -a stands for --all and -t stands for --filter.
If you need to install multiple packages do:
`android update sdk -u -a -t 1,2,3,4,..,n `
Where 1,2,..,n is the package number listed with the list command above

Android代理

The solution was to setup a local proxy to perform authentication and create the file ~/.android/androidtool.cfg to redirect android to the local proxy as follows.

### Settings for Android Tool
#Tue Jun 12 01:34:55 PDT 2012
http.proxyPort=3128
sdkman.monitor.density=108
http.proxyHost=127.0.0.1
sdkman.show.update.only=true
sdkman.ask.adb.restart=false
sdkman.force.http=true
sdkman.show.updateonly=true
分类: Android 标签:

图片大小转换 ImageMagick

2017年4月29日 没有评论

图片大小转换 ImageMagick

convert -flop foo.png bar.png
convert foo.jpg foo.png  #格式转化
convert -resize 100x100 foo.jpg thumbnail.jpg  #大小缩放
convert -resize 50%x50% foo.jpg thumbnail.jpg  #大小缩放
convert -mattecolor "#000000" -frame 60x60 yourname.jpg rememberyou.png  #加边框
convert -border 60x60 -bordercolor "#000000" yourname.jpg rememberyou.png #加边框
convert -fill green -pointsize 40 -draw 'text 10,50 "charry.org"' foo.png bar.png #加文字
convert -blur 80 foo.jpg foo.png  #高斯模糊
convert -flip foo.png bar.png  #上下翻转
convert -flop foo.png bar.png  #左右翻转
convert -negate foo.png bar.png  #反色,形成底片的样子
convert -monochrome foo.png bar.png #单色,把图片变为黑白颜色:
convert -noise 3 foo.png bar.png #加噪声
convert -paint 4 foo.png bar.png #油画效果
convert -rotate 30 foo.png bar.png #旋转
convert -charcoal 2 foo.png bar.png #炭笔效果
convert -spread 30 foo.png bar.png #散射,毛玻璃效果:
convert -swirl 67 foo.png bar.png  #漩涡,以图片的中心作为参照,把图片扭转,形成漩涡的效果:
convert -raise 5x5 foo.png bar.png #凸起效果
分类: Linux 标签:

vim 配置ctags/cscope/taglist

2017年3月24日 没有评论
ctags -R --exclude=out
find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.cpp" -o -name "*.java" -o -name "*.mk" -o -name "*.xml" -o -name "*.hpp" -o -name "*.aidl" -o -name "*.AIDL" -not -path "out" > cscope.files
cscope -bkq

wget https://vim.sourceforge.io/scripts/download_script.php?src_id=19574 -O taglist_46.zip
unzip taglist_46.zip -d ~/.vim/
wget http://cscope.sourceforge.net/cscope_maps.vim
mv cscope_maps.vim ~/.vim/plugin/

阅读全文…

分类: Linux, 未分类 标签: , , ,

SELinux配置

2017年3月23日 没有评论

1、查看selinux状态
查看selinux的详细状态,如果为enable则表示为开启
# /usr/sbin/sestatus -v
查看selinux的模式
# getenforce

2、关闭selinux
2.1:永久性关闭(这样需要重启服务器后生效)
# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
2.2:临时性关闭(立即生效,但是重启服务器后失效)
#设置selinux为permissive模式(即关闭)
# setenforce 0
#设置selinux为enforcing模式(即开启)
# setenforce 1

分类: Linux, 未分类 标签:

读《Android安全架构深究》:系统更新和ROOT访问

2017年3月22日 没有评论

引导加载程序:
引导加载程序(bootloader)是系统启动时自动运行的一个底层程序。程序的主要目的是初始化硬件,然后找到并启动主操作系统。
虽然大部分Android bootloader是闭源的,但是大部分基于高通芯片的ARM设备bootloader是基于Little Kernel(LK) bootloader修改得到的。而LK bootloader是开源的。

阅读全文…

分类: Android, 未分类 标签: ,

读《Android安全架构深究》:SELinux

2017年3月22日 没有评论

传统沙箱极大依赖于Linux默认的自主访问控制(DAC);SELinux(安全加强Linux)的强制访问控制(mandatory access control,MAC)可以通过以下方法尝试克服Linux DAC的局限:执行全局的细粒度安全策略,并要求只有系统管理员才能修改这些策略。

SELinux介绍:
SELinux是Linux内核的一个强制访问控制机制,作为一个Linux安全模块存在。Linux安全模块(LSM)框架允许第三方访问控制机制被链接到内核,修改默认DAC的实现。除了提供主要内核服务钩子以外,LSM框架也通过扩展procfs虚拟文件系统(/proc)添加各进程和各任务(线程)的安全属性,并且支持将文件系统扩展属性保存为安全属性。

阅读全文…

分类: Android, 未分类 标签: ,

读《Android安全架构深究》:NFC和元件安全

2017年3月22日 没有评论

NFC简介:Near Field Communication,NFC是近距离(10cm或更少)的设备之间通过建立无线电通信交换数据的技术。NFC是建立在一系列标准之上,这些标准定义了无线电通信频率、传输协议和数据交换格式。NFC建立在无线电射频识别(RFID)技术的基础上,使用13.56MHz的工作频率,并支持多个数据传输速率。NFC设备能够以三种不同的模式进行工作:读写(R/W)、点对点(P2P)和卡模拟(CE)。

分类: Android, 未分类 标签: ,

读《Android安全架构深究》:设备安全

2017年3月22日 没有评论

控制系统的启动和安装:
引导加载程序(bootloader):引导加载程序是一个专用的、与硬件相关的程序,在设备第一次启动时,这个程序将会运行。其作用是初始化设备硬件,提供一个小型的设备配置界面(可选),找到并启动操作系统。Android的bootloader一般与芯片上的系统(SoC)匹配,大部分bootloader都支持fastboot协议或者download模式,并支持对设备的持久性存储分区进行写入(刷机)或者不刷入系统直接启动临时系统。
恢复系统(recovery):recovery系统是一个小型的基于linux的操作系统,其中包括一个内核,包含有各种底层工具的RAM磁盘,和一个通过设备硬件按键操作的小型UI。recovery被用来应用系统更新。而更新一般是以OTA(Over-The-Air)更新包的形式来发布,其中包含新版本的系统文件(或补丁)和安装此更新的脚本文件。OTA文件一般都是被设备制造商的私钥签名过的。recovery保存在一个特定分区中, 阅读全文…

分类: Android, 未分类 标签: ,