基础命令
常用快捷键
1、Tab 自动补全
2、Ctrl+c 终端内强制退出当钱进程
3、Ctrl+d 关闭当前终端
4、Ctrl+l 清空当前终端
常用系统工作命令
man 命令对象 ---------查看某个命令的帮助文档
echo [字符串][$+变量名]-------------在终端窗口输出字符串或变量值
date 命令----------------查看或设置系统时间
date [+格式] 按照格式查看时间
date -s "20201101 8:30:00" 设置时间
参数 | 作用 |
%S | 秒(00~59) |
%M | 分钟(00~59) |
%H | 小时(00~23) |
%I | 小时(00~12) |
%m | 月份(1~12) |
%p | 显示出AM或PM |
%a | 缩写的工作日名称(例如:Sun) |
%A | 完整的工作日名称(例如:Sunday) |
%b | 缩写的月份名称(例如:Jan) |
%B | 完整的月份名称(例如:January) |
%q | 季度(1~4) |
%y | 简写年份(例如:20) |
%Y | 完整年份(例如:2020) |
%d | 本月中的第几天 |
%j | 今年中的第几天 |
%n | 换行符(相当于按下回车键) |
%t | 跳格(相当于按下Tab键) |
timedatectl 命令------------------设置系统时间和系统时区
参数 | 作用 |
status | 显示状态信息 |
list-timezones | 列出已知时区 |
set-time | 设置系统时间 |
set-timezone | 设置生效时区 |
reboot 命令----------------------重启系统
poweroff 命令---------------------关机
wget 命令-------------------------在终端中下载网络文件
wget [参数] 网址
参数 | 作用 |
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等 |
-r | 递归下载 |
ps-----------------------------查看进程信息
参数 | 作用 |
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
pstree-------------------------以树状图的形式展示进程之间的关系
top------------------------动态的监视进程活动及系统负载等信息
top命令执行结果的前5行为系统整体的统计信息,其所代表的含义如下:
第1行:系统时间、运行时间、登录终端数、系统负载(3个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示。
第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
nice-------------------------调整进程优先级
在top命令输出的结果中,PR和NI值代表的是进程的优先级,数字越低(取值范围是-20~19),优先级越高。
示例:将bash服务进程优先级设置为最高:nice -n -20 bash
pidof--------------------------查询某个指定服务进程的pid号码
kill-------------------------------根据pid杀死进程
kill [-9 强制杀死] 进程pid
killall--------------------------终止某个指定服务名称的所有进程
系统状态检测命令
ifconfig-------------------------获取网卡配置和网络状态等信息
ifconfig命令用于获取网卡配置与网络状态等信息,英文全称为“interface config”,语法格式为“ifconfig [参数] [网络设备]”。
使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量
uname--------------------查看系统内核版本与系统架构等信息
使用uname命令时,一般要固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、压制时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息
uptime------------------------查看系统负载信息
显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面加粗的信息部分),负载值越低越好
free--------------------------显示当前系统中内存的使用信息
在使用free命令时,可以结合使用-h参数以更人性化的方式输出当前内存的实时使用量信息。
如果不使用-h(易读模式)查看内存使用量情况,则默认以KB为单位。
who------------------------------查看当前登入主机的用户终端信息
last------------------------------调取主机的被访记录
ping-----------------------------测试主机之间的网络连通性
语法格式为“ping [参数] 主机地址”
参数 | 作用 |
-c | 总共发送次数 |
-l | 指定网卡名称 |
-i | 每次间隔时间(秒) |
-W | 最长等待时间(秒) |
tracepath------------------------------显示数据包到达目的主机时途中经过的所有路由信息
netstat----------------------------------显示如网络连接、路由表、接口状态等的网络相关信息】
语法格式为“netstat [参数]”
-a | 显示所有连接中的Socket |
-p | 显示正在使用的Socket信息 |
-t | 显示TCP协议的连接状态 |
-u | 显示UDP协议的连接状态 |
-n | 使用IP地址,不使用域名 |
-l | 仅列出正在监听的服务状态 |
-i | 显示网卡列表信息 |
-r | 显示路由表信息 |
history-------------------------------显示执行过的命令历史
可以使用-c参数清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令。历史命令会被保存到用户家目录中的.bash_history文件中。
sosreport----------------------------------收集系统配置及架构信息并输出诊断文档
查找定位文件命令
pwd--------------------------------显示用户当前所处的工作目录
cd----------------------------切换当前的工作路径
除了常见的切换目录方式,还可以使用“cd -”命令返回到上一次所处的目录,使用“cd ..”命令进入上级目录,以及使用“cd ~”命令切换到当前用户的家目录,抑或使用“cd ~username”命令切换到其他用户的家目录
ls------------------------显示目录中的文件信息
语法格式为“ls [参数] [文件名称]”。使用ls命令的-a参数可以看到全部文件(包括隐藏文件),使用-l参数可以查看文件的属性、大小等详细信息。
tree------------------------------以树状图的形式列出目录内容及结构
-a参数可以看到全部文件(包括隐藏文件)
find-----------------------------按照指定条件来查找文件所对应的位置
语法格式为“find [查找范围] 寻找条件”
参数 | 作用 |
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
-type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …… {}\; | 后面可跟用于进一步处理搜索结果的命令(下文会有演示) |
locate、whereis、which -------------------按照指定名称快速搜索
使用find命令进行全盘搜索更准确,但是效率有点低。如果仅仅是想找一些常见的且又知道大概名称的文件,可以使用locate命令。在使用locate命令时,先使用updatedb命令生成一个索引库文件,这个库文件的名字是/var/lib/mlocate/mlocate.db,后续在使用locate命令搜索文件时就是在该库中进行查找操作,速度会快很多,语法格式为“locate文件名称”。
whereis命令用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置,语法格式为“whereis命令名称”。
whereis命令也是基于updatedb命令所生成的索引库文件进行搜索,它与locate命令的区别是不关心那些相同名称的文件,仅仅是快速找到对应的命令文件及其帮助文件所在的位置。
which命令用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为“which命令名称”。which命令是在PATH变量所指定的路径中,按照指定条件搜索命令所在的路径。既不关心同名文件(find与locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径
文本文件编辑命令
cat、more、head、tail---------------------------用于查看纯文本文件
cat 快速全部显示,适合查看内容较少的文件,语法格式为“cat [-n 显示行号] 文件名称”。
more 逐页查看文本文件,按q退出,按空格往下翻一页,按回车往下翻一行,语法格式为“more [参数] 文件名称”。
head 查看文本前n行,默认10行,语法格式为“head [参数] 文件名称” ,参数“-n 数字”指定查看行数。
tail 查看文本后n行或持续刷新文件的最新内容,默认10行,语法格式为“head [参数] 文件名称” ,参数“-n 数字”指定查看行数,参数“-f"用于持续刷新文件。
tr-------------------------------------替换文本内容中的字符
替换结果输出到控制台,文件中内容不变,需要搭配管道符或重定向使用,语法格式为“tr [参数] 原字符串 [目标字符串]”,字符串是正则表达式。
-c | 反选字符串1的补集 |
-d | 删除字符串1中出现的所有字符 |
-s | 删除所有重复出现的字符序列 |
-t | 将字符串1截断为字符串2的长度 |
其中d,s参数不需要目标字符串。
wc---------------------统计指定文本文件的行数、字数或字节数
语法格式为“wc [参数] 文件名称”
参数 | 作用 |
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
stat-------------------------查看文件的具体存储细节和时间等信息
Linux系统中的文件包含3种时间状态,分别是Access Time(内容最后一次被访问的时间,简称为Atime),Modify Time(内容最后一次被修改的时间,简称为Mtime)以及Change Time(文件属性最后一次被修改的时间,简称为Ctime),可以通过stat命令查到。
grep------------------------按行提取文本内容
语法格式为“grep [参数] 搜索关键词 文件名称”。
常用参数:
-b | 显示匹配行距文件头部的偏移量 |
-o | 显示匹配词距文件头部的偏移量 |
-c | 只显示匹配的行数 |
-q | 静默执行模式 |
-E | 支持扩展正则表达式 |
-r | 递归搜索模式 |
-F | 匹配固定字符串的内容,默认匹配正则表达式 |
-s | 不显示没有匹配文本的错误信息 |
-h | 搜索多文件时不显示文件名 |
-v | 显示不包含匹配文本的所有行 |
-i | 忽略关键词大小写 |
-l | 只显示符合匹配条件的文件名 |
-x | 精准匹配整行 |
-n | 显示所有匹配行及其行号 |
-w | 精准匹配整词 |
cut---------------------按“列”提取文本内容
语法格式为“cut [参数] 文件名称”
常用格式:cut -d 分隔符 -f 列数n[-列数m] 文件名 提取第n列[到第m列]
cut -c 数字n-数字m 文件名 提取每行第n到第m个字符
diff-------------------------比较多个文件之间内容的差异
语法格式为“diff [参数] 文件名称A 文件名称B”
常用格式:diff --brief 文件名称A 文件名称B 判断文件是否相同,相同无输出,不同有输出
diff -c 文件名称A 文件名称B 描述文件内容具体的不同 不同的行前用+、-、!号提示,输出在控制台
uniq-------------------------去除文本中连续的重复行
语法格式为“uniq [参数] 文件名称” ,非相邻的默认不会去重
sort-------------------------------对文本内容进行再排序
语法格式为“sort [参数] 文件名称” ,输出在控制台,不修改原文件
参数 | 作用 |
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 以数值型排序 |
-r | 反向排序 |
-u | 去除重复行,不需要相邻 |
-t | 指定间隔符,类似cut命令,按某列排序 |
-k | 设置字段范围 |
文件目录管理命令
touch----------------------创建空白文件或设置文件的时间
语法格式为“touch [参数] 文件名称”
常用参数 | 作用 |
-a | 仅修改“读取时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改atime与mtime |
mkdir-------------------------创建空白的目录
语法格式为“mkdir [参数] 目录名称”,还可以结合-p参数来递归创建出具有嵌套层叠关系的文件目录。
cp------------------------复制文件或目录
语法格式为“cp [参数] 源文件名称 目标文件名称”。
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
常用参数 | 作用 |
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p、d、r为上述参数) |
mv------------------------剪切或重命名文件
语法格式为“mv [参数] 源文件名称 目标文件名称”,如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实也就是对该文件进行了重命名操作
rm--------------------删除文件或目录
语法格式为“rm [参数] 文件 名称”。
常用参数 | 作用 |
-f | 强制执行 |
-i | 删除前询问 |
-r | 删除目录 |
-v | 显示过程 |
file----------------------查看文件的类型
语法格式为“file文件名称”
tar-------------------------对文件进行打包压缩或解压
语法格式为“tar参数 文件名称”。
常用参数 | 作用 |
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |