shell的基本框架:
1.bash的基本特性
快捷键和基本信息
2.io重定向与管道符
3.编程基础:
编程原理
程序:执行某个功能的一段代码
程序=指令+数据+(逻辑关系)
命令+变量
4.grep和正则表达式************
Linux三剑客
pattrn"模式"
5.语句的逻辑关系
--变量
Linux三剑客
1.sed(stream edit d?)两种模式切换
2.awk (报告生成器)
他是一个独一的编程语言
函数:
一段固定功能的代码块
数组:
列表、元组、字典
字符串:
字符串的处理
重复:必须连续且相同的数据,先排序再去重
--循环:
if、for(优点是不容易进入死循环,程序放入for循环列表)
while--循环条件为真的时候进入循环
until(循环)循环条件为假进入循环
case--“编写Linux程序启动脚本”
--打断循环
break
continue
exit--退出当前状态,指定程序执行的返回值
read ==input()输入
echo==print() 输出
练习:
1.判断/etc/inittab文件是否大于100行,如果大于显示大文件,如果小于显示小文件
#!/bin/bash
Line=`wc -l /ect/inittab|cut -d'' -f1`
if test $Line -gt 100;then
echo "/etc/inittab is a big file."
else
ehco "/etc/inittab is a small file."
-------------------------------------------------------------------------------------------------------
bash的基本特性
1.命令历史
作用:查看之前使用的命令
关于命令历史的文件
每个用户家目录下面.bash_history
在关机的时候,会自动写入一次(history -r 将内存内的命令存入文件内)
关于命令历史的变量(环境变量)
env //查看环境变量
set //查看更详细的环境变量参数
HISTSIZE=1000 数量
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
1.bash的基本特性
快捷键和基本信息
2.io重定向与管道符
3.编程基础:
编程原理
程序:执行某个功能的一段代码
程序=指令+数据+(逻辑关系)
命令+变量
4.grep和正则表达式************
Linux三剑客
pattrn"模式"
5.语句的逻辑关系
--变量
Linux三剑客
1.sed(stream edit d?)两种模式切换
2.awk (报告生成器)
他是一个独一的编程语言
函数:
一段固定功能的代码块
数组:
列表、元组、字典
字符串:
字符串的处理
重复:必须连续且相同的数据,先排序再去重
--循环:
if、for(优点是不容易进入死循环,程序放入for循环列表)
while--循环条件为真的时候进入循环
until(循环)循环条件为假进入循环
case--“编写Linux程序启动脚本”
--打断循环
break
continue
exit--退出当前状态,指定程序执行的返回值
read ==input()输入
echo==print() 输出
练习:
1.判断/etc/inittab文件是否大于100行,如果大于显示大文件,如果小于显示小文件
#!/bin/bash
Line=`wc -l /ect/inittab|cut -d'' -f1`
if test $Line -gt 100;then
echo "/etc/inittab is a big file."
else
ehco "/etc/inittab is a small file."
-------------------------------------------------------------------------------------------------------
bash的基本特性
1.命令历史
作用:查看之前使用的命令
关于命令历史的文件
每个用户家目录下面.bash_history
在关机的时候,会自动写入一次(history -r 将内存内的命令存入文件内)
关于命令历史的变量(环境变量)
env //查看环境变量
set //查看更详细的环境变量参数
HISTSIZE=1000 数量
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
history 的常见操作
1.查看命令历史
2.!+数字
3.!+字符串 匹配最近一次的字符串
4.!!上一条命令
5.!$上一条命令的最后一个参数:ls /etc ls !$
ls ESC.
6.常见的选项:
-a
-d 行号 删除对应命令
-c 清空历史命令
history 【数字】 显示最近数字行的命令
2.命令补全
Tab键 1.提示 2.自动补全
扩展:制表符 \t 是个空格
3.目录补全
Tab键 1.提示 2.自动补全
4.命令展开 ---date
{,}
Linux的目录需要遵循什么规则?--FHS目录规则
makdir -pv /var/{a,b}-{1,2}
date 基于data命令来创建目录
%F 年-月-日
%T 小时-分钟-秒
%D 月 - 日 - 年
%H 小时
%M 分钟
%S 秒
%Y 年
练习:通过for语句循环创建一个月的日志文件
for i in {1..30};do (do是执行这个程序)
touch `date +%Y-%m-$i`.http.log;done($i是调用i)
tar
*******压缩这个操作只能针对文件,不能针对目录
压缩工具:
gzip
bzip2
xz
tar的常见参数:
tar 归档工具【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c 创建
-x 解压
-f 指定文件名
-v 显示详细信息
g-t 不解压查看内容和zcatu一样
练习:编写脚本,每天两点20备份/etc/目录中所有文件,名称为当天日期,且保存文件
crontab -->20 2 * * * /root/xxx.sh
vim xxx.sh
#!bin/bash
#
tar cjvf /var/`date +%F`.xz /etc
chmod +x xxx.sh
补充:
clock /hwclock 常看硬件时钟
5.命令的执行状态
在Linux中,每一条命令执行后都会有两个结果:
命令本身放回的内容
其次,命令执行的结果状态
$?变量,就i是用来存放命令执行状态的变量;
0 表示成功
1-255表示失败
6.命令的快捷键
ctrl + l
ctrl +c
ctrl +u 删除光标前的字符
ctrl +k 删除光标后的字符
ctrl +a
ctrl +e
ctrl +w 以空格为分割符,删除文件
ctrl +r 进入一个交互界面,搜索最近一次使用的命令(要输入string)
7.alisa别名
系统启动时读取一些特殊文件的顺序
alias
alias cdnet ="命令"这种只能在当前shell生效;
/etc/profile 定义环境变量(所有用户) -- EXPORT HISTCONTROL=XXX
/etc/bashrc 定义本地变量--alias(所有用户)
1.查看命令历史
2.!+数字
3.!+字符串 匹配最近一次的字符串
4.!!上一条命令
5.!$上一条命令的最后一个参数:ls /etc ls !$
ls ESC.
6.常见的选项:
-a
-d 行号 删除对应命令
-c 清空历史命令
history 【数字】 显示最近数字行的命令
2.命令补全
Tab键 1.提示 2.自动补全
扩展:制表符 \t 是个空格
3.目录补全
Tab键 1.提示 2.自动补全
4.命令展开 ---date
{,}
Linux的目录需要遵循什么规则?--FHS目录规则
makdir -pv /var/{a,b}-{1,2}
date 基于data命令来创建目录
%F 年-月-日
%T 小时-分钟-秒
%D 月 - 日 - 年
%H 小时
%M 分钟
%S 秒
%Y 年
练习:通过for语句循环创建一个月的日志文件
for i in {1..30};do (do是执行这个程序)
touch `date +%Y-%m-$i`.http.log;done($i是调用i)
tar
*******压缩这个操作只能针对文件,不能针对目录
压缩工具:
gzip
bzip2
xz
tar的常见参数:
tar 归档工具【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c 创建
-x 解压
-f 指定文件名
-v 显示详细信息
g-t 不解压查看内容和zcatu一样
练习:编写脚本,每天两点20备份/etc/目录中所有文件,名称为当天日期,且保存文件
crontab -->20 2 * * * /root/xxx.sh
vim xxx.sh
#!bin/bash
#
tar cjvf /var/`date +%F`.xz /etc
chmod +x xxx.sh
补充:
clock /hwclock 常看硬件时钟
5.命令的执行状态
在Linux中,每一条命令执行后都会有两个结果:
命令本身放回的内容
其次,命令执行的结果状态
$?变量,就i是用来存放命令执行状态的变量;
0 表示成功
1-255表示失败
6.命令的快捷键
ctrl + l
ctrl +c
ctrl +u 删除光标前的字符
ctrl +k 删除光标后的字符
ctrl +a
ctrl +e
ctrl +w 以空格为分割符,删除文件
ctrl +r 进入一个交互界面,搜索最近一次使用的命令(要输入string)
7.alisa别名
系统启动时读取一些特殊文件的顺序
alias
alias cdnet ="命令"这种只能在当前shell生效;
/etc/profile 定义环境变量(所有用户) -- EXPORT HISTCONTROL=XXX
/etc/bashrc 定义本地变量--alias(所有用户)
~/.bash_profile 定义环境变量(指定用户)
~/.bashrc 定义本地变量(指定用户)
手动写入后 sources /etc/profile 或者 . /etc/profile
8.文件通配符 [文件通配符不是正则表达式]
?任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
1.[^]指定范围以外的任意字符
指定字符类[^0-9a-zA-Z]是指定符号
[:digit:]
任意数字, 相当于0-9
[:lower]
任意小写字母
[upper:]
任意大写字母
[alpha:]
任意大小写字母
[:alnum:]
任意数字或字母
[:blank:]|
水平空白字符
[:space:]
水平或垂直空白字符
[punct:]
标点符号
[print:]
可打印字符
[:cntrl:]
控制(非打印)字符
[:graph:]
图形字符
[xdigit:]
十六进制字符
~/.bashrc 定义本地变量(指定用户)
手动写入后 sources /etc/profile 或者 . /etc/profile
8.文件通配符 [文件通配符不是正则表达式]
?任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
1.[^]指定范围以外的任意字符
指定字符类[^0-9a-zA-Z]是指定符号
[:digit:]
任意数字, 相当于0-9
[:lower]
任意小写字母
[upper:]
任意大写字母
[alpha:]
任意大小写字母
[:alnum:]
任意数字或字母
[:blank:]|
水平空白字符
[:space:]
水平或垂直空白字符
[punct:]
标点符号
[print:]
可打印字符
[:cntrl:]
控制(非打印)字符
[:graph:]
图形字符
[xdigit:]
十六进制字符