turbolinux 用户基础 课程内容

39
Turbolinux 用用用用 用用用用 用 用用用 LINUX 用用用 用用 TURBOLINUX 用用用 TURBOLINUX 用用 用用用 X 用用用用用用用 用用用 用用用用用用用用用 用用用 用用用 用用 用用用 SHELL 用用用用 用用用 SHELL 用用用用用 用用用 用用用用用用 用用用 TURBOLINUX 用用用用

Upload: keely

Post on 15-Jan-2016

90 views

Category:

Documents


0 download

DESCRIPTION

Turbolinux 用户基础 课程内容. 第一章 什么是 LINUX 第二章 安装 TURBOLINUX 第三章 TURBOLINUX 工具 第四章 X 配置及疑难解答 第五章 运行级别与故障排除 第六章 文件系统基础 第七章 SHELL 使用指南 第八章 SHELL 进程与脚本 第九章 文档编辑工具 第十章 TURBOLINUX 应用程序. 第七章 Shell 使用指南. 主要内容:. Linux 的基本命令 SHELL 环境 bash shell bash, vi, emacs 功能强大的实用工具 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Turbolinux 用户基础 课程内容

Turbolinux 用户基础 课程内容

第一章 什么是 LINUX

第二章 安装 TURBOLINUX

第三章 TURBOLINUX工具 第四章 X配置及疑难解答 第五章 运行级别与故障排除 第六章 文件系统基础 第七章 SHELL使用指南 第八章 SHELL进程与脚本 第九章 文档编辑工具 第十章 TURBOLINUX应用程序

Page 2: Turbolinux 用户基础 课程内容

第七章 Shell 使用指南

Linux 的基本命令 SHELL 环境 bash shell

bash, vi, emacs

功能强大的实用工具 diff, find, grep, 正则表达式, sed, awk, perl

主要内容:

Page 3: Turbolinux 用户基础 课程内容

7.1 Linux 的基本命令

cd, cp, rm, mv, ls, less, ln, cat, diff, man, passwd, pwd, find, exit

在线帮助 man ls

whatis proc

man 5 proc

man –k time

apropos time

Page 4: Turbolinux 用户基础 课程内容

7.2 SHELL 环境

变量 如: $HOME/.bash_profile

SHELL : bash, sh, tcsh, csh, ash, bsh, ksh, zsh 等

父进程和子进程 bash(PID=xx) bash(PID=yy)vi(PID=yy)

Page 5: Turbolinux 用户基础 课程内容

SHELL 环境 环境:一组定义,变量,别名,函数 子进程从父进程继承环境(如 shell ) 子进程中可改变环境,但它不影响父进程 局部变量 环境变量: export

HOME 是变量, $HOME 是变量的值

Page 6: Turbolinux 用户基础 课程内容

定义 shell 变量 如:$TEST=“test”

$echo $TESTstring

$echo ${TEST}string

teststring

$

视为变量TESTstring

Page 7: Turbolinux 用户基础 课程内容

$EDI=/usr/local/src/editor/bin/editor

$$EDI filename

用变量 EDI 定义一个带路径的命令

Page 8: Turbolinux 用户基础 课程内容

$DISPLAY=192.168.0.1:0

$export DISPLAY

$

用变量 EDI 定义一个带路径的命令

Page 9: Turbolinux 用户基础 课程内容

SHELL 内置的系统变量

HOME

PWD

OLDPWD

PATH

PS1 , PS2

HISTFILE

HISTSIZE

ENV

TERM

VISUAL

EDITOR

LOGNAME

SHELL

PAGER

Page 10: Turbolinux 用户基础 课程内容

查找路径

PATH

如: PATH=:/bin:/usr/bin:/usr/local/bin

内部命令优先于外部命令 若有同名程序,只运行先找到的 允许在当前目录查找并运行程序:用 . (点),或

以冒号开头或结尾 超级用户的查找路径加 . (当前目录)非常危险

! type 可指出程序在 PATH 的什么路径找到

如 type tty

Page 11: Turbolinux 用户基础 课程内容

shell 提示符

PS1 主提示符 PS2 附加部分提示符 ( 命令行续行

符 )

PS4 显示命令行扫描的结果(解析) set –x

Page 12: Turbolinux 用户基础 课程内容

环境文件

/etc/profile

系统变量,由管理员维护 $HOME/.bash_profile

用户可修改 $HOME/.bashrc

该名字由变量 ENV 定义 , 该文件定义 bash shell 的特征

Page 13: Turbolinux 用户基础 课程内容

环境文件

env

Unsetset –o 显示当前 shell 的选项和设置set –o option 设置指定的选项有效set +o option 设置指定的选项无效如 set –o vi 设置 vi 为命令行的编辑器set –o allexport 自动传递所有新变量set –o ignoreeof 禁止使用 Ctrl + D 作为退出登录

的快捷键

查看环境:set

set –o

Page 14: Turbolinux 用户基础 课程内容

更换目录的快捷方式

快捷方式 完整命令$cd $cd $HOME$cd - $cd $OLDHOME$ls ~ $ls $HOME$ls ~user $ls $HOME/user$ls ~- $ls $OLDHOME$ls ~+ $ls $PWD

~ $HOME 主 ( 家 ) 目录~+ $PWD 当前工作目录~- $OLDPWD 先前工作目录

Page 15: Turbolinux 用户基础 课程内容

练习

练习7-1: shell 环境

P142 练习7-2:其他附加

的环境变化 P143

Page 16: Turbolinux 用户基础 课程内容

7.3 bash shell

命令行扫描 按回车表示命令行输入结束 SHELL 解析整个行,特殊字符被解释替换掉

如 $HOME

TAB 键的使用 再按 TAB 键

Page 17: Turbolinux 用户基础 课程内容

扩展通配符

“*” ,“ ?” 是通配符 SHELL 在扫描阶段对通配符进行展开 “*” 匹配跨越“ .” 的文件名(点只是文件名中的一

个普通字符) 如: my* 可能匹配 my myfile my.word

my.old.t

Page 18: Turbolinux 用户基础 课程内容

文件名的形成

通配符有: * 匹配任意个(含 0 个)字符 ? 匹配任意一个字符 [list] 匹配其中之一的字符 [!list] 匹配不在其中的字符

Page 19: Turbolinux 用户基础 课程内容

练习

练习7-3:文件名的生成 P147

Page 20: Turbolinux 用户基础 课程内容

引号

' 单引号 屏蔽所有特殊字符 “ 双引号 屏蔽多数特殊字符(如 : 空

格 , 连字符 -, 反斜杠 \ 等;但不屏蔽 $ ,允许对变量和命令进行替换)

ls aa bb cc 列表 aa,bb,cc 三个文件或目录项

ls “aa bb cc” 列表名为“ aa bb cc” 的文件 \ 反斜杠 屏蔽紧跟其后的字符的特殊

含义

touch \\aa 创建名为“ \aa” 的文件

Page 21: Turbolinux 用户基础 课程内容

bash 的别名

别名:用来创建命令的缩写或另一可选名字 如:

alias dir=ls

alias if=‘ls -fi’ rm=‘rm -I’ cp=‘cp -I’

列出别名:

alias

Page 22: Turbolinux 用户基础 课程内容

命令历史: history

重复调用命令: !

命令行编辑模式: set –o vi

set –o emacs

用分号在一行中执行多条命令

Page 23: Turbolinux 用户基础 课程内容

vi 模式的命令行编辑

ESC 进入命令行模式 编辑命令行时使用 vi 的命令 使用垂直方向键调用历史命令 使用/查找先前的命令 不能使用光标键!

h 左移; l 右移; j 下移; k 上移

Page 24: Turbolinux 用户基础 课程内容

练习

练习7-4: bash shell

P 152 练习7-5:命令的展开和通配符

P153

Page 25: Turbolinux 用户基础 课程内容

7.4 功能强大的实用工具 diff

比较两个文件的不同之处 格式: diff file1 file2

显示结果中, n1 a n3,n4 :在 file1 的第 n1 行之后加进了 file2 第 n3

行至第 n4 行。 n1,n2 d n3 :删除了原属于 file1 的第 n1 至 n2 行(即

file2 的第 3 行)。 n1,n2 c n3,n4 : file1 的第 n1 至第 n2 行变成了 file2 的

第 n3 至第 n4 行 “<“ 行列出第一个文件中受影响的行 “>” 行为第二个文件中的新行

例: diff /etc/passwd /etc/passwd.bak

Page 26: Turbolinux 用户基础 课程内容

diff

diff 可用于目录操作 格式: diff dir1 dir2

显示: Common subdirectories:

Only in dir1:

Only in dir2:

Page 27: Turbolinux 用户基础 课程内容

find 实用程序

例: fine –name name –print

格式: find directories… options… action

options 为参数,如:-name name 查找名为 name 的文件-user name 查找属于用户 name 的文件-type [fdlcb] 查找指定类型的文件 (d 目录, l 连接 )-size [+/-]n[bckw] 查找指定大小的文件 ( 如 +10k

表示大于 10KB , b-blocks(512B), c-Bytes, k-KB, w-2Bytes word )-inum number

action 为操作,如:-print 在标准输出中显示文件名-exec command {} \; 对找到的文件执行指定命令-ok command {} \; 在执行命令前请求确认

Page 28: Turbolinux 用户基础 课程内容

练习

练习7- 6 : find 的使用

P 155

Page 29: Turbolinux 用户基础 课程内容

grep 实用程序

文本文件中查找内容 Global regular expression print 的缩写 匹配模式称“正则表达式” 通常当作过滤器使用 也可查找多个文件

Page 30: Turbolinux 用户基础 课程内容

grep 实用程序

命令格式 :

grep <参数 > < 正则表达式 > <待查文件名 >

如 : grep –n else rc

< 命令 > | grep <参数 > < 正则表达式 >

如 : ls | grep rc*

参数:-v 输出不匹配的行-c 输出满足匹配模式的行数-I 匹配时忽略大小写-n 输出文件中的行号

Page 31: Turbolinux 用户基础 课程内容

正则表达式

.

[list]

[range]

[^ ]

*

\{n\}

\{n,\}

\{n,m\}

^

$

\

Page 32: Turbolinux 用户基础 课程内容

正则表达式

text

\..$

\.*$

^…$

^[0-9]\{3\}[^0-9]

^\([A-Z][A-Z]\)*$

\(-[a-zA-Z] \)*

Page 33: Turbolinux 用户基础 课程内容

sed 实用程序

sed: 字符流编辑器 与 ed相似,一般用作管道过滤器 简单的语法:

sed [-n] ‘command’ [files…]

sed [-n] ‘command’ [files…] > file

sed –nf scriptfile [files…]

< 命令 > | sed ‘command’ > file

Page 34: Turbolinux 用户基础 课程内容

查找替换:

n,ms/old/new/flags

表示从第 n 行到第 m 行, (s) 查找 old, 替换为 new

如: sed ‘1,10s/Now/Today/g’ rc

行号也可用正则表达式查找:

sed –n ‘/^France/,/^Japan/s/ /-/p’ country.txt

Page 35: Turbolinux 用户基础 课程内容

awk 实用程序

一种强大的解释性的编程语言 可用作过滤或操纵文本 可用于处理格式化的文本文件 常与 sed 配合使用 语法 : awk [-F char] [-f file | program] [files…]

awk 是 Aho, Weinberger 和 Kernighan 三位早期 UNIX的作者

awk 通常硬连接到新的 awk, 即 nawk

awk 是高级系统管理员必须学习的!

Page 36: Turbolinux 用户基础 课程内容

awk 实用程序

ifconfig | grep ^[a-z] | awk '{print $1}'

cat /etc/passwd | awk –F: '{print $1}'

awk –F: '{print $1}' /etc/passwd

awk 'BEGIN {print "I am counting"}

{for (I=1;I<=NF;I++) words[$I] += 1}

END {for (w in words) print w ":" words[w]}' datafile

grep awk /etc/rc0.d/*

第 1 列 ,$0 表示整个记录

Page 37: Turbolinux 用户基础 课程内容

.Perl

Practical Extraction and Report Language 的简称 跨平台,适用于异构环境 Perl 脚本可实现交互式任务,可实现几乎所有自动服务管理任务

可完成 sed 和 awk 的所有任务 具有速度、性能和安全方面的优势

Page 38: Turbolinux 用户基础 课程内容

小结

Shell 是一个环境 应理解 Shell 运行机制 了解 SHELL 的主要环境变量 bash

实用工具

Page 39: Turbolinux 用户基础 课程内容

练习

P161  练习 7-7 正则表达式在 grep 中的用法 P161 练习 7-8 在 vi 的查找中使用正则表达式 P162 练习 7-9 先进的正则表达式 P163 练习 7-10 实用工具的其他用法

课后习题