Androi--Linux下的常用命令行

时间:2022-09-08 17:38:47

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         




(3)输入 busybox ps ,回车,可以看到当前的所有程序,以及进程号,这个命令比任何一个任务管理软件显示的都要全面

显示如下: 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,回车。



(4)输入 cat /proc/cpuinfo ,回车,这个命令可以查看当前CPU频率



(5)接下来是文件操作的命令,  

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退出。

然后shutdownreboot等命令,你们看名字就能猜到是干嘛的,同样慎用,,,




(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目录下,以下是自己写的脚本:


  1. busybox telnetd -l /system/bin/sh
  2.       echo " "echo "Telnetd Service Running:"
  3.       busybox ifconfig | grep 'inet addr' | grep -v '127.0.0.1' | awk '{print $2}'
  4.       echo " "echo "PID:"busybox ps | grep telnetd | grep '/system/bin/sh' | awk '{print $1}'
复制代码




ifconfig.jpg (35.76 KB)

Androi--Linux下的常用命令行

ps.jpg (8.55 KB)

Androi--Linux下的常用命令行

top.jpg (137.43 KB)

Androi--Linux下的常用命令行

ifconfig.jpg (35.76 KB)

Androi--Linux下的常用命令行