一、基础概念
1、系统内核:
计算机硬件是有运算器、控制器、存储器、输入输出设备等共同组成,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核,Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。系统内核对计算机正常运行来说太重要,一般不建议直接去编辑内核的参数,让用户通过基于系统调用接口发出的程序或服务来管理计算机。
Linux系统中的图形化工具(如:LVM)非常好用,极大降低运维人员操作出错的概率,但图形化工具调用脚本完成相应工作只是为了完成某种特定的工作设计,缺乏Linux命令缺乏原有的灵活性与可控性,并且图形化相比Linux命令行界面更加消耗系统资源,经验丰富的运维人员甚至都不会给Linux系统安装图形界面,运维时直接通过命令行模式远程连接过去,这样很高效。
2、Shell:
Shell(终端)就是一个命令行工具,充当人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。
3、Bash解释器(Bourne-Again SHell)
包括红帽系统在内许多主流Linux系统默认使用的终端是Bash解释器,主要有一下4项优势:
(1)通过上下方向键来调取过往执行过的Linux命令
(2)命令或参数仅需输入前几位就可用Tab键补全
(3)具有强大的批处理脚本
(4)具有实用的环境变量功能
4、Linux命令格式
执行Linux命令的格式为: 命令名称 [命令参数] [命令对象] 注意:三者之间要 空格键 隔开
命令对象一般指:要处理的文件、目录、用户等,而命令参数可用长格式(完整的选项名称):用 -- 作为前缀,
举例:man --help;也可用短格式(单个字母的缩写):用 - 作为前缀,举例:man -h。
在命令行终端输入 man man 命令来查看man命令本身的帮助信息:
man命令帮助信息界面中,包含的常用操作按键及其用途如下:
二、常用系统工作命令
1、echo命令
作用:用于在终端输出字符串或变量提取后的值,格式为:echo [字符串|$变量]
2、date命令
作用:显示及设置系统的时间和日期,格式为:date [选项][+指定的格式]
3、reboot命令、poweroff命令
作用:reboot命令用于重启系统,其格式为:reboot,由于重启计算机设计硬件资源的管理权限,默认只能使用root管理员来重启。poweroff命令作用:关闭计算机。
4、wget命令
作用:在终端中下载网络文件,格式为:wget [参数] 下载地址
如:wget http://www.linuxprobe/.com/docs/Linuxprobe.pdf 从网址中下载pdf文件
wget -r -p http://www.linuxprobe/.com 递归下载网站内所有页面数据及文件
5、ps命令
作用:查看系统中的进程状态,格式为:ps [参数]
在Linux系统中,有5中常见的进程状态,分别为:
(1)运行:R,进程正在运行或运行队列中等待。
(2)中断:S,进程属于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
(3)不可中断:D,进程不响应系统异步信号,即便用kill命令也不能将其中断。
(4)僵死:Z,进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将其进程释放。
(5)停止:T,进程收到停止信号后停止运行。
注意:Linux系统的命令有长短格式之分,长格式和长格式之间不能合并,长格式和短格式之间不能合并,短格式和短格式之间可以合并,合并后仅保留一个 - (减号)即可,另外,ps命令可允许不添加减号,可以直接写成:ps aux。
6、top命令
作用:用于动态监视进程活动与系统负载等信息,格式为:top。top命令相当强大,完全可以动态查看系统运维状态,完全将它看做Linux中的“强化版的Windows任务管理器”。
top命令执行结果的前五行为系统整体的统计信息,具体含义如下:
第一行:系统时间、运行时间、登陆终端数、系统负载(三个数值分别为:1分钟、5分钟15分钟的平均值,数值越小意味着负载越低)。
第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等,
“99.7 id”代表有99.7%的CPU处理器资源处于空闲。
第四行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
第五行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
7、pidof命令
作用:查询某个指定服务进程的PID值,格式为:pidof [参数] [服务名称]
每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程,通过下面的命令来查询本机上sshd程序进程的PID。
8、kill命令
作用:用于终止某个指定PID的服务进程,格式为:kill [参数] [进程PID]
使用kill命令将上面用pidof命令查询的PID所代表的进程终止掉,这种操作的效果等同于强制停止sshd服务。
9、killall命令
作用:终止某个指定名称的服务所对应的全部进程,格式为:killall [参数] [进程名称]
通常,复杂软件的服务会有多个进程协同为用户提供服务,可以使用killall命令来批量结束某个服务程序带有的全部进程。
注意:系统在执行一个命令之后想立即停止它,可以同时按下Ctrl+C的组合键,将立即终止该命令的进程。如果有些命令在执行过程中不断在屏幕输出信息,影响后续命令的输入,可以在执行命令时在末尾加上一个&符号,命令将进入系统后台来执行。
三、系统状态检测命令
1、ifconfig命令
作用 :用于获取网卡配置与网络状态等信息,格式为:ifconfig [网络设备] [参数]
ifconfig命令查看:本机当前的网卡配置与网络状态信息时,主要查看网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址)以及RX、TX的接收数据包与发送数据包的个数及累计流量。
2、uname命令
作用:查看系统内核与系统版本等信息,格式为:uname [-a]
在使用uname命令时,一般会固定搭配 -a 参数来完整查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型及操作系统名称等信息。查看当前系统版本的详细信息,需要查看redhat-release文件。
3、uptime命令
作用:查看系统的负载信息,格式为:uptime
uptime命令可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值为:系统在最近1分钟、5分钟、15分钟内的压力情况,负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。
4、free命令
作用:显示当前系统中内存的使用量信息,格式为:free [-h],结合-h参数以更人性化的方式输出当前内存的实时使用量信息。
5、who命令
作用:查看当前登入主机的用户终端信息,格式为:who [参数]
who命令可以快速显示出所有登录本机的用户名称以及他们正在开启的终端信息。
6、last命令
作用:查看系统的登录记录,格式为:last [参数]。
last命令查看本机登录记录,这些信息都是以日志文件的形式保存在系统中,很容易被外人对内容进行篡改。
7、history命令
作用:显示历史执行过的命令,格式为:history [-c]
执行history命令能显示用户在本地计算机中执行过的最近1000条命令记录,如果感觉1000条不过用,可以自定义/etc/profile 文件中的HISTSIZE变量值。使用history命令时,如果使用 -c 参数则会清空所有的命令历史记录,还可以使用“!编码数字”的方式来重复执行某一次的命令。
8、sosreport命令
作用:收集系统配置及架构信息并输出诊断文档,格式为:sosreport
当Linux系统出现故障需要联系技术支持人员时,大多数需要使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题。
四、工作目录切换命令
工作目录指:用户当前在系统中所处的位置。
1、pwd命令
作用:显示用户当前所处的工作目录,格式为:pwd [选项]
2、cd命令
作用:切换工作路径,格式为:cd [目录名称]
这个命令是Linux系统中最常用的命令之一,通过重cd命令迅速灵活的切换到不的工作目录,使用“cd -”命令返回到上一次所处的目录,使用“cd..”命令进入上级目录,使用“cd ~”命令切换到当前用户的home目录,使用“cd ~username”切换到其他用户的home目录。
3、ls命令
作用:显示目录中的文件信息,格式为:ls [选项] [文件]
使用ls命令的“-a”参数看到全部文件(包含隐藏文件),使用“-l”参数可以查看文件的属性、大小等详细信息。
将两个参数整合后,执行ls命令即可查看目录中所有文件并输出这些文件的属性信息。
想要查看目录属性信息,则需要额外添加一个“-d”参数。如:ls -ld /etc
五、文本文件编辑命令
Linux系统中,“一切都是文件”,而对服务程序进行配置自然也就是编辑程序的配置文件。
1、cat命令
作用:用于查看内容较少的纯文本文件,格式为:cat [选项] [文件]
如果查看文本内容想顺便显示行号的话,在cat命令后面添加 -n 参数。
2、more命令
作用:查看内容较多的纯文本文件,格式为:more [选项] [文件]
阅读长篇小说或非常长的配置文件,more命令会在最下面使用百分比的形式来提示阅读了多少内容,可以使用空格键或者回车键向下翻页。
3、head命令
作用:用于查看纯文本文档的前N行,格式为:head [选项] [文件]
4、tail命令
作用:查看纯文本文档的后N行或持续刷新内容,格式为:tail [选项] [文件]
只需执行“tail -n 10 文件名”就可达到查看后10行的内容,tail命令最强悍的功能就是持续刷新一个文件的内容,
当想要查看最新日志文件时特别有用,此时命令格式“tail -f 文件名”格式。
5、tr命令
作用:替换文本中的字符,格式为:tr [原始字符] [目标字符]
先使用cat命令读取待处理的文本,然后通过管道符把这些文本内容传递给tr命令进行替换操作即可,
举例:把某个文本内容中的英文全部替换为大写。
6、wc命令
作用:统计指定文本的行数、字数、字节数,格式为:wc [参数] 文本
参数: -l 只显示行数 -w 只显示单词数 -c 只显示字节数
Linux系统中,passwd是用于保存系统账户信息的文件,要统计当前系统中有多少个用户,可以使用下面的命令查询:
7、stat命令
作用:查看文件的具体存储信息和时间信息等,格式为:stat 文件名称
8、cut命令
作用:按“列”提取文本字符,格式为:cut [参数] 文本
一般,按基于“行”的方式提取数据是比较简单的,只需要设置好要搜索的关键词即可。
如果按列搜索,不仅要使用 -f 参数来设置需要看的列数,还需要使用 -d参数来设置间隔符号。
举例:passwd保存用户数据信息时,用户每一项信息值之间采用冒号来间隔,尝试提取passwd文件中以冒号为间隔的用户名的第一列内容。
9、diff命令
作用:用于比较多个文本文件的差异,格式为:diff [参数] 文件
在使用diff命令时,可以使用 --brief参数来确认两个文件是否不同,还可以使用 -c参数来详细比较出多个文件的差异之处。
六、文件目录管理命令
1、touch命令
作用:创建空白文件或设置文件的时间,格式为:touch [选项] [文件],比如 touch linuxprobe 命令可以创建名为 linuxprobe 的空白文本文件。对于touch命令,有难度的操作主要体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)。
参数: -a 仅修改“读取时间”(atime) -m 仅修改“修改时间”(mtime) -d 同时修改atime和mtime
2、mkdir命令
作用:创建空白的目录,格式为:mkdir [选项] 目录
除了能创建单个空白目录外,mkdir命令可以结合 -p 参数来递归创建出具有嵌套叠层关系的文件目录。
3、cp命令
作用:复制文件或目录,格式为:cp [选项] 源文件 目标文件
Linux系统中,复制操作具体分为3种情况:
(1)如果目标文件是目录,把源文件复制到该目录中;(2)如果目标文件也是普通文件,则会询问是否要覆盖它;
(3)如果目标文件不存在,则执行正常的复制操作。
参数: -p 保留原始文件的属性 -d 若对象为“链接文件”则保留该“链接文件”的属性 -r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖 -a 相对于 -pdr
举例:使用 touch 创建一个名为 install.log 的普通空白文件,再将其复制为一份名为 x.log 备份文件,使用ls命令查看目录文件。
4、mv命令
作用:剪切文件或将文件重命名,格式为:mv [选项] 源文件 [目标路径|目标文件名]