首页 > 代码库 > Shell

Shell

书号:ZWTS 2013 TP316.8 11x 书名: Linux Shell 编程 与编辑器使用详解
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
一、Shell 编程常用命令
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~


awk:过滤器
basename:提取基本文件名
cal:显示日历
cat:一次性显示输出文件的全部内容
cd:改变当前的工作目录
chown:修改文件或目录的所有者
chgrp:修改文件或目录的用户组
clear:清屏,提示符回到屏幕左上方
cp:复制文件
cut:剪切文件
date:显示当前的时间和日期
df:对文件系统的磁盘空间使用情况进行统计
diff: 比较两个文件的差异
echo:回显,即将字符串输出到标准输出设备
egrep:支持扩展正则表达式的grep命令
exit/logout:退出
emacs:启动emacs编辑器
etc/passwd:显示用户使用的shell
find:查找指定的文件
file:显示文件的类型
grep:查找指定的字符串
head:查看文件的开始部分,默认为前10行
lp:打印文件
ls:列出目录中的内容
man:显示联机参考手册
mkdir:创建目录
more:分屏显示文件的内容
mv:移动文件
netstat:显示网络状态
ps:显示进程相关的信息
password: 修改用户的密码
pr:排版文本格式
pwd :显示当前目录
rm:删除文件
rmdir:删除目录,要求目录为空
sed:流编辑器
sleep:暂停指定的时间间隔
spell:拼写检查
su:临时切换到另一用户
tail:查看文件的结尾部分,默认为后10行
talk:与其他用户对话
vi:启动vi编辑器
wc:计算文件的单词数,行数,字符数。
who:显示当前登陆用户的信息
write:给指定用户发送消息


CTRL+C CTRL+D :前者用于结束一个程序,后者用于结束终端输入。
--通配符
*:匹配任意长度的任意字符
?:匹配任意一个字符
[]:任意属于字符组的字符
{}:将大括号中的字符串以及前导字符串和后继字符串作为匹配条件
>>:附加到指定文件的结尾
>:输出重定向
<:输入重定向
|:管道符,用于连接多个命令,前一个命令的输出作为后一个命令的输入
||:逻辑或
&&:逻辑与
&:在后台执行

~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
shell 脚本的优点:
1.一次性完成目标
2.不用重复键入一系列命令
3.简化用户的操作
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
二、常用的Shell类型
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
常用Shell:Bourne Shell,Bourne Again Shell ,C Shell, Korn Shell,Perl Shell
Bourne Again Shell: 简称Bash ,提供,命令历史,命令补全,命令编写等功能,只需命令行键入bash并回车
Korn Shell:简称Ksh,较强的作业控制能力,如挂起,后台执行,唤醒,终止以及窗口功能
Perl Shell(Practical Extraction和Report Language):用来编写web应用程序的通用网关接口(GCI)
Bourne Shell:简称bsh,简单,编写能力强,但操作使用不够方便,不支持后台运行,
总是接管屏幕和键盘的控制,只需命令行键入sh并回车
C Shell:提供方便的用户界面设计,提供命令行编辑,拼写校正,命令历史替换,作业控制等功能。命令行键入csh回车,tcsh回车
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
三、Shell基本语法
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
1.注释:#注释内容、 #!:操作系统使用哪一个Shell,绝对路径名。
2.大小写区分:UNIX与Linux都是区分大小写的,Shell脚本同样也区分大小写
3.IO重定向:在Linux系统中,数据流可以分为三种:数据输出,数据输入,错误输出。相应地,每一个进程也都有三个特殊的文件描述 指针:标准输入(standard input,stdin,文件描述指针为0),标准输出(standard output,stdout,文件描述指针为1),标 准错误输出(standard error,stderr,文件描述指针为2)。这三个特殊的文件描述指针使得进程在通常情况下接受标砖输入 设备的输入,由标准输出设备显示输出。
*标准输入通常是指传给一个命令的键盘输入,例如运行ls -al 其中-al是传给ls命令的标准输入
*标准输出时一个命令的执行结果,例如运行cat /file1.Doc命令后所看到的文件内容,标准输出通常是被定向到显示器的
*标准错误通常也被定向到显示器,例如运行cat /file1.Doc:没有此文件或目录。
!有两种基本的方法可以用来重定向标准输入和标准输出和标准错误:可以利用管道把这些数据流之一输送给另一条命令,也可 以利用I/O重定向把这些数据流之一重定向到另一个文件。管道以及I/O重新定向是Linux系统中特有的噶年。所谓管道是指将某 个命令的输出结果传送到另一个命令,当成另一个命令的输入,其代表符号是‘|‘.所谓I/O重定向是指将命令执行的结果重新导 出到其他设备或文件(以>或>>来表示),或是重新导入到其他的设备或文件(以<或<<来表示)
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
常用输入输出重定向命令格式说明
命令1 > 文件1: 将命令1的输出结果重定向到文件1(错误信息显示在屏幕)
命令1 &>文件1: 将命令1的输出结果和标准错误输出一起重定向到文件1(不会显示在屏幕)
命令1 >>文件1: 将命令1的输出结果追加到文件1中
命令1 2>文件1: 将命令1的标准错误输出结果重定向到文件1中(错误信息输入到文件中,不会显示在屏幕)
命令1 < 文件1: 将文件1作为命令1的标准输入
命令1 <<字符串1:允许连续输入数据,直到接收到字符串1
~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~~~~***~~~
4.输出重定向和输入重定向: 前者是将命令或程序的执行结果通过屏幕或文件输出,
后者是将输入设备(如键盘或文件)提供给命令来执行。

 

Shell