结合日常工作中常用的命令,举例和附图加以说明。照例,开篇推荐linux入门的学习资源(授人以鱼同时授人以渔):
首先介绍linux命令的基本常识:
(1)大小写敏感,如 "top"可以识别,"Top" 则comand not found
(2)-h (部分命令支持,如冲突则不支持)和 --help(大多数命令支持),查看命令帮助信息,如 rmdir --help,提示“ rmdir [OPTION]... DIRECTORY..”
(3)命令有缩写和全拼两种格式,如 rmdir 的"-p" <=> "--parents"
(4)CTRL + C ,exit 当前正在执行的命令;CTRL + Z , stop 当前正在执行的命令
(5)命令格式说明,“【】”括起来表示选项可选,接下来紧跟的详细参数,如ls命令说明:“ls [OPTION]... [FILE]...”
(6)可通过“|”进行命令拼接,如“ps -ef | grep java | grep -v grep”
(7)linux 命令或者参数在输入1个或2个字符后,按Tab键,会列出可选命令和参数,如果输入3个或者4个字符,可查找出唯一的命令和参数,将自动补全
(8)键盘“PgUp”和“PgDn"及 键盘“↑”和“↓” 可以切换到上一个或者下一个已输入的命令, 按键“←” 和“→” ,可以在命令里左右移动光标
(8)linux里所有东西都被当做文件,不像windows有硬件设备的概念,如磁盘、CPU等,所以你装的所有软件,如mysql等都是文件
列表汇总概论:
命令 | 功能 | 命令 | 功能 | 命令 | 功能 |
ls | 查看当前目录下有哪些文件和文件夹 | whereis | 查找可执行的软件命令在哪里 | clear/reset/ CTRL + l | 清屏——切换到下一个新的屏幕 |
pwd | 显示当前目录的完整路径 | cd | 改变所在目录 | vi | 文本编辑器 |
cat | 输出文件的内容到屏幕 | mkdir | 创建目录 | vim | 程序编辑器 |
sh | 执行shell脚本 | rmdir | 删除目录 | kill | 杀死进程 |
yum | 软件包管理器 | mv | 移动文件 | ifconfig | 显示或者设置网络设备 |
sudo | 以系统管理员的身份执行指令,类似于windows CMD,右键选择"以管理员身份运行“” | rm | 删除文件 | cal | 日历 |
df | 查看磁盘使用情况 | cp | 复制文件 | date | 日期 |
stat | 显示文件或者文件系统的状态 | touch | 更新文件的访问时间和修改时间,如果不存在,则创建之 | bc | 计算器 |
详细论述:
- ls
查看当前目录下有哪些文件及文件夹,具体命令行参数说明见下表:
常用选项 | 含义 |
-l | 一行显示一个文件或者文件夹,并显示诸如文件大小、文件最后修改时间、owner等信息 |
-a | 列出所有文件及文件夹,包括隐藏文件 |
-R | 把子文件夹下的文件也全部列出来,可以“ls -R -l”组合用 |
-S | 按文件大小倒叙列出所有文件 |
-h | 以人类可读的形式列出文件大小(K,M,G) |
如在 linux的根目录下,输入“ls”,结果如下图:
如果是在包含有文件的目录下,输入“ls”,比如在root下,则会包含文件如 “install.log” 及文件夹 “Music” 等等,结果如下图:
组合命令,“ls -S -h -l”,结果如下图:
- pwd
显示当前的完整路径名,如下图:
- cd
切换当前目录,具体语法: cd [dirName],具体命令行参数说明见下表:
选项 | 含义 |
.. | 切换到父级目录 |
/ | 切换到根目录 |
~ | 切换到home根目录 |
- whereis
查找命令—具体语法: whereis [ -sbmu ] [ -SBM dir ... -f ] name...,例如"whereis mysql",结果如下图:
- cat
输出文件内容到终端,例如“cat install.log”,结果如下图:
- sh
- ifconfig
显示或者设置网络设备,输入“ifconfig”, 结果如下图(可以看到自己的ipv4 、ipv6 地址等信息):
- kill
- rm
- mv
- cp
- touch
更新文件的访问时间和修改时间,如果文件不存在,则创建之。如我在root根目录,“touch test2019.txt”,文件不存在则创建之,效果如下图:
- mkdir
创建目录,
- rmdir
- df
- vi 及vim
- yum
- sudo
- stat
显示文件或者文件系统的状态,具体语法: stat [OPTION]... FILE...,例如“stat a.txt”, 结果如下图:
- bc
内置计算器,"bc -q" 不会输出关于bc软件的一些信息,直接用(回车输出结果),如下图:
- cal
日历
- date
日期—具体语法: date [OPTION]... [+FORMAT],例如“date ‘+%Y % m%d %H %m’”,输出当期日期的年月日、时、分,结果如下图:
linux监控的几个常用命令(对于服务器后端程序猿很重要,必须掌握):
命令 | 功能 | 命令 | 功能 |
iostat | 统计CPU及网络、设备和分区IO的数据 | vmstat | 展示给定时间服务器的状态值(包括CPU使用率、内存使用状况、虚拟内存交换情况、IO读写情况),很常用 |
free | 显示内存状况,包括空闲以及被使用的物理内存、交换内存以及被kernel使用的缓冲区 | sar | System Activity report 系统活动报告,是目前Linux最为全面的系统性能分析工具之一 |
ps | 显示当前正在运行的所有进程的快照 | strace | 跟踪进程执行时系统调和所接收的信号 |
top | 实时显示系统中各个进程的资源(cpu和load)占用状况,类似于windows任务管理器 | tcpdump | dump the traffic on a network, 根据用户定义对网络上的包进行截获的包分析工具,功能和查看pcap包的wireshark工具差不懂 |
- iostat
统计CPU及网络、设备和分区IO的数据,具体命令行参数见下表:
选项 | 含义 |
-d | 显示设备(磁盘)使用状态 |
-k | 某些使用block为单位的列强制使用kilobytes/每秒 |
-x | 显示更多统计信息 |
-c | 显示CPU利用率 |
输入"iostat -x”,结果如下图:
avg-cpu统计信息每段含义见下表:
参数 | 含义 |
%user | |
%nice | |
%system | |
%iowait | 特别重要 |
%steal | |
%idle |
设备(device)输出结果每段含义详细说明见下表:
参数 | 含义 |
rrqm/s | |
wrqm/s | |
r/s | |
w/s | |
rsec/s | |
wsec/s | |
avgrq-sz | |
avgqu-sz | |
await | |
svctm | |
%util |
参考 iostat(1) - Linux man page
- ps
- grep
- top
实时显示系统中各个进程的资源占用状况,类似于windows任务管理器,默认3秒钟刷新一次,太快了,看不过来,-d 可以指定,多少时间更新一次
具体命令行参数说明见下表:
选项 | 含义 |
-a | 按照内存使用率排序 |
-d | 设置多长时间(以秒为单位)刷新一次结果 |
-p <pid> | 查看指定进程ID的信息 |
-u <username> | 查看指定用户名的信息 |
-i | 不显示任何闲置 (idle) 或僵尸 (zombie) 的进程 |
-n iterations | 指定更新多少次信息后终止 |
-c | 显示完整命令,如mysql会显示 “/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql” |
-s | 安全模式 |
-S | 累积时间模式,开启此模式,会列出该进程及它已经死掉的子进程所使用的CPU时间 |
例如,“top -d 30” —— 30秒刷新一次(默认按cpu占用率排序),结果如下图:
输出结果前5行(统计的整体信息)的每一段的含义如下表所示:
行 | 段1含义 | 段2含义 | 段3含义 | 段4含义 | 段5含义 | 段6含义 | 段7含义 | 段8含义 |
1 - top | 13:43:10 - 当前时间 | up 4:21 - 系统运行时间,格式为"时:分" | 1 user - 当前登录用户数 |
load average: 0.01, 0.04, 0.01 - 系统负载,即任务队列的平均值 三个数值依次为"1分钟5分钟 15分钟”到目前的平均值 |
||||
2 - Tasks | 1012 total - 进程总数 | 1 running - 正在运行的进程数 | 1095 sleeping - 睡眠的进程数 | 6 stopped - 停止的进程数 | 0 zombie - 僵尸进程数 | |||
3 - Cpu(s) | 0.8%us - 用户空间占用CPU百分比 | 0.1%sy - 内核空间占用CPU百分比 | 0.0%ni - 用户进程空间改变过优先级的占CPU百分比 | 99.2%id - 空闲CPU百分比 | 0.0%wa - 等待输入输出的CPU百分比 | 0.0%hi - | 0.0%si - | 0.0%st - |
4 - Mem | 132173688k total - 物理内存总量 | 38002800k used - 已使用的物理内存总量 | 94170888k free - 空闲内存总量 | 208420k buffers - 用于内核缓存的内存总量 | ||||
5 -Swap | 4194600k total - 交换区总量 | 0k used - 已使用的交换区总量 | 4194300k free - 空闲交换区总量 | 2624596k cached - 缓冲的交换区总量 |
在top命令模式下,按“f”键,会显示每个column的详细信息,如下图:
每一列的含义翻译成中文如下表所示:
列名 | 含义 |
PID | 进程ID |
USER | 用户名 |
PR | 进程优先级 |
NI | nice value,不知道怎么翻译好 |
VIRT | 进程使用的虚拟内存总量(kb) |
RES | 进程使用的、未被换出的物理内存大小 |
SHR | 共享内存大小(kb) |
S | 进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程当前使用的可被共享的内存容量 |
TIME+ | task自启动以来,累计占用cpu时间,精确到百分之一秒 |
COMMAND | 命令行或者程序名 |
- free
未完待续,空了接着完善
*****************************************************************************************************
精力有限,想法太多,专注做好一件事就行
- 我只是一个程序猿。5年内把代码写好,技术博客字字推敲,坚持零拷贝和原创
- 写博客的意义在于锻炼逻辑条理性,加深对知识的系统性理解,锻炼文笔,如果恰好又对别人有点帮助,那真是一件令人开心的事
*****************************************************************************************************
原文地址:https://www.cnblogs.com/NaughtyCat/p/most-useful-linux-command-in-work.html