Turbolinux 用户基础 课程内容

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

description

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

Transcript of Turbolinux 用户基础 课程内容

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 实用工具的其他用法

课后习题