资讯详情

linux就该这么学

目录 第0章 让我们谈谈学习方法和红帽系统。 11 0.1 本书作者简介 11 0.2 学习是苦差 11 0.3 开源共享精神 12 0.4 为什么要学Linux? 12 0.5 流行的开源系统 13 0.6 了解红帽认证 14 第1章 安装虚拟环境linux系统。 17 1.1 准备你的工具 17 1.2 虚拟机的安装配置 17 1.3 VM安装RHEL7系统 21 1.4使用KVM安装系统 24 1.5 配置VNC服务程序 27 1.6 重置Root用户密码 29 1.7 安装虚拟机增加包 31 1.8 重要的保护过程 32 1.9 红帽软件包管理器 33 1.10 Yum软件仓库 33 第2章 新手必须掌握Linux命令。 35 2.1 强大好用的SHELL 35 2.2 执行命令和查看帮助 36 2.3 常用的系统工作命令 39 2.4 系统状态检测命令 41 2.5 切换工作目录的命令 44 2.6 编辑文本文件命令 45 2.7 文件目录管理命令 48 2.8 用户和组管理命令 51 2.9 包装压缩文件命令 53 2.10 搜索命令查询文件 54 第3章 管道符、重定向和环境变量。 57 3.1 管道命令符 57 3.2 重定向输入输出 58 3.3 命令行通配符 59 3.4 实用的PATH变量 61 3.5 重要的环境变量 61 第4章 Vim编辑器与Shell命令脚本。 64 4.1 了解Vim文本编辑器 64 4.2 了解Shell脚本 70 4.3 条件测试句子 75 4.4 计划任务服务 82 第5章 用户身份和文件权限。 84 5.1 用户身份和能力 84 5.2 文件权限及归属 84 5.3 文件的特殊权限 85 5.4 文件的隐藏属性 86 5.5 su命令与sudo服务 88 5.6 文件访问控制列表 91 第6章 存储结构分为磁盘。 94 6.1 一切从/开始 94 6.2 物理设备的命名规则 96 6.3 文件系统和数据数据 97 6.4 硬件设备吊装 98 6.5 添加硬盘设备 99 6.6 增加交换分区 103 6.7 磁盘冗余阵列 107 6.8 逻辑卷管理器 115 6.9 磁盘容量配额 122 6.10 虚拟文件系统 124 6.11 软硬链接 124 第7章 Iptables与Firewalld防火墙。 126 7.1 了解防火墙管理工具 126 7.2 Iptables命令 126 7.2.1 规则链和策略 126 7.2.2 基本命令参数 128 7.2.3 SNAT与DNAT 129 7.2.4 平衡端口转发和流量 131 7.3 Firewalld防火墙 131 7.3.1 区域概念和功能 131 7.3.2 字符管理工具 132 7.3.3 图形管理工具 134 7.4 访问控制列表 137 第8章 使用ssh远程主机的服务管理。 139 8.1 进程与服务 139 8.1.1 初始化进程 139 8.1.2 管理服务命令 140 8.1.3 监控资源和管理流程 141 8.2 配置网卡连接网络 143 8.2.1 配置网卡参数 143 8.2.2 查看网卡信息 146 8.2.3 绑定两张网卡 147 8.2.4 检查端口状态 148 8.3 远程控制服务 150 8.3.1 了解sshd服务 150 8.3.2 使用ssh命令 151 8.3.3 安全密钥验证 151 8.3.4 远程传输命令 154 8.4 连续会话服务 155 8.4.1 了解Screen服务 155 8.4.2 掌握命令参数 155 8.4.3 会话功能的创建和使用 156 8.4.4 会话共享功能 157 第9章 使用Apache静态网站的服务部署。 159 9.1 网站服务程序 159 9.2 购买服务器主机 160 9.3 安装Apache服务程序 161 9.4 配置服务文件参数 163 9.5 强制访问和控制安全子系统 165 9.6 允许SELinux策略 166 9.7 个人用户主页功能 167 9.8 虚拟网站主机功能 169 9.8.1 基于IP地址 170 9.8.2 基于主机名 172 9.8.2 基于端口号 174 9.9 Apache的访问控制 176 第10章 使用Vsftpd服务传输文件。 178 10.1 文件传输协议 178 10.2 安装vsftpd服务程序 178 10.3 Vsftpd的验证方式 180 10.3.1 匿名访问模式 181 10.3.2 本地用户模式 183 10.3.3 虚拟用户模式 185 10.4 可插拔认证模块PAM 188 第11章 使用Samba或NFS共享文件。 191 11.1 了解文件共享服务 191 11.2 Samba服务 191 11.2.1 安装服务程序 191 11.2.2 安全共享文件 193 11.3 NFS网络文件系统 198 第12章 使用Bind提供域名分析服务。 202 12.1 了解域名解析服务 202 12.2 安装Bind服务程序 202 12.3 DNS服务分析实验 204 12.3.1 正向分析实验 205 12.3.2 反向分析实验 207 12.4 从服务器部署 208 12.5 安全加密传输 210 12.6 部署缓存服务器 213 12.7 分离分析技术 219 第13章 使用DHCP动态管理主机地址。 223 13.1 动态主机管理协议 223 13.2 安装dhcpd服务程序 224 13.3 自动管理IP地址 225 13.4 分配固定IP地址 228 13.5 DHCP中继代理 229 第14章 使用Postfix与Dovecot收发电子邮件。 231 14.1 电子邮局系统 231 14.2 部署基本电子邮局系统 232 14.2.1 配置Postfix服务程序 233 14.2.2 配置Dovecot服务程序 234 14.2.3 用户使用邮局系统 235 14.3 设置用户别名邮箱 238 第15章 使用Squid代理缓存服务部署。 241 15.1 代理缓存服务 241 15.2 配置Squid服务程序 242 15.2.1 标准正代理 244 15.2.2 透明正代理 245 15.2.2 反向代理 246 15.3 ACL访问控制 247 第16章 使用iSCSI网络存储的服务部署。 250 16.1 网络存储技术 250 16.2 部署iSCSI存储 251 16.2.1 配置iSCSI服务端 251 16.2.2 配置iSCSI客户端 255 第17章 使用OpenLDAP部署目录服务。 258 17.1 了解目录服务 258 17.2 目录服务实验 259 17.2.1 配置LDAP服务端: 259 17.2.2 配置LDAP客户端 265 17.3 用户目录自动挂载· 266 第18章 使用MariaDB数据库管理系统。 268 18.1 数据库管理系统 268 18.2 初始化mariaDB服务程序 268 18.3 管理数据库和表单数据 271 18.3.1 创建用户并授权 271 18.3.2 创建数据库与表单 273 18.3.3 管理表单数据 274 18.3.4 备份和恢复数据库 mysqldump该命令用于备份数据库数据,格式为:mysqldump [参数] [数据库名称]。 276 第19章 使用PXE Kickstart部署无人值守安装。 278 19.1 无人值守系统 278 19.2 部署相关服务程序 278 19.2.1 配置DHCP服务程序 279 19.2.2 配置TFTP服务程序 280 19.2.3 配置SYSLinux服务程序 281 19.2.4 配置VSFtpd服务程序 281 19.3 客户机自动部署 282 第20章 使用LNMP动态网站环境的架构部署。 285 20.1 源代码安装程序 285 20.2 部署LNMP架构 286 20.2.1 配置Mysql服务 287 20.2.2 配置Nginx服务 290 20.2.3 配置php服务 294 20.3 搭建discuz论坛 297

第0章 让我们谈谈学习方法和红帽系统。 章节简述: Hello World!书的开头讲述了作者学习红帽的故事Linux对写作过程的系统经验和感知进行分析和学习Linux目的和意义。 开源精神是种让每个从事Linux该行业的技术人员从骨子里感到自豪,开源产品的繁荣受益于开源社区的基础。 优秀的Linux操作员能让用户真正体验到Linux高可用性、高性能能高,安全稳定。

0.1 本书作者简介 作者刘特从事这本书linux由于兴趣的驱使,运维技术行业很早就接触到了Linux系统开始学习,2012年考红帽工程师RHCE_6.今年又考了RHCE_7版和红帽架构师认证RHCA,知道水平有限,技术一般,没有良师益友的无私帮助,就不能这么顺利地完成Linux学业,作为一名普通的技术人员,我亲身经历了半夜培训班的悲伤和拥堵6小时车程的无奈,所以为了帮助读者快速入门Linux系统,此刻我怀着一颗不安的心,竭尽全力把书写得更好。 本书2015年的春节前夕起笔,预计年末截稿(初版)——为了保证每篇文章的质量所以很可能会写不完,才与诚合,然后事可成,恃才而败。我将付出不亚于任何人的努力,与可爱的读者们一起编写、完善这本书籍,带领大家从“0”基础开始学习linux系统,配以大量Linux相关实验逐步掌握运维之道,本书内含配套教学图片与视频,达到增强学员兴趣与加深记忆的作用,当然都是免费的,主动抛弃不实用的部分,将重点反复实践,所以尤其适合希望尽快掌握Linux系统的人群。

0.2 学习是件苦差 我无意回避这个问题——学习本是件痛苦的事情,如果学习Linux真的很简单,那么必是骗子说的谎话,起码这将不能给你带来高薪,打开电脑后的沉思,是该聊会天那还是追个美剧那还是打盘LOL那~还是看看那该死的刘遄写的那本可怕Linux教材时,请不要忘记自己最初的梦想,十年后你会感谢此时正在努力学习的自己。我身为作者的使命就是一定要对得起您花费的时间、精力、金钱,让您每学完一个章节都是一次进步,读完稻盛和夫先生的活法后发现“我们也可以从学习中获得快乐”。 “工作马马虎虎,只想在兴趣和游戏中寻觅快活,充其量只能获得一时的快感,绝不能尝到从心底涌出的惊喜和快乐,但来自工作的喜悦并不像糖果那样——放进嘴里就甜味十足,而是需要从苦劳与艰辛中渗出,因此当我们聚精会神,孜孜不倦,克服艰辛后的成就感,世上没有哪种喜悦可以类比。” “更何况人类生活中工作占据了较大的比重,如果不能从劳动中、工作中获得充实感,那么即使从别的地方找到快乐,最终我们仍然会感到空虚和缺憾。”

0.3 开源共享精神 坦白来讲,每个从事Linux行业的技术人都从骨子里有一种独特的情怀,听到开源产品的兴起就会由衷的自豪,开源企业不单纯为了利益,而是互相扶持,让开源软件越来越完善,根基越来越强大,开源社区越来越有人气,开源软件简单来说就是可以不受限制的使用某个软件并且随意修改,甚至修改成自己的产品再发布出去。所以开源软件一般会将软件程序与源代码一起提供给用户,最热门的六种开源许可证包括:

开源软件的特性:“使用自由”,“修改自由”,“重新发布自由”,“创建衍生品自由”。

0.4 为什么要学Linux? Linux操作系统最初是在1991年10月份由芬兰赫尔辛基大学的在校生Linus Torvalds所发布,最初被发布的LINUX 0.02版本因其高质量的代码与开放源代码,迅速引起了一大批黑客的加入,而今虽然有数百计的Linux发布版,但都依然统一使用Linus Torvalds开发/维护的系统内核,Linux是具有类似Unix的程序界面与操作方法且继承了其稳定性(通常运行几年都不会宕机)。 大多数读者开始了解计算机和网络都是从“Windows™”开始的吧,肯定已经习惯了盖茨系统而且觉得足以应付日常工作啦。虽然盖茨系统确实很优秀但同时也是用户对安全性、高可用与高性能的大大牺牲,因为你一定见过右面的图片。 所以读者是否考虑过为何需要长期稳定运行的网站服务器、处理大数据的集群系统或者需要协同工作的环境大多采用Linux系统呢?

Linux的优势读者可先作了解暂不需深究,学习中再慢慢感受。

0.5 热门的开源系统

红帽企业系统(RedHatEnterpriseLinux,RHEL.) 全球最大的开源技术厂商,全世界内使用最广泛的Linux发布套件, 提供性能与稳定性极强的Linux套件系统并拥有完善的全球技术支持。

社区企业操作系统(Centos) 最初是将红帽企业系统“重新编译/发布”给用户免费使用而广泛使用, 当前已正式加入红帽公司并继续保持免费(随RHEL更新而更新)。

红帽用户桌面版(Fedora [Linux]) 最初由红帽公司发起的桌面版系统套件(目前已经不限于桌面版), 用户可免费体验到最新的技术或工具,而功能成熟后加入到RHEL中。

国际化组织的开源操作系统(Debian) 提供超过37500种不同的自由软件且拥有很高的认可度, 对于各类内核架构支持性良好,稳定性、安全性强更有免费的技术支持。

基于Debian的桌面版(Ubuntu) Ubuntu是一款基于Debian派生的产品,对新款硬件具有极强的兼容能力。 普遍认为Ubuntu与Fedora都是极其出色的LINUX桌面系统。

0.6 认识红帽认证 Linux系统有上百个不同的组织、公司、机构研发并发布出不同的版本,其中红帽公司作为一家成熟的操作系统厂商提供可靠的Linux系统和完善的求援服务,红帽企业linux系统(RedHat Enterprise Linux,RHEL)的市场占有量极大,认可度也非常高。 红帽公司推出了阶梯式的认证体系也确实能够帮助读者检查自己的能力:

同于大家的了解,本书《Linux就该这么学》就是由一批中国的红帽架构师所编写。

本章结束,您可以在此写下笔记:

第1章 部署虚拟环境安装linux系统。 章节简述: 本章节带领读者从0基础了解虚拟机与红帽系统,完整的演示了在VM与KVM中安装红帽RHEL7系统的方法。 特别增加了超级实用的Linux系统找回root密码、虚拟机功能增强包、VNC远程控制服务等相关的技术知识点。 简单了解守护进程即可,对了!在安装RPM软件包或配置YUM软件仓库时请格外注意参数细节哦~

1.1 准备您的工具 所谓工欲善其事必先利其器,在本书第一章需要读者们搭建出为课后练习实验所使用的红帽RHEL7系统环境,读者不需要为了课程实验而单独购买一台新电脑,下面的小节中会教给您如何通过“虚拟机”来模拟出“仿真系统”,虚拟机是能够让用户在一台真机上模拟出多台操作系统的软件,一般来讲当前主流的硬件配置都是没问题的。 强烈建议读者采用与本书一致的虚拟机软件与RHEL7镜像系统,否则可能会导致实验失败!! 软件资源请在这里下载:http://www.linuxprobe.com/tools/ VmwareWorkStation 11.0——虚拟机软件(必需): 功能强大的桌面虚拟计算机软件,能够让用户在单一主机同时运行多个不同的操作系统。 同时支持实时快照,虚拟网络,拖拽文件以及PXE等强悍功能。 RedHatEnterpriseLinux [RHEL]7.0——红帽操作系统(必需): 由开源软件及全球服务性系统开发商红帽公司出品,最稳定出色的Linux操作系统。 说来真的很郁闷、其实我在高中时就有学习Linux系统的冲动,那时上网还不便捷,所以安装系统都需要去买光盘,而那时的linux系统至少需要6张光盘(CD-Rom容量为700M),尝试安装了几次却一直报错,搞不懂只能放弃了,今年春节收拾屋子翻出了这些光盘,再次安装时找到了错误的原因,原来是第五张光盘被“刮花”了,导致依赖的软件包无法安装,真的是很无语、很郁闷,原本可以早几年就开始学Linux系统了,所以这里提示读者:“准备齐工具后一定要校验完整性”。 Hash1.0.4——文件校验工具(推荐): 经典实用的功能且便捷的支持文件拖拽查询,确保文件的完整与安全性,只需选中文件或直接拖拽进去,确保你在Hash界面上看得到MD5与SHA1值与软件资源库提供的一致再使用。

1.2 安装配置虚拟机 Vmware WorkStation是一款桌面计算机虚拟软件,能够让用户在单一主机上同时运行多个不同的操作系统。每个虚拟操作系统的硬盘分区、数据配置都是独立的,同时又可以将多台虚拟机构建为一个局域网。更何况Linux系统要求的系统资源很低,所以读者们真的没有必要再买一台电脑,课程实验完全可以用虚拟机搞定,而且VM还支持实时快照、虚拟网络、拖拽文件以及PXE等方便实用功能。 执行虚拟机软件安装向导 第1步:运行虚拟机软件。 第2步:接受软件的许可。 第3步:选择典型安装。 第4步:选择安装到的目录。

第5步:自动检查新版。 第6步:帮助改进虚拟机软件。

第7步:在桌面上创建图标(快捷方式)。 第8步:不错,一切都准备就绪了。

第9步:正常安装中。 第10步:请填写密钥或直接跳过。

第11步:安装顺利完成,Good Job!

模拟出用于安装RHEL7红帽操作系统的硬件配置。 第1步:运行"Vmware WorkStation",看到主页面。 第2步:创建新的虚拟机。 第3步:新建虚拟机向导——典型(推荐)。 第4步:选择稍后安装操作系统。 第5步:定义版本为"Red Hat Enterprise Linux 7 64位"。 第6步:设置虚拟机名称与安装路径。

第7步:设置磁盘为20GB即可(足够了)。 第8步:完成向导后请点击“自定义硬件”。

第9步:选择“设置光驱”,选择到RHEL7镜像。 第10步:选择“设置网络适配器”为“仅主机模式”。

第11步:全部设置完成,请点击“完成”。

1.3 VM安装RHEL7系统 通过上面小节已经将虚拟机配置完毕,现在正式安装红帽RHEL7系统啦。 第1步:启动RHEL7的主机电源。 第2步:敲击回车。 第3步:等待即可。 第4步:选择安装系统时的语言。 第5步:配置信息界面,敲击“Installation Destination”。 第6步:进入后选择硬盘并点击左上角“Done”。

第7步:返回主页面后再点击“Software Selection”后选择"Server With GUI"。

第8步:返回主页面后再点击"Network & Hostname"后设置主机名"linuxprobe.com"。 第9步:一切就绪后返回主页面并点击“Begin Installation”。 第10步:点击“Root Password”。 第11步:设置Root用户的密码(简单密码请双击Done) 第12步:等待安装完成后点击“Reboot”。

第13步:重启后选择“License Instormation”。 第14步:选中“I accept the license agreement”后敲击“Done”。

第15步:敲击“Finish Configuration”。 第16步:为本书后章讲到的“Kdump”建议开启(默认)。 第17步:选择“No.I prefer to register at later time.”。 第18步:选择系统语言,(本书例题用英文版完成)。

第19步:选择输入资源,默认即可。 第20步:创建一个本地用户(权限比Root小,但更加安全)。

第21步:设置系统时间(上海.中国)。 第22步:选择“Start using Red Hat Enterprise Linux Server”。 第23步:恭喜,您已经顺利的安装了红帽RHEL7操作系统。

1.4使用KVM安装系统 VmwareWorkstation可并不是唯一能够实现虚拟化的软件,如果您之前学习过Linux系统或有一定的命令行基础,并且想试试在linux系统中安装其他系统,现在就教给您操作方法,新手读者请先跳过这个小节吧~ KVM(Kernel Virtual Module)能够提供像Vmware一样的全虚拟化功能——让虚拟机用起来跟真实物理机一摸一样。 安装KVM之前我们要检查真实物理机是否支持虚拟化功能: [root@linuxprobe ~]# grep vmx /proc/cpuinfo flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smep 如果执行该命令后没有输出vmx或svm值,但您的电脑是近几年买来的,那么很有可能只是在BIOS中默认关闭了,请去开启试试吧! Inter处理器的虚拟技术标志为vmx。 AMD处理器的虚拟技术标志为svm。 安装KVM以及相关的依赖软件包: [root@linuxprobe ~]# yum -y groupinstall “Virtualization Host” [root@linuxprobe ~]# yum -y groupinstall “Virtualization Host” Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分安装过程……………… Complete! [root@linuxprobe ~]# yum -y install virt-{install,viewer,manager} Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分安装过程……………… Complete! 为了让KVM中虚拟机能够互相共享数据,还必需配置真实机的网络: 让系统支持ipv4的转发功能: [root@linuxprobe ~]# echo “net.ipv4.ip_forward = 1” > /etc/sysctl.d/99-ipforward.conf 让转发功能立即生效: [root@linuxprobe ~]# sysctl -p /etc/sysctl.d/99-ipforward.conf net.ipv4.ip_forward = 1 新手读者们请注意,前方高能: 如果您还没有学习过Linux命令,Vim编辑器与网卡配置方法的话请先跳过本小节!! 将网卡配置文件中的IP地址、子网掩码等信息注释后追加参数BRIDGE=virbr0(设置网卡为桥接模式): [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 DEVICE=“eno16777736” ONBOOT=yes #IPADDR=“192.168.10.10” #NETMASK=“255.255.255.0” #GATEWAY=“192.168.10.1” HWADDR=“网卡的MAC地址” #DNS1=“192.168.10.1” BRIDGE=virbr0 创建用于桥接网卡的配置文件(与上面的配置文件很相似): [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-virbr0 DEVICE=“virbr0” TYPE=BRIDGE ONBOOT=yes BOOTPROTO=static IPADDR=“192.168.10.10” NETMASK=“255.255.255.0” GATEWAY=“192.168.10.1” DNS1=“192.168.10.1” 当KVM安装完成并将网卡配置妥当后请重启(reboot)后再进行下面的检查操作: 检查kvm模块是否被加载以及能否正常的使用CPU虚拟化功能: [root@linuxprobe ~]# lsmod | grep kvm kvm_intel 138567 0 kvm 441119 1 kvm_intel 检查桥接的网卡配置是否启用成功: [root@linuxprobe ~]# ip show virbr0 3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:0c:29:9c:63:73 brd ff:ff:ff:ff:ff:ff inet 192.168.10.10/24 brd 192.168.10.255 scope global virbr0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe9c:6373/64 scope link valid_lft forever preferred_lft forever 获取虚拟机列表(默认为空是正常的): [root@linuxprobe ~]# virsh -c qemu:///system list Id Name State

太棒了!现在来配置虚拟机参数吧: [root@linuxprobe ~]# virt-manager 第1步:填写虚拟机名称和设置安装模式。 第2步:选中RHEL7镜像并设置系统类型。

第3步:设置内存量与CPU核数。 第4步:定义硬盘容量。 第5步:检查配置后开启虚拟机。

1.5 配置VNC服务程序 VNC虚拟网络计算机(Virtual Network Computing)是一款由欧洲实验室AT&T研发的远程控制程序,VNC服务程序可以运行在类Unix计算机系统之上,拥有强大的远程控制能力,高效且实用。 如果您是Linux初学者或不需要远程控制功能,请先翻过本小节,等学完Linux命令了再来学~ 在红帽RHEL7系统中VNC的服务软件包叫做tigervnc-server: [root@linuxprobe ~]# yum install tigervnc-server Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分安装过程……………… Installing: tigervnc-server x86_64 1.2.80-0.30.20130314svn5065.el7 rhel7 199 k ………………省略部分安装过程……………… Complete! 复制一份vnc服务程序的配置文件(文件名中的:3代表5903端口): [root@linuxprobe ~]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:3.service 编辑vnc服务的配置文件,将所有的修改为linuxprobe用户: [root@linuxprobe ~]# vim /etc/systemd/system/vncserver@:3.service [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking

Clean any existing files in /tmp/.X11-unix environment

ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’ ExecStart=/sbin/runuser -l -c “/usr/bin/vncserver %i” PIDFile=/home//.vnc/%H%i.pid ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’ [Install] WantedBy=multi-user.target 配置防火墙规则: [root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-port=5903/tcp success [root@linuxprobe ~]# firewall-cmd --reload success 使用linuxprobe用户设置连接密码: [linuxprobe@linuxprobe ~]$ vncserver You will require a password to access your desktops. Password:此处输入连接密码 Verify:此处再次输入密码 New ‘linuxprobe.com:1 (linuxprobe)’ desktop is linuxprobe.com:1 Creating default startup script /linuxprobe/.vnc/xstartup Starting applications specified in /linuxprobe/.vnc/xstartup Log file is /linuxprobe/.vnc/linuxprobe.com:1.log 将vncserver服务程序启动并加入到开机启动项中: [root@linuxprobe ~]# systemctl start vncserver@:3.service [root@linuxprobe ~]# systemctl enable vncserver@:3.service 此时便可以使用vnc客户端工具连接啦

但是如果您出现了这样的报错: xauth: (stdin):1: bad display name “linuxprobe.com:1” in “add” command 代表您的主机名(hostname)不能被ping通,请执行这行命令: echo “127.0.0.1 linuxprobe.com” > /etc/hosts

1.6 重置Root用户密码 平日里让管理员很头疼的事情太多了,偶尔把密码忘记了也不用慌,重置密码只需简单几步,一定要学会哦!红帽RHEL6系统与红帽RHEL7系统破解系统密码方法完整版:http://www.linuxprobe.com/reset-root-password/ 如果您是刚刚接手了一台Linux系统,请先确认这台系统是不是红帽RHEL7系统再进行下面的操作哦: [root@linuxprobe ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo) 第1步:开机后在内核上敲击“e”。

第2步:在linux16这行的后面输入“rd.break”并敲击“ctrl+x“。

第3步:进入到了系统的紧急求援模式。

第4步:依次输入以下命令。 mount -o remount,rw /sysroot chroot /sysroot echo “linuxprobe” | passwd --stdin root touch /.autorelabel exit reboot

第5步:重启时会很慢,耐心等待即可。

1.7 安装虚拟机增加包 VMware Tools是VMware虚拟机中自带的增强工具包,用于增强虚拟机显卡与硬盘性能、同步虚拟机与主机的时钟时间、最主要的是可以支持虚拟机与主机之间的文件拖拽传输。 《Linux就该这么学》的第二章才会正式接触Linux命令,所以此刻您暂且无需对下面的安装过程完全理解。 第1步:在虚拟软件中选择“安装/重新安装VMware Tools(T)”:

第2步:安装VMwareTools功能增加包(请用root用户登陆系统): 创建/media/cdrom目录: [root@linuxprobe ~]# mkdir -p /media/cdrom 将光驱设备挂载到该目录上: [root@linuxprobe ~]# mount /dev/cdrom /media/cdrom 进入到该挂载目录: [root@linuxprobe ~]# cd /media/cdrom 将功能增强包复制到/home目录中: [root@linuxprobe cdrom]# cp VMwareTools-9.9.0-2304977.tar.gz /home 进入到/home目录中: [root@linuxprobe cdrom]# cd /home 解压功能增强包: root@linuxprobe home]# tar xzvf VMwareTools-9.9.0-2304977.tar.gz vmware-tools-distrib/ vmware-tools-distrib/FILES vmware-tools-distrib/doc/ vmware-tools-distrib/doc/open_source_licenses.txt vmware-tools-distrib/doc/INSTALL vmware-tools-distrib/doc/README vmware-tools-distrib/installer/ vmware-tools-distrib/installer/services.sh vmware-tools-distrib/installer/guestproxy-ssl.conf vmware-tools-distrib/installer/thinprint.sh vmware-tools-distrib/installer/upstart-job.conf ………………此处省略解压过程细节……………… 进入解压文件夹中: [root@linuxprobe home]# cd vmware-tools-distrib/ 运行安装脚本并加上参数-d,代表默认安装: [root@linuxprobe vmware-tools-distrib]# ./vmware-install.pl -d The installer has detected an existing installation of open-vm-tools on this system and will not attempt to remove and replace these user-space applications. It is recommended to use the open-vm-tools packages provided by the operating system. If you do not want to use the existing installation of open-vm-tools and attempt to install VMware Tools, you must uninstall the open-vm-tools packages and re-run this installer. The installer will next check if there are any missing kernel drivers. Type yes if you want to do this, otherwise type no [yes] ………………省略部分安装过程……………… 当您看到这个字样后,重启后即可正常使用VmwareTools啦。 Creating a new initrd boot image for the kernel. Starting Virtual Printing daemon: done Starting vmware-tools (via systemctl): [ OK ] The configuration of VMware Tools 9.9.0 build-2304977 for Linux for this running kernel completed successfully. Enjoy, –the VMware team 第3步:重新启动系统后生效: [root@linuxprobe ~]# reboot

1.8 重要的守护进程 当给一台主机安装上Linux系统后就可以工作了——包括接受用户的输入/计算/存储/再将结果输出等等,这是都是系统服务帮助我们完成的。而有一些系统服务需要时刻等待用户的输入(如键盘进程)或随时响应用户的请求(如网站服务进程)等等。 守护进程(Daemon)通常会随系统启动时激活并随系统关闭时停止,一直在系统后台中默默为用户提供服务: 守护进程名称 用处 crond 计划任务 dhcpd 动态IP地址分配服务(DHCP) httpd 网站服务 lpd 打印服务器 named 域名解析服务(DNS) nfs 文件共享服务(NFS) smb 文件共享与打印服务(SAMBA) syslog 系统日志 gpm 鼠标进程

1.9 红帽软件包管理器 在红帽软件包管理器(RPM)公布之前要想在Linux系统中安装软件只能采取“源码包”的方式安装,早期在Linux系统中安装程序是一件非常困难,耗费耐心的事情,因为大多数的服务程序仅仅提供编译源码,需要运维人员自行编译代码并解决许多的依赖关系,源码安装需要运维人员有很多的知识、高超的技能、甚至很好的耐心才能安装好一个程序,而且在安装、升级、卸载时还要考虑到其他程序、库的依赖关系,所以管理员在校验、安装、卸载、查询、升级等管理软件操作时难度非常大。 而RPM机制则为解决这些问题而设计的,RPM原称为“Redhat Package Manager”,因其卓越的优势很快被公众认可,目前使用范围也已不局限在红帽系统中了。RPM会建立统一的数据库文件,详细的记录软件信息并能够自动分析依赖关系,颇有一些“软件控制面板”的感觉。 安装软件:rpm -ivh filename.rpm 升级软件:rpm -Uvh filename.rpm 卸载软件:rpm -e filename.rpm 查询软件的描述信息:rpm -qpi filename.rpm 列出软件的文件信息:rpm -qpl filename.rpm 查询文件属于那个RPM:rpm -qf filename 虽然RPM能够帮助用户查询软件相关的依赖关系,但问题还是要自己解决,有些大型软件需要数十个依赖包也是不小的负担。

1.10 Yum软件仓库 Yum仓库则是为进一步简化RPM管理软件难度而设计的,Yum能够根据用户的要求分析出所需软件包及其相关依赖关系,自动从服务器下载软件包并安装到系统,听起来就已经很爽了吧?

yum软件仓库的使用拓扑图 用户能够根据需求来指定Yum仓库与是否校验软件包,而这些只需几条关键词即可完成,现在来学习下配置的方法. 所有Yum仓库的配置文件均需以.repo结尾并存放在/etc/yum.repos.d/目录中的。 [rhel-media]: yum源的名称,可自定义。 baseurl=file:///media/cdrom :提供方式包括FTP(ftp://…)、HTTP(http://…)、本地(file:///…) enabled=1 : 设置此源是否可用,1为可用,0为禁用。 gpgcheck=1 : 设置此源是否校验文件,1为校验,0为不校验。 gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若为校验请指定公钥文件地址。 Yum仓库中的RPM软件包可以是由红帽官方发布的,也可以是第三方组织发布的,当然用户也可以编写的~ 本书提供的镜像光盘内已经包含了大量的可用RPM软件包,将会在后面的实验章节中为大家演示如何使用。 命令 作用 yum repolist all 列出所有仓库。 yum list all 列出仓库中所有软件包 yum info 软件包名称 查看软件包信息 yum install 软件包名称 安装软件包 yum reinstall 软件包名称 重新安装软件包 yum update 软件包名称 升级软件包 yum remove 软件包 移除软件包 yum clean alla 清除所有仓库缓存 yum check-update 检查可更新的软件包 yum grouplist 查看系统中已经安装的软件包组 yum groupinstall 软件包组 安装指定的软件包组 yum groupremove软件包组 移除指定的软件包组 yum groupinfo 软件包组 查询指定的软件包组信息

第2章 新手必须掌握的Linux命令。 章节简述: 本章节讲述系统内核、Bash解释器的关系与作用,教给读者如何正确的执行Linux命令以及常见排错方法。 经验丰富的运维人员可以恰当的组合命令与参数,使Linux字符命令更加的灵活且相对减少消耗系统资源。 已经收录了上百个最常用的Linux命令,其中有数十个命令被放到了后面的章节,到时候咱们再随用随学~

2.1 强大好用的SHELL 计算机硬件是由运算器、控制器、存储器、输入/输出设备等设备组成的,而能够让机箱内各种设备各司其职东西就叫做——系统内核。内核负责驱动硬件、管理活动和分配/管理硬件资源,如此说来系统内核对计算机来讲可真的是太重要了,所以它不能直接让用户操作。 因为用户不能直接控制硬件也不能直接操作内核,于是便需要基于“系统调用接口”开发出的程序/服务来满足用户日常工作了。

首先承认在红帽RHEL7中有些诸如逻辑卷管理器(LVM)的图形化工具非常好用,也减少了运维人员操作出错的几率,值得称赞,但一直以来Linux运维人员更多的倾向于用命令写脚本程序,因为图形化的工具不灵活而且相比来说更加消耗系统资源。 其实很多图形工具也是调用脚本来工作的,但功能却被“阉割”了,更缺乏了灵活性,所以有些运维人员甚至都不会给Linux系统安装图形界面,需要工作了直接远程连接过去,不得不说这样做真的挺高效的。 “Shell“——也可称为“壳”,充当的是人与内核(硬件)的翻译官,用户将一些命令“告诉”Shell,它就会调用相应的程序服务执行工作啦,很厉害吧~~现在包括红帽系统在内的许多热门Linux系统主流默认字符Shell是Bash(Bourne-Again SHell)。 读者要明白bash作为大多数linux系统的默认字符解释器,必须必须必须得学好!Bash的优势: 1.默认保存历史命令(可用上下键翻看) 2.命令仅需输入前几位就可以用tab键补全(RHEL7更牛的是参数补全) 3.强大的批处理脚本 4.实用的环境变量

2.2 执行命令与查看帮助 既然有了如此好用的“翻译官”,那么接下来就有必要好好学习下如何更高效的和它沟通了~ 要想准确的、高效的完成工作,不能够光靠命令本身,还应该根据实际情况来组合各种命令选择和命令参数: 命令名称 [命令参数] [命令对象] 注意:命令名称、命令参数、命令对象之间请用空格键分隔。 比较好理解的是命令对象,命令对象一般是指要处理的目标(普通文件/目录文件/用户等等),而命令参数对于新手来讲比较麻烦,因为这个值会随命令的不同和环境情况的不同而异,所以在参数选择搭配上需要长时间的经验积累才可以。 命令的参数可以选用长格式(完整的选项名称)也可选用短格式(单个字母的缩写),分别用”—“与”–“做前缀。 长格式如:man –help 短格式如:man -h 当遇到了一个陌生命令后如何知道它有那些可用的参数?这时就可以用man命令了。 本书将man命令作为第一个要学的Linux命令是因为它的作用非常强大——可用于查看命令的具体可用参数与对象格式等等。 运行虚拟机中的RHEL7系统,并在桌面上敲击右键后点击“Open in Terminal”,这样就成功的打开了一个终端。

输入字符“man man”来用man命令查看自身的帮助信息。

man命令的帮助信息界面

man命令的可用帮助文档分类有: 代码 代表内容 1 普通的命令 2 内核调用的函数与工具 3 常见的函数与函数库 4 设备文件的说明 5 配置文件 6 游戏 7 惯例与协议 8 管理员可用的命令 9 内核相关的文件 一般来讲帮助文件都很长很多,如果你想翻看的话,就要理解帮助文档的目录结构与操作方法: 结构名称 代表意义 NAME 命令的名称 SYNOPSYS 参数的大致使用方法 DESCRIPTION 介绍说明 EXAMPLES 演示(附带简单说明) OVERVIEW 概述 DEFAULTS 默认的功能 OPTIONS 具体的可用选项(带介绍) ENVIRONMENT 环境变量 FILES 用到的文件 SEE ALSO 相关的资料 HISTORY 维护历史与联系方式 man命令的操作按键: 按键 用处 空格键 向下翻一页。 [Page Down] 向下翻一页。 [Page Up] 向上翻一页。 [HOME] 直接前往首页。 [END] 直接前往尾页。 /关键词 从上至下搜索某个关键词,如"/linux"。 ?关键词 从下至上搜索某个关键词,如"?linux"。 n 定位到下一个搜索到的关键词。 N 定位到上一个搜索到的关键词。 q 退出帮助文档。

2.3 常用系统工作命令 刚刚学会了一个重量级的man命令,感觉很不错吧?接下来就是常用的命令啦,尽量背记下来,当然实在不行回来查也可以的,echo命令用于在终端显示字符串或变量,格式为:“echo [字符串 | 变量]”。 将echo命令的字符串输出到终端: [root@linuxprobe ~]# echo Linuxprobe.Com Linuxprobe.Com 用echo命令查看SHELL变量的值(前面有$符号): [root@linuxprobe ~]# echo $SHELL /bin/bash

查看本机主机名: [root@linuxprobe ~]# echo $HOSTNAME Linuxprobe.Com date命令用于显示/设置系统的时间或日期,格式为:”date [选项] [+指定的格式]”。 强大的date命令能够按照指定格式显示系统的时间或日期,只需键入”+”号开头的字符串指定其格式,详细格式如下: 参数 作用 %t 跳格[TAB键] %H 小时(00-23) %I 小时(01-12) %M 分钟(00-59) %S 秒(00-60) %X 相当于%H:%M:%S %Z 显示时区 %p 显示本地AM或PM %A 星期几 (Sunday-Saturday) %a 星期几 (Sun-Sat) %B 完整月份 (January-December) %b 缩写月份 (Jan-Dec) %d 日(01-31) %j 一年中的第几天(001-366) %m 月份(01-12) %Y 完整的年份 查看当前的系统时间: [root@linuxprobe ~]# date Mon Aug 24 16:11:23 CST 2015 按照”年-月-日 小时:分钟:秒”的格式: [root@linuxprobe ~]# date “+%Y-%m-%d %H:%M:%S” 2015-08-24 16:29:12

设置系统时间为2015年9月1日8点半: [root@linuxprobe ~]# date -s “20150901 8:30:00” Tue Sep 1 08:30:00 CST 2015 查看当前系统时间: [root@linuxprobe ~]# date Tue Sep 1 08:30:01 CST 2015 查看本地系统时区: [root@linuxprobe ~]# date “+%Z” CST 查看星期几: [root@linuxprobe ~]# date “+%A” Tuesday 输入当前是上午还是下午: [root@linuxprobe Desktop]# date “+%p” AM 判断今天是一年中的第几天: [root@linuxprobe ~]# date “+%j” 244 reboot命令用于重启系统(仅root用户可以使用),格式为:”reboot”。 重启计算机: [root@linuxprobe ~]# reboot wget命令用于使用命令行下载网络文件,格式为:“wget [参数] 下载地址”。 参数 作用 -b 后台下载模式。 -O 下载到指定目录。 -t 最大尝试次数。 -c 断点续传 -p 下载页面内所有资源,包括图片、视频等。 -r 递归下载 首先需要配置您的Linux系统能够正常登入互联网,然后使用wget命令下载由《Linux就该这么学》提供的红帽RHEL7系统镜像: [root@linuxprobe ~]# wget http://www.linuxprobe.com/Tools/RHEL-server-7.0-x86_64-LinuxProbe.Com.iso –2015-09-01 18:25:24-- http://www.linuxprobe.com/Tools/RHEL-server-7.0-x86_64-LinuxProbe.Com.iso Resolving www.linuxprobe.com… 106.185.25.197 Connecting to www.linuxprobe.com|106.185.25.197|:80… connected. Saving to: ‘RHEL-server-7.0-x86_64-LinuxProbe.Com.iso’ 100%[====================================>] 3,743,416,320 1.82M/s in 32m 27s 2015-09-01 18:57:51 (1.83 MB/s) - ‘RHEL-server-7.0-x86_64-LinuxProbe.Com.iso’ saved [3743416320/3743416320] 递归下载《Linux就该这么学》的整站页面与所有资料,下载完成后会在当前目录中保存成名为”www.linuxprobe.com“的目录: [root@linuxprobe ~]# wget -r -p http://www.linuxprobe.com –2015-09-01 18:31:41-- http://www.linuxprobe.com/ Resolving www.linuxprobe.com… 106.185.25.197 Connecting to www.linuxprobe.com|106.185.25.197|:80… connected. HTTP request sent, awaiting response… 200 OK Length: unspecified [text/html] Saving to: `www.linuxprobe.com/index.html’ ………………省略下载过程……………… elinks用于实现一个纯文本界面的浏览器,格式为:“elinks [参数] 网址”。 安装elinks纯文本浏览器: [root@linuxprobe ~]# yum install elinks 使用elinks访问《Linux就该这么学》: [root@linuxprobe ~]# elinks www.linuxprobe.com

2.4 系统状态检测命令 合格的运维人员必需具备快速查看系统状态的能力,所以这些命令真的很常用呢! ifconfig用于获取网卡配置与网络状态等信息:格式为”ifconfig [网络设备] [参数]”。 查看本机当前的网卡配置与网络状态等信息: [root@linuxprobe ~]# ifconfig eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::20c:29ff:fe9c:6373 prefixlen 64 scopeid 0x20 ether 00:0c:29:9c:63:73 txqueuelen 1000 (Ethernet) RX packets 61 bytes 6612 (6.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 32 bytes 4511 (4.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 2 bytes 140 (140.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 140 (140.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

uname命令用于查看系统内核版本等信息,格式为:“uname [-a]”。 查看系统的内核名称、内核发行版、内核版本、节点名、硬件名称、硬件平台、处理器类型、操作系统等信息: [root@linuxprobe ~]# uname -a Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux 顺便说下,如果您想查看系统详细版本信息就看redhat-release文件: [root@linuxprobe ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo) uptime命令用于查看系统的负载情况,格式为:“uptime”。 我也经常用”watch -n 1 uptime“来每秒刷新一次获得当前的系统负载情况,输出内容分别为系统当前时间、系统已运行时间、当前在线用户以及平均负载值。而平均负载分为最近1分钟、5分钟、15分钟的系统负载情况,负载值越低越好(小于1是正常)。 获取当前系统状态信息: [root@linuxprobe ~]# uptime 22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18 free命令用于显示当前系统中内存的使用量情况,格式为:“free [-m/-g]”。 以m为单位显示当前系统中内存的使用量情况: [root@linuxprobe ~]# free -m 总计内存量 已用量 可用量 进程共享的内存量 磁盘缓存的内存量 缓存的内存量 total used free shared buffers cached Mem: 1483 885 598 9 0 255 -/+ buffers/cache: 628 855 Swap: 2047 0 2047 who命令用于查看当前登入主机的用户情况,格式为:”who [参数]”。 查看当前登入主机用户的情况: [root@linuxprobe ~]# who 登陆的用户名 终端设备 登陆到系统的时间 root :0 2015-08-24 17:52 (:0) root pts/0 2015-08-24 17:52 (:0) last命令用于查看所有系统的登入记录,格式为:”last [参数]”。 查看系统的登入记录: [root@linuxprobe ~]# last root pts/0 :0 Mon Aug 24 17:52 still logged in root :0 :0 Mon Aug 24 17:52 still logged in (unknown :0 :0 Mon Aug 24 17:50 - 17:52 (00:02) reboot system boot 3.10.0-123.el7.x Tue Aug 25 01:49 - 18:17 (-7:-32) root pts/0 :0 Mon Aug 24 15:40 - 08:54 (7+17:14) root pts/0 :0 Fri Jul 10 10:49 - 15:37 (45+04:47) history命令用于显示历史执行过的命令,格式为:“history [-c]”。 查看当前用户在系统中执行过的命令: [root@linuxprobe ~]# history 1 tar xzvf VMwareTools-9.9.0-2304977.tar.gz 2 cd vmware-tools-distrib/ 3 ls 4 ./vmware-install.pl -d 5 reboot 6 df -h 7 cd /run/media/ 8 ls 9 cd root/ 10 ls 11 cd VMware\ Tools/ 12 ls 13 cp VMwareTools-9.9.0-2304977.tar.gz /home 14 cd /home 15 ls 16 tar xzvf VMwareTools-9.9.0-2304977.tar.gz 17 cd vmware-tools-distrib/ 18 ls 19 ./vmware-install.pl -d 20 reboot 21 history 历史命令会被保存到用户家目录中的”.bash_history“文件中。Linux系统中以点(.)开头的文件均代表隐藏文件,一般会是系统文件。 [root@linuxprobe ~]# cat ~/.bash_history 清空该用户在本机中执行过命令的历史记录: [root@linuxprobe ~]# history -c history默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值。 sosreport命令用于收集系统系统配置并诊断信息后输出结论文档,格式为:“sosreport”。 当我们的红帽系统出现故障需要联系红帽厂商或其他技术支持时,大多数情况都需要提供使用到这个命令。 收集系统本地配置信息并诊断: [root@linuxprobe ~]# sosreport

2.5 工作目录切换命令 虽然后面的章节才会学习到linux的存储结构与“目录”这个概念,但没有关系,现在您也能看懂下面的操作。 pwd命令用于显示当前的工作目录,格式为:“pwd [选项]”。 参数 作用 -P 显示真实路径。(即非快捷链接的地址) 查看当前的工作路径: [root@linuxprobe etc]# pwd /etc cd命令用于切换工作路径,格式为:“cd [目录名称]”。 参数 作用

  • 切换到上一次的目录,如“cd -” ~ 切换到“家目录”,如"cd ~" ~username 切换到其他用户的家目录,如"cd ~teak" … 切换到上级目录,如"cd …" 切换进/etc目录中: [root@linuxprobe ~]# cd /etc 切换进/bin目录中: [root@linuxprobe etc]# cd /bin 返回上级目录(即/etc目录): [root@linuxprobe bin]# cd - /etc 返回用户自己的家目录: [root@linuxprobe etc]# cd ~ [root@linuxprobe ~]# ls命令用于查看目录中有那些文件,格式为:“ls [选项] [文件] ”。 查看当前目录下有那些文件(长格式): [root@linuxprobe etc]# ls -al 参数 作用 -a 查看全部文件(包括隐藏文件) -d 仅看目录本身 -h 易读的文件容量(如k,m,g) -l 显示文件的详细信息 查看/etc目录中有那些文件: [root@linuxprobe ~]# ls /etc abrt gss printcap adjtime gssproxy profile aliases gtk-2.0 profile.d aliases.db gtk-3.0 protocols alsa hba.conf pulse alternatives host.conf purple anacrontab hostname qemu-ga asound.conf hosts qemu-kvm at.deny hosts.allow radvd.conf ………省略部分文件……… 查看/etc目录的权限与属性: [root@linuxprobe ~]# ls -ld /etc drwxr-xr-x. 132 root root 8192 Jul 10 10:48 /etc 追加-h参数,以K/M/G为单位显示容量: [root@linuxprobe ~]# ls -ldh /etc drwxr-xr-x. 132 root root 8.0K Jul 10 10:48 /etc

2.6 文本文件编辑命令 既然已经学会了工作目录间的切换与查看,那么就来试试对文件的一系列操作吧,非常实用。 cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。 查看文本文件: [root@linuxprobe ~]# cat 文件名 参数 作用 -n 显示行号 -b 显示行号(不包括空行) -A 显示出“不可见”的符号,如空格,tab键等等 more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”。 查看文本文件: [root@linuxprobe ~]# more 文件名 参数 作用 -数字 预先显示的行数(默认为一页) -d 显示提示语句与报错信息 head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”。 查看文本文件前20行: [root@linuxprobe ~]# head -n 20 文件名 参数 作用 -n 10 显示10行 -n -10 正常输出(如cat命令),但不显示最后的10行 tail命令用于查看纯文本文档的后N行,格式为:“tail [选项] [文件]”。 查看文本文件后20行: [root@linuxprobe ~]# tail -n 20 文件名 参数 作用 -n 10 显示后面的10行 -f 持续刷新显示的内容 od命令用于对查看特殊格式的文件,格式为:“od [选项] [文件]”。 参数 作用 -t a 默认字符 -t c ASCII字符 -t o 八进制 -t d 十进制 -t x 十六进制 -t f 浮点数 tr命令用于转换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”。 读者如果想转换实例中的文件,可下载文件tr.txt。 将tr.txt文件的内容转换成大写(注意到命令中间的|了吗?这个叫管道命令符,后面小节会学习到的) [root@linuxprobe ~]# cat tr.txt | tr [a-z] [A-Z] WELCOME TO LINUXPROBE.COM RED HAT CERTIFIED FREE LINUX LESSONS PROFESSIONAL GUIDANCE LINUX COURSE wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。 参数 作用 -l 只显示行数 -w 只显示单词数 -c 只显示字节数 统计当前系统中的用户个数: [root@linuxprobe ~]# wc -l /etc/passwd 38 /etc/passwd cut命令用于通过列来提取文本字符,格式为:“cut [参数] 文本”。 参数 作用 -d 分隔符 指定分隔符,默认为Tab。 -f 指定显示的列数。 -c 单位改为字符

获取当前系统中所有用户的名称: 参数作用:-d以”:”来做分隔符,-f参数代表只看第一列的内容。 [root@linuxprobe ~]# cut -d: -f1 /etc/passwd 获取root用户的默认SHELL解释器: [root@linuxprobe ~]# grep ^root /etc/passwd | cut -d: -f 7 /bin/bash diff命令用于比较多个文本文件的差异,格式为:”diff [参数] 文件”。 读者如果想比较实例中的文件,可点此下载文件diff_A.txt与diff_B.txt。 参数 命令 -b 忽略空格引起的差异。 -B 忽略空行引起的差异。 –brief或-q 仅报告是否存在差异。 -c 使用上下文输出格式。 比较两个文件的差异: [root@linuxprobe ~]# diff diff_A.txt diff_B.txt 1c1,2

Welcome to linuxprobe.com


Welcome tooo linuxprobe.com

3c4,5

Free Linux Lessons


Free Linux LeSSonS … 仅显示比较后的结果,即相同或不相同: [root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt Files diff_A.txt and diff_B.txt differ 使用上下文输出的格式: [root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt *** diff_A.txt 2015-08-30 18:07:45.230864626 +0800 — diff_B.txt 2015-08-30 18:08:52.203860389 +0800


*** 1,5 **** ! Welcome to linuxprobe.com Red Hat certified ! Free Linux Lessons Professional guidance Linux Course — 1,7 ---- ! Welcome tooo linuxprobe.com ! Red Hat certified ! Free Linux LeSSonS ! … Professional guidance Linux Course

2.7 文件目录管理命令 touch命令用于创建空白文件与修改文件时间,格式为:“touch [选项] [文件]”。 我们可以用“touch test”轻松的创建出一个名字为test的空白文档,所以这个功能无须介绍。 对于在Linux中的文件有三种时间: 更改时间(mtime):内容修改时间(不包括权限的) 更改权限(ctime):更改权限与属性的时间 读取时间(atime):读取文件内容的时间 如果黑客执行了touch -d “2 days ago” test,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)。 参数 作用 -a 近修改“访问时间”(atime) -m 近修改“更改时间”(mtime) -d 同时修改atime与mtime -t 要修改成的时间[YYMMDDhhmm] mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。 创建文件夹: [root@linuxprobe ~]# mkdir 文件夹名 参数 作用 -m=MODE 默认的文件目录权限,如"-m 755" -p 连续创建多层目录(若文件夹已存在则忽略) -v 显示创建的过程 创建一个名字叫linuxprobe的目录: [root@linuxprobe ~]# mkdir linuxprobe 使用ls命令查看该目录的权限属性等信息: [root@linuxprobe ~]# ls -ld linuxprobe/ drwxr-xr-x. 2 root root 6 Aug 24 19:25 linuxprobe/ 还记得刚刚用cd命令进入linuxprobe目录吗?这里是个小技巧,变量!KaTeX parse error: Expected 'EOF', got '#' at position 39: …t@linuxprobe ~]#̲ cd ! cd linuxprobe

pwd命令也是刚刚学习过的,用于显示当前的工作路径。 [root@linuxprobe linuxprobe]# pwd /root/Desktop/linuxprobe 一次创建5个目录a/b/c/d/e: [root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e 查看目录的属性,验证是否成功: [root@linuxprobe linuxprobe]# ls -ld a/b/c/d/e/ drwxr-xr-x. 2 root root 6 Aug 29 10:16 a/b/c/d/e/ cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。 复制命令的三种情况: 目标文件是一个目录,会将源文件复制到该目录中。 目标文件是一个文件,会将源文件覆盖该文件。 目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。 参数 作用 -p 保留原始文件的属性 -d 若对象为"链接文件",则保留该"链接文件"的属性 -r 递归持续复制(用于目录) -i 若目标文件存在则询问是否覆盖 -a 相当于-pdr(p,d,r为上述的参数) 创建一个名为install.log的文件: [root@linuxprobe ~]# touch install.log 将install.log复制为x.log: [root@linuxprobe ~]# cp install.log x.log 查看到确实出现了文件x.log [root@linuxprobe ~]# ls install.log x.log mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”。 将文件aaa重命名为bbb: [root@linuxprobe ~]# mv aaa bbb rm命令用于删除文件或目录,格式为:“rm [选项] 文件”。 删除普通文件并提示确认信息:“rm 文件名” 删除普通文件或目录文件,不提示:“rm -rf 文件或目录名” 参数 作用 -f 忽略警告信息 -i 删除前先询问 -r 删除文件夹 查看当前目录下的文件: [root@linuxprobe ~]# ls install.log x.log 删除install.log文件,输入”y”即确

标签: 各式连接器fce17

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台