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 目录