Linux centos7系统基础命令详解

Linux系统命令基本介绍

长久以来呢,Linux操做系统以其稳定、高效且可靠等优势被大量的应用于企业服务器领域。
大部分对Linux服务器的管理和维护都是经过远程登陆的方式来进行的。
而绝大部分的管理维护操做都是基于Linux命令来实现的,因此Linux命令在工做中就显得相当重要。
在将Linux命令以前,先得了解它的工做原理
原理很简单,其实就是咱们用户输入一串字符命令,由shell将这条命令“翻译”为系统内核可以懂的“语言”,而后系统内核便根据这条命令去执行相关操做。
Linux centos7系统基础命令详解
讲完原理以后,咱们了解一下Linux命令有哪些类型
其实很简单,Linux命令有两种,内部命令和外部命令
具体区别以下
Linux centos7系统基础命令详解
了解了Linux命令类型,咱们再了解一下命令的结构
一条Linux命令,通常由三个部分组成,分别为:命令字选项参数
在这三个部分中,命令字是最关键的一部分,也是不能缺乏的,另外两个部分根据具体状况是能够不要的
选项,分为长格式选项和短格式选项,长格式选项用“--”符号引导,通常后面接单词表明一个功能;短格式选项用“-”符号引导,通常后面接单个字母为一个功能。
参数,是命令字的处理对象,能够是文件名、目录名或用户名等,数量能够是零到多个
Linux centos7系统基础命令详解
在介绍基础命令以前,咱们先了解一些Linux命令行的辅助操做,熟练掌握这些操做可以帮咱们更好的使用Linux命令哦。html

Tab键:自动补齐
反斜杠“\”:强制换行
快捷键Ctrl+U:清空至行首
快捷键Ctrl+K:清空至行尾
快捷键Ctrl+L:清空屏幕
快捷键Ctrl+C:取消本次命令编辑

tab键的自动补齐功能是我最喜欢的辅助操做,当你输入参数时,发现这个目录名太长,此时你只用输入前几个字母,按下tab键,就能自动帮你补齐目录名,好比我想输入“sysconfig”这个目录名,我只用输入“sysco”后面直接tab键就能自动补齐
Linux centos7系统基础命令详解
Linux centos7系统基础命令详解
反斜杠“\”是用来强制换行的,若是我要输入vim /etc/sysconfig/network-scripts/ifcfg-ens33这条命令,我能够在中间任意地方用“\”来强制换行
Linux centos7系统基础命令详解
Ctrl+U清空至行首,简单来讲就是删除光标前面的字符
Linux centos7系统基础命令详解
Linux centos7系统基础命令详解
Ctrl+K清空至行尾,简单说就是删除光标后面的全部字符
Linux centos7系统基础命令详解
Linux centos7系统基础命令详解
Ctrl+L清空屏幕,不是说删除以前输入的命令,而是当你输入的命令太多占据了全部用户界面,它可让你从新从用户界面的第一行开始输入
Linux centos7系统基础命令详解
Linux centos7系统基础命令详解
Ctrl+C取消本次命令编辑,用来终止命令的。例如我用ping命令检查网络是否互通时,它会一直持续发送数据包过去,当我想中止时就可使用Ctrl+C
Linux centos7系统基础命令详解算法

得到命令帮助的方法:

除了这些辅助操做,当咱们忘了某条命令,或者不知道某条命令是什么意思时,能够获取命令帮助,具体方法以下:
内部命令help
选项:shell

-L 打印$PWD 变量的值,若是它命名了当前的工做目录 
-P 打印当前的物理路径,不带有任何的符号连接
  • 查看Bash内部命令的帮助信息。你只须要输入“help”就能查看一些命令和它的功能,但并非包括全部命令。
    Linux centos7系统基础命令详解
    命令的“--help”选项
  • 适用于大多数外部命令。当你忽然忘了一个命令的功能,或是忘了选项的功能,均可以直接在这个命令后面直接加“--help”,查看命令的具体功能。
    Linux centos7系统基础命令详解
    使用man命令阅读手册页
  • 使用“向上键”、“向下键”滚动文本
  • 使用Page Up和Page Down键翻页
  • 按Q或q键退出阅读环境、按“/”键查找内容
    由于我安装Linux时,安装了图形化界面,而不少服务器在安装时是不会安装图形化界面的,这时你用“--help”查询是不能滚动的界面,不少内容看不到。
    Linux centos7系统基础命令详解
    因此这时能够用“man”命令来弥补“--help”命令这方面的缺点。应为“man”命令能够进入一个阅读环境,可以滚动、翻页。
    Linux centos7系统基础命令详解

目录和文件基本操做

在咱们在输入命令时,前面会有一串字符[root@localhost ~]# ,这些字符具体表明什么呢,下面我会逐个说明apache

root:当前系统登陆用户,能够用su 加上用户名切换用户
localhost:主机名称,能够用hostname命令查看,用hostnamectl set-hostname 加上新的主机名来更改主机名
~:当前所在的位置(“~”表明家目录)
#:表明当前是管理员身份
$:表明当前是普通用户身份

了解前面这些,下面咱们开始讲解Linux基础命令
命令:“pwd”查看当前工做目录(Print Working Directory)
“pwd”用来查看当前所在的目录,记住查看的是绝对路径,好比我在sysconfig目录底下用“pwd”查看目录,会显示绝对路径/etc/sysconfig
Linux centos7系统基础命令详解
讲到绝对路径,那就说一下,路径分为绝对路径和相对路径。绝对路径较简单是以根目录“/”为开头,以根目录为起点,一直到当前所在目录。
相对路径表现形式有一下几种:
Linux centos7系统基础命令详解
命令:“cd”切换工做目录(Change Directory)
“cd”用来切换工做目录的,例如我想进入/etc/sysconfig/network-scripts这个目录
就能够直接输入“cd /etc/sysconfig/network-scripts”就能进入这个目录了。
Linux centos7系统基础命令详解
除了切换到指定的工做目录,“cd”命令还有几个选项功能:编程

  • “cd ~”或“cd”:切换到当前用户的宿主目录
    Linux centos7系统基础命令详解
  • “cd -”切换到上次执行“cd”命令的目录
    Linux centos7系统基础命令详解
  • “cd ..”返回到当前目录的上一级目录
    Linux centos7系统基础命令详解

在 Linux 操做系统中表示某个目录(或文件)的位置时,根据其参照的起始目录不一样, 可使用两种不一样的形式,分别称为绝对路径和相对路径。
绝对路径:这种方式以根目录“/”做为起点,如“/boot/grub”表示根目录下 boot 子目录中的 grub 目录。若要确切代表 grub 是一个目录(而不是一个文件),能够 在最后也加上一个目录分隔符,如表示为“/boot/grub/”。由于 Linux 操做系统中 的根目录只有一个,因此无论当前处于哪一个目录中,使用绝对路径均可以很是准确 地表示一个目录(或文件)所在的位置。可是若是路径较长,输入的时候会比较烦 琐。
相对路径:这种方式通常以当前工做目录做为起点,在开头不使用“/”符号,因 此使用的时候更加简短、便捷。相对路径主要包括以下几种形式: 直接使用目录名或文件名表示当前工做目录中的子目录、文件的位置。例如,
“grub.conf”可表示当前目录下的 grub.conf 文件。 vim

  • 使用一个点号“.”开头可明确表示以当前的工做目录做为起点。例如, “./grub.conf”也可表示当前目录下的 grub.conf 文件。
  • 使用两个点号“..”开头表示以当前目录的上一级目录(父目录)做为起点。 例如 , 若 当 前 处 于 /boot/grub/ 目 录 中 , 则 “ ../vmlinuz ”等同于 “/boot/vmlinuz”。
  • 使用“~用户名”的形式开头表示以指定用户的宿主目录做为起点,省略用户名时默认为当前用户。例如,“~teacher”表示 teacher 用户的宿主目录,而 “~”可表示当前用户的宿主目录。
    命令:“ls”显示当前目录的内容(“dir”命令与它功能差很少,但不多用,通常都用“ls”),后面经常使用的选项有“-l”、“-a”、“-A”、“-d”、“-h”、“-R”、“--color”
-l:以长格式(Long)显示文件和目录的列表,包括权限、大小、最后更新时间等 详细信息。不使用-l 选项时,ls 命令默认以短格式显示目录名或文件名信息。 
-a:显示全部(All)子目录和文件的信息,包括名称以点号“.”开头的隐藏目录 和隐藏文件。 
-A:与-a 选项的做用基本相似,但有两个特殊隐藏目录不会显示,即表示当前目 录的“.”和表示父目录的“..”。 
-d:显示目录(Directory)自己的属性,而不是显示目录中的内容。 
-h:以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节 (B),使用-h 选项后将显示为 KB、MB 等单位。此选项须要结合-l 选项一块儿使用。 
-R:以递归(Recursive)的方式显示指定目录及其子目录中的全部内容。 
--color:在字符模式中以颜色区分不一样的文件,若是使用“--color=tty”,则表 示使用终端预约义的颜色方案。一般状况下,深蓝色表示目录,白色或黑色(若背景颜色为黑色则文件颜色为白色,相反则互换)表示通常文件, 绿色表示可执行的文件,黄color表示设备文件,红色表示压缩文件。

Linux centos7系统基础命令详解
“ls”只是单纯的显示当前目录的内容,当后面加上不一样选项,又能实现不一样的功能,下面我将详细介绍:
“ls -a” 列出目录下的全部文件(显示隐藏文件),包括以 “.”、“..”开头的隐藏文件,而“ls -A”也是显示隐藏文件与“ls -a”的惟一区别就是不显示“.”、“..”开头的隐藏文件。
Linux centos7系统基础命令详解
“ls -d”是将目录象文件同样显示,而不是显示其下的文件
Linux centos7系统基础命令详解
“ls -l”是显示目录下文件的详细信息,如建立者,建立时间,文件的读写权限列表等等。
Linux centos7系统基础命令详解
“ls -h”将目录下文件的大小以带单位的形式显示出来,若是只用“ls -l”文件大小的单位统一都是“字节”,具体还得咱们本身进行单位换算。
Linux centos7系统基础命令详解
“ls -R”将目录下全部的子目录的文件都列出来,至关于咱们编程中的“递归”实现。
Linux centos7系统基础命令详解
“ls -color”是用不一样颜色将不一样格式的文件区分开来,通常默认状况下就已经执行了此命令,下面介绍一下常见的颜色表明的文件类型:centos

黑色------数据文件
绿色------可执行文件
红色------压缩文件
深蓝色------目录(文件夹)
淡蓝色------软连接文件(快捷方式)

除了这些常见的选项,还有通配符“ ? ”、“ * ”bash

“?”是匹配文件名中的一个未知字符,例如你想用“ls”命令查看一个文件,文件名其中几个字母不肯定就能够用“?”代替
Linux centos7系统基础命令详解
“ * ”是匹配文件中的任意多个字符,例如你想用“ls”命令查看一个文件,但你只记得其中一个字母,就能够用这个字母加上“ * ”来进行查找
Linux centos7系统基础命令详解服务器

命令:“du”统计目录及文件空间占用状况(Disk Usage)
经常使用选项:网络

-a:统计磁盘空间占用时包括全部的文件,而不只仅只统计目录。 
-h:以更人性化的方式(默认以 KB 计数,但不显示单位)显示出统计结果,使用 -h 选项后将显示出 KB、MB 等单位。 
-s:只统计每一个参数所占用空间总的(Summary)大小,而不是统计每一个子目录、 文件的大小。

“du -a”统计磁盘空间占用时包括全部的文件,而不只仅只统计目录
Linux centos7系统基础命令详解
Linux centos7系统基础命令详解
“du -h”以更人性化的方式显示出统计结果,默认以KB为计数,但不显示单位
Linux centos7系统基础命令详解
Linux centos7系统基础命令详解
“du -s”只统计所占空间总的大小,而不统计每一个子目录、文件大小
Linux centos7系统基础命令详解
固然这些选项也能够结合起来用,例如你想统计/var/log/目录的总大小,同时显示出具体单位就能够输入
“du -sh /var/log/”来进行统计
Linux centos7系统基础命令详解

命令:“alias”设置别名
当你以为一条命令输入太麻烦,而这条命令你要常常得用,此时你能够给它设置一个简单的别名,方便输入。
例如你想将“ls -alh”设置个别名为“myls”,就能够输入“alias myls='ls -alh'”
Linux centos7系统基础命令详解

建立目录和文件

命令:“mkdir”建立新目录(Make Directory)

若是你想在当前目录下建立一个新目录aaa,你能够输入“mkdir aaa”便可
Linux centos7系统基础命令详解
同时建立多个目录,只用在目录之间加上空格便可例如“mkdir 111 222 333”
Linux centos7系统基础命令详解
“mkdir -p”能够实现一次性建立嵌套的多层目录,否则的话只能先建立一个目录,再经过“cd”命令进入这个目录才能接着建立子目录
Linux centos7系统基础命令详解

命令:“touch”建立空文件

“touch”命令当你不指定建立文件的目录时,它会默认建立在当前目录下,同时建立多个文件时只需用空格将文件隔开便可。
Linux centos7系统基础命令详解
“touch”命令建立的文件是空文件,当咱们想直接在建立文件时将内容一块儿添加进去时,咱们能够用“echo”命令,例如我想在/root/aaa/bbb/目录建立一个文件bbb01.txt,内容为“this is bbb01”,我能够输入“echo “this is bbb01” > /root/aaa/bbb/bbb01.txt”。
Linux centos7系统基础命令详解
命令:“ln”建立连接文件

**格式: **ln [-s] 源文件或目录 连接文件或目标位置

在讲“ln”命令以前先了解一下连接文件,连接文件就是相似于Windows系统的快捷方式。连接分为两种,软连接(又称符号连接)、硬连接,下面介绍一下两种连接:
Linux centos7系统基础命令详解

使用 ln 命令时,默认建立的是硬连接。若是须要建立软连接,必须结合“-s”选项明
确指定。ln 命令的基本使用格式以下:
ln [-s] 源文件或目录„ 连接文件或目标位置
当目标位置是一个已经存在的目录时,新建立的连接文件将保存到该目录中,并使用与
源文件或目录相同的名称。例如,如下操做将为文件/bin/bzip2 建立一个软连接文件
/bin/soft/bzip2(未指定连接名称时,使用与原始文件相同的文件名)。

[root@localhost ~]# mkdir /bin/soft 
[root@localhost ~]# ln -s /bin/bzip2 /bin/soft/ 
[root@localhost ~]# ls -lh /bin/soft/bzip2 
lrwxrwxrwx. 1 root root 10 4 月 6 02:10 /bin/soft/bzip2 -> /bin/bzip2

复制、删除、移动目录和文件

命令:cp复制(Copy)文件或目录
cp 命令用于复制文件或目录,将须要复制的文件或目录(源)重建一份并保存为新的 文件或目录(可保存到其余目录中)。须要复制多个文件或目录时,目标位置必须是目录,且目标目录必须已经存在。

格式:cp [选项] 源文件或目录 目标文件或目录

经常使用选项:

-f:覆盖目标同名文件或目录时不进行提醒,而直接强制(Force)复制。 
-i:覆盖目标同名文件或目录时提醒用户确认(Interactive,交互式)。 
-p:复制时保持(Preserve)源文件的权限、属主及时间标记等属性不变。 
-r:复制目录时必须使用此选项,表示递归复制全部文件及子目录。

例如,如下两个操做将把/bin/touch 命令程序复制到当前目录下,并命名为 mytouch; 另外将/etc/yum.conf 文件复制一份做为备份,添加.bak 扩展名,仍存放在/etc 目录中。

[root@localhost ~]# cp /bin/touch./mytouch 
[root@localhost ~]# cp /etc/yum.conf /etc/yum.conf.bak

若是须要复制的数据包括完整的目录,则须要结合“-r”选项才能成功执行,不然目录 将被忽略。例如,如下操做将把目录/boot/grub、文件/etc/host.conf 复制到当前目录下 的 public_html 文件夹中。

[root@localhost ~]# cp -r /boot/grub/ /etc/host.conf public_html/ 
[root@localhost ~]# ls public_html/ 
grub host.conf

命令:rm 删除(Remove)文件或目录

rm 命令用于删除指定的文件或目录,在 Linux 命令行界面中,删除的文件是难以恢复 的,所以使用 rm 命令删除文件时须要格外当心。rm 命令使用要删除的文件或目录名做为参 数。
经常使用的几个选项以下(与 cp 命令的对应选项含义基本类似):

-f:删除文件或目录时不进行提醒,而直接强制删除。 
-i:删除文件或目录时提醒用户确认。 
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)

对于已经肯定再也不使用的数据(包含目录、文件),一般结合“-rf”选项直接进行删除 而不进行提示。例如,若要删除刚复制到 public_html 目录中的 grub 目录树,且不提示用 户进行确认(直接删除),能够执行“rm -rf public_html/grub/”命令,具体操做以下:

[root@localhost ~]# rm -rf public_html/grub/ 
[root@localhost ~]# ls public_html/ 
host.conf

若是须要在执行删除操做前进行确认,可使用“-i”选项(不要和-f 选项同时使用), rm 命令将对每一个待删除的文件或目录提示用户是否真的删除,须要输入 y(表示删除)或 n (表示不删除)进行确认。例如,如下操做将以提示确认的方式删除 public_html 目录中的 host.conf 文件(根据提示信息输入 y 确认删除)。

[root@localhost ~]# rm -i public_html/host.conf 
rm:是否删除 普通文件 "public_html/host.conf"? y

命令:mv 移动(Move)文件或目录

mv 命令用于将指定的文件或目录转移位置,若是目标位置与源位置相同,则效果至关 于为文件或目录更名。

格式:mv [选项] 源文件或目录 目标文件或目录
须要移动多个文件或目录时,目标位置必须是目录,且目标目录必须已经存在。 若是在同一个目录下移动文件或目录,则至关于执行重命名操做。例如,如下操做将把 当前目录中的 mytouch 程序文件更名为 mkfile。

[root@localhost ~]# mv mytouch mkfile 
[root@localhost ~]# ls -lh mytouch mkfile 
ls: 没法访问 mytouch: 没有那个文件或目录 
-rwxr-xr-x. 1 root root 62K 4 月 11 10:42 mkfile

若是移动一个文件或目录到一个已经存在的文件夹中,能够只指定目标文件夹位置。例 如,如下操做将把 mkfile 文件移动到 public_html 目录(已经存在)中,文件名仍然是 mkfile。

[root@localhost ~]# mv mkfile public_html/ 
[root@localhost ~]# ls -l public_html/mkfile 
-rwxr-xr-x. 1 root root 62488 4 月 11 10:42 public_html/mkfile

查找目录和文件

命令:which 查找用户所执行的命令文件存放的目录 。

which 命令用于查找 Linux 命令程序并显示所在的具体位置,其搜索范围主要由用户的 环境变量 PATH 决定(能够执行“echo $PATH”命令查看),这个范围也是 Linux 操做系统在 执行命令或程序时的默认搜索路径。

which 命令使用要查找的命令或程序名做为参数,默认当找到第一个目标后即再也不继续 查找,若但愿在全部搜索路径中查找,能够添加“-a”选项。例如,执行“which ls”命令 后,能够找到名为 ls 的、位于/usr/bin/ls 的命令程序文件,具体操做以下:

[root@localhost ~]# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 
[root@localhost ~]# which ls 
alias ls='ls --color=auto' 
/usr/bin/ls

注意:因为 Shell 内置的命令并无对应的程序文件,所以使用 which 查找内部命令时, 将找不到对应的程序。例如,查找内部命令 history 的位置时,会提示在搜索路径中没有这 个程序文件,具体操做以下:

[root@localhost ~]# which history 
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr 
/bin:/root/bin)

命令:find 查找文件或目录

find 命令是 Linux 操做系统中功能很是强大的查找命令,能够根据目标的名称、类型、 大小等不一样属性进行精细查找。find 命令在查找时采用递归的方式,其使用形式至关灵活, 也能够至关复杂。这里只介绍最经常使用的几种用法。

格式: find [查找范围] [查找条件表达式]

其中,查找范围对应的是在其中查找文件或子目录的目录位置(能够有多个),而查找 条件则决定了 find 命令根据哪些属性、特征进行查找。较经常使用的几种查找条件类型如 下所述。

按名称查找:关键字为“-name”,根据目标文件的名称进行查找,容许使用“ * ” 及“ ? ”通配符。 
按文件大小查找:关键字为“-size”,根据目标文件的大小进行查找,通常使用“+” 和“-”号设置超过或小于指定的大小做为查找条件。经常使用的容量单位包括 kB(注 意 k 是小写)、MB、GB。 
按文件属主查找:关键字为“-user”,根据文件是否属于目标用户进行查找。 
按文件类型查找:关键字为“-type”,根据文件的类型进行查找,这里的类型指的 是普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。块设备指 的是成块读取数据的设备(如硬盘、内存等),而字符设备指的是按单个字符读取 数据的设备(如键盘、鼠标等)。

设置 find 命令的查找条件时,若须要使用“ * ”或“ ? ”通配符,最好将文件名用双引号括起来,以免当前目录下符合条件的文件干扰查找结果。例如,如下操做将在/etc 目 录中递归查找名称以“resol”开头、以“.conf”结尾的文件。

[root@localhost ~]# find /etc –name "resol*.conf" 
/etc/resolv.conf

使用“-type”查找条件能够过滤出指定类型的文件。例如,如下操做将在/boot 目录 中查找出全部的文件夹(对应的类型为 d),而忽略其余类型的文件。

[root@localhost ~]# find /boot -type d 
/boot 
/boot/grub

须要同时使用多个查找条件时,各表达式之间可使用逻辑运算符“-a”与“-o”分别 表示并且(and)、或者(or)。例如,如下两个操做使用了两个查找条件,即“超过 1024kB” 和“名称以vmlinuz 开头”,但分别使用“-a”“-o”组合两个条件,前者表示两个条件必 须同时知足,后者表示只需知足其中任何一个条件便可。

[root@localhost ~]# find /boot -size +1024k -a -name "vmlinuz*" 
/boot/vmlinuz-3.10.0-514.el7.x86_64 
/boot/vmlinuz-0-rescue-8d265977c0c0459d98aff332d2544503 
[root@localhost ~]# find /boot -size +1024k -o -name "vmlinuz*" 
/boot/grub2/fonts/unicode.pf2 
/boot/System.map-3.10.0-514.el7.x86_64 
/boot/vmlinuz-3.10.0-514.el7.x86_64

Linux 目录结构

下面将要讲解一些目录、文件相关的命令,在讲解前先讲一下Linux的目录结构方便你们理解。Linux 操做系统在定位文件或目录位置时,使用斜杠“/”进行分隔(区别于 Windows 操做系统中的反斜杠“\”)。整个树形目录结构中,使用独立的一个“/”表示根目录,根目 录是 Linux 操做文件系统的起点,其所在的分区称为根分区。在根目录下,Linux 操做系统 将默认创建一些特殊的子目录,分别具备不一样的用途。下面简单介绍一下其中常见的子目录及其做用。

/boot:此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录, 如 vmlinuz 和 initrd.img。在安装 Linux 时,为 boot 目录建立一个分区,有利于 对系统进行备份。 
/bin:bin 是 binary 的缩写。这一目录存放了全部用户均可执行的且常用的 命令,如 cp、ls 等。 
/dev:此目录保存了接口设备文件,如/dev/hda一、/dev/cdrom 等。 
/etc:此目录保存有关系统设置与管理的文件。 
/home:存放全部普通系统用户的默认工做文件夹(即宿主目录、家目录),如用户 帐号“teacher”对应的宿主目录位于“/home/teacher/”。若是服务器须要提供 给大量的普通用户使用,建议将“/home”目录也划分为独立的分区,以方便用户 数据的备份。 
/root:该目录是 Linux 操做系统管理员(超级用户)root 的宿主目录,默认状况 下只有 root 用户的宿主目录在根目录下而不是在“/home”目录下。 
/sbin:存放 Linux 操做系统中最基本的管理命令,通常管理员用户才有权限执行。
/usr:存放其余的用户应用程序,一般还被划分红不少子目录,用于存放不一样类型 的应用程序。 
/var:存放系统中常常须要变化的一些文件,如系统日志文件、用户邮箱目录等, 在实际应用系统中,“/var”目录一般也被划分为独立的分区。 以上列举的只是 Linux 操做系统中用户常常用到的子目录,还有其余一些子目录须要用 户在使用 Linux 操做系统的过程当中逐渐去熟悉。

查看文件内容

命令:cat 显示并链接(Concatenate)文件的内容

cat 命令原本用于链接(Concatenate)多个文件的内容,但在实际使用中更多地用于 查看文件内容。cat 命令是应用最为普遍的文件内容查看命令。使用该命令时,只须要 把 要 查 看 的 文 件 路 径 做 为 参 数 即 可 。 例 如 , 以 下 操 做 就 可 以 查 看 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中的内容,并了解第一块以太网
卡的配置信息。

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet 
BOOTPROTO=none 
DEFROUTE=yes 
PEERDNS=yes 
PEERROUTES=yes 
IPV4_FAILURE_FATAL=noIPV6INIT=yes 
IPV6_AUTOCONF=yes 
IPV6_DEFROUTE=yes 
IPV6_PEERDNS=yes 
IPV6_PEERROUTES=yes 
IPV6_FAILURE_FATAL=no 
IPV6_ADDR_GEN_MODE=stable-privacy 
NAME=ens33 
UUID=918487c2-e150-422b-acdd-8b7b61d0239b 
DEVICE=ens33 
ONBOOT=yes 
IPADDR=192.168.10.114 
NETMASK=255.255.255.0 
GATEWAY=192.168.10.1

若是须要同时查看多个文件的内容,能够添加多个文件路径做为查看对象。例如,如下 操做将依次显示/etc/redhat-release、/proc/version 文件的内容,前者记录了 CnetOS 系 统的发行版本信息,后者记录了系统内核及开发环境、时间等信息。

[root@localhost ~]# cat /etc/redhat-release /proc/version 
CentOS Linux release 7.3.1611 (Core) 
Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 
4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016

命令:more 和 less 分页查看文件内容

使用 cat 命令能够很是简单地直接显示整个文件的内容,可是当文件中的内容较多时, 极可能只能看到最后一部分信息,文件前面的大部份内容都来不及看到。而 more 和 less 命令经过采用全屏的方式分页显示文件,便于咱们从头至尾仔细地阅读文件内容。
more 命令是较早出现的分页显示命令,表示文件内容还有更多(more)的意思,less 命令是较晚出现的分页显示命令,提供了比早期 more 命令更多的一些扩展功能。两个命令 的用法基本相同。
使用 more 命令查看超过一屏的文件内容时,将进行分屏显示,并在左下角显示当前内 容在整个文件中的百分比。在阅读界面中,能够按 Enter 键向下逐行滚动查看,按 Space 键能够向下翻一屏,按 b 键向上翻一屏,按 q 键退出并返回原来的命令环境。例如,如下操 做将能够分屏查看/etc/httpd/ conf/httpd.conf(网站配置文件)文件的内容。

[root@localhost ~]# more /etc/httpd/conf/httpd.conf 
# 
# This is the main Apache HTTP server configuration file. It contains the 
# configuration directives that give the server its instructions. 
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information. 
# In particular, see 
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html> 
# for a discussion of each configuration directive. 
--more--(1%)

more 命令除了能够分屏查看文件内容之外,还能够结合管道符号“|”分屏查看执行命 令时的输出信息,这在命令输出内容较多的状况下特别有用。例如,如下操做能够分页查看 /etc/目录下扩展名为“.conf”的配置文件。

[root@localhost ~]# ls -lh /etc/*.conf | more 
-rw-r--r--. 1 root root 55 11 月 5 00:29 /etc/asound.conf 
-rw-r--r--. 1 root root 14K 11 月 6 02:19 /etc/autofs.conf 
-rw-------. 1 root root 232 11 月 6 02:19 /etc/autofs_ldap_auth.conf 
-rw-r--r--. 1 root root 22K 11 月 6 01:31 /etc/brltty.conf 
 ...................//省略部份内容 
--more--

less 命令使用方法与 more 命令基本相似,可是比 more 更好的是,less 命令结合管道 符号“|”分屏查看执行命令时输出的信息时,既能够向下翻页,也能够向上翻页。而 more 命令只能向下翻页,不能向上翻页。

命令:head 和 tail 查看文件开头或末尾的部份内容

head 和 tail 是一对做用相反的命令,前者用于显示文件开头的一部份内容,后者用于 显示文件末尾的一部份内容。可使用“-n”选项(n 为具体的行数)指定须要显示多少行 的内容,若不指定行数,默认只显示十行。 执行“head -4 /etc/passwd”命令,能够查看用户帐号文件/etc/passwd 开头第一行至第 四行的部份内容。

[root@localhost ~]# head -4 /etc/passwd 
root:x:0:0:root:/root:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
adm:x:3:4:adm:/var/adm:/sbin/nologin

tail 命令则正好相反,用于查看文件末尾的内容。tail 命令一般用于查看系统日志(由于较新的日志记录老是添加到文件最后),以便观察网络访问、服务调试等相关信息。配合 “-f ”选项使用时,还能够跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化。例如,如下操做能够查看系统公共日志文件/var/log/messages 的最后十行内容,并在 末尾跟踪显示该文件中新记录的内容(按 Ctrl+C 组合键终止)。

[root@localhost ~]# tail -f /var/log/messages 
„„ //省略显示内容 
May 3 22:17:22 localhost PackageKit: uid 0 is trying to obtain org.freedesktop. 
packagekit.system-sources-refresh auth (only_trusted:0) 
May 3 22:17:22 localhost PackageKit: uid 0 obtained auth for org.freedesktop. 
packagekit.system-sources-refresh 
May 3 22:17:23 localhost kernel: TCP: lp registered

统计和检索文件内容

命令:wc 统计文件内容中的单词数量(Word Count)、行数等信息

wc 命令用于统计文件内容中包含的行数、单词数量、字节数等信息,使用文件名做为 参数,能够同时统计多个文件。
经常使用选项:

-c:统计文件内容中的字节数。 
-l:统计文件内容中的行数。 
-w:统计文件内容中的单词个数(以空格或制表位做为分隔)。

当文件的行数、单词数或字节数具备特定的意义时,使用 wc 命令能够巧妙地得到一些 特殊信息。例如,Linux 操做系统中的用户帐号数据保存在/etc/passwd 文件中,其中每一 行记录对应一个用户,则如下操做能够统计出当前 Linux 操做系统中拥有的用户帐号数量,具 体操做以下:

[root@localhost ~]# wc -l /etc/passwd 
46 /etc/passwd

若将 wc 命令与管道符号一块儿使用,还能够对命令输出结果进行统计。例如,若要统计 /etc/目录下共包含多少个扩展名为“.conf”的文件,能够先经过“find /etc -name "*.conf"” 命令找出符合条件的文件位置,因为 find 命令的输出结果也是每行一个文件记录,所以只 需结合管道符号执行“wc -l”操做便可得出符合条件的文件数量,具体操做以下:

[root@localhost ~]# find /etc -name "*.conf" | wc -l 
432

使用不带任何选项的 wc 命令时,默认将统计指定文件的字节数、行数、单词个数(相 当于同时使用“-c”“-l”“-w”三个选项)。例如,如下操做统计出/etc/hosts 文件中共包 含 2 行、10 个单词、158 字节的内容,而后经过“cat /etc/hosts”命令列出文件内容,可 核对统计结果是否正确。

[root@localhost ~]# wc /etc/hosts 
2 10 158 /etc/hosts

命令:grep 检索、过滤文件内容

grep 命令用于在文件中查找并显示包含指定字符串的行,能够直接指定关键字符串做 为查找条件,也可使用复杂的条件表达式(例如,“^word”表示以 word 开头,“word$” 表示以 word 结尾,“^$”表示空行)。

格式: grep [选项] 查找条件 目标文件

经常使用选项:

-i:查找内容时忽略大小写(Ignore Case)。 
-v:反转查找(Invert),即输出与查找条件不相符的行。

例如,执行“grep "ftp" /etc/passwd”命令,能够在帐号文件/etc/passwd 中查找包 含“ftp”字符串的行,实际上输出了名为 ftp 的用户帐号的信息,具体操做以下:

[root@localhost ~]# grep "ftp" /etc/passwd 
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

在维护 Linux 操做系统的过程当中,常常会遇到包含大量内容的配置文件,而其中每每包 含了许多空行和以“ # ”开头的注释文字,当只须要分析其中的有效配置信息时,这些空行 和注释文字的存在不利于快速浏览。使用 grep 命令能够过滤掉这些无关信息。例如,如下 操做能够显示/etc/yum.conf 文件中以“#”开头的行和空行之外的内容。

[root@localhost ~]# grep -v "^#" /etc/yum.conf | grep -v "^$" 
[main] 
cachedir=/var/cache/yum/$basearch/$releasever 
keepcache=0 
debuglevel=2 
........................................//省略部份内容

使用压缩工具有份与恢复文档

gzip 和 bzip2 是 Linux 操做系统中使用最多的两个压缩工具,这两个命令均可以压缩 指定的文件,或者将已经压缩过的文件进行解压。二者使用的压缩算法各不相同,但命令使 用格式基本相似,通常来讲 bzip2 的压缩效率要好一些。

命令:gzip 和 gunzip 压缩和解压缩

使用 gzip 制做的压缩文件默认的扩展名为“.gz”。制做压缩文件时,使用“-9”选项 能够提升压缩的比率,但文件较大时会须要更多的时间。例如,如下操做将对当前目录下的 mkfile 文件进行压缩,生成压缩文件 mkfile.gz(原始文件 mkfile 再也不保留),压缩后的文 件大小变为 30KB(未压缩时为 62KB)。

[root@localhost ~]# ls -lh mkfile* 
-rwxr-xr-x. 1 root root 62K May 4 01:32 mkfile 
[root@localhost ~]# gzip mkfile 
[root@localhost ~]# ls -lh mkfile* 
-rwxr-xr-x. 1 root root 30K May 4 01:32 mkfile.gz

当须要解压缩经 gzip 压缩的文件时,只需使用带“-d”选项的 gzip 命令便可,或者直接使 用 gunzip 命令。例如,若将压缩文件 mkfile.gz 进行解压缩,可执行如下操做。

[root@localhost ~]# gzip -d mkfile.gz 
或
[root@localhost ~]# gunzip mkfile.gz

命令:bzip2 和 bunzip2 压缩和解压缩

bzip2 和 bunzip2 命令的用法与 gzip、gunzip 命令基本相同,使用 bzip2 制做的压缩 文件默认的扩展名为“.bz2”。例如,如下操做将对当前目录下的 mkfile 文件以较高压缩比 进行压缩,生成压缩文件 mkfile.bz2(原始文件 mkfile 再也不保留),压缩后的文件大小变 为 30KB(未压缩时为 62KB)。

[root@localhost ~]# ls -lh mkfile* 
-rwxr-xr-x. 1 root root 62K May 4 01:32 mkfile 
[root@localhost ~]# bzip2 -9 mkfile 
[root@localhost ~]# ls -lh mkfile* 
-rwxr-xr-x. 1 root root 30K May 4 01:32 mkfile.bz2

与 gzip、gunzip 命令相同,当须要解压缩经 bzip2 压缩的文件时,只需使用带“-d”选 项的 bzip2 命令便可,或者直接使用 bunzip2 命令。例如,若要将压缩文件 mkfile.gz 进行 解压缩,可执行如下操做。

[root@localhost ~]# bzip2 -d mkfile.bz2 
或者
[root@localhost ~]# bunzip2 mkfile.bz2

使用 tar 归档和释放工具

tar 命令主要用于对目录和文件进行归档。在实际的备份工做中,一般在归档的同时也 会将包文件进行压缩(须要调用前面的 gzip 或 bzip2 命令),以节省磁盘空间。使用 tar 命令时,选项前的“-”号能够省略。经常使用的几个选项以下所述。

-c:建立(Create).tar 格式的包文件。 
-C:解压时指定释放的目标文件夹。 
-f:表示使用归档文件。 
-j:调用 bzip2 程序进行压缩或解压。 
-p:打包时保留文件及目录的权限。 
-P:打包时保留文件及目录的绝对路径。 
-t:列表查看包内的文件。 
-v:输出详细信息(Verbose)。 
-x:解开.tar 格式的包文件。 
-z:调用 gzip 程序进行压缩或解压。

制做归档备份文件

基本格式:tar [选项] 归档及压缩文件名 须要归档的源文件或目录

若是须要对制做的归档文件进行压缩,能够经过“-z”或“-j”选项自动调用压缩工具(分别对应 gzip、bzip2 命令程序)进行压缩。例如,如下操做将会对/etc 和/boot 目录进行备份,在当前目录下生成名为 sysfile.tar.gz 的归档压缩包,执行过程当中能够看到被归 档的文件列表信息。须要注意的是,在备份恢复目录或文件时,最好先将工做路径切换至目 标目录或文件的所在路径,而后在执行备份命令时使用相对路径,以防输入命令时因手误而致使根目录“/”下重要文件损坏。

[root@localhost ~]# cd / 
[root@localhost /]# tar zcvf sysfile.tar.gz etc boot 
etc/ 
etc/login.defs 
etc/cron.hourly/ 
etc/fstab 
„„ //省略部份内容 
[root@localhost /]# ls -lh sysfile.tar.gz 
-rw-r--r--. 1 root root 125M 4 月 10 11:46 sysfile.tar.gz

若须要制做“.tar.bz2”格式的归档压缩包,则将“-z”选项改成“-j”选项使用便可。 例如,如下操做将会对/etc/passwd、/etc/shadow 文件进行备份,在/tmp 目录下生成名为 usershome.tar.bz2 的归档压缩包。

[root@localhost ~]# cd /etc 
[root@localhost etc]# tar jcvf /tmp/usershome.tar.bz2 passwd shadow 
etc/passwd 
etc/shadow 
[root@localhost etc]# ls -lh /tmp/usershome.tar.bz2 
-rw-r--r--. 1 root root 2.2K 4 月 10 11:50 /tmp/usershome.tar.bz2

从归档文件中恢复数据

基本格式: tar [选项] 归档及压缩文件名 [-C 目标目录]

相似地,当从“.tar.gz”格式的归档压缩包恢复数据时,须要结合“-z”选项来自动 调用压缩工具,而对于“.tar.bz2”格式的归档压缩包,对应的是“-j”选项。默认状况 下,恢复的数据将释放到当前目录中,若是须要恢复到指定文件夹,还须要结合“-C”选项 来指定目标目录。例如,如下操做将从备份文件 usershome.tar.bz2 中恢复数据,释放到/etc 目录下(将覆盖现有文件)。

[root@localhost ~]# tar jxf /tmp/usershome.tar.bz2 -C /etc

在大部分的备份及恢复工做中,只使用 tar 命令就能够很好地结合 gzip、bzip2 工具协 同工做,无须再执行 gzip 或 bzip2 命令。可是要注意这两个压缩工具的命令程序必须存在。

相关文章
相关标签/搜索