shell
Shell的作用是解释执行用户的命令,有两种执行方式。
- 交互式:用户输入一条命令,Shell就解释执行一条。
- 批处理:用户写shell脚本,其中有很多条命令,让Shell一次把这些命令执行完。Shell脚本和编程语言很相似,但Shell脚本是解释执行的,不需要编译。
类型
Linux默认的shell都是bash,从/etc/shells文件中可以查询合法的shell。系统有些服务在运行过程中,回去检查用户能够使用的shells。若不想让该用户使用FTP之外的主机资源时,可以给予该用户一些奇怪的shell,如 /usr/sbin/nologin,/bin/false。/etc/passwd文件中可以查询用户的登录shell。
命令
在shell命令行中输入的命令有两种。
- 内部命令:cd,pwd,echo等。当Shell运行起来时就随Shell加载入内存,当我们在命令行上输入内部命令时,就可以像调用函数一样直接使用,效率非常高。
- 外部命令:ls,cat,mkdir等。当我们在命令行上输入外部命令时,当前的Shell会fork一个子进程,然后调用exec载入这个命令的可执行文件,比如bin/cat,因此效率上稍微低了点。
快速编辑
脚本
#!是一个特殊标记,说明这是一个可执行的脚本。除了第一行,其他以#开头的都不再生效,为注释。
#!后面是脚本的解释器程序路径。这个程序可以是shell,如#!/bin/bash、#!/bin/sh;或高级程序语言,如#!/usr/bin/python。
执行时,可以直接使用sh执行,或先修改权限再使用./执行。