linux 常用命令

Linux使用中常用命令,列出方便记忆与使用

1:sudo chown xinwu:xinwu crane-chip 授权命令

2:tar -czxf fileName 解压
3:cp "xinwu/linux" "android/" -r 复制
4:tar -czvf xxxx.tar.gz system 压缩


        .tar
  解包:tar xzvf FileName.tar
  打包:tar czvf FileName.tar DirName
  ---------------------------------------------
  .gz
  解压1:gunzip FileName.gz
  解压2:gzip -d FileName.gz
  压缩:gzip FileName
  .tar.gz 和 .tgz
  解压:tar zxvf FileName.tar.gz
  压缩:tar zcvf FileName.tar.gz DirName
  ---------------------------------------------
  .bz2
  解压1:bzip2 -d FileName.bz2
  解压2:bunzip2 FileName.bz2
  压缩: bzip2 -z FileName
  .tar.bz2
  解压:tar jxvf FileName.tar.bz2
  压缩:tar jcvf FileName.tar.bz2 DirName
  ---------------------------------------------
  .bz
  解压1:bzip2 -d FileName.bz
  解压2:bunzip2 FileName.bz
  压缩:未知
  .tar.bz
  解压:tar jxvf FileName.tar.bz
  压缩:未知
  ---------------------------------------------
  .Z
  解压:uncompress FileName.Z
  压缩:compress FileName
  .tar.Z
  解压:tar Zxvf FileName.tar.Z
  压缩:tar Zcvf FileName.tar.Z DirName
  ---------------------------------------------
  .zip
  解压:unzip FileName.zip
  压缩:zip FileName.zip DirName
  ---------------------------------------------
  .rar
  解压:rar a FileName.rar
  压缩:r ar e FileName.rar
  
  rar请到:http://www.rarsoft.com/download.htm 下载!
  解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
  [root@www2 tmp]# cp rar_static /usr/bin/rar
  ---------------------------------------------
  .lha
  解压:lha -e FileName.lha
  压缩:lha -a FileName.lha FileName
  
  lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!
  >解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
  [root@www2 tmp]# cp lha /usr/bin/
  ---------------------------------------------
  .rpm
  解包:rpm2cpio FileName.rpm | cpio -div
  ---------------------------------------------
  .deb
  解包:ar p FileName.deb data.tar.gz | tar zxf -
  --------------------------------------------- 


4计数
1),count
2),rm root/ system -fr
3),croot


5加载驱动 查看驱动
 insmod   lsmod
 
6搜索 
 find . -name "*.xml" -depth -type f -print | xargs grep "无服务"
  grep "gpio_para" ./* -R
 
7输出到某个文件
 git diff  &>fileName(文件名) 
 
8查找文件
godir filename


9 scp copy 文件


(1)将本地目录拷贝到远程
  scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径
   scp -r android4.2.tar.gz xxx-server@192.168.1.104:/home/xxx-server/work/android4.2
(2)从远程将目录拷回 本地
scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径
 
10 vi 查找命令
/ 或者 ? 用n键来跳到下一个单词


11 进入adb shell,敲以下命令:
echo 1 > /proc/sys/kernel/printk
cat /proc/sys/kernel/printk(把输入命令后系统回显的信息发给我.)


12 和上次文件比较 
 vimdiff .config .config.old
 
13 mount -o remount,rw /dev/block/nandc /system 


14 分割文件split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
   合并文件cat android_repo.20130618-1722-01.tar.gz* > android_repo.20130618-1722-01.tar.gz


15 查看文件md5,用于比较传输的文件是否损坏等等。
  md5sum * > list.txt 
  
16 替换字符 myd1="" && myd2="mid" && grep -r -l "$myd1" ./* | xargs sed -i "s/$myd1/$myd2/g"
给myd1和myd2赋值 


17查找命令
进行source build/envsetup.sh命令后,终端shell导入了build/envsetup.sh里面定义
的函数,可以在终端用help命令查看。


较为常用的有


- croot:   Changes directory to the top of the tree.


- m:       Makes from the top of the tree.


- mm:      Builds all of the modules in the current directory.


- mmm:     Builds all of the modules in the supplied directories.


- cgrep:   Greps on all local C/C++ files.


- jgrep:   Greps on all local Java files.


- resgrep: Greps on all local res/*.xml files.


- godir:   Go to the directory containing a file.


 


 


以下面邮件问题为例,


“设置”----“显示” 里的界面,显示字符串”重力感应坐标系”,


1)在下面目录用resgrep查找资源字符串


user@Exdroid:~/anpei/exdroid-a13/android4.0/packages/apps/Settings$ resgrep
"重力感应"


./res/values-zh-rCN/strings.xml:1590:    <string
name="accelerometer_coordinate_title">重力感应坐标系</string>


找到资源id为accelerometer_coordinate_title ,


 


2)查找应用该id的地方


user@Exdroid:~/anpei/exdroid-a13/android4.0/packages/apps/Settings$ resgrep
"/accelerometer_coordinate_title"


./res/xml/display_settings.xml:57:
android:title="@string/accelerometer_coordinate_title"


 


其中id前加“/”是考虑引用id时通常的形式为”@xx/xx_id”,


这样可以避免单纯查id时,由于多国语言而查出n多结果。


 


找到结果后,查看res/xml/display_settings.xml,获取到可能在java中使用的关键
字,如


android:key="accelerometer_coornadite"


 


3)查找相关java代码,用jgrep


user@Exdroid:~/anpei/exdroid-a13/android4.0/packages/apps/Settings$ jgrep
"accelerometer_coornadite"


./src/com/android/settings/DisplaySettings.java:61:    private static final
String KEY_ACCELEROMETER_COORDINATE = "accelerometer_coornadite";


找到KEY_ACCELEROMETER_COORDINATE,继续


user@Exdroid:~/anpei/exdroid-a13/android4.0/packages/apps/Settings$ jgrep
"KEY_ACCELEROMETER_COORDINATE"


./src/com/android/settings/DisplaySettings.java:61:    private static final
String KEY_ACCELEROMETER_COORDINATE = "accelerometer_coornadite";


./src/com/android/settings/DisplaySettings.java:136:
mAccelerometerCoordinate = (ListPreference)
findPreference(KEY_ACCELEROMETER_COORDINATE);


./src/com/android/settings/DisplaySettings.java:349:        }if
(KEY_ACCELEROMETER_COORDINATE.equals(key))


 


就可以只看src/com/android/settings/DisplaySettings.java,很容易就可以大致了
解相关代码后(这里涉及的代码较少),


        if(mAccelerometerCoordinate != null){


            mAccelerometerCoordinate.setOnPreferenceChangeListener(this);


            String value = Settings.System.getString(getContentResolver(),


                    Settings.System.ACCELEROMETER_COORDINATE);


            mAccelerometerCoordinate.setValue(value);


            updateAccelerometerCoordinateSummary(value);


        }


Settings.System.ACCELEROMETER_COORDINATE这个值是一个关键字,


和系统相关,可以考虑到framework中查找,


 


4)在framework中找ACCELEROMETER_COORDINATE


user@Exdroid:~/anpei/exdroid-a13/android4.0/frameworks/base$ jgrep
"ACCELEROMETER_COORDINATE"


./packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelpe
r.java:1402:                        loadStringSetting(stmt, Settings.System.
ACCELEROMETER_COORDINATE,


./core/java/android/hardware/SensorManager.java:614:
String  str = Settings.System.getString(mContext.getContentResolver(),
Settings.System.ACCELEROMETER_COORDINATE);


./core/java/android/provider/Settings.java:1906:                public
static final String ACCELEROMETER_COORDINATE = "accelerometer_coordinate";


./core/java/android/provider/Settings.java:2012:
ACCELEROMETER_COORDINATE,


 


其中


./packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelpe
r.java


是和系统加载预设值相关


./core/java/android/hardware/SensorManager.java就找到了相关的中间层代码了.


 


 


附一个自定义的查找命令


find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type
f \( -name '*.c' -o -name '*.cc' -o -name '*.cpp' -o -name '*.h' -o -name
'*.java' -o -name '*.xml' \) -print0 | xargs -0 grep --color -n -i "EXTSD"


在.c .cc .cpp .h .java .xml文件中查找代码"EXTSD",忽略.repo .git out 目录


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值