一、 帮助

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

Linux文件帮助_重定向_vi相关推荐

  1. linux 文件浏览器_浏览Linux文件系统

    linux 文件浏览器 你为什么要学习? (Why would you want to learn?) Linux is probably the most used operating system ...

  2. linux文件输入输出的重定向

    1 文件特点 Linux上的程序在运行时默认打开了3个文件, 通过"文件描述符"来编号: 0号文件 - 标准输入(默认为当前终端) 1号文件 - 标准输出(默认为当前终端) 2号文 ...

  3. Linux文件编程_相关函数

    编写代码时需包含以下头文件: open函数: int open(const char *pathname,int flags); int open(const char *pathname,int f ...

  4. linux重定向文件被修改后,Linux服务器修改.htaccess文件实现301重定向

    出于 SEO.PR 值传递.网址转换的目的,在网站初建和网站迁移时我们都需要使用 301 重定向,通常包括域名对域名,目录对目录和一个独立网址对另一个独立网址的重定向. 在虚拟主机上作 301 重定向 ...

  5. 玩转Linux文件描述符和重定向

    本文介绍linux中文件描述符与重定向的相关知识,文件描述符是与文件输入.输出相关联的整数,它们用来跟踪已打开的文件.有需要的朋友参考下. 原文出处:http://www.jbxue.com/arti ...

  6. .sh文件是什么语言_关于Linux文件的一些基本命令和知识:

    *关于Linux文件的一些基本命令和知识:* >(Linux中文件是一个字符流序列:包括: 1.普通文件(文本文件,可执行文件) 2.目录 3.磁盘.键盘.打印机.网卡等设备) *文件的创建.查 ...

  7. linux文件未识别,linux的内核文件vmlinuz介绍-深入理解Linux重定向的使用-网卡eth0,未识别的端口的解决方法_169IT.COM...

    介绍:Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作. Linu ...

  8. linux文件描述符、软硬连接、输入输出重定向

    引用链接:https://blog.csdn.net/qq769651718/article/details/79459346 文件描述符的作用: 文件描述符是linux操作系统中特有的概念.其相当于 ...

  9. SRE运维工程师笔记-Linux文件管理和IO重定向

    SRE运维工程师笔记-Linux文件管理和IO重定向 1. 文件系统目录结构 1.1 文件系统的目录结构 1.2 常见的文件系统目录功能 1.3 应用程序的组成部分 1.4 CentOS 7 以后版本 ...

  10. linux服务器只读,linux文件只读怎么修改_网站服务器运行维护

    ubuntu如何查看系统版本信息_网站服务器运行维护 ubuntu查看系统版本信息的方法是:可以通过执行[cat /proc/version]命令来查看,该命令会输出linux内核版本号和ubuntu ...

最新文章

  1. 2020ICPC·小米 网络选拔赛第一场(D. Router Mesh)
  2. ​《2021联邦学习全球研究与应用趋势报告》发布,中美为最大领跑者 | 附下载链接...
  3. 启动php服务命令,启动|停止服务
  4. Caused by: java.lang.IncompatibleClassChangeError: Implementing class
  5. notes belonging to given user
  6. 若川的 2021 年度总结,弹指之间
  7. 发力企业级市场,微软Hololens开辟了一条VR新道路
  8. 用于单元测试的JUnit教程–最终指南(PDF下载)
  9. openstack placement 组件作用理解
  10. java-web前端 javascript
  11. java程序在centos7里面开机自启动
  12. Hibernate(十三)迫切内连接fetch
  13. rsync 删除大量小文件
  14. Qt总结之二十三:QByteArray与char、int、float(及其数组)之间的互相转化
  15. Spring之Bean配置
  16. Spring系统学习:180615--通过外部属性文件导入对数据库的连接
  17. UML-----构件图与部署图
  18. linux的木马检测
  19. 初学JAVA GUI
  20. 双目 机器视觉-- 测距

热门文章

  1. C语言,快速隐藏/显示桌面图标和任务栏
  2. Dart | 使用 Flutter 制作一个像 SIRI 那样的语音机器人
  3. 隐藏win10资源管理器中显示的「DVD驱动器」
  4. 使用opencv和双目摄像头制作裸眼3d视频
  5. 计算机网络故障提出问题,列控系统及其计算机网络的故障诊断与故障容错研究...
  6. Android平台快速集成当下流行平台分享
  7. ios frame和bounds区别
  8. win10如何一键还原系统
  9. ubuntu18.04安装搜狗输入法之后无法使用的问题
  10. C++中如何设置延时?