1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

10570131.png
Linux发行版主要有三个分支:Debian、Slackware、Redhat。

(1)Debian:(以社区的方式运作)

Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器;
Linux Mint:基于Debian和Ubuntu的Linux发行版,致力于桌面系统对个人用户每天的工作更易用,更高效,目标是提供一种更完整的即刻可用体验。

(2)slackware

SuSE:基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器。
SLES(SUSE Linux Enterprise Server(SLES):企业服务器操作系统,是与微软系统兼容的Linux操作系统。 SUSE Linux Enterprise Server (SLES), 和openSUSE 之间的关系类似于 Fedora, Red Hat Enterprise Linux, 和CentOS的关系。
OpenSUSE:由suse发展而来,旨在推进linux的广泛使用,主要用于桌面环境,用户界面非常华丽,而且性能良好。

(3)Redhat

rhel(red hat enterprise Linux):Red Hat公司发布的面向企业用户的Linux操作系统。早起版本主要用于桌面环境,免费:
Fedora:基于Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用,而另外发行的Red Hat Enterprise Linux取代Red Hat Linux在商业应用的领域。Fedora的功能对于用户而言,它是一套功能完备、更新快速的免费操作系统,而对赞助者Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到Red Hat Enterprise Linux中。Fedora大约每六个月发布新版本。
Centos:基于Red hat Linux提供的可自由使用源代码的企业级Linux发行版本。每个版本的Centos都会获得十年的支持(通过安全更新的方式)。新版本的Centos大约每两年发行一次,而每个版本的Centos会定期(大概6个月)更新一次,以支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。

(4)其他发行版本:

Gentoo:基于linux的自由操作系统,基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点, Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西—你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版。
Aech Linux(或称Arch):以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨。

不同发行版之间的联系和区别:

联系:
所有发行版都是使用Linux内核;都需要遵循GNU的GPL协定;所有的发行版都有自己的版本号,版本格式约定基本一样(主版本号.次版本号.发行号.修正号)。

区别:
发行版的本质区别,在于继承不同版本的内核,库、程序的组成。不同发行版几乎采用了不同包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系统,包文件以RPM为扩展名;Ubuntu系列,Debian系列使用基于DPKG包管理系统,包文件以deb为扩展名。)

相关术语

FSF:Free Software Foundation自由软件基金会。

GPL:General Public License通用公共许可。是广泛使用的免费软件许可证,可以保证终端用户得自由运行,学习,共享和修改软件。GPL提供的Copyleft对于基于Linux的系统的成功至关重要,给予向内核贡献的程序员保证他们的工作将有益于整个世界并保持自由,而不至于被不提供回馈给社区的不肖软件公司所剥削。通俗地讲,就是软件行业的共产主义运动章程,目的保持开源软件最大自由。

BSD:Berkeley Software Distribution伯克利软件套件

GNU:GNU’s Not Unix!G NU操作系统起源于GNU计划,由理查·斯托曼在MIT人工智能实验室发起,希望发展出一套完整的开放源代码操作系统来取代Unix,计划中的操作系统,名为GNU。

ASF:Apache Software Foundation Apache软件基金会

2、安装centos7.8操作系统,创建一个自己名字的用户名,并可以正常登陆。

1.软硬件准备

软件:推荐使用 VMware,我用的是 VMware 15
镜像:CentOS7.8 ,如果没有镜像可以在阿里云下载 https://mirrors.aliyun.com/centos/
image.png
硬件:因为是在宿主机上运行虚拟化软件安装centos,所以对宿主机的配置有一定的要求。最起码I5CPU双核、硬盘500G、内存4G以上。

2.虚拟机准备

1.打开VMware选择新建虚拟机
image.png
2.典型安装与自定义安装
典型安装:VMware会将主流的配置应用在虚拟机的操作系统上,对于新手来很友好。
自定义安装:自定义安装可以针对性的把一些资源加强,把不需要的资源移除。避免资源的浪费。
这里我选择自定义安装。
image.png
3.虚拟机兼容性选择
这里要注意兼容性,如果是VMware15创建的虚拟机复制到低版本会出现一不兼容的现象。
image.png
4.选择稍后安装操作系统
image.png
5.操作系统的选择
这里选择之后安装的操作系统,正确的选择会让vm tools更好的兼容。这里选择linux下的CentOS
image.png
6.虚拟机位置与命名
虚拟机名称就是一个名字,在虚拟机多的时候方便自己找到。
VMware的默认位置是在C盘下,我这里改成Z盘。
image.png
7.处理器与内存的分配
处理器分配要根据自己的实际需求来分配。在使用过程中CPU不够的话是可以再增加的。这次只做安装CentOS演示,所以处理器与核心都选1.
内存也是要根据实际的需求分配。我的宿主机内存是32G所以我给虚拟机分配2G内存。
image.png
8.网络连接类型的选择,网络连接类型一共有桥接、NAT、仅主机和不联网四种。
桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上。
NAT:NAT模式就是虚拟机要联网得先通过宿主机才能和外面进行通信。
仅主机:虚拟机与宿主机直接连起来
桥接与NAT模式访问互联网过程,如下图所示
image.png
桥接与NAT区别
这里选择nat模式
image.png
image.png
10.磁盘容量
磁盘容量暂时分配100G即可后期可以随时增加,不要勾选立即分配所有磁盘,否则虚拟机会将100G直接分配给CentOS,会导致宿主机所剩硬盘容量减少。 不勾选将虚拟磁盘拆分成多个文件。
image.png
image.png
image.png
image.png
点击完成,已经创建好虚拟机。

安装CentOS

1.连接光盘
右击刚创建的虚拟机,选择设置
image.png
先选择CD/DVD,再选择使用ISO映像文件,最后选择浏览找到下载好的镜像文件。启动时连接一定要勾选上后确定。
image.png
开启虚拟机
image.png
默认选择 install centos 7
开启虚拟机后会出现以下界面:

  • Install CentOS 7 安装CentOS 7
  • Test this media & install CentOS 7 测试安装文件并安装CentOS 7
  • Troubleshooting 修复故障

选择第一项,安装直接CentOS 7,回车,进入下面的界面

image.png

image.png
会有个自检的过程 确定下载的安装文件是否有问题
image.png
选择安装过程中使用的语言,这里选择英文、键盘选择美式键盘。点击Continue
Linux学习第一周作业 - 图23
首先设置时间
image.png
把时区改为亚洲上海
image.png
时区选择上海,查看时间是否正确。然后点击Done
我上面的时间不对 手动修改一下就好了

选择安装位置,在这里可以进行磁盘划分。
Linux学习第一周作业 - 图26

选择i wil configure partitioning(我将会配置分区),然后点击done
Linux学习第一周作业 - 图27
如下图所示,点击加号,选择/boot,给boot分区分1G。最后点击Add
image.png
swap设置物理内存的2倍
image.png
设置/ 100G
image.png
设置data 50G
image.png
image.png
选择Done 确认磁盘分配
image.png
选择accept changes 确认选择
image.png
选择begin intallation 开始安装
image.png
这个页面选择ROOT PASSWORD 设置 root管理员密码 选择USER CREATION 创建用户
image.png
image.png

3、配置环境变量,实现执行history的时候可以看到执行命令的时间。

history 命令它将终端上 bash 执行过所有命令存储到 .bash_history 文件中,来帮助我们复查用户之前执行过的命令。

默认情况下 history 命令直接显示用户执行的命令而不会输出运行命令时的日期和时间,哪怕是 history 命令记录了这个时间。

运行 history 命令时,它会检查一个叫做 HISTTIMEFORMAT 的环境变量,这个环境变量指明了如何格式化输出 history 命令中记录的这个时间。

若该值为 null 或者根本没有设置,则它跟大多数系统默认显示的一样,不会显示日期和时间。

使用工具 VMware Workstation 和MobaXterm

VMware Workstation 中安装Linux版本 Centos 7.8

使用MobaXterm链接centos 7.8 输入账号密码

三种不同的设置环境变量的方法。

1) 临时设置当前用户的环境变量

查看当前history命令当前显示结果

  1. [root@bogon ~]# history
  2. 1 ifconfig
  3. 2 history

可以看到目前history是没有记录命令执行时间的,下面开始配置history的时间
输入

  1. HISTTIMEFORMAT=" %F %T "

这样设置只是临时生效,当前用户退出系统,在登入以后,这个命令就不再生效了,我们可以进行配置一下,把这条环境变量写入配置文件之后就可以永久生效了。

2) 永久设置当前/其他用户的环境变量

将 HISTTIMEFORMAT 变量加到 .bashrc 或 .bash_profile 文件中,让它永久生效。

  1. [root@bogon ~]# echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bashrc 将参数加入文件
  2. [root@bogon ~]# echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bash_profile 将参数加入文件
  3. 以上命令任选其一
  4. [root@bogon ~]# cat .bashrc 查看是否配置是否加入
  5. # .bashrc
  6. # User specific aliases and functions
  7. alias rm='rm -i'
  8. alias cp='cp -i'
  9. alias mv='mv -i'
  10. # Source global definitions
  11. if [ -f /etc/bashrc ]; then
  12. . /etc/bashrc
  13. fi
  14. HISTTIMEFORMAT="%F %T "

从新登陆后可以看到

  1. [root@bogon ~]# history
  2. 1 2020-06-14 16:06:24 echo ${SHELLS}
  3. 2 2020-06-14 16:06:24 echo ${SHELL}
  4. 3 2020-06-14 16:06:24 id -u
  5. 4 2020-06-14 16:06:24 echo $shell
  6. 5 2020-06-14 16:06:24 echo $SHELL
  7. 6 2020-06-14 16:06:24 echo ${SHELL}
  8. 7 2020-06-14 16:06:24 echo ${shell}
  9. 8 2020-06-14 16:06:24 init 3

至此history 命令时间永久生效配置完成

.bash_profile和.bashrc的区别:

  1. 1)修改/etc/profile文件
  2. 推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,缺点是可能会给系统带来安全性问题。 这里是针对所有的用户的,所有的shell;
  3. 使用source命令使修改立刻生效:
  4. source /etc/profile
  5. 2)修改.bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果需要给某个用户权限
  6. 使用这些环境变量,只需要修改其个人用户主目录下的.bashrc文件就可以了。
  7. 使用source命令使修改立刻生效:
  8. source /root/.bashrc
  9. /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
  10. /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
  11. ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
  12. ~/.bashrc: 该文件包含专用于你的bash shellbash信息,当登录时以及每次打开新的shell时,该该文件被读取.
  13. ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.
  14. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.

3)永久设置所有用户的环境变量

将 HISTTIMEFORMAT 变量加到/etc/profile中对所有用户生效

echo ‘HISTTIMEFORMAT=”%F %T “‘ >> /etc/profile

4、总结Linux的哲学思想。

(1)一切皆文件(包括硬件)

是 Unix/Linux 的基本哲学之一。

普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;

它们虽然类型不同,但是对其提供的却是同一套操作界面

windows一切皆图形

(2)小型,单一用途的程序

一个程序只是完成一项功能,使程序功能更好的封装

(3)链接程序,共同完成复杂的任务

复杂的任务可以通过连接多个简单的程序实现复杂的功能。

对于复杂的功能Linux通过许多简单程序的组合等方式实现以积木方式构建健壮、稳定、可靠的复杂功能程序。这个过程就是编写脚本。

在保证简单功能的高效性的同时,复杂的程序也必然是高效性的

(4)避免令人困惑的用户界面

Windows 在不同版本中,相同功能的设置部分有可能出现在不同的窗口位置,用户在使用的过程中,有可能出现找不到设置窗口的情况,并且设置结果不一定真实,

Linux 因为是在命令行下操作,Linux里面设置完成后效果可以及时呈现,而且不同的版本大部分的命令是通用的,而且不需要为了设置一个功能去窗口上不断的点击。

(5)配置数据存储在文本中

linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可而不是类似于windows那样将保存在注册表中,并且windows的注册表需要专门的二进制或十六进制的编辑器才可编辑,修改比较复杂。

5、总结使用格式,并用示例说明。

ls命令 – 显示指定工作目录下的内容及属性信息

ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。
默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。
语法格式: ls [选项] [文件]
常用参数:

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录

参考实例

  1. 列出所有文件(包括隐藏文件):
  2. [root@linuxcool ~]# ls -a
  3. 列出文件的详细信息:
  4. [root@linuxcool ~]# ls -l
  5. 列出根目录(/)下的所有目录:
  6. [root@linuxcool ~]# ls /
  7. 列出当前工作目录下所有名称是 s 开头的文件 :
  8. [root@linuxcool ~]# ls -ltr s*
  9. 列出 /bin 目录下的所有目录及文件的详细信息 :
  10. [root@linuxcool ~]# ls -lR /bin
  11. 列出当前工作目录下所有文件及目录并以文件的大小进行排序 :
  12. [root@linuxcool ~]# ls -AS

cp命令 – 复制文件或目录

cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
语法格式:cp [参数] [文件]
常用参数:

-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示cp命令执行的操作过程
-a 等价于“dpr”选项

参考实例

  1. 复制目录:
  2. [root@linuxcool ~]# cp -R dir1 dir2/
  3. 将文件test1改名为test2
  4. [root@linuxcool ~]# cp -f test1 test2
  5. 复制多个文件:
  6. [root@linuxcool ~]# cp -r file1 file2 file3 dir
  7. 交互式地将目录 /usr/linuxcool 中的所有.c文件复制到目录 dir 中:
  8. [root@linuxcool ~]# cp -r /usr/linuxcool/*.c dir

mv命令 – 移动或改名文件

mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。
这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
语法格式:mv [参数]
常用参数:

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

参考实例

  1. 将文件file_1重命名为file_2
  2. [root@linuxcool ~]# mv file_1 file_2
  3. 将文件file移动到目录dir
  4. [root@linuxcool ~]# mv file /dir
  5. 将目录dir1移动目录dir2中(前提是目录dir2已存在,若不存在则改名):
  6. [root@linuxcool ~]# mv /dir1 /dir2
  7. 将目录dir1下的文件移动到当前目录下:
  8. [root@linuxcool ~]# mv /dir1/* .

pwd命令 – 显示当前路径

pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。
语法格式: pwd [参数]
常用参数:

-L 显示逻辑路径

参考实例

  1. 查看当前工作目录路径:
  2. [root@linuxcool ~]# pwd
  3. /home/linuxcool

man命令 – 查看命令帮助信息

man命令是Linux下最核心的命令之一。而man命令也并不是英文单词“man”的意思,它是单词manual的缩写,即使用手册的意思。
man命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是,不仅可以查看Linux中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息。
man手册页文件存放在/usr/share/man目录下。
语法格式:man [命令]
常用参数:

-a 在所有的man帮助手册中搜索
-d 主要用于检查,如果用户加入了一个新的文件,就可以用这个参数检查是否出错
-f 显示给定关键字的简短描述信息
-p 指定内容时使用分页程序
-M 指定man手册搜索的路径
-w 显示文件所在位置

man命令内容组成的介绍:

  1. 用户命令的使用方法,可以使用的参数等
  2. 系统调用,只有系统才能执行的函数
  3. 库调用,大多是libc函数,如qsort(3)
  4. 设备和特殊文件
  5. 文件格式和约定
  6. 游戏
  7. 宏命令包和约定
  8. 系统管理命令,多数只有root可以执行
  9. 内核程序
  10. Tcl或Tk指令

快捷键:

q 退出
Enter 按行下翻
Space 按页下翻
b 上翻一页
/字符串 在手册页中查找字符串

参考实例

  1. 查看cp命令的帮助信息:
  2. [root@linuxcool ~]# man cp
  3. 查看/etc/passwd文件的信息:
  4. [root@linuxcool ~]# man /etc/passwd
  5. 查看passwd命令所在位置:
  6. [root@linuxcool ~]# man -w passwd
  7. /usr/share/man/man1/passwd.1.gz
  8. 查看/etc/passwd文件手册页所在位置:
  9. [root@linuxcool ~]# man -w 5 passwd
  10. /usr/share/man/man5/passwd.5.gz

help命令 – 显示帮助信息

help命令用于显示shell内部命令的帮助信息。
help命令只能显示shell内部命令的帮助信息,而linux系统中绝大多数命令是外部命令,所以help命令的作用非常有限。而对于外部命令的帮助信息可以使man命令或者info命令查看。
语法格式:help [参数] [内部命令]
常用参数:

-d 输出每个命令的简短描述
-s 输出短格式的帮助信息
-m 以伪man手册的格式显示帮助信息

参考实例

  1. 显示cd命令的帮助信息:
  2. [root@linuxcool ~]# help cd
  3. 以短格式显示cd命令的帮助信息:
  4. [root@linuxcool ~]# help -s cd
  5. cd: cd [-L|[-P [-e]] [-@]] [目录]
  6. 输出cd命令的简短描述:
  7. [root@linuxcool ~]# help -d cd
  8. cd - Change the shell working directory.
  9. 以伪man手册格式输出cd命令的帮助信息:
  10. [root@linuxcool ~]# help -m cd

cat命令 – 在终端设备上显示文件内容

Linux系统中有很多个用于查看文件内容的命令,每个命令又都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件的。
注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
语法格式:cat [参数] [文件]
常用参数:

-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为 ^I符号
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等价于”-vE”组合
-t 等价于”-vT”组合
-A 等价于 -vET组合
—help 显示帮助信息
—version 显示版本信息

参考实例

  1. 查看文件的内容:
  2. [root@linuxcool ~]# cat filename.txt
  3. 查看文件的内容,并显示行数编号:
  4. [root@linuxcool ~]# cat -n filename.txt
  5. 查看文件的内容,并添加行数编号后输出到另外一个文件中:
  6. [root@linuxcool ~]# cat -n linuxcool.log > linuxprobe.log
  7. 清空文件的内容:
  8. [root@linuxcool ~]# cat /dev/null > /root/filename.txt
  9. 持续写入文件内容,碰到EOF符后结束并保存:
  10. [root@linuxcool ~]# cat > filename.txt <<EOF
  11. > Hello, World
  12. > Linux!
  13. > EOF
  14. 将软盘设备制作成镜像文件:
  15. [root@linuxcool ~]# cat /dev/fd0 > fdisk.iso

echo命令 – 输出字符串或提取Shell变量的值

echo命令用于在终端设备上输出字符串或变量提取后的值
一般使用在变量前加上$符号的方式提取出变量的值,例如:$PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。
语法格式:echo [参数] [字符串]
常用参数:

-n 不输出结尾的换行符
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 结尾不加换行符
-e “\f” 换行,光标扔停留在原来的坐标位置
-e “\n” 换行,光标移至行首
-e “\r” 光标移至行首,但不换行
-E 禁止反斜杠转移,与-e参数功能相反
—version 查看版本信息
—help 查看帮助信息

参考实例

  1. 输出一段字符串:
  2. [root@linuxcool ~]# echo "LinuxCool.com"
  3. LinuxCool.com
  4. 输出变量提取后的值:
  5. [root@linuxcool ~]# echo $PATH
  6. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  7. 对内容进行转义,不让$符号的提取变量值功能生效:
  8. [root@linuxcool ~]# echo \$PATH
  9. $PATH
  10. 结合输出重定向符,将字符串信息导入文件中:
  11. [root@linuxcool ~]# echo "It is a test" > linuxcool
  12. 使用反引号符执行命令,并输出其结果到终端:
  13. [root@linuxcool ~]# echo `date`
  14. 输出带有换行符的内容:
  15. [root@linuxcool ~]# echo -e "a\nb\nc"
  16. a
  17. b
  18. c
  19. 输出信息中删除某个字符,注意看数字3消失了:
  20. [root@linuxcool ~]# echo -e "123\b456"
  21. 12456

rm命令 – 移除文件或目录

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
语法格式:rm [参数] [文件]
*常用参数:

-f 忽略不存在的文件,不会出现警告信息
-i 删除前会询问用户是否操作
-r/R 递归删除
-v 显示指令的详细执行过程

参考实例

  1. 删除前逐一询问确认:
  2. [root@linuxcool ~]# rm -i test.txt.bz2
  3. rm: remove regular file `test.txt.bz2'?
  4. 直接删除,不会有任何提示:
  5. [root@linuxcool ~]# rm -f test.txt.bz2
  6. 递归删除目录及目录下所有文件:
  7. [root@linuxcool ~]# mkdir /data/log
  8. [root@linuxcool ~]# rm -rf /data/log
  9. 删除当前目录下所有文件:
  10. [root@linuxcool ~]# rm -rf *
  11. 清空系统中所有的文件(谨慎):
  12. [root@linuxcool ~]# rm -rf /*

rmdir命令 – 删除空目录

rmdir命令作用是删除空的目录,英文全称:“remove directory”。
注意:rmdir命令只能删除空目录。当要删除非空目录时,就要使用带有“-R”选项的rm命令。
rmdir命令的“-p”参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录。
语法格式 : rmdir [参数] [目录名称]
常用参数:

-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
— — ignore-fail-on-non-empty 忽略由于删除非空目录时导致命令出错而产生的错误信息
-v 显示命令的详细执行过程
— — help 显示命令的帮助信息
— — version 显示命令的版本信息

参考实例

  1. 删除空目录:
  2. [root@linuxcool ~]# rmdir dir
  3. 递归删除指定的目录树:
  4. [root@linuxcool ~]# rmdir -p dir/dir_1/dir_2
  5. 显示指令详细执行过程:
  6. [root@linuxcool ~]# rmdir -v dir
  7. rmdir: 正在删除目录 'dir'
  8. [root@linuxcool ~]# rmdir -p -v dir/dir_1/dir_2
  9. rmdir: 正在删除目录 'dir/dir_1/dir_2
  10. rmdir: 正在删除目录 'dir/dir_1'
  11. rmdir: 正在删除目录 'dir_2'
  12. 显示命令的版本信息:
  13. [root@linuxcool ~]# rmdir --version
  14. rmdir (GNU coreutils) 8.30
  15. Copyright (C) 2018 Free Software Foundation, Inc.
  16. 许可证 GPLv3+:GNU 通用公共许可证第 3 版或更新版本https://gnu.org/licenses/gpl.html。
  17. 本软件是自由软件:您可以自由修改和重新发布它。
  18. 在法律范围内没有其他保证。

mount命令 – 文件系统挂载

mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。
语法格式:mount [参数]
常用参数:

-t 指定挂载类型
-l 显示已加载的文件系统列表
-h 显示帮助信息并退出
-V 显示程序版本
-n 加载没有写入文件“/etc/mtab”中的文件系统
-r 将文件系统加载为只读模式
-a 加载文件“/etc/fstab”中描述的所有文件系统

参考实例

  1. 查看版本:
  2. [root@linuxcool ~]# mount -V
  3. 启动所有挂载:
  4. [root@linuxcool ~]# mount -a
  5. 挂载 /dev/cdrom /mnt
  6. [root@linuxcool ~]# mount /dev/cdrom /mnt
  7. 挂载nfs格式文件系统:
  8. [root@linuxcool ~]# mount -t nfs /123 /mnt
  9. 挂载第一块盘的第一个分区到/etc目录
  10. [root@linuxcool ~]# mount -t ext4 -o loop,default /dev/sda1 /etc

bc命令 – 浮点运算

bc的英文全拼为“ Binary Calculator ”,是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。

语法格式:bc [选项]
常用参数:

-i 强制进入交互式模式
-l 定义使用的标准数学库
-w 定义使用的标准数学库
-q 打印正常的GNU bc环境信息

参考实例

  1. 算术操作高级运算bc命令它可以执行浮点运算和一些高级函数:
  2. [root@linuxcool ~]# echo "1.212*3" | bc
  3. 3.636
  4. 设定小数精度(数值范围):
  5. [root@linuxcool ~]# echo "scale=2;3/8" | bc
  6. .37
  7. 计算平方和平方根:
  8. [root@linuxcool ~]# echo "10^10" | bc
  9. 10000000000
  10. [root@linuxcool ~]# echo "sqrt(100)" | bc
  11. 10

history命令 – 显示与操纵历史命令


history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。
如果你经常使用Linux命令,那么使用history命令可以有效地提升你的效率。
语法格式: history [参数] [目录]
常用参数:

-a 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c 清空当前历史命令列表
-d 删除历史命令列表中指定序号的命令
-n 从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r 读取命令历史文件到当前的Shell历史命令内存缓冲区
-s 将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令
-w 把当前的shell历史命令内存缓冲区的内容写入命令历史文件

参考实例

  1. 显示最近的10条命令:
  2. [root@linuxcool ~]# history 10
  3. 将本次登录的命令写入历史文件中:
  4. [root@linuxcool ~]# history -w
  5. 将命令历史文件中的内容读入到目前shellhistory记忆中
  6. [root@linuxcool ~]# history -r
  7. 将当前Shell会话的历史命令追加到命令历史文件中:
  8. [root@linuxcool ~]# history -a
  9. 清空当前历史命令列表:
  10. [root@linuxcool ~]# history -c