Linux复习篇——第八章
第八章
vi编辑器
基本命令
命令选项 | 选项说明 |
---|---|
dd(两次按d) | 剪切当前行 |
yy(两次按y) | 将当前行的内容复制到通用缓冲区 |
p | 粘贴 |
强制退出编辑(不保存):
:qa!
|(将前面的命令的输出作为后面的命令的输入)
ls | grep hzx
shell 首先执行ls命令,并将ls的输出传递到grep命令。整个命令将显示当前目录下所有文件名包含hzx字符串的文件。
输入输出重定向
使命令从给定的文件中读取数据
<
使用格式:command arguments < file_name
wc -l < temp.txt
>
该命令将文件 temp.txt作为wc命令的输入,统计文件中的行数。
使用格式:command arguments > file_name
who > userlog
把命令who的输出重定向到文件userlog中。
>>
输出附加重定向符
将命令输出的内容附加到指定文件的末尾。
使用格式:command arguments >> file_name
ls >> filelist
将当前目录中的文件、目录名附加(添加)到文件filelist的末尾
命令组合
组合选项 | 选项说明 |
---|---|
; | 表示按顺序执行命令。 |
&& | 表示根据条件(true)执行其后面的命令。 |
| | | 表示根据条件(false)执行其后面的命令。 |
& | 表示该符号前面的命令在后台执行。 |
shell程序的编辑与运行
小九九乘法表
#! /bin/sh -
for i in 1 2 3 4 5 6 7 8 9
do
for j in 1 2 3 4 5 6 7 8 9
do
if (test $ j - le $ i ) then
echo - ne 'expr $ i\* $ j'"\t"
else
echo
break
fi
done
done
- "#"后面是注释
- for 循环 变量 i 从1到9
- do 结尾要done
- if 结尾要fi(反写if)
- break 退出当层循环
- echo 把后面的打印到显示器上
脚本执行
-
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
-
通过Bash调用执行脚本
bash hello.sh
通配符
通配符 | 作用 |
---|---|
? | 匹配一个任意字符 |
* | 匹配0个或任意多个任意字符,也就是可以匹配任意内容 |
[] | 匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c |
[-] | 匹配中括号中任意一个字符,- 代表一个范围。例如:[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如:[ ^0-9]表示匹配一个不是数字的字符。 |
标准输入和输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/sdtout | 1 | 标准输出 |
显示器 | /dev/sdterr | 2 | 标准错误输出 |
Bash中其他特殊符号
符号 | 作用 |
---|---|
‘’ | 单引号。在单引号中所有的特殊符号都没有特殊含义 |
“” | 双引号。在双引号中特殊字符没有特殊含义,除了“$”、“`”和“\”,拥有“调用变量的值”、“引用命令”、和“转义符”的特殊含义。 |
`` | 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样 |
$() | 和反引号作用一样,用来引用系统命令。 |
# | 在Shell脚本中,#开头的行代表注释。 |
$ | 用于调用变量的值 |
\ | 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。 |
name=sc (变量用等号连接值,等号左右两侧不能有空格、制表符或回车符)
echo ‘$name’
echo “$name”
接收键盘输入
read [选项] [变量名]