Androi--Linux下的常用命令行
安卓下面有个软件叫终端模拟器,其实就是Linux下的命令行,使用这些命令能有效处理问题。
基本知识
- “/”,这个英文字母斜杠指的是根目录,类似Windows的C:\,但是Linux下只有一个根目录,所有的文件系统、设备都会挂载在这个目录或者它的子目录之下。
- “~”,这个符号指的是当前用户的家目录,比如root用户的家目录是“/root”,而一般用户的家目录是“/home/用户名”。
- 命令行头部有个标记是“$”或者“#”,前者表示普通用户,后者表示root用户,这就是为什么输入“su”得到最高权限之后命令行头会变成“#”,其实就是以root用户登录,如果某个程序获得最高权限,就是指这个程序是以root帐户启动的。
- “|”,被称作管道,比如“cat /proc/cpuinfo | more”,即将前面命令的输出作为第二个命令的输入。
- “/”目录下会有很多目录,这些目录其实是通用的,在各个版本的Linux下都有一样的名称,Android有部分文件夹有区别。每个文件夹都有特殊用途,以下是常见例子:
- “/bin”里面放了很多应用程序,这些应用程序就是下面列举的众多命令,因为这些命令本质上就是一个一个的应用程序。
- “/sbin”和/bin目录类似,两者区别要视具体情况。
- “/etc”是Linux系统的配置文件,安卓社区里最常用的例子莫过修改“/etc/hosts”,这是etc目录下的一个文件名叫hosts,是一个简单的DNS。你可以用命令“vi”或者“vim”来修改(vi /etc/hosts)
- “/root”是root用户的家目录,root用户会将自己的文件放在这里。
- “/sdcard”是安卓(Android)特有的一个目录,它会将SD卡挂载在这个目录下,即SD卡的所有内容都在这个目录里。
- ”/tmp“是临时目录,给程序临时使用的。
- “/proc”也是每个Linux系统都有的目录,但是作用我说不清楚,里面有两个文件需要注意:“/proc/cpuinfo”和“/proc/meminfo”,前者保存了CPU特性和参数,后者保存内存当前状态,可以用命令“cat /proc/cpuinfo”查看。
文件相关命令
- ls (当前目录的文件及文件夹列表,ls -l 是详细列举资料,包括权限,ls -i 查看文件的inode信息)
- cd (切换至目录,比如cd ~ 是切换到当前用户的家目录比如/root,/home/username,cd /etc )
- pwd (显示命令行当前所在目录)
- mkdir (创建文件夹,mkdir temp:创建temp文件夹)
- rm (删除文件或者文件夹,用法:rm 文件名,rm -f是强制删除,不提示,rm -r 是以recursive的方式删除,就是删除文件夹及文件夹里所有的文件及所有子文件及目录,比如“rm -f -r /”——你就彻底Happy了,因为这个命令可以把整个文件系统都给删了)
- cp (复制)
- mv (移动或者改名)
- ln (创建符号链接,即快捷方式)
- touch (这个命令比较特殊,有两个作用,一个是创建一个文件,touch 文件路径,前提是这个文件不存在,如果存在,即第二个作用,更新文件,更新修改日期等等,不更改文件内容)
- cat (文件内容查看)
- more (分页显示)
- less (也是分页显示)
- head (显示文件的头10行内容)
- tail (显示文件的最后10行内容,tail -f 是显示最后10行内容外还持续显示当前新添加的内容,前提是文件被别的程序以append方式添加进去)
- stat (显示文件的inode信息,关于inode请参考本文最后的文献)
- find (搜索文件,比如“find -maxdepth=1 -size 0 -exec rm {} \;”,这个是搜索当前文件夹,不包含子文件夹 (深度为1),文件大小为0字节,把搜索到的文件列表作为参数逐条执行删除操作,“{}”指代搜索到的文件,“\;”其实就是“;”,命令行下需要转义(不明白不要紧))
进程管理
- ps (显示当前活动的进程)
- top (查看进程,类似任务管理器的进程页,以CPU消耗排序,通常由于位置不够,显示不全,这里面有很多重要信息,以后补全说明)
- kill (杀死进程)
- killall (杀死进程,比如killall firefox,杀死以“firefox”为名字的进程)
- bg (列表被暂停的进程)
- fg (继续执行被Ctrl+Z按钮暂停掉的进程)
文件权限
- chmod (修改权限,比如“chmod 777 -R /sdcard”,对sdcard文件夹及其包含的所有文件及文件夹赋予所有权限)
- ssh (连接远程服务器命令行)
- grep
- locate
系统信息
- date (显示当前日期)
- cal (打印日历)
- uptime (显示开机多久了)
- w
- whoami
- finger (“finger root”,显示root用户的相关信息,该命令作用不大)
- uname -a (显示Linux版本)
- cat (在命令行打印文件内容,比如“cat /etc/hosts”)
- man (man是Linux一个特殊命令,用以显示命令的参考资料,“man 命令”,比如“man cat”,就是显示cat命令的用法和资料,类似的还有“命令 --help”,比如“cat --help”)
- df (显示文件系统用了多少空间,还剩多少空间,还有存储设备的挂载情况)
- du (查询文件和文件夹大小,比如“du -h --max-depth=1 /”,显示根目录下各个目录的大小)
- free (内存使用情况)
压缩
- tar cf file.tar files (简单介绍下,c是create(创建),x是extract(取出,解包),f是file(文件),z是zip(以zip方式压缩),j是以Bzip2方式压缩)
- tar xf file.tar
- tar czf file.tar.gz files
- tar xzf file.tar.gz
- tar cjf file.tar.gz2
- tar xjf file.tar.gz2
- gzip file
- gzip -d file.gz (d是decompress,即解压缩)
网络
- ping (测试连接到远程服务器的耗时和连通性,比如ping zydroid.com,100ms以内属于正常,美国到中国的耗时大概是150-250ms,国内都在100ms以内,全国范围电信内部访问一般少于50ms,电信和网通间大概在300-500ms,严重的时候上1000ms,相当于饶了地球一两圈。局域网内访问一般都在1-3ms,ping自己电脑都是0.000几ms)
- whois
- dig
- wget (下载程序,wget URL,比如wget http://www.zydroid.com)
安装
- ./configure (配置)
- make (编译)
- make install (安装)
快捷键
- Ctrl+C (终止当前命令的执行)
- Ctrl+Z (暂停当前命令行的执行(将进程转入停止的状态),可以使用fg恢复继续执行。)
- Ctrl+D (退出命令行,退出当前登录)
- Ctrl+W (删除命令行当前输入的一个单词)
- Ctrl+U (删除用户输入的一整行文字)
- Ctrl+R (搜索最近执行的命令)
- !! (重复上一条命令)
- exit (退出命令行和Ctrl+Z类似)
其它
- reboot (重启系统)
- shutdown -h 0 (立即关机)
-----------------------------------------------------------------------------------------------
Android端打开terminal软件,输入以下命令,只看绿色字体部分即可。 (1)输入 su 然后按软键盘的“回车”,su命令指 获得root权限 (2)输入busybox ifconfig ,回车 这个命令可以查看手机的ip、网卡硬地址,显示如下,HWaddr后面就是手机网卡硬件地址,inet后面就是ip: tiwlan0 Link encap:Ethernet HWaddr 98:4B:4A:7C:98:B8 inet addr:192.168.1.102 Bcast:255.255.255.255 Mask:255.255.255.0 inet6 addr: fe80::9a4b:4aff:fe7c:98b8/64 Scope:Link
显示如下: 3306 10016 0:02 com.blovestorm 来电通的进程 3400 10050 0:07 com.lbe.security lbe安全大师 1956 10110 0:09 jp.co.johospace.jorte 琢德日历 1542 10025 0:48 com.baidu.input 百度输入法 上面显示的第一列,就是进程号,比如百度输入法的进程号是1542 ,慎用!如果想要杀死某个进程,只要输入“kill 进程号”即可,以杀掉百度输入法为例,输入kill 1542,回车。
cd命令:进入某个目录,比如cd /system 就进入了/system目录; ls命令:查看当前目录下所有文件, cp命令:复制命令,比如cp /sdcard/123.txt /tmp,就把sd卡下面的123.txt复制到了/tmp; rm命令:删除文件, 慎用; (6) 然后来点花样,在电脑上通过telnet操作手机,不知telnet为何物的自行去google或百度; 输入 busybox telnetd -l /system/bin/sh 这个命令是在手机上开启telnetd服务,telnetd可以看作一个服务端。 然后回到电脑上(前提是你的手机和电脑处于一个WIFI局域网),开始-运行-cmd,输入telnet 192.168.1.101,回车, 然后,,,,,就可以通过电脑控制手机了, 先把(1)~(5)的命令在电脑上输一遍,,,,,,, 然后,,,,,尝试几个新命令: 输入 busybox top 相当于win下的任务管理器,可以看到所有运行的后台任务,这以及它们的cpu占用率。Ctrl + C退出。 然后shutdown,reboot等命令,你们看名字就能猜到是干嘛的,同样慎用,,, (7) 如何终止telnet服务,用完了当然要把手机端的telnet服务终止!如果某些无聊的人碰巧telnet上你的手机,,, 输入 busybox ps | grep telnetd, 回车,看到显示:3833 0 0:00 busybox telnetd -l /system/bin/sh 3985 0 0:00 grep telnetd 可以看到telnetd的进程号是3883, 执行kill 进程号就可以杀死进程了 如果觉得每次在手机上输一堆命令行过于麻烦,可以把上述shell命令写进脚本, 注意,如果脚本放在SD卡下将不可执行,必须放在/data目录下,以下是自己写的脚本: |