1)重定向
1)基本概念
- 标准输入 -0
标准输出-1
标准错误-2
- > 把输出重定向到文件
2> 把错误重定向到文件
&> 把输出和错误重定向到文件
- set –C 禁止将内容覆盖已有文件,但可追加 ; set +C 允许覆盖 ; >| file 强制覆盖
- >> 追加内容到文件夹
2>> 把错误内容到文件夹
&>> 把输出和错误追加到文件
- cmd errcmd &> /data/all.log
2)tr 命令
- -d 删除
- -s 把连续重复字符显示为一个
- [:alnum:]:字母和数字 [:alpha:]:字母 [:cntrl:]:控制(非打印)字符 [:digit:]:数字
[:graph:]:图形字符 [:lower:]:小写字母 [:print:]:可打印字符 [:punct:]:标点符号
[:space:]:空白字符 [:upper:]:大写字母 [:xdigit:]:十六进制字符 - tr “\n” ” ” \n是回车
3) 多行重定向
- cat << EOF > f1 结束时要在单独一行输入EOF结束多行重定向
4)管道 |
- ls | tr ‘a-z’ ‘A-Z’
- 命令1 | tee [-a ] 文件名 | 命令2
把命令1的STDOUT保存在文件中,做为命令2的输入
-a 追加
2)grep
1) grep: Global search REgular expression and Print out the line
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行模式:由正则表达式字符及文本字符所编写的过滤条件
2) grep [OPTIONS] PATTERN [FILE…
- grep root /etc/passwd root是关键词 搜索含有root的行并显示,root加颜色
- grep “$USER” /etc/passwd 弱引用 效果同上
- grep ‘$USER’ /etc/passwd 强引用 搜索 $USER
- grep `whoami` /etc/passwd 反向单引号里面是命令且可以执行 grep会查找命令的输出结果
3) grep命令选项
- -v: 显示不被pattern匹配到的行
- -i: 忽略字符大小写
- -n:显示匹配的行号
- -c: 统计匹配的行数
- -o: 仅显示匹配到的字符串
- -q: 静默模式,不输出任何信息
- -A #: after, 后#行
- -B #: before, 前#行
- -C #:context, 前后各#行
- -e:实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file - -w:匹配整个单词
- -F:相当于fgrep,不支持正则表达式
4) 基本正则表达式元字符
- . 匹配任意单个字符
- [] 匹配指定范围内的任意单个字符
- [^] 匹配指定范围外的任意单个字符
- [:alnum:] 字母和数字
- [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
- [:lower:] 小写字母 [:upper:] 大写字母
- [:blank:] 空白字符(空格和制表符)
- [:space:] 水平和垂直的空白字符 (比[:blank:]包含的范围广)
- [:cntrl:] 不可打印的控制字符(退格、删除、警铃…)
- [:digit:] 十进制数字 [:xdigit:]十六进制数字
- [:graph:] 可打印的非空白字符
- [:print:] 可打印字符
- [:punct:] 标点符号
5)正则表达式(匹配次数)
- * 匹配前面的字符任意次,包括0次
贪婪模式:尽可能长的匹配 - .*任意长度的任意字符
- \? 匹配其前面的字符0或1次
- \+ 匹配其前面的字符至少1次
- \{n\} 匹配前面的字符n次
- \{m,n\} 匹配前面的字符至少m次,至多n次
- \{,n\} 匹配前面的字符至多n次
- \{n,\} 匹配前面的字符至少n次
6)正则表达式(位置锚定 )
- ^ 行首锚定,用于模式的最左侧
- $ 行尾锚定,用于模式的最右侧
- ^PATTERN$ 用于模式匹配整行
- ^$ 空行
- ^[[:space:]]*$ 空白行
- \< 或 \b 词首锚定,用于单词模式的左侧
- \> 或 \b 词尾锚定;用于单词模式的右侧
- \<PATTERN\> 匹配整个单词
7)正则表达式( 分组 )
- \(\) 将一个或多个字符捆绑在一起,当作一个整体进行处理 例: \(root\)\+
- 后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身 \1,\2
- 或者:\|
8) 扩展的正则表达式 (正则表达式去掉\)
- 次数匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次 - 位置锚定:
^ :行首
$ :行尾
\<, \b :语首
\>, \b :语尾 - 分组:
()
后向引用:\1, \2, - 或者:
a|b: a或b
C|cat: C或cat
(C|c)at:Cat或cat
3)vim
1)vim打开文件
- vim [OPTION]… FILE…
+#: 打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的
行首
–b file 二进制方式打开文件
–d file1 file2… 比较多个文件
-m file 只读打开文件 - ex file 或 vim –e 直接进入ex模式
- 如果该文件存在,文件被打开并显示内容
如果该文件不存在,当编辑后第一次存盘时创建它
2)三种模式及模式的切换
- 三种主要模式:
1.命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本
2.插入(Insert)或编辑模式: 修改文本
3.扩展命令(extended command )模式: 保存,退出等 - Esc键 退出当前模式
- Esc键 Esc键 总是返回到命令模式
3) 模式转换
- 命令模式 –> 插入模式
i: insert, 在光标所在处输入
I:在当前光标所在行的行首输入
a: append, 在光标所在处后面输入
A:在当前光标所在行的行尾输入
o: 在当前光标所在行的下方打开一个新行
O:在当前光标所在行的上方打开一个新行 - 插入模式 ——–> 命令模式
ESC - 命令模式 ——–> 扩展命令模式
: - 扩展命令模式 ——–> 命令模式
ESC,enter
4)关闭文件
- 扩展模式:
:q 退出 推荐使用
:q! 强制退出,丢弃做出的修改
:wq 保存退出 推荐使用
:x 保存退出 - 命令模式
ZZ: 保存退出
ZQ:不保存退出
5) 扩展模式
- 按“:”进入Ex模式
- 创建一个命令提示符: 处于底部的屏幕左侧
- 命令:
w 写(存)磁盘文件
wq 写入并退出
x 写入并退出
q 退出
q! 不存盘退出,即使更改都将丢失
r filename 读文件内容到当前文件中
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出
6) 命令模式光标跳转
- 字符间跳转:
h: 左 l: 右 j: 下 k: 上=上下左右
#COMMAND:跳转由#指定的个数的字符 - 单词间跳转:
w:下一个单词的词首
e:当前或下一单词的词尾
b:当前或前一个单词的词首
#COMMAND:由#指定一次跳转的单词数 - 当前页跳转:
H:页首 M:页中间行 L:页底
7) 命令模式光标跳转
- 行首行尾跳转:
^: 跳转至行首的第一个非空白字符
0: 跳转至行首
$: 跳转至行尾 - 行间移动:
#G、扩展模式:# :跳转至由#指定行
G:最后一行
1G, gg: 第一行 - 句间移动:
):下一句 (:上一句 - 段落间移动:
}:下一段 {:上一段
8) 命令模式操作
- 字符编辑:
x: 删除光标处的字符
#x: 删除光标处起始的#个字符
xp: 交换光标所在处的字符及其后面字符的位置
~:转换大小写
J:删除当前行后的换行符 - 替换命令(r, replace)
r: 替换光标所在处的字符
R:切换成REPLACE模式 - 删除命令:
d: 删除命令,可结合光标跳转字符,实现范围删除
d$: 删除到行尾
d^:删除到非空行首
d0:删除到行首 - dd: 删除光标所在的行
#dd:多行删除 - D:从当前光标位置一直删除到行尾,留空行,等同于d$
- 复制命令(y, yank):
y: 复制,行为相似于d命令 - yy:复制行
#yy: 复制多行 - Y: 复制整行
- 粘贴命令(p, paste):
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴
至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴
至当前光标所在处的前面
9) 扩展命令模式:地址定界
- /pat1/,/pat2/
从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结
束
#,/pat/
/pat/,$
10) 扩展命令模式:查找
- /PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向
11) 扩展命令模式:查找并替换
- 格式:s/要查找的内容/替换为的内容/修饰符
- 查找内容可以使用格式,替换内容不能但是可以使用\1,\2后向引用
- i: 忽略大小写;g: 全局替换
- 一般形式为s///(/符号可以替换为其他符号例如@;#;%使用文本中不含有的符号以防止混淆)
4)sed
1)地址定界
- 不给地址:对全文进行处理
- #: 指定的行,$:最后一行
/pattern/:被此处模式所能够匹配到的每一行 - 地址范围:
#,# 几行到几行
#,+# 几行到+几
/pat1/,/pat2/ 第一个关键词到第二个关键词
#,/pat1/ 指定行到 关键词 - ~ 步进 1~2 从第一行开始隔两行,奇数;2~2 取偶数
2)编辑命令
- d: 删除模式空间匹配的行,并立即启用下一轮循环
- p:打印当前模式空间内容,追加到默认输出之后
- a [\]text:在指定行后面追加文本;支持使用\n实现多行追加
- i [\]text:在行前面插入文本
- c [\]text:替换行为单行或多行文本
- w /path/somefile: 保存模式匹配的行至指定文件
- r /path/somefile:读取指定文件的文本至模式空间中
匹配到的行后 - =: 为模式空间中的行打印行号
- !:模式空间中匹配行取反处理
3)查找替换( 支持使用其它分隔符 )
- s///;s@@@
- g: 行内全局替换
p: 显示替换成功的行
w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中
4)高级编辑
- P:打印模式空间开端至\n内容,并追加到默认输出之前
- h: 把模式空间中的内容覆盖至保持空间中
- H:把模式空间中的内容追加至保持空间中
- g: 从保持空间取出数据覆盖至模式空间
- G:从保持空间取出内容追加至模式空间
- x: 把模式空间中的内容与保持空间中的内容进行互换
- N:读取匹配到的行的下一行追加至模式空间
- d: 删除模式空间中的行
- D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本,
并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间
不包含换行符,则会像发出d命令那样启动正常的新循环
示例: sed -n ‘n;p’ FILE 显示偶数行
sed ‘1!G;h;$!d’ FILE 倒序
sed ‘N;D‘ FILE 显示最后一行
sed ‘$!N;$!D’ FILE 显示后两行
sed ‘$!d’ FILE 显示最后一行
sed ‘G’ FILE 每行后加一个空行
sed ‘g’ FILE 变成空行显示出来
sed ‘/^$/d;G’ FILE 每行后加一个空行
sed ‘n;d’ FILE 显示奇数行
sed -n ‘1!G;h;$p’ FILE 倒序
5)yum(以httpd为例)
1) 下载源码并解压缩
tar xvf httpd-2.4.29.tar.bz2 -C /usr/local/src/
2)安装编译相关工具及依赖的包
yum groupinstall “development tools”
yum install apr-devel apr-util-devel pcre-devel
3)./configure –prefix=/apps/httpd24 –sysconfdir=/etc/httpd24
4)make -j 4
5) make install
6)PATH变量
echo ‘PATH=/apps/httpd24/bin:$PATH’ > /etc/profile.d/httpd24.sh
. /etc/profile.d/httpd24.sh
7)使用软件
apachectl 启动服务
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92538