Linux系统管理常用命令介绍

张开发
2026/4/16 22:56:49 15 分钟阅读

分享文章

Linux系统管理常用命令介绍
find命令 - 根据路径和条件搜索指定文件find命令的功能是根据给定的路径和条件查找相关文件或目录其参数灵活方便且支持正则表达式结合管道符后能够实现更加复杂的功能是Linux系统运维人员必须掌握的命令之一。find命令通常进行的是从根目录/开始的全盘搜索有别于whereis、which、locate等有条件或部分文件的搜索。对于服务器负载较高的情况建议不要在高峰时期使用find命令的模糊搜索这会相对消耗较多的系统资源。语法格式1find[路径] [匹配条件] [动作]参数说明:路径是要查找的目录路径可以是一个目录或文件名也可以是多个路径多个路径之间用空格分隔如果未指定路径则默认为当前目录。expression是可选参数用于指定查找的条件可以是文件名、文件类型、文件大小等等。匹配条件 中可使用的选项有二三十个之多以下列出最常用的部份-name pattern按文件名查找支持使用通配符*和?。-type type按文件类型查找可以是f普通文件、d目录、l符号链接等。-size [-]size[cwbkMG]按文件大小查找支持使用或-表示大于或小于指定大小单位可以是c字节、w字数、b块数、kKB、MMB或GGB。-mtime days按修改时间查找支持使用或-表示在指定天数前或后days 是一个整数表示天数。-user username按文件所有者查找。-group groupname按文件所属组查找。动作:可选的用于对匹配到的文件执行操作比如删除、复制等。find 命令中用于时间的参数如下-amin n查找在 n 分钟内被访问过的文件。-atime n查找在 n*24 小时内被访问过的文件。-cmin n查找在 n 分钟内状态发生变化的文件例如权限。-ctime n查找在 n*24 小时内状态发生变化的文件例如权限。-mmin n查找在 n 分钟内被修改过的文件。-mtime n查找在 n*24 小时内被修改过的文件。在这些参数中n 可以是一个正数、负数或零。正数表示在指定的时间内修改或访问过的文件负数表示在指定的时间之前修改或访问过的文件零表示在当前时间点上修改或访问过的文件。正数应该表示时间之前负数表示时间之内。例如-mtime 0表示查找今天修改过的文件-mtime -7表示查找一周以前修改过的文件。关于时间 n 参数的说明n查找比 n 天前更早的文件或目录。-n查找在 n 天内更改过属性的文件或目录。n查找在 n 天前指定那一天更改过属性的文件或目录。实例查找当前目录下名为 file.txt 的文件1find. -namefile.txt将当前目录及其子目录下所有文件后缀为.c的文件列出来:1find. -name*.c将当前目录及其子目录中的所有文件列出1find. -typef查找 /home 目录下大于 1MB 的文件1find/home-size 1M查找 /var/log 目录下在 7 天前修改过的文件1find/var/log-mtime 7查找过去 7 天内被访问的文件:1find/path/to/search-atime -7在当前目录下查找最近 20 天内状态发生改变的文件和目录:1find. -ctime 20将当前目录及其子目录下所有 20 天前及更早更新过的文件列出:1find. -ctime 20查找 /var/log 目录中更改时间在 7 日以前的普通文件并在删除之前询问它们1find/var/log-typef -mtime 7 -okrm{} \;查找当前目录中文件属主具有读、写权限并且文件所属组的用户和其他用户具有读权限的文件1find. -typef -perm 644 -execls-l {} \;查找系统中所有文件长度为 0 的普通文件并列出它们的完整路径1find/ -typef -size 0 -execls-l {} \;找并执行操作例如删除1find/path/to/search-namepattern-execrm{} \;这个例子中-exec选项允许你执行一个命令{}将会被匹配到的文件名替代;表示命令结束。rpm命令 - RPM软件包管理器rpm命令来自英文词组redhat package manager的缩写中文译为“红帽软件包管理器”其功能是在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作常见的主流系统如RHEL、CentOS、Fedora等都采用这种软件包管理器推荐用固定搭配“rpm-ivh 软件包名”安装软件而卸载软件则用固定搭配“rpm -evh 软件包名”简单好记又好用。语法格式1rpm 参数 软件包名常用参数-a 查询所有套件。-b完成阶段套件档或-t 完成阶段套件档 设置包装套件的完成阶段并指定套件档的文件名称。-c 只列出组态配置文件本参数需配合-l参数使用。-d 只列出文本文件本参数需配合-l参数使用。-e套件档或--erase套件档 删除指定的套件。-f文件 查询拥有指定文件的套件。-h或--hash 套件安装时列出标记。-i 显示套件的相关信息。-i套件档或--install套件档 安装指定的套件档。-l 显示套件的文件列表。-p套件档 查询指定的RPM套件档。-q 使用询问模式当遇到任何问题时rpm指令会先询问用户。-R 显示套件的关联性信息。-s 显示文件状态本参数需配合-l参数使用。-U套件档或--upgrade套件档 升级指定的套件档。-v 显示指令执行过程。-vv 详细显示指令执行过程便于排错。实例安装软件1234# rpm -hvi dejagnu-1.4.2-10.noarch.rpm警告dejagnu-1.4.2-10.noarch.rpm: V3 DSA 签名NOKEY, key ID db42a60e准备...########################################### [100%]显示软件安装信息12# rpm -qi dejagnu-1.4.2-10.noarch.rpm【第1次更新 教程、类似命令关联】ps命令 - 显示进程状态ps命令来自英文单词process的缩写中文译为“进程”其功能是显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息例如进程的号码、发起者、系统资源处理器与内存使用占比、运行状态等。ps命令可帮助我们及时发现哪些进程出现“僵死”或“不可中断”等异常情‍况。 ps命令经常会与kill命令搭配使用以中断和删除不必要的服务进程避免服务器的资源浪费。语法格式1ps[options] [--help]ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A列出所有的进程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的进程用标准格式输出。-ef与aux一样但是是用bsd的格式输出au(x) 输出格式 :1USERPID %CPU %MEM VSZ RSS TTY STAT STARTTIMECMDUSER: 进程拥有者PID: pid进程ID%CPU: 占用的 CPU 使用率%MEM: 占用的内存使用率VSZ: 占用的虚拟内存大小表示如果一个程序完全驻留在内存的话需要占用多少内存空间RSS: 常驻集大小指明了当前实际占用了多少内存TTY: 终端的次要装置号码 (minor device number of tty)STAT: 该行程的状态:D: 无法中断的休眠状态 (通常 IO 的进程)R: 正在执行中S: 静止状态T: 暂停执行Z: 不存在但暂时无法消除W: 没有足够的记忆体分页可分配: 高优先序的行程N: 低优先序的行程L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)START: 进程开始时间TIME: 执行的时间COMMAND:所执行的指令实例查找指定进程格式1ps-ef |grep进程关键字例如显示 php 的进程123456# ps -ef | grep phproot 794 1 0 2020 ? 00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)www-data 951 794 0 2020 ? 00:24:15 php-fpm: pool wwwwww-data 953 794 0 2020 ? 00:24:14 php-fpm: pool wwwwww-data 954 794 0 2020 ? 00:24:29 php-fpm: pool www...显示进程信息123456789101112131415161718192021222324252627282930# ps -APID TTY TIME CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd3 ? 00:00:00 migration/04 ? 00:00:00 ksoftirqd/05 ? 00:00:00 watchdog/06 ? 00:00:00 events/07 ? 00:00:00 cpuset8 ? 00:00:00 khelper9 ? 00:00:00 netns10 ? 00:00:00 async/mgr11 ? 00:00:00 pm12 ? 00:00:00 sync_supers13 ? 00:00:00 bdi-default14 ? 00:00:00 kintegrityd/015 ? 00:00:02 kblockd/016 ? 00:00:00 kacpid17 ? 00:00:00 kacpi_notify18 ? 00:00:00 kacpi_hotplug19 ? 00:00:27 ata/0……省略部分结果30749 pts/000:00:15 gedit30886 ? 00:01:10 qtcreator.bin30894 ? 00:00:00 qtcreator.bin31160 ? 00:00:00 dhclient31211 ? 00:00:00 aptd31302 ? 00:00:00 sshd31374 pts/200:00:00bash31396 pts/200:00:00ps显示指定用户信息12345678910111213141516171819202122232425262728293031# ps -u root //显示root进程用户信息PID TTY TIME CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd3 ? 00:00:00 migration/04 ? 00:00:00 ksoftirqd/05 ? 00:00:00 watchdog/06 ? 00:00:00 events/07 ? 00:00:00 cpuset8 ? 00:00:00 khelper9 ? 00:00:00 netns10 ? 00:00:00 async/mgr11 ? 00:00:00 pm12 ? 00:00:00 sync_supers13 ? 00:00:00 bdi-default14 ? 00:00:00 kintegrityd/015 ? 00:00:02 kblockd/016 ? 00:00:00 kacpid……省略部分结果30487 ? 00:00:06 gnome-terminal30488 ? 00:00:00 gnome-pty-helpe30489 pts/000:00:00bash30670 ? 00:00:00 debconf-communi30749 pts/000:00:15 gedit30886 ? 00:01:10 qtcreator.bin30894 ? 00:00:00 qtcreator.bin31160 ? 00:00:00 dhclient31211 ? 00:00:00 aptd31302 ? 00:00:00 sshd31374 pts/200:00:00bash31397 pts/200:00:00ps显示所有进程信息连同命令行12345678910111213# ps -ef //显示所有命令连带命令行UID PID PPID C STIME TTY TIME CMDroot 1 0 0 10:22 ? 00:00:02/sbin/initroot 2 0 0 10:22 ? 00:00:00 [kthreadd]root 3 2 0 10:22 ? 00:00:00 [migration/0]root 4 2 0 10:22 ? 00:00:00 [ksoftirqd/0]root 5 2 0 10:22 ? 00:00:00 [watchdog/0]root 6 2 0 10:22 ?/usr/lib/NetworkManager……省略部分结果root 31302 2095 0 17:42 ? 00:00:00 sshd: rootpts/2root 31374 31302 0 17:42 pts/200:00:00 -bashroot 31400 1 0 17:46 ? 00:00:00/usr/bin/python/usr/sbin/aptdroot 31407 31374 0 17:48 pts/200:00:00ps-efuname命令 - 显示系统内核信息uname命令来自英文词组UNIX name的缩写其功能是查看系统主机名、内核及硬件架构等信息。如果不加任何参数默认仅显示系统内核名称相当于-s参数的作用。语法格式1uname[-amnrsv][--help][--version]常用参数-a 或--all 显示全部的信息包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等。。-m 或--machine 显示处理器类型。-n 或--nodename 显示主机名。-r 或--release 显示内核版本号。-s 或--sysname 显示操作系统名称。-v 显示操作系统的版本。--help 显示帮助。--version 显示版本信息。-p 显示处理器类型与 -m 选项相同。实例显示系统信息12uname-aLinux iZbp19byk2t6khuqj437q6Z 4.11.0-14-generic#20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux显示计算机类型12uname-mx86_64显示计算机名12uname-nrunoob-linux显示操作系统发行编号12uname-r4.11.0-14-generic显示操作系统名称12uname-sLinux显示系统版本与时间12uname-v#20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017kill命令 - 杀死进程kill命令的功能是杀死结束进程。Linux系统中如需结束某个进程既可以使用如service或systemctl这样的管理命令来结束服务也可以使用kill命令直接结束进程信息。 如使用kill命令后进程并没有结束则可以使用信号9进行强制杀死动作。语法格式1kill[options] PID常用参数-l列出所有可用的信号。-signal发送特定的信号给目标进程如-9表示发送 KILL 信号即强制终止进程。实例终止进程默认情况下kill命令发送SIGTERM信号15这可以请求进程终止。如果进程没有捕获这个信号它将被终止。1killPID其中 PID 是进程的 ID。发送指定信号通过-s选项可以发送指定的信号。1kill-s SIGNAL PID例如发送 SIGKILL信号9将立即结束进程不能被忽略或捕获。1kill-9 PID杀死进程组使用 -9 选项可以杀死整个进程组。1kill-9 -PID使用 kill -l 命令列出所有可用信号。最常用的信号是SIGKILL信号9立即结束进程不能被捕获或忽略。SIGTERM信号15正常结束进程可以被捕获或忽略。SIGSTOP信号19暂停进程不能被捕获、忽略或结束。SIGCONT信号18继续执行被暂停的进程。SIGINT信号2通常是CtrlC产生的信号可以被进程捕获或忽略。如终止 PID 为 1234 的进程1kill1234强制终止 PID 为 1234 的进程1kill-9 1234向 PID 为 1234 的进程发送 SIGSTOP1kill-s SIGSTOP 1234显示信号1234567891011121314# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN1 36) SIGRTMIN2 37) SIGRTMIN338) SIGRTMIN4 39) SIGRTMIN5 40) SIGRTMIN6 41) SIGRTMIN7 42) SIGRTMIN843) SIGRTMIN9 44) SIGRTMIN10 45) SIGRTMIN11 46) SIGRTMIN12 47) SIGRTMIN1348) SIGRTMIN14 49) SIGRTMIN15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX杀死指定用户所有进程:12kill-9 $(ps-ef |grephnlinux)//方法一 过滤出hnlinux用户进程kill-u hnlinux//方法二注意事项在使用kill命令时需要具有相应的权限否则可能无法终止进程。某些进程可能需要发送多次信号才能终止比如一些守护进程。强制杀死进程可能会导致数据丢失或其他副作用因此应谨慎使用。top命令 - 实时监控Linuxtop是一个在 Linux 和其他类 Unix 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图显示系统的整体性能信息以及正在运行的进程的相关信息。。语法格式1top[-] [d delay] [q] [c] [S] [s] [i] [n] [b]参数说明-d 秒数指定 top 命令的刷新时间间隔单位为秒。-n 次数指定 top 命令运行的次数后自动退出。-p 进程ID仅显示指定进程ID的信息。-u 用户名仅显示指定用户名的进程信息。-H在进程信息中显示线程详细信息。-i不显示闲置idle或无用的进程。-b以批处理batch模式运行直接将结果输出到文件。-c显示完整的命令行而不截断。-S累计显示进程的 CPU 使用时间。显示信息top 命令的一些常用功能和显示信息总体系统信息第一行信息当前时间15:08:39系统远行时间28天5时35分当前登陆用户数 1系统负载即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值第二行信息进程总数527正在运行的进程数2睡眠的进程数525停止的进程数0僵尸进程数0第三行信息us用户空间占用CPU百分比sy内核空间占用CPU百分比ni用户进程空间内改变过优先级的进程占用CPU百分比id空闲CPU百分比wa等待输入输出的CPU时间百分比hi硬中断Hardware IRQ占用CPU的百分比si软中断Software Interrupts占用CPU的百分比st用于有虚拟cpu的情况用来指示被虚拟机偷掉的cpu时间第四行信息物理内存总量使用的物理内存总量空闲内存总量用作内核缓存的内存量第五行信息交换区总量使用的交换区总量空闲交换区总量缓冲的交换区总量系统负载load average的含义load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。load average数据是每隔5秒钟检查一次活跃的进程数然后按特定算法计算出的数值。

更多文章