turbolinux 用户基础 课程内容
DESCRIPTION
Turbolinux 用户基础 课程内容. 第一章 什么是 LINUX 第二章 安装 TURBOLINUX 第三章 TURBOLINUX 工具 第四章 X 配置及疑难解答 第五章 运行级别与故障排除 第六章 文件系统基础 第七章 SHELL 使用指南 第八章 SHELL 进程与脚本 第九章 文档编辑工具 第十章 TURBOLINUX 应用程序. 第七章 Shell 使用指南. 主要内容:. Linux 的基本命令 SHELL 环境 bash shell bash, vi, emacs 功能强大的实用工具 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/1.jpg)
Turbolinux 用户基础 课程内容
第一章 什么是 LINUX
第二章 安装 TURBOLINUX
第三章 TURBOLINUX工具 第四章 X配置及疑难解答 第五章 运行级别与故障排除 第六章 文件系统基础 第七章 SHELL使用指南 第八章 SHELL进程与脚本 第九章 文档编辑工具 第十章 TURBOLINUX应用程序
![Page 2: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/2.jpg)
第七章 Shell 使用指南
Linux 的基本命令 SHELL 环境 bash shell
bash, vi, emacs
功能强大的实用工具 diff, find, grep, 正则表达式, sed, awk, perl
主要内容:
![Page 3: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/3.jpg)
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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/4.jpg)
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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/5.jpg)
SHELL 环境 环境:一组定义,变量,别名,函数 子进程从父进程继承环境(如 shell ) 子进程中可改变环境,但它不影响父进程 局部变量 环境变量: export
HOME 是变量, $HOME 是变量的值
![Page 6: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/6.jpg)
定义 shell 变量 如:$TEST=“test”
$echo $TESTstring
$echo ${TEST}string
teststring
$
视为变量TESTstring
![Page 7: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/7.jpg)
$EDI=/usr/local/src/editor/bin/editor
$$EDI filename
用变量 EDI 定义一个带路径的命令
![Page 8: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/8.jpg)
$DISPLAY=192.168.0.1:0
$export DISPLAY
$
用变量 EDI 定义一个带路径的命令
![Page 9: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/9.jpg)
SHELL 内置的系统变量
HOME
PWD
OLDPWD
PATH
PS1 , PS2
HISTFILE
HISTSIZE
ENV
TERM
VISUAL
EDITOR
LOGNAME
SHELL
PAGER
![Page 10: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/10.jpg)
查找路径
PATH
如: PATH=:/bin:/usr/bin:/usr/local/bin
内部命令优先于外部命令 若有同名程序,只运行先找到的 允许在当前目录查找并运行程序:用 . (点),或
以冒号开头或结尾 超级用户的查找路径加 . (当前目录)非常危险
! type 可指出程序在 PATH 的什么路径找到
如 type tty
![Page 11: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/11.jpg)
shell 提示符
PS1 主提示符 PS2 附加部分提示符 ( 命令行续行
符 )
PS4 显示命令行扫描的结果(解析) set –x
![Page 12: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/12.jpg)
环境文件
/etc/profile
系统变量,由管理员维护 $HOME/.bash_profile
用户可修改 $HOME/.bashrc
该名字由变量 ENV 定义 , 该文件定义 bash shell 的特征
![Page 13: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/13.jpg)
环境文件
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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/14.jpg)
更换目录的快捷方式
快捷方式 完整命令$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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/15.jpg)
练习
练习7-1: shell 环境
P142 练习7-2:其他附加
的环境变化 P143
![Page 16: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/16.jpg)
7.3 bash shell
命令行扫描 按回车表示命令行输入结束 SHELL 解析整个行,特殊字符被解释替换掉
如 $HOME
TAB 键的使用 再按 TAB 键
![Page 17: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/17.jpg)
扩展通配符
“*” ,“ ?” 是通配符 SHELL 在扫描阶段对通配符进行展开 “*” 匹配跨越“ .” 的文件名(点只是文件名中的一
个普通字符) 如: my* 可能匹配 my myfile my.word
my.old.t
![Page 18: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/18.jpg)
文件名的形成
通配符有: * 匹配任意个(含 0 个)字符 ? 匹配任意一个字符 [list] 匹配其中之一的字符 [!list] 匹配不在其中的字符
![Page 19: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/19.jpg)
练习
练习7-3:文件名的生成 P147
![Page 20: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/20.jpg)
引号
' 单引号 屏蔽所有特殊字符 “ 双引号 屏蔽多数特殊字符(如 : 空
格 , 连字符 -, 反斜杠 \ 等;但不屏蔽 $ ,允许对变量和命令进行替换)
ls aa bb cc 列表 aa,bb,cc 三个文件或目录项
ls “aa bb cc” 列表名为“ aa bb cc” 的文件 \ 反斜杠 屏蔽紧跟其后的字符的特殊
含义
touch \\aa 创建名为“ \aa” 的文件
![Page 21: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/21.jpg)
bash 的别名
别名:用来创建命令的缩写或另一可选名字 如:
alias dir=ls
alias if=‘ls -fi’ rm=‘rm -I’ cp=‘cp -I’
列出别名:
alias
![Page 22: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/22.jpg)
命令历史: history
重复调用命令: !
命令行编辑模式: set –o vi
set –o emacs
用分号在一行中执行多条命令
![Page 23: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/23.jpg)
vi 模式的命令行编辑
ESC 进入命令行模式 编辑命令行时使用 vi 的命令 使用垂直方向键调用历史命令 使用/查找先前的命令 不能使用光标键!
h 左移; l 右移; j 下移; k 上移
![Page 24: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/24.jpg)
练习
练习7-4: bash shell
P 152 练习7-5:命令的展开和通配符
P153
![Page 25: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/25.jpg)
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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/26.jpg)
diff
diff 可用于目录操作 格式: diff dir1 dir2
显示: Common subdirectories:
Only in dir1:
Only in dir2:
![Page 27: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/27.jpg)
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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/28.jpg)
练习
练习7- 6 : find 的使用
P 155
![Page 29: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/29.jpg)
grep 实用程序
文本文件中查找内容 Global regular expression print 的缩写 匹配模式称“正则表达式” 通常当作过滤器使用 也可查找多个文件
![Page 30: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/30.jpg)
grep 实用程序
命令格式 :
grep <参数 > < 正则表达式 > <待查文件名 >
如 : grep –n else rc
< 命令 > | grep <参数 > < 正则表达式 >
如 : ls | grep rc*
参数:-v 输出不匹配的行-c 输出满足匹配模式的行数-I 匹配时忽略大小写-n 输出文件中的行号
![Page 31: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/31.jpg)
正则表达式
.
[list]
[range]
[^ ]
*
\{n\}
\{n,\}
\{n,m\}
^
$
\
![Page 32: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/32.jpg)
正则表达式
text
\..$
\.*$
^…$
^[0-9]\{3\}[^0-9]
^\([A-Z][A-Z]\)*$
\(-[a-zA-Z] \)*
![Page 33: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/33.jpg)
sed 实用程序
sed: 字符流编辑器 与 ed相似,一般用作管道过滤器 简单的语法:
sed [-n] ‘command’ [files…]
sed [-n] ‘command’ [files…] > file
sed –nf scriptfile [files…]
< 命令 > | sed ‘command’ > file
![Page 34: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/34.jpg)
查找替换:
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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/35.jpg)
awk 实用程序
一种强大的解释性的编程语言 可用作过滤或操纵文本 可用于处理格式化的文本文件 常与 sed 配合使用 语法 : awk [-F char] [-f file | program] [files…]
awk 是 Aho, Weinberger 和 Kernighan 三位早期 UNIX的作者
awk 通常硬连接到新的 awk, 即 nawk
awk 是高级系统管理员必须学习的!
![Page 36: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/36.jpg)
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 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/37.jpg)
.Perl
Practical Extraction and Report Language 的简称 跨平台,适用于异构环境 Perl 脚本可实现交互式任务,可实现几乎所有自动服务管理任务
可完成 sed 和 awk 的所有任务 具有速度、性能和安全方面的优势
![Page 38: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/38.jpg)
小结
Shell 是一个环境 应理解 Shell 运行机制 了解 SHELL 的主要环境变量 bash
实用工具
![Page 39: Turbolinux 用户基础 课程内容](https://reader033.vdocuments.us/reader033/viewer/2022061503/5681495e550346895db6b20b/html5/thumbnails/39.jpg)
练习
P161 练习 7-7 正则表达式在 grep 中的用法 P161 练习 7-8 在 vi 的查找中使用正则表达式 P162 练习 7-9 先进的正则表达式 P163 练习 7-10 实用工具的其他用法
课后习题