iOS开发常用shell命令

1、shell是什么?

答:

(1)Shell是一种具备特殊功能的程序, 它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。 (2)为了对用户屏蔽内核的复杂性,也为了保护内核以免用户误操作造成损害,在内核的周围建了一个外壳(shell)。用户向shell提出请求,shell解释并将请求传给内核。

(3)使用较广的shell有标准的Bourne shell (sh)、Korn Shell(ksh)、C shell (csh)、Bourne Again Shell(bash)等。 例如:查看当前环境所用shell:echo $SHELL

(4)shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。

(5)本质上,shell 脚本是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。

2、shell的特点:

(1) 对已有命令进行适当组合,构成新的命令,并且组合方式很简单

(2) 提供了文件名扩展符使得用单一的字符串可以匹配多个文件名

(3) 可以直接使用Shell的内置命令,而不需创建新的进程

(4) Shell允许灵活地使用数据流,提供通配符、输入/输出重定向、管道符等机制,方便了模式匹配、I/O处理和数据传输。 (5) 结构化的程序模块,提供了顺序流程控制、分支流程控制、循环流程控制等

(6)Shell提供了在后台(&)执行命令的能力

(7) Shell提供了可配置的环境,允许用户创建和修改命令、命令提示符和其它的系统行为

(8) Shell提供一个高级的命令语言,允许用户能创建从简单到复杂的程序。

3、shell用户管理命令:

1.新建用户(user add) useradd UserName 新建用户后,会在/home目录下建立一个以UserName命名的文件夹,用户每次登录时自动定位到该文件夹下。

2.为用户修改密码(password) passwd UserName

3.删除用户(user delete) userdel UserName 使用-p选项可以删除用户目录下的文件及与用户相关联的其他文件。

4.新建组群(group add) groupadd GroupName

5.删除组群(group delete) groupdel GroupName

6.用户身份 whoami

7.查看登录用户 who [选项] -a 显示所有用户的所有信息 -H 显示列标题

8.查看用户的操作 w 某一时刻用户的行为

9.用户间切换(substitute user) su UserName 如:su 或su root 切换为根用户 su Haison 切换为名为Haison的用户

4、shell目录管理命令:

1.创建目录(make directory) mkdir DirectoryName

2.删除目录(remove directory) rmdir DirectoryName

3.显示工作目录(print working directory) pwd

4.显示目录内容(list) ls [选项] 选项:-a 显示当前目录下的所有文件,包括以.开头的文件。 -l 以长列表的形式显示文件列表,如: -rw-r--r-- 1 haison haison 18 Nov 2 10:10 haison.c

5.改变当前目录(change directory) cd 或 cd ~ 进入登录时的主目录 cd / 进入根目录 cd .. 进入上一级目录 cd /home 进入系统的home目录 cd home 进入当前目录下的home目录

6.目录重命名(move) mv SourceDirecName TargetDirecName

7.目录拷贝(copy) cp SourceDirec TargetDirec -r 拷贝目录下的文件、子目录及子目录下的文件

5、shell文件管理命令

1.新建文件 >FileName 或 touch FileName 或 vi FileName

2.删除文件(remove file) rm [选项] FileName 选项:-i 系统提示是否真要删除该文件 -f 删除文件之前不提示任何确认信息 -r 递归删除目录下所有子目录的内容

3.文件拷贝(copy) cp SourceFile TargetFile

4.文件链接(link) ln –s SourceFile TargetFile 创建文件链接,用ls –l查看,会看到TargetFile->SourceFile

5.显示文件内容 more FileName 一次一屏的显示文件内容,空格或回车显示下一屏 less FileName 一次一屏的显示文件内容,空格或回车显示下一屏 cat FileName 一次全部显示文件的内容 cat file1 file2>file3 将file1、file2的内容写到file3,覆盖file3原内容 cat file1>>file2 将file1的内容追加到file2,file2原内容不变 head FileName 只显示文件的前10行 head –n FileName 显示文件的前n行 tail FileName 只显示文件的后10行 tail –n FileName 显示文件的后n行 tail –f FileName 查阅正在改变的日志文件,会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. nl FileName 以编号的形式一次全部显示文件的内容,忽略空行

6.文件移动/重命名(move) mv SourceFile TargetFile 将一个或多个文件移动到另外一个目录下,或者将一个文件重命名为另一个文件。

7.文件查找(find) find [路径] [选项] 如:find / -name test.txt -print

8.文件内容查找(grep) 如:grep main haison.c grep -i main haison.c #忽略大小写 grep –n main haison.c #输出行号 grep -v main haison.c #反检索,只显示不匹配的行

9.文件类型 命令ls –l以长列表形式显示文件的类型等,如:-rw-r--r-- 10.shell中编译指令 cc/gcc/clang -c 文件名.c 把文件名.c编译成 文件名.o文件 执行 ar crs lib文件名.a 文件名.o 即可封装生成库文佳 执行 nm ./文件名.o 查看二进制文件