常见执行Linux命令的格式:命令名称 [命令参数] [命令对象] ;
注意:命令名称,命令参数,命令对象之间使用空格分隔;
命令对象一般是指要处理的文件,目录,用户等资源,而命令参数可以用长格式(完整的选项名称),也可以使用短格式(单个字母的缩写),两者分别用--与-作为前缀。
长短格式示例:
长格式:man --help;
短格式:man -h;
查看帮助命令:man
man命令中常用按键用途:
空格键:向下翻一页;
PaGe down:向下翻一页;
PaGe up:向上翻一页;
home:直接前往首页;
end:直接前往尾页;
/:从上至下搜索某个关键词,如:/whatis;
?:从上至下搜索某个关键词,如:?whatis;
n:定位到下一个搜索到的关键词;
N:定位到上一个搜索到的关键词;
q:退出帮助文档;
man命令帮助信息的结构以及意义:
NAME:命令的名称;
SYNOPSIS:参数的大致使用方法;
DESCRIPTION:介绍说明;
EXAMPLES:演示(附带简单说明);
OVERVIEW:概述;
DEFAULTS:默认的功能;
OPTIONS:具体的可用选项(带介绍);
ENVIRONMENT:环境变量;
FILES:用到的文件;
SEE ALSO:相关的资料;
HISTORY:维护历史与联系方式;
系统工作命令:
echo:命令用于在终端输出字符串或变量提取后的值;
格式:echo [字符串 | $变量];
示例:把指定字符串输出到终端,使用$变量的方式提取变量SHELL的值;
date:命令用于显示及设置系统的时间或日期;
格式:date [选项] [+指定的格式];
date命令的参数以及作用:
%t:Tab键;
%H:小时(0~23);
%I:小时(0~12);
%M:分钟(00~59);
%S:秒(00~59);
%j:今年中的第几天;
示例:显示当前系统时间,使用格式查看当前系统时间,重置系统时间,查看今天是今年的第几天;
reboot:重启系统;
格式:reboot;
poweroff:关闭系统;
格式:poweroff;
wget:用于在终端中下载网络文件;
格式:wget [参数] 下载地址;
wget常用参数以及作用:
-b:后台下载模式;
-P:下载到指定目录;
-p:下载页面内所有资源,包括图片,视频等;
-t:最大尝试次数;
-c:断点续传;
-r:递归下载;
示例:
下载Nginx文件
下载网页,下载完成后自动保存到当前路径下一个名为www.baidu.com的目录中
ps:用于查看系统中的进程状态;
格式:ps [参数];
ps命令的参数以及作用:
-a:显示所有进程(包括其他用户的进程);
-u:用户以及其他详细信息;
-x:显示没有控制终端的进程;
一般情况下需要配合管道符(grep)使用用来查看指定进程名的进程信息;
在Linux系统中的命令参数有长短格式之分,长格式与长格式之间不能合并,长格式与短格式之间也不能合并,
但短格式与短格式之间可以合并,合并后仅保留一个-(减号)即可;另外ps命令可以不加减号(-),因此也可直接写成ps aux;
USER:进程的所有者;
PID:进程ID号;
%CPU:cpu占用率;
%MEM:内存占用率;
VSZ:虚拟内存使用量(单位KB);
RSS:占用的固定内存量(单位KB);
TTY:所在终端;
-
STAT:进程状态;
START:被启动的时间;
TIME:时间使用cpu时间;
COMMAND:命令名称与参数;
Linux系统中常见的进程状态:运行,中断,不可中断,僵死与停止;
R(运行):进程正在运行或在运行队列中等待;
S(中断):进程处于休眠中,当某个条件形成后或接收到信号时,则脱离该状态;
D(不可中断):进程不响应系统异步信号,即便使用kill命令也不能将其中断;
Z(僵死):进程已经终止,当进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放;
T(停止):进程收到停止信号后停止运行;
top:用于动态地监视进程活动与系统负载信息;
格式:top;
下图分别是:
系统时间,运行时间,登录终端数,系统负载(三个数分别为1分钟,5分钟,15分钟内的平均值,值越小意味着负载越低);
进程总数,运行中的进程数,睡眠中的进程数,停止的进程数,僵死的进程数;
用户占用资源百分比,系统内核占用资源百分比,改变过优先级的进程资源百分比,空闲的资源百分比,例如:99.7 id表示有99.7%的cpu是空闲;
物理内存总量,内存空闲量,内存使用量,作为内核缓存的内存量;
虚拟内存总量,虚拟内存空闲量,虚拟内存使用量,已被提前加载的内存量;
pidof:用于查询某个指定服务进程的PID值;
格式:pidof [参数] [服务名];
kill:用于终止某个指定PID的服务进程;
格式:kill [参数] [进程PID号];
killall:用于终止某个指定名称的服务所对应的全部进程;
格式:killall [参数] [进程名称];
系统状态检查命令:
ifconfig:用于获取网卡配置与网络状态等信息;
格式:ifconfig [网络设备] [参数];
主要查看网卡名称,inet参数后面的IP地址,ether参数后面的网卡物理地址(MAC地址),以及RX,TX的接收数据包与发送数据包的个数及累计流量。
uname:用于查看系统内核与系统版本等信息;
格式:uname [-a];
在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统的内核名称,主机名,内核发行版本,节点名,系统时间,硬件名称,硬件平台,处理器类型已经操作系统名称等信息;
uptime:用于查看系统的负载信息;
格式:uptime;
显示当前系统时间,系统已运行时间,启动终端数量以及平均负载值等信息(最近1分钟,5分钟,15分钟)。
free:用于显示当前系统中内存的使用量信息;
格式:free [-h];
-b:以Byte为单位显示;-k:以KB为单位显示;-m:以MB为单位显示;-g:以GB为单位显示;-s:以指定秒执行一次;
total:内存总量;used:已用量;free:空闲的或可以使用的内存总量;
shared:进程共享的内存量;buff:磁盘缓存的内存量;available:可以使用的内存总量;
who:用于查看当前登入主机的用户终端信息;
格式:who [参数];
last:用于查看所有系统的登录记录;
格式:last [参数];
使用last命令可以查看本机的登记记录;
history:用于显示历史执行过的命令;
格式:history [-c];
history命令能显示当前用户在本地计算机中执行过的最近1000条记录。
可以自定义/etc/profile文件中的HISTSIZE变量值。
历史命令被保存到用户家目录中的.bash_history文件中。
可以使用history -c清空历史记录;
sosreport:用于手机系统配置以及架构信息并输出诊断文档。
格式:sosreport;
简单收集系统的运行状态和服务配置信息。
工作目录切换命令:
pwd:用于显示用户当前所处的工作目录;
格式:pwd [选项];
cd:用于切换工作路径;
格式:cd [目录名称];
cd-:返回到上一次所处的目录;
cd~:切换到当前用户的家目录;
cd ..:进入上级目录,点与cd有空格;
ls:用于显示目录中的文件信息;
格式:ls [选项] [文件];
ls -a:显示包含隐藏文件;
ls -ld /data查看目录属性信息;
cat:用于查看纯文本文件(内容较少的);
格式:cat [选项] [文件];
cat -n 文件名:显示内存顺便显示行号;
more:用于查看纯文本文件(内容较多的);
格式:more [选项] 文件;
head:用于查看纯文本文件的前N行;
格式:head [选项] [文件];
head -n 20 文件名:查看文本前20行内容;
tail:用于查看纯文本文件的后N行或持续刷新内容;
格式:tail [选项] [文件];
tr:用于替换文本文件的字符;
格式:tr [原始字符] [目标字符];
将英文全部替换为大写;
wc:用于统计指定文本的行数,字数,字节数;
格式:wc [参数] 文本;
-l:只显示行数;-w:只显示单词数;-c:只显示字节数;
stat:用于查看文件的具体存储信息和时间等信息;
格式:stat 文件名称;
cut:用于按"列"提取文本字符;
格式:cut [参数] 文本;
提取passwd文件中的用户名信息,即提取以冒号为间隔符号的第一列内容:
diff:用于比较多个文本文件的差异;
格式:diff [参数] 文件;
使用diff --brief显示比较后的结果;
使用-c命令查看具体不同内容;
文件目录管理命令:
touch:用于创建空白文件或设置文件的时间;
格式:touch [选项] [文件];
touch命令的参数以及作用:
-a:仅修改“读取时间”;
-m:仅修改"修改时间";
-d:同时修改atime与mtime;
先使用ls命令查看一个文件的修改时间,然后修改这个文件后,最后通过touch命令把修改时间设置为其他时间;
mkdir:用于创建空白的目录;
格式:mkdir [选项] 目录;
创建txt目录:
cp:用于复制文件或目录;
格式:cp [选项] 源文件 目标文件;
cp命令的参数以及作用:
-p:保留原始文件的属性;
-d:若对象”链接文件“,则保留改”链接文件“的属性;
-r:递归持续复制(用于目录);
-i:若目标文件存在则询问是否覆盖;
-a:相当于-pdr(p,d,r为上述参数);
将robots.txt复制到txt目录中:
mv:用于剪切文件或者文件重命名;
格式:mv [选项] 源文件 [目标路径 | 目标文件名];
rm:用于删除文件或目录;
格式:rm [选项] 文件;
dd:用于按照指定大小和个数的数据块来复制文件或者转换文件;
格式:dd [参数];
dd命令的参数以及作用:
if:输入的文件名称;
of:输出的文件名称;
bs:设置每个"块"的大小;
count:设置要复制“块”的个数;
它能够让用户按照指定大小 和个数的数据块来复制文件的内容。还可以在复制过程中转换其中的数据;
file:用于查看文件的类型;
格式:file 文件名;
由于文本,目录,设备等所有这些一切都称为文件,我们不能单凭后缀知道具体的文件类型;
打包压缩与搜索命令:
tar:用于对文件进行打包压缩或压缩;
格式:tar [选项] [文件];
tar命令的参数以及作用:
-c:创建压缩文件;
-x:解压压缩文件;
-t:查看压缩包内有哪些文件;
-z:用Gzip压缩或解压;
-j:用bzip2压缩或解压;
-v:显示压缩或解压的过程;
-f:目标文件名;
-p:保留原始的权限与属性;
-P:使用绝对路径来压缩;
-
-C:指定压缩到的目录;
grep:用于在文本中执行关键词搜索,并显示匹配的结果;
格式:grep [选项] [文件];
grep命令的参数与作用:
-b:将可执行文件当作文本文件来搜索;
-c:仅显示找到的行数;
-i:忽略大小写;
-n:显示行号;
-v:反向选择--仅列出没有“关键词”的行;
查找当前系统中不允许登录系统的所有用户信息:
find:用于按照指定条件来查找文件;
格式:find [查找路径] 寻找条件 操作;
find命令的参数以及作用:
-name:匹配名称;
-perm:匹配权限(mode为完全匹配,-mode为包含即可);
-user:匹配所有者;
-group:匹配所有组;
-mtim -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:匹配文件的大小(+500KB查找超过500KB文件,-500KB查找小于500KB的文件);
-prune:忽略某个目录;
-exec ...... {} \:后面可跟用于进一步处理搜索结果的命令;
查找该目录以host开头的文件列表:
查到整个系统权限中包含 SUID权限(-4000)的所有文件;
在整个文件系统中查到所有归属root用户的文件并复制到/root/findresults目录:
以上内容以及后面分享的都来自《Linux就该这么学》书中的学习笔记;
閱讀更多 JavaCodingfarmer 的文章