前言
在进行Android逆向工程或开发时,通过adb shell进入设备的Android系统是常见的操作。由于Android系统的底层基于Linux,掌握Linux命令对于高效操作和管理设备至关重要。本文将介绍常用的Linux命令及其应用。
Android系统架构
一、层级式的树状目录结构
Linux系统采用树状目录结构,最上层是根目录 /
。在根目录下可以创建其他的目录,如 /home
、/usr
、/bin
等。
二、目录操作
2.1 切换目录(cd)
- 切换到指定目录:
cd /path/to/directory
- 切换到用户目录:
cd ~
- 切换到上级目录:
cd ..
三、路径
3.1 相对路径与绝对路径
- 绝对路径以
/
开头:cd /sdcard/
- 显示当前目录的绝对路径:
pwd
- 使用相对路径切换目录:
cd ../sdcard/
四、文件系统概念
4.1 Linux中一切皆文件
在Linux中,包括硬件在内的一切都是文件,命令本身也是系统中的二进制文件。
4.2 文件扩展名
Linux文件不需要扩展名,但为了区分,有时会人为地添加扩展名。
4.3 隐藏文件
文件名以 .
开头即为隐藏文件,例如 .bashrc
。
五、文件和目录操作
5.1 查看目录内容(ls)
- 显示目录内容:
ls /path/to/directory
- 显示所有文件和目录(包括隐藏文件):
ls -a
- 显示详细信息:
ls -al
- 显示详细信息并以人类可读格式显示大小:
ls -alh
5.2 查看文件类型(file)
file filename
5.3 查看文件大小(du)
du -h filename
5.4 注意事项
- Linux命令格式:命令 选项 参数
ls -l /home
- 选项可以组合使用:
ls -la
- 选项顺序无关紧要:
ls -al
六、文件和目录管理
6.1 创建文件和目录
- 创建空文件或更新文件状态:
touch filename
- 创建目录:
mkdir dirname
- 同时创建多个目录:
mkdir dirname1 dirname2
- 递归创建目录:
mkdir -p parentdir/childdir
6.2 删除文件和目录
- 删除空目录:
rmdir dirname
- 删除文件:
rm filename
- 强制删除文件且不提示确认信息:
rm -f filename
- 递归删除目录及其内容:
rm -rf dirname
6.3 复制文件和目录
- 复制文件:
cp sourcefile /sdcard/
- 复制多个文件:
cp file1 file2 /sdcard/
- 复制目录(递归复制):
cp -r sourcedir /sdcard/
6.4 移动和重命名文件
- 移动文件并重命名:
mv oldname newname
- 移动文件到新目录:
mv filename /sdcard/
6.5 输出文件内容
cat /proc/version
七、文本处理
7.1 grep命令
- 忽略大小写查找:
grep -i "pattern" filename
- 递归查找:
grep -r "pattern" directory
- 只列出匹配的文件名:
grep -l "pattern" *
7.2 管道命令
把上个命令的执行结果,交给下个命令处理:
ps -A | grep processname
7.3 查找文件或目录
指定目录,递归查找文件:
find /path/to/search -name filename
八、输出与重定向
8.1 输出
- 输出环境变量:
echo $PATH
- 输出主机名:
echo $HOSTNAME
- 输出内容保存到文件:
echo "Hello World!" > textfile
8.2 重定向与追加
- 输出重定向(覆盖):
command > file
- 追加到文件末尾:
command >> file
九、软链接
9.1 创建软链接
软链接类似于Windows的快捷方式,主要存放链接其他文件的路径:
ln -s targetfile linkname