首页 > 代码库 > Shell编程之一
Shell编程之一
以下一至二大点是了解。后面才是重点:
一、硬件、核心和shell。
1. 硬件:当然就是你的硬件配备。
2. 核心管理:操作系统的核心。
3. 应用程序:图形接口的软件(这里就是指shell)。
二、为何要学习shell。
1、所有的Linux都支持shell。
2、远程管理:shell命令传输非常快。(Windows下视频传输就是一直抓图,传输速度非常慢)
3、要想做一个高端的系统管理员:shell和shell scripts 必须学会。
三、系统的合法 shell 与 /etc/shells 功能
1、Linux版本系统里面常用的shell种类(查询方法:shell)存放档案目录:/etc/shells
? · /bin/sh (已经被/bin/bash 所取代)
? · /bin/bash (就是Linux预设的shell)
? · /bin/ksh (Kornshell 由 AT&T Bell lab.发展出来的,兼容与bash)
? · /bin/tcsh (整和C Shell,提供更多的功能)
? · /bin/csh (已经被/bin/tcsh所取代)
? · /bin/zsh (基与ksh发展出来的,是功能更强大的shell)
2、一些奇怪的shell(如:/etc/nologin)的来源
有的时候FTP网站会去检查使用者的可用shell,而如果你不想要这些用户使用FTP以外的主机资源时,
可能会给予该使用者一些怪怪的shell,使使用者无法以其他服务登入主机。这个时候,你就得将那些
怪怪的shell写到 /etc/shells 当中了
如:/etc/nologin 这个档案就是怪怪的shell
查看当前工作的shell:cat /etc/passwd
3、Bash Shell 的功能
①、命令编修的能力:history
②、命令与档案补全功能:tab键
? [Tab] 接在一串命令的第一个字的后面,则为命令补全
? [Tab] 接在一串命令的第二个字以后时,则为档案补齐
③、命令别名设置:alias
alias dd=‘ls -al‘
dd /mnt 查看mnt下的目录
④、
程序化脚本:Bash script
通配符:ll /usr/bin/X*
⑤、查询Bash shell 內键命令: type cd
⑥、一行多个命令和命令的换行
一行多个命令中间用分号隔开: ;
多行一个命令,结尾以\隔开: \
四、shell语法;
1、变量以及变量的转换;
变量的分类:本地变量,环境变量,位置变量,系统变量
shell的切换:bash
查看当前的shell ID: echo $$
2、变量的申明与取消、以及注意事项(通用所有变量);
申明:(export,declare) 参数 变量名=值
取消:unset=变量名
定义的注意事项:
①变量名可以用字母数字下划线,但是不能以数字开头;
②等号两边不能有空格;如果有空格则使用引号引起来
3、本地变量的定义和引用;
定义:变量名=值 (前面不需要关键字,直接变量名=值)
引用:echo $变量名
注意:在 bash 当中,当一个发量名称尚未被设定时,预设的内容是空的;
4、环境变量的定义和引用;
定义:
export 变量名=值
declare -x 变量名=值
引用:echo $变量名
环境变量的特点:会影响所有的子shell;
但不会影响以前的shell;
5、本地变量和环境变量的查看和转换;
查看:
查看所有的变量(本地变量和环境变量):set
查看所有的环境变量: env、export、export -p
转换:
本地变量——>环境变量 :
本地变量yy转换为环境变量:
export yy
declare -x yy
环境变量——>本地变量:
环境变量zz换换为本地变量: declare +x zz
6、位置变量;
$0 ----> 代表脚本文件的名字
$# ---->代表参数个数
$* ---->代表参数列表
$$
$@
$?
区别参考博客:http://www.cnblogs.com/kaituorensheng/p/4002697.html
7、系统变量;
系统变量一般是大写。
系统变量什么时候赋值:在系统登录的时候就赋值了。
由于系统变量在系统里面已经设置了;所有我们可以直接引用。
引用的方法:echo $HOME
echo $PATH
echo $MACHINE
echo $HISTFILESIZE (查看当前系统最大的命令缓存个数)
8、查看系统当前支持的编码和当前的编码;
查看系统支持的编码:local -a
查看当前系统的编码:echo $LANG
Shell编程之一