Linux命令与Shell脚本【Linux文件处理Day1】

前几天主要介绍了正则表达式的使用方式,这一期准备介绍一些Linux命令和Shell脚本,这种知识似乎不是我们必需要把握的,而且它可以提升工作效率,但是这种知识对于开发者来说都是通用的,Android,iOS,前端,后端等shell脚本和linux命令,都须要一些Linux和正则表达式的知识。对于iOS开发者来说,Linux的一些操作命令是薄弱环节,作者准备耗费几天时间总结一下这方面的知识,借以还能帮助更多朋友不再担心“命令”。若果在文中有不正确的地方,希望朋友们能赐教鄙人一下。

【特别说明】下文提及所有的命令行的根路径均为:/Users/wangsuyan/desktop/linux,使用man某个命令,例如manrm,可以查看详尽使用。

【Linux字符处理Day2】【Shell脚本Day3】

经过前几天对Linux命令的学习,早已把握了大部份常用的命令,并且假如想要做的更好,可以学习一下Shell脚本,它可以把多条命令按自己的方法来执行。它可以增强我们的工作效率。例如最常见的是podinstall命令,每次须要在终端输入:

cd /Users/wangsuyan/Desktop/project/Kmart
pod install

这些输入须要我们切换到项目的根目录,我们常常不记得自己项目的目录,查找时比较历时。我们完全可以使用一个脚本(podlgsk.sh),直接执行(./podlgsk.sh)。

#!/bin/bash
cd /Users/wangsuyan/desktop/project/Kmart
pod install

执行(执行前须要给脚本执行权限,chmod+xpodlgsk.sh):

$ ./podlgsk.sh

感遭到脚本的“魅力”后,我们可以体会一下@唐巧_body查找未使用的图片的shell脚本。关于查找项目中未使用的图片也可以参考这儿的Python脚本linux系统怎么样,用了你才会爱上它(开玩笑呢,别当真)。

#!/bin/sh

cd /Users/wangsuyan/Desktop/project/Kmart PROJ=`find . -name '*.xib' -o -name '*.[mh]'` for png in `find . -name '*.png'` do name=`basename $png` if ! grep -qhs "$name" "$PROJ"; then echo "$png is not referenced"

fi done

【解析】

cd/Users/wangsuyan/Desktop/project/Kmart,步入项目所在的目录;查找项目中所有png图片;遍历所有的png图片,使用grep命令查找项目中是否使用过该图片,倘若未使用将复印出xxxisnotreferenced;

【知识点】

cd命令(步入项目的根目录);

find命令(查找符合要求的文件shell脚本和linux命令,这儿注意查找xib,.h和.m文件);

grep命令(查找文本内容);

正则表达式,例如:’.[hm]’和’.xib’。关于正则表达式的使用,上一期早已专门介绍了;

Shell脚本中的for循环,if条件判定。

了解了Shell脚本的使用后,下一次将介绍一些它的基本句型,帮助读者可以读懂Shell脚本。

【Shell脚本Day4】

使用Pod的朋友时常会碰到”error:ThesandboxisnotinsyncwiththePodfile.lock.Run’podinstall’orupdateyourCocoaPodsinstallation.”错误,虽然是[CP]CheckPodsManifest.lock这个脚本所起的作用。

Pod中有Manifest.lock和Podfile.lock这两个文件,只要这两个文件的内容不一样都会报错前面这个错误。Podfile.lock是你们共用的文件(拿来保证我们每位人的Pod库版本一样),而Manifest.lock是本地的文件(自己用)。而【图2】中这个脚本正是做这样的事情。

解释下这个脚本:

shell脚本总是以:#!/bin/bash或则#!/bin/sh开头,它主要告诉系统执行这个文件须要那种类库,步入/bin目录下可以看见bash和sh类库;

echo "This is a test shell created by Lefe_x"

exit 1

if 条件 ; then
fi

怎样在终端执行脚本:

如果有个叫podlgsk.sh的脚本,只要给与它执行权限(chmod+xpodlgsk.sh),注意只须要给一次执行权限就行,上次运行脚本时就不须要给与执行权限了嵌入式linux论坛,之后直接./podlgsk.sh即可。

=====我是有底线的======

喜欢我的文章,欢迎关注我的新浪微博Lefe_x,我会不定期的分享一些开发方法

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复