跟老男孩学Linux运维:核心系统命令实战(txt+pdf+epub+mobi电子书下载)


发布时间:2020-12-01 13:20:56

点击下载

作者:老男孩

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

跟老男孩学Linux运维:核心系统命令实战

跟老男孩学Linux运维:核心系统命令实战试读:

前言

为什么要写这本书《跟老男孩学Linux运维:Web集群实战》及《跟老男孩学Linux运维:Shell编程实战》这两本书自出版以来,得到了广大网友的一致好评和赞扬。同时也有部分读者提出了很多宝贵的建议,其中之一就是这两本书都不是面向纯零基础读者的书,需要具备一些基础的Linux知识辅助才能更好地进行学习。

在收到读者和网友的反馈之后,老男孩并不感到意外,因为上述两本书的定位的确是有一些Linux基础的读者,编写零基础入门的图书也在老男孩的规划之中,本书就是其中之一,还有另一本图书暂定名为《跟老男孩学Linux运维:核心入门基础》,仍在写作之中。

众所周知,Linux是一个重点使用命令行来完成相关工作的操作系统,因此,对Linux命令的熟练使用是工程师玩转Linux的基础且关键的技能之一。

在长期的运维工作以及深度教学中,老男孩发现很多Linux入门人员对Linux基础命令一知半解,甚至是已经工作的部分企业运维人员也不能熟练运用Linux命令。而市面上关于Linux命令的图书大多如出一辙,或翻译帮助文档,或理论多例子太浅且落后,或结合Shell编程附带一些基础Linux命令介绍,都没有将命令结合到解决企业实战的问题中来。因此老男孩决定写一本与众不同的、比较偏重实战案例的Linux命令图书,相信本书一定会让众多读者受益,会帮助大家提升个人Linux运维能力,达到加薪升职的目的。

本书是“跟老男孩学Linux运维”实战系列丛书的第三本,《跟老男孩学Linux运维:三剑客命令深度实战》《跟老男孩学Linux运维:MySQL实战》也将在几个月后和大家见面,更多Linux运维实战系列图书正在持续写作之中,敬请期待。读者对象

·Linux入门人员

·Linux系统管理员和运维工程师

·互联网网站开发及数据库管理人员

·网络管理员和项目实施工程师

·Linux相关售前售后技术工程师

·开设Linux相关课程的大中专院校

·对Linux感兴趣的人群如何阅读本书

本书是一本偏重实战的较完整的Linux命令图书,本身并非大而全,但处处可以体现“实战”二字,很多命令讲解均取自企业中解决问题的实战案例,并结合老男孩十几年的运维工作和教学工作进行了梳理。全书从脉络上共分为12章,具体分布如下。

第1章为Linux命令行简介,介绍Linux下的命令行基础知识、快捷键、查找帮助、开关机命令等内容。

第2章讲解的是文件和目录操作命令,介绍了对于文件和目录的增删改查等功能的综合运用,同时,整理了一些富有特色的利用命令解决工作中问题的小案例。

第3章讲解的是文件过滤及内容编辑处理命令,主要是对于文件的编辑、过滤等命令的介绍。

第4章讲解的是文本处理“三剑客”,即grep、sed、awk,这是Linux中最核心的3个命令,但这部分内容实在太多,因此,后续将会对更深入的内容单独成书进行介绍。

第5~6章讲解的是Linux信息显示与搜索文件、文件备份与压缩等命令,这是最后两章不会直接危害系统和服务的命令。

第7~8章讲解的是Linux用户管理及用户信息查询、磁盘与文件系统管理等命令,这两章的命令虽然基础但是极其重要,因为稍有不慎就会给企业的数据安全以及系统正常运行带来灾难,因此,读者在学习及工作中使用这些命令时一定要格外注意。

第9~11章讲解的是Linux进程管理、网络管理、系统管理等命令,是Linux命令中更重要更核心的命令,能否对这些命令进行熟练的运用,决定了我们是否能够真正掌握并自如运用Linux系统。

第12章讲解的是Linux系统常用的Bash内置命令,这部分命令比较特殊,在系统中没有对应的实体命令文件,而是存在于Bash程序之中,因此称为内置命令。需要注意的是,内置命令的查看帮助方式与其他章节的命令也是不同的。勘误和支持

由于老男孩的教学任务很重,课程较多,全书的写作基本上都是利用早晨和夜里的时间来完成的,限于本人的水平和能力,加之编写时间仓促,书中难免有疏漏和不当之处,恳请读者批评指正。你可以将书中的错误发布在专门为本书准备的博客地址评论处“http://oldboy.blog.51cto.com/2561410/1964279”,同时不管你遇到何种问题,都可以加入我为本书提供的QQ交流群204041129(加群说明:Linux命令),我将尽力为读者提供最满意的解答。书中所需的工具等都将发布在我的博客网站上,我也会将相应功能的更新及时发布出来。如果你有更多的宝贵意见,也欢迎你发送邮件至我的邮箱oldboy@oldboyedu.com或者加老男孩的QQ号31333741,我很期待能够听到你们的真挚反馈。致谢

本书是老男孩本人和老男孩教育的同事张耀共同完成的,特别感谢张耀对本书的写作支持。

感谢李泳谊为本书第4章贡献awk知识的底稿内容及对本书的写作给予的支持。

感谢老男孩IT教育的每一位在校学员——是你们自觉努力的学习,使得我有较多的时间持续写作。感谢你们对老男孩IT教育的支持。

感谢老男孩IT教育里每一个班级的助教、班主任、班长及班干部,感谢你们替我分担老男孩IT教育众多学员的答疑、辅导、批改作业及班级管理工作。

感谢我的同事老男孩教育Python学院的Alex、武sir以及其他未提及名字的众多老师,正是你们辛勤努力的工作,让我得以有时间完成此书。

感谢机械工业出版社华章公司的编辑lisa和温总,感谢你们的不懈支持、包容和鼓励,正是你们的鼓励和帮助引导我顺利完成全部书稿。

感谢没有提及名字的所有学生、网友以及关心关注老男孩的每一位友人、朋友。

最后要感谢我的父母、家人,正是你们的支持和体谅,让我有无限信心和力量去写作,并最终完成此书!

谨以此书,献给支持老男孩IT教育的每一位朋友、学员以及众多热爱Linux运维技术的朋友们。老男孩老师2017年9月于北京  第1章 Linux命令行简介1.1 Linux命令行概述1.1.1 Linux命令行的作用与意义

众所周知,Linux是一个主要通过命令行来进行管理的操作系统,即通过键盘输入指令来管理系统的相关操作,包括但不限于编辑文件、启动停止服务等。这和初学者曾经使用的Windows系统使用鼠标点击的可视化管理大不相同。

使用鼠标可视化管理的优势是简单、容易上手,但缺点是不便于快速、批量、自动化管理系统,而且感觉系统很臃肿,这个时候Linux系统的命令行管理优势就凸显了。使用Linux命令行管理,不但可以批量、自动化管理,而且还可以实现智能化、可视化管理;当然,后者需要开发人员配合开发管理界面来完成。但是无论如何,Linux系统的优势基因还是快速、批量、自动化、智能化管理系统及处理业务。1.1.2 Linux命令行介绍

安装Linux系统时,无论是使用文本模式(命令行)安装,还是使用图形模式安装,最终管理系统的任务都会落到命令行之上。

大多数互联网企业在安装系统时甚至不会安装图形管理软件包,而是直接使用文本模式安装,因此登录后直接面对的就是命令行的界面(如图1-1所示)。图1-1 通过SSH客户端连接Linux系统后的命令行图1.1.3 Linux命令行的开启及退出

在开启主机之后,Linux系统会经过一系列的引导和程序加载,最终会出现登录前的提示界面(如图1-2所示)。

在图1-2中,将光标定位到“login:”字符串后面,输入超级用户管理员root之后,按回车键,弹出密码提示框后再输入密码,注意密码是不显示的。输入了正确的密码之后,再按回车键就可以登录到Linux系统中了(如图1-3和图1-4所示)。图1-2 CentOS Linux系统登录界面图1-3 CentOS Linux系统登录前输入用户密码的界面图1-4 CentOS Linux系统登录后的命令行界面

在命令行执行exit或logout命令可退出命令行(如图1-5所示),当然也可以使用快捷键Ctrl+d退出命令行,退出命令行之后,如果需要再次登录,则还是需要输入用户名和密码(除非使用SSH客户端已将用户名和密码保存起来)。图1-5 CentOS Linux命令行退出命令操作的界面1.1.4 Linux命令行提示符介绍

Linux命令行结尾的提示符有“#”和“$”两种不同的符号,代码如下所示:[root@oldboy ~]# #<==这是超级管理员root用户对应的命令行。[oldboy@oldboy ~]$ #<==这是普通用户oldboy对应的命令行。

其中,

1)#号,是使用超级用户root登录后的命令行结尾提示符,而$号是使用普通用户登录后的命令行结尾提示符。

2)超级用户具有管理系统的所有权限,普通用户的权限比较小,只能进行基本的系统信息查看等操作,无法更改系统配置和管理服务。

3)命令行提示符@前面的字符代表当前登录的用户(可用whoami查询),@后面的为主机名(可用hostname查询),~所在的位置是窗口当前用户所在的路径。示例代码如下:[oldboy@oldboy ~]$ #<==@前的oldboy为当前用户,@后的oldboy为主机名,此处的~表示当前目录,即家目录。

4)Linux命令提示符由PS1环境变量控制。示例代码如下:[root@oldboy ~]# set|grep PS1 #<==注意PS1是大写的。PS1='[\u@\h \W]\$ ' #<==等号后特殊变量的讲解见表2-2。

这里的PS1='[\u@\h\W]\$',可以通过全局配置文件/etc/bashrc或/etc/profile进行按需配置和调整。1.1.5 Linux命令行常用快捷键

这里需要特别说明一下的是,在企业工作中,管理Linux时一般不会直接采用键盘、显示器登录系统,而是会通过网络在远程进行管理,因此,需要通过远程连接工具连接到Linux系统中。目前最常用的Linux远程连接工具为:SecureCRT和Xshell客户端软件,因此,本节涉及的常用命令快捷键也是基于这两款客户端软件的,其他软件的快捷键使用情况与此基本类似。

表1-1展示的是提高Linux运维效率的30个命令行常用快捷键,在此列出以供大家参考。表1-1 30个常用快捷键

注:上述快捷键适用于SecureCRT和Xshell客户端。其中带有符号“*”的为常用快捷键。1.2 在Linux命令行下查看命令帮助1.2.1 使用man获取命令帮助信息

1.man命令的基本语法

man命令是Linux系统中最核心的命令之一,因为通过它可以查看其他Linux命令的使用信息。当然了,man命令不仅可以查看命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等的帮助信息。【功能说明】

man命令用于查看命令的帮助信息。【语法格式】man 参数选项 命令/文件【选项说明】

man命令的参数选项见表1-2。表1-2 man命令的参数选项及说明【实践操作】

范例1-1:查看cp指令的帮助。[root@oldboy ~]# man cp #<==系统管理员常见的用法一般还是直接使用man命令,不带参数。

2.利用man查阅命令帮助内容的格式说明

当我们使用“man命令”查询命令对应的帮助时,帮助内容中的标题格式所对应的含义具体见表1-3。表1-3 执行“man命令”后帮助内容中的标题介绍

很多读者对英文的感觉不是很好,希望看到中文的man帮助手册,这时可以将系统调整为中文的字符集,或者单独安装man的中文包。不过很遗憾的是,man的中文手册内容“年久失修”,和英文手册相去甚远,大家还是多配合翻译软件看man的英文帮助吧,看得多了,自然就容易看懂了。

3.进入man帮助页面中的快捷键功能说明

执行“man命令”进入到man帮助页面中,实际上就相当于浏览一个文本文件,可以利用表1-4中的快捷键快速查阅想要查找的内容。表1-4 man帮助页面中的快捷键

man命令也有很多其他参数,但是在实际工作中几乎用不到,如果有部分读者在工作中需要使用man的特殊参数,可以使用“man man”命令查阅。1.2.2 使用--help参数获取命令帮助信息

除了可以使用“man命令”查看命令的帮助信息以外,还可以使用“命令--help”查看命令的使用信息(如图1-6所示),虽然有时这个输出很简单,但是相应地查看起来也会更方便。图1-6 带--help的命令帮助

可能有读者会感到奇怪,咦,图1-6中怎么是中文显示?其实,这是调整了中文字符集的结果,其实就是调整系统字符集为“zh_CN.UTF-8”,示例如下:[root@oldboy ~]# cat /etc/sysconfig/i18nLANG="zh_CN.UTF-8"[root@oldboy ~]# echo $LANGzh_CN.UTF-8特别说明:

那么,在工作中到底是使用“man命令”还是“命令--help”呢?建议结合使用,“命令--help”获取的是常用的帮助信息,“man命令”获取的是更多更复杂的帮助信息。1.2.3 使用help命令获取bash内置命令帮助

在Linux系统里有一些特殊的命令,它们就是bash程序的内置命令,例如cd、history、read等,这些命令在系统目录里不存在真实的程序文件(存在于bash程序里),对于这部分命令,查看帮助的方法就是使用help命令,例如:[root@oldboy ~]# help cdcd: cd [-L|-P] [dir] Change the shell working directory. Change the current directory to DIR. The default DIR is the value of the HOME shell variable.提示:如果使用man cd,那么通常是查不到帮助信息的,而是会进入bash的帮助页面。

有关Linux各种内置命令的讲解详见后文。1.2.4 使用info获取帮助信息

Linux系统中的info命令是一个查看程序对应文档信息的命令,可以作为man及help命令的帮助补充,不过一般在企业运维工作中,很少会有机会需要使用info去查询命令的使用帮助,因此,知道有这个命令就可以了,普通读者无需关注太多。使用info命令查看命令帮助的语法操作和man类似,示例如下:[root@oldboy ~]# info lsFile: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing10.1 'ls': List directory contents==================================The 'ls' program lists information about files (of any type, includingdirectories). Options and file arguments can be intermixedarbitrarily, as usual.1.2.5 从互联网搜索获取命令帮助信息

除了Linux系统自带的帮助功能之外,通过互联网搜索引擎查找命令的帮助信息,可能是很多初学者默认选择的方法,使用互联网搜索引擎查找命令的关键字如图1-7所示。但是在逐渐熟悉了Linux以后,还是应该养成使用man或help查看帮助的习惯,这对读者的能力提升极为关键,当你有了较全面的能力时,无论从什么渠道获取信息都是必要的,怎么快怎么来就好。图1-7 使用搜索引擎查找命令帮助信息特别说明:

对于搜索引擎的使用,优先顺序为www.google.com→www.bing.com→www.baidu.com。1.3 Linux关机、重启、注销命令1.3.1 重启或关机命令:shutdown【功能说明】

shutdown是一个用来安全关闭或重启Linux系统的命令,系统在关闭之前会通知所有的登录用户,系统即将关闭,此时所有的新用户都不可以登录,与shutdown功能类似的命令还有init、halt、poweroff、reboot。【语法格式】shutdown [OPTION]... TIME [MESSAGE]shutdown [选项] 时间 消息说明:

1)注意shutdown命令和后面的选项之间至少要有一个空格。

2)通常情况下,我们执行的shutdown命令为shutdown-h now或shutdown-r now。【选项说明】

shutdown命令的参数说明见表1-5。表1-5 shutdown命令的参数选项及说明

shutdown命令的工作过程就是当用户执行了对应参数并附带关机时间的命令之后,通知所有用户即将关机的信息,并且在这个时间段内禁止新用户登录,仅当到了指定的关机时间时,shutdown命令才会根据所接收的参数选项,发送请求给系统的init进程,请求将系统调整到对应参数的状态(例如-h参数),系统关机状态实际上对应的是Linux系统里的运行级别0。和系统关机相关的运行级别有:0(关机运行级别)-halt,6(重启运行级别)-reboot,更多相关内容可查看/etc/inittab文件。【使用范例】

范例1-2:关机或重启系统的常见操作。

一分钟后关闭Linux系统的命令如下:[root@oldboy ~]# shutdown -h +1 #<==一分钟后关闭Linux系统。Broadcast message from root@oldboy #<==通知所有用户关机信息。 (/dev/pts/1) at 10:26 ...The system is going down for halt in 1 minute! #<==关机形式及时间提示。^Cshutdown: Shutdown cancelled #<==按Ctrl+c快捷键取消。

其中,结尾的“+1”表示的是关机的时间段,即1分钟后,当然也可以改为5分钟后,这个时间段是以当下系统时间为准来计算的,时间段也可以改为具体的时间点。

shutdown命令的工作原理为:一旦到达关机时间,shutdown命令就会发送请求给系统的init进程将系统调整到合适的运行级别(运行级别命令请参考runlevel命令,运行级别请查看/etc/inittab文件说明),其中0表示关机,6表示重启。所以,执行“init 0”就表示关机,执行“init 6”就表示重启。

11点整重启Linux系统的命令如下:[root@oldboy ~]# shutdown -r 11:00Broadcast message from root@oldboy (/dev/pts/1) at 10:31 ...The system is going down for reboot in 29 minutes!^Cshutdown: Shutdown cancelled

其中,结尾的11:00表示的是关机的时间点,比如说,下午19:00我要和一个女生约会,19:00就是一个时间点。本命令相当于在11:00的时候告诉init进程把运行级别调整为6,即相当于执行了“init 6”的命令。

立即关闭Linux系统的命令如下:[root@oldboy ~]# shutdown -h now

在工作中,一般用得比较多的都是立即关闭系统命令。1.3.2 关机与重启命令:halt/poweroff/reboot【功能说明】

从RedHat或CentOS 6开始,你会发现halt、poweroff、reboot这三个命令对应的都是同一个man帮助文档,而halt和poweroff命令是reboot命令的链接文件,因此本书也把这三个命令放在一起讲解。【语法格式】reboot [OPTION]...halt [OPTION]...poweroff [OPTION]... 技巧说明:

1)注意,命令和后面的选项之间至少要有一个空格。

2)通常情况下,我们执行这三个命令时都不带任何参数。

对于这几个命令的参数,由于实在是没有什么价值,因此就不给大家介绍了。【实践操作】

范例1-3:关机或重启系统的常见操作。

使用halt关机的命令如下:[root@oldboy ~]# haltBroadcast message from root@oldboy (/dev/tty1) at 11:10 ...The system is going down for halt NOW!

halt命令是reboot命令的链接文件,具体查看命令如下:[root@oldboy ~]# ls -l /sbin/haltlrwxrwxrwx. 1 root root 6 3月 4 2016 /sbin/halt -> reboot

使用poweroff关机的命令如下:[root@oldboy ~]# poweroff[root@oldboy ~]# Broadcast message from root@oldgirl (/dev/pts/0) at 11:21 ...The system is going down for power off NOW!

poweroff命令也是reboot命令的链接文件,具体查看命令如下:[root@oldboy ~]# ll /sbin/powerofflrwxrwxrwx. 1 root root 6 3月 4 2016 /sbin/poweroff -> reboot

使用reboot重启系统的命令如下:[root@oldboy ~]# reboot[root@oldboy ~]# Broadcast message from root@oldgirl (/dev/pts/0) at 11:24 ...The system is going down for reboot NOW!

为什么halt、poweroff命令是reboot命令的链接文件,但是分别执行命令后效果不一样呢?

读者看一下reboot命令的man帮助,可以发现reboot命令有2个参数--halt和--power-off,作用分别和halt、poweroff命令一样。1.3.3 关机、重启和注销的命令列表

本章在结尾为大家总结了Linux下常见的关机、重启、注销等命令,并标注了企业中的常用命令,具体见表1-6。表1-6 Linux下常见的关机、重启、注销命令集合1.4 老男孩的运维思想

基础不牢,地动山摇!很多高大上的技术,都是由细小的基础知识累积而成的!

而Linux命令正是组成Linux系统最核心、重要的基础之一,因此,大家要牢牢掌握基础命令,才能在日后使用Linux时随心所欲!  第2章 文件和目录操作命令2.1 pwd:显示当前所在的位置2.1.1 命令详解【命令星级】 ★★★★★【功能说明】

pwd命令是“print working directory”中每个单词的首字母缩写,其功能是显示当前工作目录的绝对路径。在实际工作中,我们在命令行操作命令时,经常会在各个目录路径之间进行切换,此时可使用pwd命令快速查看当前我们所在的目录路径。【语法格式】pwd [option]pwd [选项]说明:

1)注意pwd命令和后面的选项之间至少要有一个空格。

2)通常情况下,执行pwd命令不需要带任何参数。【选项说明】

表2-1针对参数选项进行了说明。表2-1 pwd命令参数选项及说明

查看命令帮助时,我们经常会看到“-L,--logical”这样的选项格式,这种写法的意思是-L和--logical的功能是一样的,在使用选项时,我们只需要选择一种即可,不能同时使用,而我们最常用的就是简写的-L这种格式。

此外,表2-1中提到的PWD系统环境变量,可以用“$”符号输出其值,代码如下:[root@oldboy ~]# echo $PWD #<==echo命令能够输出指定变量,具体用法见本书echo命令章节。/root[root@oldboy ~]# pwd -L #<==显示逻辑(忽略软链接文件)路径。/root

也就是说,pwd-L和echo$PWD二者的功能是等价的。2.1.2 使用范例

1.基础范例

范例2-1:不带任何选项执行pwd命令。[root@oldboy ~]# pwd #<==不带任何选项执行pwd命令。/root #<==输出的目录路径为当前用户root的家目录。[root@oldboy ~]# cd /etc/init.d/ #<==进入/etc/init.d/目录,cd命令的具体用法 请见本书cd命令章节。[root@oldboy init.d]# pwd/etc/init.d #<==此时用户所在的路径为/etc/init.d目录。

范例2-2:对比使用-L和-P参数。[root@oldboy init.d]# ls -l /etc/init.d #<==ls命令的具体用法请见本书ls命令章节。lrwxrwxrwx. 1 root root 11 10月 18 18:30 /etc/init.d -> rc.d/init.d#<==/etc/init.d是/etc/rc.d/init.d目录的软链接,相当于快捷方式。后面在ln命令章节会讲解此知识。[root@oldboy init.d]# pwd -L #<==获取环境变量的PWD对应的值,即为echo $PWD的结果。/etc/init.d[root@oldboy init.d]# echo $PWD #<==输出环境变量PWD对应的值。/etc/init.d[root@oldboy init.d]# pwd -P #<==显示链接对应的源文件的目录路径。/etc/rc.d/init.d

2.高级案例

在讲解本案例之前,先思考一下,为什么管理员会用到pwd命令呢?

这是因为我们通过命令行管理Linux时,经常会切换到不同的路径,而输入pwd命令可以随时查看当前的路径是什么。

其实,在系统中使用Bash命令行就会自动显示用户当前所在的路径,但是默认情况下这个路径显示不全,范例2-3将会向大家展示如何配置以在命令行直接显示当前用户所在的完整路径。

范例2-3:在Bash命令行显示当前用户的完整路径。

系统Bash命令行的提示符是由一个称为PS1的系统环境变量控制的。PS1对应的变量及其含义见表2-2。表2-2 PS1变量对应知识列表

因此,要查看当前PS1变量的值,可采用如下命令:[root@oldboy ~]# echo $PS1 #<==打印超级管理员对应的PS1值。[\u@\h \W]\$ #<== @是一个分隔符,和邮箱地址中的@作用类似。

可修改PS1变量对应的值,来让命令行显示全路径:[root@oldboy ~]# PS1='[\u@\h \w]\$ ' #<==将默认的\W改为\w (小写w),此命令仅临时生效。[root@oldboy ~]# cd /etc/sysconfig #<==切换目录实验。[root@oldboy /etc/sysconfig]# #<==可以看到路径是全路径了。

上面的方法只是临时性的,若要让PS1变量永久生效,则可采用如下配置方法。

编辑/etc/bashrc文件,找到符合下面内容的一行(大约在第36行),将内容中的大写W改为小写w,即可让变量永久生效。也就是将:[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

改为下面内容,保存并退出/etc/bashrc文件。[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "

最后,注销并重新登录系统或直接执行source/etc/bashrc使得修改的信息生效,有关Linux终端提示符还有很多有用又好玩的技巧,感兴趣的读者可以浏览老男孩博客http://blog.oldboyedu.com/command-line-terminal/。2.2 cd:切换目录2.2.1 命令详解【命令星级】 ★★★★★【功能说明】

cd命令是“change directory”中每个单词的首字母缩写,其功能是从当前工作目录切换到指定的工作目录。【语法格式】cd [option] [dir]cd [选项] [目录]说明:

1)注意cd命令以及后面的选项和目录,每个元素之间都至少要有一个空格。

2)cd命令后面的选项和目录等参数都可以省略。默认情况下,单独执行cd命令,可切换到当前登录用户的家目录(由系统环境变量HOME定义)。

3)cd是bash shell的内置命令,查看该命令对应的系统帮助需要使用help cd。【选项说明】

表2-3针对参数选项进行了说明。

对于这个命令,笔者在此与大家分享一些实践经验。表2-3 cd命令的参数选项及说明

·在使用cd命令时,如果使用键盘上“Tab”键的自动补齐功能,可以提高输入速度和准确度。这个“Tab”键的自动补齐功能同样也适用于其他命令。

·要了解路径的概念,比如,相对路径是不从“/”(斜线)开始的路径,而是从当前目录或指定的目录开始,如:data/、mnt/oldboy;绝对路径是从“/”(斜线)根开始的路径,如:/data/、/mnt/oldboy。

·当需要切换到当前用户上一次所在的目录时,请使用“cd-”(注意空格);当需要切换到当前用户的家目录时,请使用“cd~”(注意空格);当需要切换到当前目录的上一级目录所在的路径时,请使用“cd..”(注意空格)。2.2.2 使用范例

范例2-4:进入系统/etc目录(cd/etc)。[root@oldboy ~]# pwd/root #<==在Linux系统中,每个用户都有自己的家目录,默认情况下,用户登录系统后会进入自己的家 目录。root用户的家目录是/root,普通用户的家目录默认是/home/用户名/。[root@oldboy ~]# cd /usr/local/ #<==切换到/usr/local/目录。[root@oldboy local]# pwd/usr/local #<==此时已经进入/usr/local目录了。

范例2-5:切换到当前目录的上一级目录(cd..)。[root@oldboy local]# pwd/usr/local[root@oldboy local]# cd .. #<==“..”等同于上一级目录名,也可以写成.“../”。[root@oldboy usr]# pwd/usr #<==此时切换到了/usr目录。

范例2-6:进入当前目录的父目录的父目录(cd../../)。[root@ oldboy usr]# cd /usr/local/[root@oldboy local]# pwd/usr/local[root@oldboy local]# cd ../../ #<==退到当前目录的上两级目录,即退到“/”目录。[root@oldboy /] # pwd/提示:只要目录有足够多的层次,可以一直这样继续下去“cd../../../..”,直到退到“/”为止。

范例2-7:返回当前用户上一次所在的目录(cd-)。[root@oldboy /]# cd /usr/local/[root@oldboy local]# pwd/usr/local[root@oldboy local]# cd #<==cd命令不接收任何参数时,从环境变量HOME获取路径名,即切换到 当前用户家目录。[root@oldboy ~]# pwd #<==当前用户的工作路径为/root。/root[root@oldboy ~]# cd - #<==执行“cd -”时,cd将根据环境变量OLDPWD的对应值获取路径名,/usr/local #<==即切换到了当前用户上一次的工作路径“/usr/local”。

范例2-8:进入当前用户的家目录(cd~)。[root@oldboy /]# cd /usr/local/[root@oldboy local]# pwd/usr/local[root@oldboy local]# cd ~ #<==“~”键盘左上角Esc键下方的波浪符号,代表家目录。[root@oldboy ~]# pwd/root #<==切换到当前用户的家目录了。提示:执行不带任何参数的cd命令和“cd~”的结果一样。2.3 tree:以树形结构显示目录下的内容2.3.1 命令详解【命令星级】 ★★★★☆【功能说明】

tree命令的中文意思为“树”,功能是以树形结构列出指定目录下的所有内容,包括所有文件、子目录及子目录里的目录和文件。【语法格式】tree [option] [directory]tree [选项] [目录]说明:

1)注意tree命令以及后面的选项和目录,每个元素之间都至少要有一个空格。

2)tree命令后若不接选项和目录就会默认显示当前所在路径目录的目录结构。【选项说明】

表2-4针对该命令的参数选项进行了说明。表2-4 tree命令的参数选项及说明2.3.2 使用范例

在讲解范例之前,先做一些准备工作,步骤如下。

第一步,安装tree命令。

首先检查系统是否安装了tree命令,如果采用的是最小化安装Linux系统的方式,那么tree命令有可能没有安装。此时可用yum命令安装tree命令:[root@oldboy ~]# rpm -qa tree #<==查询tree命令是否安装。tree-1.5.3-2.el6.x86_64 #<==如果没有显示就执行下面的命令。[root@oldboy ~]# yum -y install tree #<==安装tree命令的yum命令。

第二步,调整系统字符集,防止树形结构显示乱码。

在使用树形结构时,很可能会因为字符集导致出现乱码问题,比如导致树形的树枝部分都是问号,例如:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载