Shell概述
时间:2010-10-30 来源:osullishuai80
一、Shell概述
(1)Shell的概念及理解
1.Shell就是命令解析器,将用户输入的指令转换为相应的机器能够运行的程序.
2.Shell脚本是一个包含一些列命令序列的文本文件.当运行这个脚本文件时,文件中包含的命令序列得到执行.
例程: [root@localhost lishuai]# vim myfirstscript.sh
#!/bin/sh
echo "hello embeded"
mkdir /hehe
该Shell脚本只做了两个任务,首先打印字符串"hello embeded",然后在根目录下创建目录hehe.
[root@localhost lishuai]# ./myfirstscript.sh
Shell脚本执行结束后,可以在终端上显示出字符串"hello embeded",且在根目录下创建了目录hehe.
实际上,Shell脚本是一种自动化执行程序,它可以简化开发人员的工作量.注意,运行Shell脚本时不需要编译.
3.Shell是一种可执行程序,它是介于kernel与用户之间的工具,为用户提供了操作内核的可能.广义的Shell可以是一条命令,也可以是KDE、GNOME之类的图形界面控制软件,因为它也可以帮助用户与kernel进行沟通.狭义的Shell是文字模式的Shell.由用户通过Shell与kernel进行沟通.
Attention!!!
1.用户与kernel之间是通过shell进行沟通.
2.kernel与底层硬件之间是通过bsp进行沟通.
BSP:(Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板.
(2)Linux中所支持的Shell类型
1.[root@localhost lishuai]#vim /etc/shells
通过检查该文件,可以查看系统所支持的Shell.
/bin/sh (已被/bin/bash所取代)
/bin/bash (Linux默认支持的Shell)
/sbin/nologin
/bin/ash
/bin/bsh
/bin/csh
2.查看当前系统中使用shell的类型:#set
在linux主机中,使用SHELL=/bin/bash
在ARM开发板中,使用SHELL=/bin/ash
(3)Shell的功能
1、命令与文件补齐功能
热键tab只有在Bash Shell中才有,它可以实现命令补齐和文件补齐功能.在命令提示符中输入两个[tab][tab],则可以查询系统中所有的可执行命令.在命令提示符中输入c[tab][tab],则可以查询系统中所有以c开头的命令.
2、命令别名设置功能
在linux中可以使用alias来给命令重新命名.
如:#alias lm='ls -al'
则命令lm就等价于命令ls -al,也可以在命令行输入alias来查询当前的命令别名有哪些了.
3、作业控制、前台、后台控制
使用前、后台的控制,可以让工作进行的更顺利.
4、Shell scripts的强大功能
在DOS内,将一堆命令写在一起,形成了"批处理文件".在linux内,Shell scripts可以将需要下达的连续命令写成一个文件,该文件可以通过对话交互方式来进行主机检测.
5、通配符
Bash Shell支持通配符来帮助用户进行查询.
比如:用户想知道/usr/X11R6/bin下有多少以xt开头的文件,可以使用#ls -l /usr/X11R6/bin/*xt来查询. 二、系统配置文件
在命令行模式下设置的变量、命令别名等,这些操作都是针对本地登录的设置,一旦注销了Linux,则上次的设置值就不再存在了.这是由于Linux在每次重启时,都会读取某些系统环境的配置文件.若用户的配置或设置信息没有写入这些文件中,则Linux重启后用户的设置便不再存在了.
在Linux中允许创建个人用户,因此Linux中的环境设置可分为系统设置和个人设置.
(1)/etc/profile
该文件为系统的每个用户(root或其它用户)的环境信息,因此该文件对全部用户均有效.当用户第一次登录时,该文件被执行. 注意,该文件是登陆后读取,/etc/init.d/rcS文件在登陆前读取.
(2)/etc/bashrc
为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
(3)~/.bash_profile
家目录下的bash_profile文件.每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件.
(4)~/.bashrc
家目录下的bashrc文件.该文件包含专用于用户自己的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取./etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
(5)~/.bash_logout
家目录下的bash_logout文件.当每次退出系统(退出bash shell)时,执行该文件.
以上文件是Linux主机下的几个配置文件,在ARM文件系统中也会有功能相同的文件,只是名字不同而已. Attention!!!
1.在Linux系统中,文件/etc/rc.d/rc.local用于执行用户自己想要执行的系统命令.换句话说,任何想要在启动时就执行的工作,直接写入到该文件中,那么该工作就会在启动的时候自动加载,而不必等我们登录系统去启动.实际操作时,可以将自己制作的shell脚本的完整文件名写入到/etc/rc.d/rc.local,这样,启动时就会执行用户自己的脚本.
例如:在家目录下编写了一个Shell脚本(filename:test.sh pwd:/home/lishuai)
#!/bin/bash
mkdir -p /home/yhy/haha
ifconfig eth0 192.168.0.50 netmask 255.255.255.0
该脚本目的在开机时自动创建多层目录和配置系统IP地址,为了使能该脚本每次在开机启动时都执行,可以将该脚本的完整文件名写入到文件/etc/rc.d/rc.local中.
[root@localhost /]# cd /etc/rc.d
[root@localhost rc.d]# vim rc.local
在文件rc.local加入以下内容:
sh /home/lishuai/test.sh
这样,在每次开机时系统都会运行test.sh脚本.注意,"./"是执行当前目录下的可执行文件,"sh"是执行某一目录下的可执行文件,后接可执行文件的绝对路径.
2.Linux主机中配置文件的读取顺序
(1)读取文件/etc/profile
(2)读取下面三个文件(~/.bash_profile、~/.bash_login、~/.profile)中的一个
(3)读取文件~/.bashrc
(4)读取文件/etc/bashrc
(5)读取文件~/.bash_logout
(1)Shell的概念及理解
1.Shell就是命令解析器,将用户输入的指令转换为相应的机器能够运行的程序.
2.Shell脚本是一个包含一些列命令序列的文本文件.当运行这个脚本文件时,文件中包含的命令序列得到执行.
例程: [root@localhost lishuai]# vim myfirstscript.sh
#!/bin/sh
echo "hello embeded"
mkdir /hehe
该Shell脚本只做了两个任务,首先打印字符串"hello embeded",然后在根目录下创建目录hehe.
[root@localhost lishuai]# ./myfirstscript.sh
Shell脚本执行结束后,可以在终端上显示出字符串"hello embeded",且在根目录下创建了目录hehe.
实际上,Shell脚本是一种自动化执行程序,它可以简化开发人员的工作量.注意,运行Shell脚本时不需要编译.
3.Shell是一种可执行程序,它是介于kernel与用户之间的工具,为用户提供了操作内核的可能.广义的Shell可以是一条命令,也可以是KDE、GNOME之类的图形界面控制软件,因为它也可以帮助用户与kernel进行沟通.狭义的Shell是文字模式的Shell.由用户通过Shell与kernel进行沟通.
Attention!!!
1.用户与kernel之间是通过shell进行沟通.
2.kernel与底层硬件之间是通过bsp进行沟通.
BSP:(Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板.
(2)Linux中所支持的Shell类型
1.[root@localhost lishuai]#vim /etc/shells
通过检查该文件,可以查看系统所支持的Shell.
/bin/sh (已被/bin/bash所取代)
/bin/bash (Linux默认支持的Shell)
/sbin/nologin
/bin/ash
/bin/bsh
/bin/csh
2.查看当前系统中使用shell的类型:#set
在linux主机中,使用SHELL=/bin/bash
在ARM开发板中,使用SHELL=/bin/ash
(3)Shell的功能
1、命令与文件补齐功能
热键tab只有在Bash Shell中才有,它可以实现命令补齐和文件补齐功能.在命令提示符中输入两个[tab][tab],则可以查询系统中所有的可执行命令.在命令提示符中输入c[tab][tab],则可以查询系统中所有以c开头的命令.
2、命令别名设置功能
在linux中可以使用alias来给命令重新命名.
如:#alias lm='ls -al'
则命令lm就等价于命令ls -al,也可以在命令行输入alias来查询当前的命令别名有哪些了.
3、作业控制、前台、后台控制
使用前、后台的控制,可以让工作进行的更顺利.
4、Shell scripts的强大功能
在DOS内,将一堆命令写在一起,形成了"批处理文件".在linux内,Shell scripts可以将需要下达的连续命令写成一个文件,该文件可以通过对话交互方式来进行主机检测.
5、通配符
Bash Shell支持通配符来帮助用户进行查询.
比如:用户想知道/usr/X11R6/bin下有多少以xt开头的文件,可以使用#ls -l /usr/X11R6/bin/*xt来查询. 二、系统配置文件
在命令行模式下设置的变量、命令别名等,这些操作都是针对本地登录的设置,一旦注销了Linux,则上次的设置值就不再存在了.这是由于Linux在每次重启时,都会读取某些系统环境的配置文件.若用户的配置或设置信息没有写入这些文件中,则Linux重启后用户的设置便不再存在了.
在Linux中允许创建个人用户,因此Linux中的环境设置可分为系统设置和个人设置.
(1)/etc/profile
该文件为系统的每个用户(root或其它用户)的环境信息,因此该文件对全部用户均有效.当用户第一次登录时,该文件被执行. 注意,该文件是登陆后读取,/etc/init.d/rcS文件在登陆前读取.
(2)/etc/bashrc
为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
(3)~/.bash_profile
家目录下的bash_profile文件.每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件.
(4)~/.bashrc
家目录下的bashrc文件.该文件包含专用于用户自己的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取./etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
(5)~/.bash_logout
家目录下的bash_logout文件.当每次退出系统(退出bash shell)时,执行该文件.
以上文件是Linux主机下的几个配置文件,在ARM文件系统中也会有功能相同的文件,只是名字不同而已. Attention!!!
1.在Linux系统中,文件/etc/rc.d/rc.local用于执行用户自己想要执行的系统命令.换句话说,任何想要在启动时就执行的工作,直接写入到该文件中,那么该工作就会在启动的时候自动加载,而不必等我们登录系统去启动.实际操作时,可以将自己制作的shell脚本的完整文件名写入到/etc/rc.d/rc.local,这样,启动时就会执行用户自己的脚本.
例如:在家目录下编写了一个Shell脚本(filename:test.sh pwd:/home/lishuai)
#!/bin/bash
mkdir -p /home/yhy/haha
ifconfig eth0 192.168.0.50 netmask 255.255.255.0
该脚本目的在开机时自动创建多层目录和配置系统IP地址,为了使能该脚本每次在开机启动时都执行,可以将该脚本的完整文件名写入到文件/etc/rc.d/rc.local中.
[root@localhost /]# cd /etc/rc.d
[root@localhost rc.d]# vim rc.local
在文件rc.local加入以下内容:
sh /home/lishuai/test.sh
这样,在每次开机时系统都会运行test.sh脚本.注意,"./"是执行当前目录下的可执行文件,"sh"是执行某一目录下的可执行文件,后接可执行文件的绝对路径.
2.Linux主机中配置文件的读取顺序
(1)读取文件/etc/profile
(2)读取下面三个文件(~/.bash_profile、~/.bash_login、~/.profile)中的一个
(3)读取文件~/.bashrc
(4)读取文件/etc/bashrc
(5)读取文件~/.bash_logout
相关阅读 更多 +