Linux实用教程
第一章 Linux系统初步了解
本章内容
1.1 Linux系统简介
1.2 Linux系统的特点和组成
1.3 Linux版本介绍
1.4 Red Hat Linux系统概述
1.1 Linux系统简介
1.1.1 什么是Linux
1.1.2 Linux系统的产生
1.1.3 Linux系统应用领域
1.1.1什么是Linux
Linux是一个免费的多用户、多任务的操作系统,其运行方式、功能和Unix系统很相似,但Linux系统的稳定性、安全性与网络功能是许多商业操作系统所无法比拟的。Linux系统最大的特色是源代码完全公开,在符合GNU/GPL(通用公共许可证)的原则下,任何人都可以自由取得、散布甚至修改源代码。
越来越多的大中型企业的服务器选择了Linux作为其操作系统。近几年来,Linux系统又以其友好的图形界面、丰富的应用程序及低廉的价格,在桌面领域得到了较好的发展,受到了普通用户的欢迎。
1.1.2 Linux系统的产生
Linux系统的内核最早是由芬兰大学生Linus Torvalds开发,并于1991年8月发布。当时由于Unix系统的商业化,Andrew Tannebaum教授开发了Minix操作系统,该系统不受AT&T许可协议的约束,可以发布在Internet上免费给全世界的学生使用,这为教学科研提供了一个操作系统。
1991年,Linus Torvalds为了给Minix系统用户设计一个比较有效的Unix PC版本,自己动手写了一个类Minix的操作系统,这就是Linux的雏形。
Linux的兴起可以说是Internet创造的一个奇迹。到1992年1月为止,全世界大约只有1000人在使用Linux系统,但由于它发布在Internet上,互联网上的任何人在任何地方都可以得到它。在这众多热心人的努力下,Linux系统在不到3年的时间里成为了一个功能完善、稳定可靠的操作系统。
1.1.3 Linux系统应用领域
- Linux 服务器
- 嵌入式Linux系统
- 软件开发平台
- 桌面应用
Linux的长处主要在于服务器和嵌入式两个领域
1.2 Linux系统的特点和组成
1.2.1 Linux系统的特点
1.2.2 Linux系统的组成
1.2.1 Linux系统的特点
- 开放性
- 多用户
- 多任务
- 良好的用户界面
- 设备独立性
- 丰富的网络功能
- 可靠的系统安全
- 良好的可移植性
1.2.2 Linux系统的组成
- 内核 (内核是操作系统的核心)
- Shell (Shell是一个命令解释器)
- 文件系统
- 应用程序
Linux版本介绍
1.3.1 Linux内核版本
1.3.2 Linux发行版本
1.3.1 Linux内核版本
内核是一个用来和硬件打交道并为用户程序提供有限服务集的支撑软件,是操作系统中最核心的功能框架部分。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。
内核版本是Linux内核在历次修改或增加相应的功能后的版本编号。内核版本号是由点分隔的3段数字组成,比如3.10.0-327。
1.3.2 Linux发行版本
一些组织和公司,将Linux系统的内核、应用软件和文档包装起来,并提供一些系统安装界面、系统配置设定管理工具,就构成了Linux发行版本。发行版本的版本号每一个发布厂商都不一样,与Linux系统内核的版本号是相对独立的。根据GPL准则,这些发行版本虽然都源自一个内核,但都没有自己的版权。
主流Linux发行版本
- Red Hat
- SUSE
- Oracle
- CentO S
- Ubnutu
- Debian
- Mandriva
- Gentoo
- Slackware
- Fedora
Red Hat Linux系统概述
1.4.1 Red Hat Linux系统优点
1.4.2 RHEL 7新特点
1.4.1 Red Hat Linux系统优点
- 支持和硬件平台多
- 优秀的安装界面
- 独特的RPM升级方式
- 丰富的软件包
- 安全性能好
- 方便的系统管理界面
- 详细而完整的在线文档
1.4.2 RHEL 7新特点(1)
- 包含Kernel 3.10版本,支持swap内存压缩可保证显著减少I/O并提高性能,采用 NUMA(统一内存访问)的调度和内存分配,支持APIC(高级程序中断控制器)虚拟化,全面的DynTick支持,将内核模块列入黑名单,kpatch动态内核补丁等。
- 在存储和文件系统方面,RHEL 7使用LIO内核目标子系统,支持快速设备为较慢的块设备提供缓存,引进了LVM缓存,将xfs作为默认的文件系统。
- 引进网络分组技术作为链路聚集的捆绑备用方法,对NetworkManager进行大量改进,提供动态防火墙守护进程firewalld,加入DNSSEC域名系统安全扩展,附带OpenLMI用来管理Linux系统提供常用的基础设施,引进了可信网络连接功能等。
- 对KVM(基于内核的虚拟化)提供了大量改进,诸如使用virtio-blk-data-plane提高快 I/O性能 (技术预览),支持PCI桥接,QEMU沙箱,多队列NIC,USB 3.0支持等。
1.4.2 RHEL 7新特点(2)
- 引入Linux容器Docker。
- 编译工具链方面,RHEL 7包含GCC 4.8.x、glibc 2.17、GDB 7.6.1。
- 包含Performance Co-Pilot、SystemTap 2.4、Valgrind 3.9.0 等性能工具。
- 包含Ruby 2.0.0、Python 2.7.5、Java 7等编程语言。
- 包含Apache 2.4、MariaDB 5.5、PostgreSQL 9.2等软件包。
- 在系统和服务方面,RHEL 7使用systemd替换了SysV。
- 引入Pacemaker集群管理器,同时使用keepalived和HAProxy替换了负载均衡程序 Piranha。
- 对安装程序Anaconda进行了重新设计和增强,并使用GRUB 2引导装载程序。
第二章 安装Linux系统
本章内容
2.1 准备安装Linux系统
2.2 安装Linux系统
2.3 注销、关闭和重启Linux系统
2.4 FirewallD防火墙
2.1 准备安装Linux系统
2.1.1 安装Linux系统的硬件要求
2.1.2 交换分区
2.1.3 Linux系统硬盘知识
2.1.1 安装Linux系统的硬件要求
(1)CPU:主流计算机和服务器都能达到要求;
(2)内存:安装Linux系统至少需要1GB内存(建议使用2GB甚至更高内存);
(3)硬盘空间:若要安装所有软件包至少需要10GB以上硬盘空间;
(4)显示器和显卡;
(5)4DVD光驱。
硬件兼容性
硬件兼容性在老式电脑和组装电脑上显得特别重要。Linux系统与最近几年厂家生产的多数硬件相兼容,然而硬件的技术规范每天都在改变,很难保证计算机的硬件会百分之百地兼容。
要查看Red Hat硬件兼容性可以访问网址https://hardware.redhat.com,查看众多厂家的硬件产品。
交换分区
直接从物理内存读写数据要比从硬盘读写数据快的多,而物理内存是有限的,这样就使用到了虚拟内存。虚拟内存是为了满足物理内存的不足而提出的一种策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换分区(swap分区)。
内核会将暂时不用的内存块信息写到交换分区,这样一来,物理内存得到了释放,这块内存就可以用于其它用途,当需要用到原始的内容时,这些信息会被重新从交换分区读入物理内存。
Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。
Linux系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么操作需要使用内存,Linux也会交换出暂时不用的内存页面,这可以避免等待交换所需的时间。
Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,Linux内核根据“最近最常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存。
分区命名方案
Linux系统使用字母和数字的组合来指代硬盘分区,使用一种更加灵活的分区命名方案,该命名方案是基于文件的,文件名的格式为/dev/xxyN(比如/dev/sda1分区)。
/dev:这是Linux系统中所有设备文件所在的目录名。因为分区位于硬盘上,而硬盘是设备,所以这些文件代表了在/dev上所有可能的分区;
xx:分区名的前两个字母表示分区所在设备的类型,通常是hd(IDE硬盘)或sd(SCSI硬盘)。
y:这个字母表示分区所在的设备。例如,/dev/hda(第1个 IDE 硬盘)或/dev/sdb(第2个SCSI硬盘);
N:最后的数字N代表分区。前4个分区(主分区或扩展分区)用数字1~4表示,逻辑驱动器从5开始。例如,/dev/hda3是第1个IDE 硬盘上的第3个主分区或扩展分区;/dev/sdb6是第2个SCSI硬盘上的第2个逻辑驱动器。
磁盘分区和挂载目录
Linux系统中的每一个分区都是构成支持一组文件和目录所必需的存储区的一部分。它是通过挂载来实现的,挂载是将分区关联到某一目录的过程,挂载分区使起始于这个指定目录(称为挂载目录)的存储区能够被使用。
例如,如果分区/dev/sda5被挂载在目录/usr上,这意味着所有在/usr下的文件和目录在物理上位于/dev/sda5。因此文件/usr/bin/cal被保存在分区/dev/sda5上,而文件/etc/passwd却不是。
/usr目录下的目录还有可能是其它分区的挂载目录。例如,某个分区(如/dev/sda7)可以被挂载到/usr/local目录下,这意味着文件/usr/local/man/whatis将位于分区/dev/sda7上,而不是分区/dev/sda5上。
硬盘分区规划
(1)最简单的分区规划
swap分区:即交换分区,实现虚拟内存,建议大小是物理内存的1~2倍;
/boot分区:用来存放与Linux系统启动有关的程序,比如引导装载程序等,最少200MB;
/分区:建议大小至少在10GB以上。
(2)合理的分区规划
swap分区:实现虚拟内存,建议大小是物理内存的1~2倍。
/boot分区:建议大小最少为200MB;
/usr分区:用来存放Linux系统中的应用程序,其相关数据较多,建议大小最少为8GB;
/var分区:用来存放Linux系统中经常变化的数据以及日志文件,建议大小最少为1GB;
/分区:Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小最少为1GB;
/home分区:存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。
安装Linux系统
2.2.1 安装Linux 系统的步骤
2.2.2 Liunx 安装后的初始化设备
2.2.3 登陆Linux 系统
2.2.1 安装Linux 系统的步骤
-
安装引导
选择Install Red Hat Enterprise Linux 7.2,如果选择第二个的话会要求检查光盘介质MD5SUM信息。
-
开始安装进程
-
选择安装过程语言(中文-简体中文)
-
安装信息摘要
-
时间&日期(亚洲-上海)
-
键盘布局
-
安全策略
-
安装源
-
软件选择
要注意的是 选择“带GUI的服务器并勾选右侧所有环境的附加选项”
-
安装目标文件
- 手动分区界面
这里小白可以直接点“点击这里自动创建他们(C)。”
- 创建分区
- 最终分区效果界面
- KDUMP
- 设置计算机主机名
- 设置IPv4地址
- 开始安装LInux系统
- 设置根用户密码
一定要设置自己能记住的密码
- 创建用户
这里可以创建也可以不创建,无所谓~
- Linux安装完毕(从开始到结束正常时间大约半小时)
2.2.2 Linux安装后的初始化配置 - 重新引导文件
- 初始设置
- 许可信息
- 注册信息
2.2.3 登陆Linux系统
登录Linux系统实际上是一个验证用户身份的过程,如果用户输入了错误的用户账户名或密码,就会出现错误信息从而不能登录系统。Linux系统使用用户账户来管理特权和维护安全,不是所有的账户都具有相同的权限,某些账户所拥有的文件访问权限和服务要比其它账户少。 - 输入用户名
- 输入密码
- GNOME图形化桌面
2.3注销、关闭和重启Linux系统
2.3.1 注销Linux 系统
2.3.2 关闭和重启Linux系统
2.3.1 注销Linux 系统
2.3.2 关闭和重启Linux系统
2.4 FirewallD防火墙
2.4.1 FirewallD防火墙简介
2.4.2 FirewallD防火墙配置
2.4.1 FirewallD防火墙简介
Linux为增加系统安全性提供了防火墙保护功能。防火墙存在于计算机和网络之间,用于判断网络中的远程用户的访问权限。在RHEL 7系统中默认使用FirewallD防火墙,FirewallD提供了支持网络/防火墙区域定义网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的iptables防火墙是静态的,每次修改都要求防火墙完全重启。现在FirewallD可以动态管理防火墙,支持动态配置,不用重启服务。
通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略,以此来控制不同程度区域间传送的数据流。比如互联网是不可信任的区域,而内部网络是高度信任的区域。数据包进入到内核必须要通过区域,而不同的区域定义的规则是不一样的。可以根据网卡所连接的网络的安全性来判断,这块网卡的流量到底使用哪个区域。可以把这些区域想象成进入火车站的安检,不同的入口检测的严格度不一样。默认情况下FirewallD防火墙的连接区域为public,public在公共区域内使用,指定外部连接可以进入内部网络或主机。
2.4.2 FirewallD防火墙配置
- [防火墙配置]界面
- 添加可信服务
- 添加端口
- 伪装
- 端口转发
第三章 字符界面操作基础
本章内容
3.1 字符界面简介
3.2 在Linux系统下获取帮助
3.3 Shell基础知识
3.4 使用bash
3.5 Shell实用功能
3.6 重定向
3.7 vi编辑器
字符界面简介
3.1.1 进入Linux字符界面
3.1.2 关闭和重启Linux系统
3.1.3 目标
3.1.1 进入Linux字符界面
- Linux字符界面
- 使用终端
- 使用虚拟操控台
字符界面登陆提示
- 终端
- 虚拟操控台
在字符界面下,虚拟控制台的选择可以通过按下[Alt]键和一个功能键来实现,通常使用F1~F6键。比如用户登录后,按下[Alt+F2]键,用户可以看到“login:”提示符,说明用户进入了第二个虚拟控制台。然后只需按[Alt+F1]键,就可以回到第一个虚拟控制台。
如果用户在图形界面下,那么可以使用[Ctrl+ Alt+F2]~[Ctrl+ Alt+F6]键切换字符虚拟控制台,使用[Ctrl+Alt+F1]可以切换到图形界面。
3.1.2 关闭和重启Linux系统
- shutdown命令
- halt命令
- reboot命令
3.1.3 目标
在RHEL 7之前的版本,使用运行级别代表特定的操作模式。运行级别被定义为七个级别,用数字0到6表示,每个运行级别可以启动特定的一些服务。RHEL 7使用目标(target)替换运行级别。目标使用目标单元文件描述,目标单位文件扩展名是.target,目标单元文件的唯一目标是将其他systemd单元文件通过一连串的依赖关系组织在一起。比如graphical.target单元,用于启动一个图形会话,systemd会启动像GNOME显示管理(gdm.service)、帐号服务(axxounts-daemon)这样的服务,并且会激活multi-user.target单元。相似的multi-user.target单元,会启动必不可少的NetworkManager.service、dbus.service服务,并激活basic.target单元。
每一个目标都有名字和独特的功能,并且能够同时启用多个。一些目标继承其他目标的服务,并启动新服务。systemd 提供了一些模仿System V init启动级别的目标,仍可以使用旧的telinit启动级别命令切换。
预定义目标和运行级别对应关系
运行级别 | 目标 | 目录的链接文件 | 功能 |
---|---|---|---|
0 | power off.target | runlevel0.target | 关闭系统 |
1 | rescue.target | runlevel1.target | 进入救援模式 |
2 | multi-user.target | runlevel2.target | 进入非图形界面的多用户方式 |
3 | multi-user.target | runlevel3.target | 进入非图形界面的多用户方式 |
4 | mulit-user.target | runlevel4.target | 进入非图形界面的多用户方式 |
5 | graphical.target | runlevel5.target | 进入图形界面的多用户方式 |
6 | reboot.target | runlevel6.target | 重启系统 |
在Linux系统下获取帮助
3.2.1 使用man手册
3.2.2 使用—help选项获取帮助
3.2.1 使用man手册
一般情况下,Linux系统中所有的资源都会随操作系统一起发行,包括内核源代码。而在线手册是操作系统所有资源的一本很好的使用手册。有不懂的命令时可以用man查看这个命令,写程序时有不会用的函数可以用man查看这个函数,有不懂的文件时也可以用man查看文件。
一般情况下man手册页的资源主要位于/usr/share/man目录下。
类型 | 手册页类型 |
---|---|
1 | 用户命令 |
2 | 系统调用 |
3 | C语言函数库 |
4 | 设备和特殊文件 |
5 | 文件格式和约定 |
6 | 游戏程序 |
7 | 杂记 |
8 | 系统管理工具 |
9 | Linux内核API(内核调用) |
- man命令
man命令格式化并显示在线的手册页。通常使用者只要在命令man后,输入想要获取的命令的名称,man就会列出一份完整的说明,其内容包括命令语法、各选项的意义以及相关命令等。
命令语法:
man [选项] [名称]
- 使用—help选项获取帮助
使用–help选项可以显示命令的使用方法以及命令选项的含义。只要在所需要显示的命令后面输入“–help”选项,然后就可以看到所查命令的帮助内容了。
命令语法:
[命令] --help
Shell基础知识
3.3.1 Shell简介
3.3.2 bash简介
3.3.3 bash命令
3.3.1 Shell简介
在AT&T工作的Dennis Ritchie和Ken Thompson两人在设计Unix操作系统的时候,想要为用户创建一种与Unix系统交流的方法。那时的操作系统带有命令解释器。命令解释器接受用户的命令,然后解释它们,因而计算机可以使用这些命令。
Ritchie和Thompson想要提供比当时的命令解释器具备更优异功能的工具。这导致了Bourne Shell(通称为sh)的开发,由S.R.Bourne创建。自从Bourne Shell出现以后,其它类型Shell也被一一开发,比如C Shell(csh)和Korn Shell(ksh)。
Shell接收用户命令,然后调用相应的应用程序,同时它还是一种程序设计语言, 是系统管理维护时的重要工具。 作为命令语言,它交互式的解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令。作为程序设计语言,它可以定义各种变量和参数,并提供了许多在高级语言中才具有的控制结构(循环和分支)。
Shell命令重新初始化用户的登录会话。当给出该命令时,就会重新设置进程的控制终端的端口特征,并取消对端口的所有访问。然后Shell命令为用户把进程凭证和环境重新设置为缺省值,并执行用户的初始程序。根据调用进程的登录用户标识建立所有的凭证和环境。
目前流行的Shell 有sh、csh 、ksh、tcsh 和bash等。大部分Linux系统的默认Shell类型为bash。
3.3.2 bash简介
bash(Bourne-Again Shell)最早是在1987年由布莱恩·福克斯开发的一个为GNU计划编写的Unix Shell。bash目前是大多数Linux系统默认的Shell,它还能运行于大多数Unix风格的操作系统上。
bash的命令语法是Bourne shell命令语法的超集。数量庞大的Bourne shell脚本大多不经过修改就可以在bash中执行,只有那些引用了Bourne特殊变量或使用了Bourne内置命令的脚本才需要修改。bash的命令语法很多来自ksh和csh,比如命令行编辑、命令历史、目录栈、 R A N D O M 变 量 、 RANDOM变量、 RANDOM变量、PPID变量以及POSIX命令置换语法。
3.3.3 bash命令
Linux系统的标准提示符包括了用户登录名、登录的主机名、当前所在的工作目录路径和提示符号。
以普通用户zhangsan登录名为rhel的主机,他的工作目录是/home/zhangsan。
[zhangsan@rhel ~]$
以root用户登录系统的提示符。
[root@rhel ~]#
Shell命令一般格式
命令语法:
[Shell命令][选项][参数]
所有选项在该命令的man手册页中都有详细的介绍,而参数则由用户提供。选项决定命令如何工作,而参数则用于确定命令作用的目标。选项有短命令行选项和长命令选项两种。
Linux系统命令分类
- bash 内置的命令
- 应用程序
3.4使用bash
3.4.1 常用控制组合键
3.4.2 光标操作
3.4.3 特殊字符
3.4.4 通配符
3.4.1 常用控制组合键
3.4.2 光标操作(1)
3.4.2 光标操作(2)
3.4.3特殊字符
3.4.4通配符
3.5Shell实用功能
3.5.1 命令行自动补全
3.5.2 命令历史记录
3.5.3 命令排列
3.5.4 命令替换
3.5.5 命令别名
3.5.6 文件名匹配
3.5.7 管道
3.5.1 命令行自动补全
在Linux系统中,有太多的命令和文件名称需要记忆,使用命令行补全功能可以快速的写出文件名和命令名。
3.5.2 命令历史记录
在操作Linux系统的时候,每一个操作的命令都会记录到命令历史中,在以后可以通过命令历史查看和使用以前操作的命令。
bash启动的时候会读取/.bash_history文件,并将其载入到内存中,$HISTFILE变量就用于设置/.bash_history文件,bash退出时也会把内存中的历史记录回写到~/.bash_history文件中。
使用history命令可以查看命令历史记录,每一条命令前面都会有一个序列号标示。
命令语法:
history [选项]
使用命令历史举例
搜索历史命令
3.5.3 命令排列
如果希望一次执行多个命令,Shell允许在不同的命令之间,放上特殊的排列字符。
(1)使用“;”
使用“;”命令时先执行命令1,不管命令1是否出错,接下来就执行命令2。
命令语法:
命令1; 命令2
(2)使用“&&”
使用“&&”命令时只有当命令1正确运行完毕后,才能执行命令2 。
命令语法:
命令1&&命令2
3.5.4 命令替换
在Linux系统中,Shell命令的参数可以由另外一个命令的结果来替代,这种称之为命令替换。
1.使用“$( )”
命令语法:
命令1 $(命令2)
2.使用“``”
命令语法:
命令1 `命令2`
3.5.5 命令别名
在需要执行某一个非常长的命令时,所有的命令以及命令的选项、参数都要一一输入,很枯燥也容易出现错误。可以为常用命令定义快捷方式,这些快捷方式可以用比较简单的命令别名来定义。
1.创建别名
使用alias命令可以为命令定义别名。如果命令中有空格的话,就需要使用双引号(比如在命令与选项之间就有空格)。
命令语法:
alias [别名]=[需要定义别名的命令]
2.取消别名
当用户需要取消别名的定义时,可以使用unalias命令。
命令语法:
unalias [别名]
3.5.6 文件名匹配
文件名匹配使得用户不必一一写出文件名称就可以指定多个文件。这将用到一些特殊的字符,称之为通配符。
1.通配符“ * ”
“ * ”可匹配一个或多个字符。
2.通配符“?”
在匹配时,一个问号只能代表一个字符。
3.5.7管道
Linux系统的理念是汇集许多小程序,每个程序都有特殊的专长。复杂的任务不是由大型软件完成,而是运用Shell 的机制,组合许多小程序共同完成。管道就在其中发挥着重要的作用,它可以将某个命令的输出信息当作某个命令的输入,由管道符号“|”来标识。
命令语法:
[命令1]|[ 命令2]|[ 命令3]
3.6重定向
3.6.1 输出重定向
3.6.2 输入重定向
3.6.3 错误重定向
3.6.4 同时实现输出和错误重定向
重定向简介
希望将命令的输出结果保存到文件中,或者以文件内容作为命令的参数,这时就需要用到重定向。重定向不使用系统的标准输入端口、标准输出端口或是标准错误端口,而是进行重新的指定。
重定向有四种方式:输出重定向、输入重定向、错误重定向以及同时实现输出和错误的重定向。
3.6.1 输出重定向
输出重定向,即将某一命令执行的输出保存到文件中,如果已经存在相同的文件,那么覆盖源文件中的内容。
命令语法:
[命令] > [文件]
另外一种特殊的输出重定向是输出追加重定向,即将某一命令执行的输出添加到已经存在的文件中。
命令语法:
[命令] >> [文件]
3.6.2 输入重定向
输入重定向,即将某一文件的内容作为命令的输入。
命令语法;
[命令] < [文件]
另外一种特殊的输入重定向是输入追加重定向,这种输入重定向告诉Shell,当前标准输入来自命令行的一对分隔符之间的内容。
命令语法;
[命令] << [分隔符]
> [文本内容]
> [分隔符]
3.6.3 错误重定向
错误重定向,即将某一命令执行的出错信息输出到指定文件中。
命令语法:
[命令] 2> [文件]
另外一种特殊的错误重定向是错误追加重定向,即将某一命令执行的出错信息添加到已经存在的文件中。
命令语法:
[命令] 2>> [文件]
3.6.4 同时实现输出和错误重定向
同时实现输出和错误的重定向,即可以同时实现输出重定向和错误重定向的功能。
命令语法:
[命令] &> [文件]
3.7 vi编辑器
3.7.1 vi编辑器工作模式
3.7.2 进入插入模式
3.7.3 光标移动
3.7.4 命令模式操作
3.7.5 末行模式操作
vi编辑器简介
vi编辑器是Linux系统字符界面下最常使用的文本编辑器,用于编辑任何ASCII文本,对于编辑源程序尤其有用。vi编辑器功能非常强大,通过使用vi