Linux文件帮助_重定向_vi

一、 帮助

1、 内部命令

help COMMAND 

2、 外部命令

COMMAND --help 
COMMAND -h 
man 手册 
info 信息 
程序自带的文档 
README、INSTALL 等 
程序官方文档 
百度、谷歌

3、 help

3.1、内部命令

-查看 echo 命令的帮助。 help echo

3.2、外部命令

-查看 ls 命令的简单帮助,详细帮助要用 man 
-/bin 目录下面都是外部命令,如:/bin/ls,如果:
 mv /bin/ls /bin/lls,那 ls 命令就不 能用了。 ls --help

3.3、帮助信息格式

格式 解析
[] 表示可选
表示同一内容可出现多次
\ 表示多选一
<> 表示必选

4、 man 帮助手册

每个程序,都有帮助文档,但大量的文档,会占用大量空间,所以需要压缩,man 手 册就是压缩过的程序文档

-man 手册的配置文件 
-指定了 man 命令搜索路径 cat /etc/man.config
  • man 总共分 9 个章节,对运维人员来说,主要 1,5 章节
  • man 命令以 less 方式打开帮助手册
章节 作用
man 1 用户命令
man 2 系统调用
man 3 库函数调用
man 4 设备文件和特殊文件
man 5 配置文件
man 6 游戏
man 7 协议、标准等
man 8 系统管理和特权命令,比如磁盘分区命令
man 9 linux 内核 API(内核调用)

4.1、搜索关键字

-精确匹配 read,进行搜索 
-whatis,有一个数据库,可将系统上所有的帮助手册与之对       应的关键字创建为一个数据库, 命令就是从它的数据库中查寻数据 
-mkwhatis,手动创建数据库 
-默认,系统有一个计划任务,自动创建这个数据库 whatis read 
-和 whatis 的区别,apropos 模糊匹配,也是在 whatis 数据库中搜索 apropos read 
-等价于 whatis read: man -f read 
-等价于 apropos read: man -k read

4.2、例 1

  • 查找 passwd 这个文件的帮助
  • passwd 既是一个命令又是一个配置文件,如果直接 man passwd,会从第一章开始往后查找,一直找到为止,然而在第一章命令章节里,就有 passwd,所以这样找到的 是 passwd 这个命令的帮助。如果要查找passwd 这个配置文件的帮助:man 5 pas swd
  • 在第一章的 sslpasswd 帮助中,有一个 passwd 命令
    man -f passwd
    sslpasswd (1ssl) - compute password hashes passwd (1) - update user’s authentication tokens passwd (5) - password file
    man 5 passwd
    注意:
    如果系统是最小化安装,passwd(5)可能没有

4.3、例 2

-在 man 手册中,查看内部命令 cd 的帮助信息 
-发现,打开的是 bash 手册 
-man cd

5、 info

-info 命令比 man 命令更加详细,但我们一般很少去用它。 
-它会将三个 passwd 的帮助合并显示 
-info passwd

6、 程序的自身文档

  • 安装软件的时候,会在**/usr/share/doc** 目录下先创建一个以程序名命名的目录,然后把自己的说明文档和使用方法文档放在该目录下
  • 也可到相应程序的官方网站查看相应的官方文档
  • 通过 firefox 浏览器查看 http 程序文档:
    -firefox file:///usr/share/doc/httpd-2.4.6

7、 官方文档

https://access.redhat.com/documentation/en-us/ https://wiki.centos.org/zh/Documentation

8、 google 用法

8.1、双引号

  • 把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。

8.2、filetype

  • 用于搜索特定文件格式。 如:linux filetype:pdf

8.3、site

  • 用来搜索某个域名下的所有文件。 如:echo site:centos.org

三、 创建、查看、编辑文件

  • 输入:对一个文件输入,除了键盘输入外,还可以通过一个文件输入
  • 输出:执行一个命令,会有相应的输出到屏幕上。输出有标准的正确输出和错误输出
  • 重定向:把一个输出结果,再输出到另一个文件或一个终端

1、 重定向

linux 中有三种标准输入输出:

  • STDIN 就是标准输入,默认从键盘读取信
  • STDOUT 是标准输出,默认将输出结果输出至终端,也就是显示器之类的东西
  • STDERR 是标准的错误信息,默认也会显示在终端上。

由于 STDOUT 与 STDERR 都会默认显示在终端上,为了区分:

状态 解析
0 表示 STDIN,标准输入
1 表示 STDOUT,标准输出
2 表示 STDERR,标准错误
& 表示所有的正确和错误输出
 -禁止覆盖重定向现有文件
 -如果还是要强制覆盖,使用">|": set -C 
 -允许覆盖重定向: set +C

2、 输出重定向

2.1、标准正确输出重定向

 - 1> 覆盖式重定向。不加前面的 1,默认就是正确输出 
 - 1>> 追加式重定向。

2.2、标准错误输出重定向

 - 2> 覆盖 
 - \2>> 追加

2.3、怎么判断一个命令的输出是正确输出还是错误输出呢?

例 1:

- find /etc -name passwd >find.out 2>find.err
#将标准正确输出,重定向到 find.out
#将标准错误输出,重定向到 fine.err 

例 2:

- 如果还有输出,说明这个重定向方式没起作用的,也就是说这是一个错误的输出,反之, 就是一个正确的输出
- adfkldf >> /tmp/t.txt

例 3:

- echo $?
#只是判断上一次命令有没有执行成功,不能判断输出是一个标准正确还是错误输出

例 4:

- 把输出结果丢到垃圾筒 
- ls > /dev/null

2.4、怎么同时把标准正确和错误的输出重定向到同一个文件呢?

 - find /home -name kiosk 1>>/tmp/f1 2>>/tmp/f1
 - 这种方式会打乱输出,先重定向正确输出,才会输出错误输出。

 - find /home -name kiosk &> /tmp/f1 
 - 这种方法就不会打乱输出了
 - &表示所有正确和错误的输出

有时候希望将一个错误输出重新定向到正确输出,就是将 2 的结果重定向至 1 中,就 有了"2>1"这样的思路,如果按照上面的写法,系统会默认将错误输出重定向到一个名字为 1 的文件中,而非标准输出中。因此需要加&进行区分,就有了 2>&1

 - 把一个错误输出转换成正确输出,然后再以正确输出重定向到/tmp/f1 文件 
 - find /home -name kiosk > /tmp/f1 2>&1

3、 输入重定向

  • 从一个文件的标准输出,再把这个输出作为输入到另一个文件

3.1、cat

  • cat,默认,将键盘的输入,输出到屏幕上

     - 通过键盘输入,重定向到 f1 这个文件,以 ctrl+d 结束:cat > /tmp/f1 
     - 把/etc/passwd 这个文件内容作为输入给 cat,然后重定向到 f1 这个文件:cat > /tmp/f1 < /etc/passwd 
     - 定义一个结束符,当输入 EOF,键盘输入就会结束。
     - 注意:EOF 不是固定字符,可以自己随便定义:cat > /tmp/f1 <<”EOF”
    

3.2、tr

  • tr 用来从标准输入中通过替换或删除操作进行字符转换

  • 默认为替换

  • -d,删除指定字符

  • -s,删除所有重复出现字符序列,只保留第一个

     - 删除换行符和制表符:
       cat file | tr -d "\n\t" > new_file
     - 删除空行。空行,也有一个换行符,将多个连续的换行符删掉,也就是把空行删除了:
       cat file | tr -s "\n" > new_file
     - 将/etc/fstab 文件中的所有 a,换成 A,b 换成 B,c 换成 C
     - tr 命令,替换字符:
       tr abc ABC < /etc/fstab
     - 将所有小写字母,替换成大写输出:
       tr 'a-z' 'A-Z' < /etc/fstab
    

4、 管道

4.1、|

把管道符前面的命令的标准输出,当作后面命令的输入
cat /etc/passwd | more 

4.2、tee

tee 命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中 
要注意的是:在使用管道时,前一个命令的标准错误输出不会被 tee 读取。

tee,默认覆盖保存:cat /etc/passwd | tee f.txt 
-a,追加:pwd | tee -a f.txt

5、 read 命令

接收标准输入(键盘)的输入,得到输入后,read 命令将数据放入一个标准变量中

将键盘的输入,存放到 name 这个变量中 read name 
取变量的值 echo $name 
-p,打印一句话,然后等用户输入:
 read -p "Enter your name:" name

6、 vi 和 vim

  • vi 和 vim 都是文本编辑器,vim 是 vi 的升级版
  • vim 会高亮显示,而 vi 不会

6.1、命令行模式

命令 解析
h 光标向左移动
j 光标向下移动
k 光标向上移动
l 光标向右移动
yy 复制一行,复制 10 行:10yy
p 粘贴到光标所在的下一行 ,10p 就是把复制的内容粘贴 10 次
P 粘贴到光标所在的上一行
dd 剪切光标所在行,100dd,剪切光标以下 100 行
d1G 从光标所在行,删除到第一行
dG 从光标所在行,删除到最后一行
D 从光标处剪切到行尾,这时,p,会在光标后面粘贴
d$ 同上
gg 光标回到第一行行首
G 光标到最后一行行首
$ 移动光标到当前行尾
0 数字零,移动光标到当前行首
x 删除光标所在字符,2x,从光标往后删除 2 个字符
X 往前删
r 替换光标处单个字符,r2,把光标处字符替换成 2
R 进入替换模式,一直替换,除非按 esc,回到命令行模式
u 撤消上一次操作
ctrl+r 恢复上一次的撤消操作
. 重复上一次操作
ctrl+f 向下一页
ctrl+b 向上一页

6.2、编辑模式

从命令行模式进入编辑模式的方式:

命令 解析
i 在光标当前位置的前面插入字符
I 光标移动当前行的行首
a 光标往后退一个字符
A 光标移动到行尾
o 光标所在行下一行新起一行
O 上一行新起一行

回到命令行模式,按 esc 键,切换到其它模式必须先回到命令模式,再切换 图形化下用鼠标复制粘贴内容,要先进入编辑模式,否则会掉东西

6.3、末行模式

进入 vim 内置的命令行接口

命令 解析
:help 查看帮助
:wq 保存退出,或:x
:wq! 强制保存退出,对一个只读文件 不过到底能不能写入,还是跟权限有关
:w f1 另存到 f1 这个文件
:q 退出 :q! 强制不保存退出
:set nu 显示行号
:set nonu 取消行号
:9 光标移动到第 9 行行首
:1,9d 删除第一行到第 9 行
:1,3 > 1 到 3 行缩进,默认 8 个空格,可定义 sw 定义缩进值
:1,$s/root/hehe/g 从第一行到最后一行,全局把 root 替换成 hehe。1,$,表示第一行到最后一行,可用%替代。s///g,替换表达式,s/查找字符/替换为的字符/修饰符。修饰符: i,忽略大小写; g,全局替换,默认情况下,每一行只替换第一次查找到的 字符
:.,$s/r(…)t/R\1T/g 从当前行到最后一行中的 root 替换为 RooT 。.,$,表示当前行到最后一行 ;r(…)t,表示查找 r 和 t 中间只有两个字符的字符;R\1T,表示将前面查找的内容,替换为 R 开头,T 结尾,中 间字符按前面第一个()查找到的内容
:%s/bash/s&/g 将所有的 bash,替换为 sbash。&,表示前面查找到的内容
%s@/bin@/sbin@g 将全局的/bin 替换为/sbin;将表达式的分隔符用@代替,因为/和要查找和替换的字符冲突
:%s/^ [[:space:]]+// 将所有行前面的空白字符替换为无
:! ls /boot 叹号,表示会暂时离开 vim,然后去执行叹号后面的命令
:r /etc/passwd 把 r 后面的文件,读取到当前 vim 编辑器
:r ! ls /boot 把 ls /boot 命令的输出,读取到当前 vim 编辑器
/ 往光标所在行之下搜索关键字
? 往光标所在行之上搜索关键字
n 下一个关键字
N 上一个关键字

6.4、visual 可视模式

最主要的功能:可以分区块的选中文件内容

命令 解析
v 选中连续字符,然后可以用 x 删除,d 剪切,y 复制
V 选中整行
ctrl+v 选中区块,注意:XShell 不支持

注意:

  • 正在编辑的文件,会在文件当前目录产生一个.swp 缓存文件,如果这时,意外退出 vim,可通过这个缓存文件找回之前编辑的内容
  • 比如:将一个正在用 vim 编辑的文件,ctrl+z,将该操作放到后台;jobs,查看后台运 行程序,找到刚才的命令编号;kill -9 %1,杀掉该命令,模拟意外中断
  • 这时,再用 vim 打开该文件,会有提醒:1.有多人打开这个文件;2.这个文件上次编辑 时,意外中断
  • 可以按提示,按 R 恢复文件,D 删除缓存文件等

6.5、同时编辑多个文件
vim f1 f2

命令 解析
:files 列出打开的所有文件
:n 切换到下一个文件
:N 切换到上一个文件
:wall 保存所有
:qall 退出所有

#-o,多个文件同时打开,水平分割显示
#-O,多个文件同时打开,垂直分割显示
vim -o file1 file2
ctrl+方向键,切换光标

vim f1

命令 解析
:sp 把当前文件在一个新窗口再打开 一次
:sp f2 在新窗口打开 f2 这个文件
ctrl+w+j ctrl+w,松开,再按 j,移动光标到 下一个文件
ctrl+w+k ctrl+w,松开,再按 k,移动光标 到上一个文件

6.6、定制 vim

配置文件:

  • /etc/vimrc
  • ~/.vimrc

注意:用户家目录下的.vimrc,默认没有,需要自己创建

vim ~/.vimrc

#默认开启行标:set nu 
#开启括号匹配,高亮显示:set showmatch 
#开启自动缩进:set ai
#开启高亮搜索:set hlsearch 
#语法高亮:syntax on 
#忽略大小写:set ic 
#一个 tab 的宽度为 4 个空格宽度:set ts=4 
#用 space 代替 tab:set expandtab 
#缩进时,使用 4 个空格,默认 8 个空格:set sw=4

实例:

配置 vim,使用 tab 缩进,自动转换成 2 个空格

 - vim ~/.vimrc set ai ts=2 sw=2 et

帮助:

  1. 命令的帮助
    –help:程序员提供
    man手册:红帽定义框架,程序员书写
  2. 应用的帮助
    官方网站
    必应

文档(文本编辑器):

  1. 记事本;word;wps…
  2. vi,只能使用键盘操作

重定向:

 - ls > /mnt/f1  2>1&   通常写法
 - ls & > /mnt/f1

你可能感兴趣的:(2021暑假实训笔记,linux,ubuntu,centos)