对于Linux下的开发人员来说,除了编写代码之外,也要熟练掌握Linux操作系统的一些基本操作。很多开发人员可能会有这样的经历:有很多非常简单的操作命令长期不用就忘掉了,等需要用到的时候又要到处去找,甚至去问周围的同事。在尴尬之余,我们也怪自己没有将那些简单而有用的操作命令记录下来。
本文汇总了我在使用Linux的过程中所使用过的一些基本操作,可供相关的开发人员参考。本文中的操作命令虽然比较简单,但很实用,相信对大家会有所帮助的。
这些基本的操作命令如下:
1.Linux下,如何从当前普通用户切换到root用户?如何从root用户切换到普通用户?如何从当前普通用户切换到其他普通用户?
1)从当前普通用户切换到root用户可使用su命令,并需要输入用户名(root)和密码。操作示例如下:
其中,输入的密码是不会显示出来的。
2)从root用户切换到普通用户也使用su命令,只需要输入用户名。操作示例如下:
3)从当前普通用户切换到其他普通用户也使用su命令,并需要输入用户名和密码。操作示例如下:
其中,输入的密码是不会显示出来的。
2.如何在Linux下的大量文件中搜索特定的文本内容?
可使用grep命令来实现特定文本内容的搜索,具体使用示例如下:
(1)在某个文件中搜索特定的文本内容,例如在Test.txt中搜索“Hello”,可使用如下两个命令:
(2)在某一系列文件中搜索特定的文本内容,例如在Test.txt、Test1.txt、Test2.txt…中搜索“Hello”,可使用如下两个命令:
其中,星号(*)为通配符。
(3)在某一个或一系列文件中搜索特定的文本内容出现的次数,例如在Test.txt、Test1.txt、Test2.txt…中搜索“Hello”的出现次数,可使用如下两个命令:
其中,星号(*)为通配符。
3.如何快速统计在Linux下的同类文件(相同前缀或后缀)的个数?
可使用“ls -ltr 文件名 | wc -l”命令,操作示例如下:
其中,星号(*)为通配符。
4.如何在Linux下对文件进行压缩和解压缩?
可使用tar命令对文件进行压缩和解压缩,具体操作示例如下:
1)如果想把test.txt文件压缩为test.tar,则可执行如下命令:
2)如果想把test.tar解压缩,则可执行如下命令:
(2)登录到Oracle使用如下命令:
sqlplus 用户名/’密码’@数据库服务名
注意:登录Oracle之前需要到Oracle目录下的tnsnames.ora文件里面配置数据库服务名,如下所示:
(3)登录到Sybase使用如下命令:
首先登录到Oracle用户下,然后按照如下步骤操作:
经过上面的四个步骤,Oracle数据库就可以正常启动并使用了。
启动之后,可以用这个命令查看启动是否正常:lsnrctl status。
如果要关闭数据库,可在第(4)步执行“shutdown”命令,如果要强制关闭,则使用“shutdown abort”命令。
在Oracle用户下直接运行SQL脚本,可使用如下命令:
首先登录到Sybase用户下,然后按照如下步骤操作:
可使用cd命令,如本人使用的是15.0版本的Sybase,则需要执行如下命令:
在Sybase用户下直接运行SQL脚本,可使用如下命令:
8.如何在Linux下查看当前系统的时间?
直接使用“date”命令即可,如下所示:
9.如何在Linux下添加和删除用户?
首先切换到root用户下,然后按照如下示例执行添加用户的操作:
删除用户时,只需在root用户下执行如下操作即可:
10.当Linux下有程序崩溃的时候,如何修改操作系统配置以产生core文件?
当Linux下程序异常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。
通过如下两个步骤可以让系统将core文件产生出来:
(1)在当前用户下执行“ulimit -a”命令以查看程序异常崩溃时是否会产生core文件。示例如下:
11.当Linux下使用VI编辑文件时,如何快速跳转到文件的第一行和最后一行?
(1)要跳转到文件的第一行,可以使用如下命令:
2):0 (注意:冒号是不可少的)
3):1 (注意:冒号是不可少的)
(2)要跳转到文件的最后一行,可以使用如下命令:
1):$ (注意:冒号是不可少的)
12.如何查看Linux下的文件中的重复记录?
(1)如果是单个文件,可使用如下命令:
(2)如果是多个文件(相同前缀或后缀),可使用如下命令:
其中,星号(*)为通配符。
13.如何统计Linux下的文件中的记录行数和字节数?
(1)对于单个文件中的记录行数和字节数的统计,可使用如下命令:
(2)对于多个文件中的记录行数和字节数的统计,可使用如下命令:
其中,星号(*)为通配符。
14.如何查看Linux下的某个目录下的文件总数?
第一步,启用系统的FTP功能
在root用户下执行如下命令:
第二步,执行ftp命令,连接到对端IP
第三步,输入用户名和密码
通过以上三步,就已经通过FTP的方式连接到对端机器上了。
如果还要获取某个文件,可继续执行第四步操作。
如果要停止FTP,则继续执行第五步操作。
16.如何在Linux下使用GCC将C代码文件编译为可执行的文件?
假设现有HelloWorld.c文件,可以使用如下命令(命令中的gcc均可替换为cc)将其编译为可执行的文件:
即可生成a.out文件,然后执行./a.out命令,即可看到程序运行结果。
17.如何查看Linux下某进程的详细信息?
例如,要想查看正在运行的“HelloWorld”进程的详细信息,可使用如下命令:
其中,第二个参数(即7437)为PID。
18.如何查看Linux下某个文件的类型及编码格式等?
直接使用“file 文件名”命令即可,使用示例如下:
19.如何查看Linux下某个可执行文件所依赖的库文件?
直接使用“ldd 文件名”命令即可,使用示例如下:
可以看到,a.out依赖于3个库文件。
20.如何查看Linux下磁盘空间的占用情况?
直接使用“df -h”命令即可,示例如下:
由于example.sh文件是在本地的Windows操作系统下编写的,因此要先转换为Linux下的格式才能使用。
在这里,命令执行如下:
(3)使用chmod命令修改文件的权限
在执行了dos2unix命令之后,还是不能立马生成文件,还需要修改文件的权限。
chmod命令是Linux系统中最常用到的命令之一,用于改变文件或目录的访问权限。
直接运行带后缀的sh文件名,即可生成SQL文件。命令如下:
表示example.sql文件之前不存在,这是第一次生成。
注意:如果example.sh文件本来就是在Linux下编辑的,那么就可以直接执行第四步操作(生成SQL文件)。
22.如何在Linux下跟踪程序所生成的日志?
程序所生成的日志文件一般以.log作为后缀,在产生日志的过程中,可以用“tail -f 日志文件名”命令来跟踪日志。示例如下:
如果要查看具体的日志文件内容,可以使用“vi 日志文件名”命令。示例如下:
可以直接使用键盘上的上下左右按钮来查看日志内容,如果要搜索文本内容,可以使用“/欲查找内容”命令(如:/world)。
23.如何在Linux下查看某个系统程序是否存在?
直接使用“whereis 程序名”命令即可,示例如下:
在将编译程序所需要的库都替换为64位的库之后,只需要直接修改makefile文件即可。
具体要修改makefile文件中的内容为:
(3)在最后一个gcc紧接着的后面添加“-fPIC”。
25.如何使用命令对Linux下的文件和目录进行备份?
直接使用cp命令即可,具体如下:
1)直接在当前目录下备份文件,使用命令“cp 原文件名 备份文件名”。示例如下:
2)将文件备份到其他目录中,使用命令“cp 原文件名 备份目录/备份文件名”。示例如下:
1)直接将目录备份到当前位置,使用命令“cp -rf 原目录名 备份目录名”。示例如下:
2)将目录备份到其他地方,使用命令“cp -rf 原目录名 备份目录/备份目录名”。示例如下:
26.如何在Linux下杀死某个进程?
首先要查找到要杀死的进程的PID,之后执行“kill -9 PID”命令即可。
例如,我们要杀死名为“HelloWorld”的进程,则执行示例如下:
27.如何修改Linux下某个文件所属用户和群组?
直接在root用户下执行“chown 所属用户:群组 文件名”命令即可,示例如下:
先查看.swap文件的完整文件名,再将其删除。执行示例如下:
1)执行第一个命令之后,结果如下:
2)执行第二个命令之后,结果如下:
可以看出,操作系统是64位的(x86_64)。不仅如此,还可以看出使用的操作系统是SUSE Linux的第11版。
30.如何修改Linux的系统时间?
登录或切换到root用户下,然后执行如下命令:
首先登录到mysql用户下,然后执行如下命令:
如果要停止MySQL的运行,可执行如下命令:
在MySQL用户下直接运行SQL脚本,可使用如下命令:
web测试和app测试的相同点和区别?
相同点:都离不开测试的基础知识和测试原理。具体包括以下几个方面。
测试用例,均使用边界值分析法,等价类划分法等。
多数采用黑盒测试,来验证业务功能是否能得到正确的应用。
需要检查界面布局,风格,按钮是否美观、简洁,是否统一。
测试页面载入和翻页的速度、登录时长、内存是否溢出等。
测试应用系统的稳定性。
不同点:相对与web测试来说,app测试要考虑手机本身固有的属性,所以app测试还需要注意以下几点。
中断测试(来电去电,短信,蓝牙,NFC支付
,闹钟,数据线插拔,锁屏,断电,关机重启等)
安装卸载测试(全新安装,新版本覆盖旧版本,卸载旧版本安装新版本,卸载新版本安装旧版本)
外在因素测试(网络切换,硬件按键,不同分辨率,兼容性,系统,系统版本)
web测试更多的是考虑自身功能和浏览器兼容。
如何测试一个App的登录场景?
APP登录场景大体从以下几个方面进行:
大量字符,特殊字符,边界值,必填项校验。
注册手机号的特殊性验证,注册邮箱的格式验证。
密码大小写是否敏感,密码是否加密展示,密码是否有可见按钮功能,密码框能否使用复制粘贴。
验证码校验:必填项,过期,错误,无网络时获取验证码,多次获取,超过获取次数,输入验证码后,修改手机号。
登录时与系统的交互:锁屏,蓝牙,home,后退,横竖屏,修改字体字号。
逆向思维:已注册账号注册,未注册账号忘记密码,未注册账号登录,注册过程中退出再次注册。
输入法交互,切换输入法,切换输入模式,手写/九宫格。
登录账号的多样性:多个账号轮流登录,同一个账号多角色登录。
第三方登录验证:账号授权,信息正确,取消授权。
登录页面跳转,返回,登录成功及其他页面跳转。
手机兼容性测试:分辨率兼容,系统兼容,系统版本兼容,App版本兼容。
网络切换,网络断开,弱网。
Push消息如何测试?
Push
消息的测试可以从以下几个方面进行:
检查Push消息是否按照指定的业务规则发送。
检查不接收推送消息时,用户不会再接收到Push消息。
如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到Push。在非免打扰时间段内,用户能正常收到Push。
当Push消息是针对登录用户的时候,需要检查收到的Push与用户身份是否相符,没有错误的将其他人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。
测试Push时,在开关机、待机状态下执行推送,消息及其推送跳转的正确性。
push消息时,会有红点展示,推送消息阅读前后数字的变化是否正确;
应用在开发、未打开状态、应用启动且在后台运行的情况下是push显示和跳转否正确。
多条推送的合集的显示和跳转是否正确。
App的闪退通常是什么原因造成的?
APP闪退
的原因可能是:
缓存垃圾太多,Android系统的特性,如果长时间不清理垃圾文件,会导致越来越卡,甚至闪退。
运行程序太多,导致内存不足。
应用版本兼容问题,分辨率兼容问题。
APP中访问网络的地方,组件能否正常下载并显示。
APP的SDK与手机系统不兼容。
系统升级后,新版本不兼容老版本的API,返回对象失败,报空指针。
测试过程中遇到app出现crash或者ANR,你会怎么处理?
APP出现Crash
或ANR
,可以从以下几个方面处理:
然后再搜索其中的关键字,比如:exception、crash,看看是哪些方法或者异常导致了问题;
初步定位问题原因后,可以交给开发人员去具体查找深层原因并修复。
你平常会看日志吗, 一般会出现哪些异常(Exception)?
这个主要是面试官考察你会不会看日志,是不是看得懂Java里面抛出的异常,一般面试中Java Exception
(runtimeException
)是必会被问到的问题,app崩溃的常见原因应该也是这些了。常见的异常列出四五种,是基本要求。
APP 测试的内容主要包括哪些,如何开展?
APP测试的进行,可以从以下几个方面展开:
业务逻辑正确性测试:依据产品文档->测试用例编写。
1.系统版本:Android:官方版本,定制版本;IOS:官方提供版本。
1.热启动应用:应用在后台长时间待机;应用在后台待机过程中,手机重启。
2.网络切换和中断恢复:网络切换;中断恢复。
3.电话信息中断恢复。
升级,安装,卸载测试:
2.安装测试:首次安装;覆盖安装(同版本,不同版本覆盖);卸载后安装。
3.卸载测试:首次卸载;卸载安装后在卸载。
1.手机资源消耗:cpu,内存。
2.流量消耗:图片,数据,视频。
APP性能测试关注点及常见APP性能测试工具
包体大小能被列为性能指标,是从APP性能指标及运营两个维度考虑的,用户是更希望包体小的同时性能要好,有时它们会是一个互相取舍的关系。
移动应用的启动时间是用户体验的一个重要方面,IOS一直建议尽可能的缩短启动时间,防止用户不愿意使用它们。对于浏览器而言,由于程序启动时还会有教育页和闪屏的下发,因此启动时间的获取显得尤为重要。
启动时间分为冷启动时间和热启动时间,所谓的“冷启动”,就是一个完全没有运行的应用的启动时间,与热启动(应用已经在后台运行,某个事件将其带至前台)相比,由于此时系统尚未建立缓存,因此冷启动往往要较平时(热启动)耗费更长的时间。
dirty),通常我们使用PSS(=私有内存+比例分配共享内存)来衡量一个APP的内存开销。移动设备的内存资源是非常有限,为每个APP进程分配的私有内存也是有限制。一方面我们要合理的申请内存使用,以免导致频繁的GC(垃圾回收机制)影响性能和大对象申请发生内存溢出;另一方面,我们要及时释放内存,以免发生内存泄漏。
一般情况下,用主流手机使用APP20%-40%的CPU占用率算是合理的,当然这个数值随着近年来手机硬件配置的提高,会略微下降,如果CPU占用率超过80%就非常值得我们去关注了。
图片处理器每秒刷新的帧数
(FPS):
可用来指示页面是否平滑的渲染。手机APP帧率FPS,30-60都可接受,上了60对于人眼主观感受差别就不大了。对于移动应用开发而言,并不是FPS越高就一定越好,FPS取决于显卡,其次是内存、CPU,然后是网络。故综合APP其他性能指标,选择一个适合的FPS即可。
相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。另外,android的很多特性都比较耗电(如屏幕,GPS,sensor传感器,唤醒机制,CPU,连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。
目前的网络类型包含2G\3G\4G\5G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类型之下,我们不仅要控制流量使用,还需要加快请求的响应。另外,对于需要联网的手游来说,部分游戏对不同联网方式的网络类型采用了不同的流量消耗策略,主要分为wifi环境和蜂窝网络环境。所以针对不同的游戏,我们统计流量消耗时,可能要连接不同的网络进行测试。
如何对app进行弱网测试
一款APP针对不同网络情况下都需要保证不会崩溃,同时尽可能做到在弱网情况下也能达到功能正常使用,或者使用体验达到最佳。弱网测试可以测试APP的加载时间、可用性、稳定性和健壮性。这时我们就可以借助工具来模拟不同的网络状况,模拟2G、3G或弱网情况进行测试。工具可以选择Fiddler
也可以选择Charles
也可以选择其他工具。
注:adb 使用的端口号是5037
,以下总结工作中常用到的adb命令。
1.查看帮助手册列出所有的选项说明及子命令:
2. 获取设备列表及设备状态:
10.查找包名/活动名
14.返回设备序列号SN值:
15.获取设备的ID:
17.列出所有的应用的包名:
20.获取设备分辨率:
23.查看当前终端中的进程信息:
25.显示所有程序包:
26.根据进程pid或包名查看进程占用的内存:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。