整理自知乎 硬核!高频Linux命令大总结,建议收藏~
侵权即删
关机重启注销
| 命令 |
作用 |
| shutdown -h now |
即刻关机 |
| shutdown -h 10 |
10分钟后关机 |
| shutdown -h 11:00 |
11:00关机 |
| shutdown -h +10 |
预定十分钟后关机 |
| shutdown -C |
取消指定时间关机 |
| shutdown -r now |
重启 |
| shutdown-r 10 |
10分钟后重启 |
| shutdown-r 11:00 |
11:00重启 |
| reboot |
重启 |
| init 6 |
重启 |
| init 0 |
立刻关机 |
| telinit |
关机 |
| poweroff |
立刻关机 |
| halt |
关机 |
| sync |
buff数据同步到磁盘 |
| logout |
退出登陆shell |
几个命令的作用都是用来关机,但是又有细微区别:
halt:halt被称为最简单的关机命令,它会通知硬件停止所有的CPU功能,执行时会杀死进程,执行sync系统调用文件系统写操作,完成后就会停止内核。
#halt -p相当于poweroff
#halt -f强制关机
#halt -i关机或重启前关闭所有网络接口
poweroff:关机同时关闭电源,会发送一个ACPI信号通知系统关机,在多用户方式下(run level3)下不建议使用。
#poweroff -f 强制关机
shutdown:关机同时关闭电源,只有拥有root权限的用户才可以执行(普通用户需要root授权),发送信号给init,使之改变运行级别(run level)来实现关机,关机或重启实质上就是运行级别的调整,所以也可以直接使用# init 0来关机,#init 6来重启。shutdown可设置广播信息来通知已登录的用户将关机,且会创建/run/nologin文件,禁止新用户登录。也就给了一定时间给给进程进行保存操作,被视为安全的关机命令。加参数时为如下意义:
#shutdown -r ###重启
#shutdown -P相当于poweroff
#shutdown -H相当于hatl
#shutdown -k不关机但是发送警告给用户
#shutdown 加时间,如# shutdown now / # shutdown 22:22可以在指定时间关机,在关机前,也可以执行#shutdown -c取消关机。
但是此指令没有-f强制参数
init:所有进程的祖先,进程号永远为1,linux系统操作中不可缺少的程序之一,所有发送TERM信号给init会终止所有用户进程、守护进程等。init定义了8个运行级别,这里相关的主要是0关机,6重启。
系统信息和性能查看
| 命令 |
作用 |
| uname -a |
查看内核、os、cpu信息 |
| uname -r |
内涵版本 |
| uname -m |
处理器架构 |
| arch |
处理器架构 |
| hostname |
计算机名 |
| who |
显示当前登陆系统的用户 |
| who am i |
显示登录时的用户名 |
| whoami |
显示当前用户名 |
| cat /proc/version |
linux版本信息 |
| cat /proc/cpuinfo |
cpu信息 |
| cat /proc/interrupts |
查看中断 |
| cat /proc/loadavg |
查看系统负载 |
| uptime |
查看系统运行时间、用户数、负载 |
| env |
环境变量 |
| lsusb -tv |
usb设备信息 |
| lspci -tv |
pci设备信息 |
| lsmod |
已加载的系统模块 |
| grep MemTotal /proc/meminfo |
内存总量 |
| grep MenFree /proc/meminfo |
空闲内存量 |
| free -m |
内存和交换区用量 |
| date |
系统日期时间 |
| cal 2021 |
2021日历表 |
| top |
动态显示cpu/内存/进程等情况 |
| vmstat 1 20 |
每一秒采一次系统状态,采集20次 |
| iostat |
查看id读写/cpu使用情况 |
| sar -u 1 10 |
查看cpu使用情况(1秒1次,10次) |
| sar -d 1 10 |
查询磁盘性能 |
用户和用户组
| 命令 |
作用 |
| useradd |
创建用户 |
| userdel -r |
删除用户 |
| usermod -g groupName userName |
修改用户的组 |
| usermod -aG groupName userName |
将用户添加到组 |
| usermod -s /bin/ksh -d /home/codepig -g dev test |
修改test用户的登陆shell,主目录,用户组 |
| group test |
查看test用户所在组 |
| groupadd groupName |
创建用户组 |
| groupdel groupName |
删除用户组 |
| groupmod -n newName oldName |
重命名用户组 |
| su - test |
切换到test用户环境 |
| passwd test |
修改test用户口令 |
| passwd |
修改口令 |
| w |
查看活动用户 |
| id test |
查看指定用户test信息 |
| last |
查看用户登陆日志 |
| crontab -l |
查看当前用户的计划任务 |
| cut -d: -f1 /etc/passwd |
查看系统所有用户 |
| cut -d: -f1 /etc/group |
查看系统所有组 |
网络和进程管理
| 命令 |
作用 |
| ifconfig |
网络接口属性 |
| ifconfig eth0 |
查看某网卡配置 |
| route -n |
查看路由表 |
| netstat -lntp |
查看所有监听端口 |
| netstat -antp |
查看已经建立的TCP链接 |
| netstat -lutp |
查看TCP/UDP的状态信息 |
| ifup eth0 |
启用eth0网路设备 |
| ifdown eth0 |
禁用 |
| iptables -L |
查看iptables规则 |
| ifconfig eth0 1921.168.1.1 netmask 255.255.255.0 |
配置ip地址 |
| dhclient eth0 |
以dhcp模式启动eth0 |
| route add -net 0/0 gw Gateway_IP |
配置默认网关 |
| rout add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 |
配置静态路由到达网络192.168.0.0/16 |
| route del 0/0 gw Gateway_IP |
删除静态路由 |
| hostname |
查看主机名 |
| host www.codesheep.cn |
解析主机名 |
| nslookup www.codesheep.cn |
查询DNS记录,查看域名解析是否正常 |
| ps -ef |
查看所有进程 |
| ps -ef | grep |
过滤指定进程 |
| kill -s name |
杀死指定名进程 |
| kill -s pid |
杀死指定pid进程 |
常见系统服务命令
| 命令 |
作用 |
| chkconfig --list |
列出系统服务 |
| service 服务名 status |
查看某个服务 |
| service 服务名 start |
启动 |
| service 服务名 stop |
终止 |
| systemctl status 服务名 |
查看 |
| start |
启动 |
| stop |
终止 |
| restart |
重启 |
| enable |
开机自启 |
| disable |
关闭自启 |
文件和目录操作
| 命令 |
作用 |
| cd |
进入指定目录 |
| cd .. |
返回上级 |
| cd ../.. |
回上两级目录 |
| cd |
进入个人主目录 |
| cd - |
回退上一步目录 |
| pwd |
显示当前路径 |
| ls |
查看文件目录列表 |
| ls -F |
查看目录中内容(显示是文件还是目录) |
| ls -l |
查看文件和目录详情列表 |
| ls -a |
查看隐藏文件 |
| ls -lh |
查看文件和目录的详情列表(增强可读性) |
| ls -lSr |
查看文件和目录列表(以文件大小升序查看) |
| tree |
显示文件和目录的树形结构 |
| mkdir |
创建目录 |
| mkdir dir1 dir2 |
同时创建俩目录 |
| mkdir -p /tmp/dir1/dir2 |
创建目录树 |
| rm -f file |
删除文件 |
| rmdir dir |
删除目录 |
| rm -rf dir |
删除目录及内容 |
| rm -rf dir1 dir2 |
同时删除俩目录及内容 |
| mv oldDir newDir |
移动|重命名目录 |
| cp file1 file2 |
复制文件 |
| cp dir/* . |
复制某目录下所有文件至当前目录 |
| cp -a dir1 dir2 |
复制目录 |
| cp -a /tmp/dir1 . |
复制一个目录到当前目录 |
| ln -s file link |
创建指定文件|目录的软连接 |
| ln file link |
创建指定文件|目录的硬链接 |
| find / -name file |
从根目录搜索文件|目录 |
| find / -user user |
搜索用户user的文件|目录 |
| find /dir -name *.bin |
搜索/dir 中带有.bin后缀的文件 |
| locate 关键词 |
快速定位文件 |
| locate *.mp4 |
寻找.mp4结尾的文件 |
| whereis 关键词 |
显示某二进制文件|可执行问价的路径 |
| which 关键词 |
查找系统目录下某二进制文件 |
| chmod ugo+rwx dir |
修改目录权限 |
| chmod ugo-rwx dir |
移除目录权限 |
| chown user file |
改变文件的所有者属性 |
| chown -R user file |
改变目录的所有者属性 |
| chgrp group file |
改变文件群组 |
| chown user:group file |
改变文件的所有人和群组 |
文件查看和处理
| 命令 |
作用 |
| cat |
查看文件内容 |
| cat -n file |
查看内容并标行 |
| tac file |
从最后一行反看文件内容 |
| more file |
查看一个长文件的内容 |
| less file |
类似more,但允许反向 |
| head -2 file |
查看文件前2行 |
| tail -2 file |
查看文件后2行 |
| tail -f /log/msg |
实时查看添加到文件的内容 |
| grep codesheep file |
在文件查找关键词codesheep |
| grep ^codesheep file |
在文件查找以codesheep开头的内容 |
| grep[0-9] file |
选择文件中所有包含数字的行 |
| sed \'s/s1/s2/g\' file |
全局替换文件中s1为s2 |
| sed ‘/^$/d\' file |
删除所有空白行 |
| sed \'/*#/d;/^$/d\' file |
删除所有注释和空白行 |
| sed -e \'1d\' file |
从文件中排出第一行 |
| sed -n \'/s1/p\' file |
查看只包含关键词\'s1\'的行 |
| sed -e \'s/s1//g\' file |
只删除s1 |
| sed -e \'s/*$//\' file |
删除每一行最后的空白字符 |
| sed -n \'1,5p;5q\' file |
查看从第一行到第五行内容 |
| sed -n \'5p:5q\' file |
查看第五行 |
| paste file file2 |
合并两个文件的内容 |
| paste -d \'+\' file file2 |
以\'+\'区分合并的文件内容 |
| sort file file2 |
排序两个文件内容 |
| comm -1 file file2 |
比较内容(去除file的内容) |
| comm -2 file file2 |
(去除file2的内容) |
| comm -3 file file2 |
去除共同内容 |
打包和解压
| 命令 |
作用 |
| zip xxx.zip file |
压缩至zip包 |
| zip -r xxx.zip file file2 dir |
将多个文件+目录打包 |
| unzip xx.zip |
解压 |
| tar -cvf xx.tar file |
创建非压缩tar包 |
| tar -cvf xx.tar file file2 dir |
将多个文件+目录打包 |
| tar -xvf xx.tar |
解压tar |
| tar -xvf xx.tar -C /dir |
指定目录解压 |
| tar -cvfj xx.tar.bz2 dir |
创建bz2压缩包 |
| tar -jxvf xx.tar.bz2 |
解压 |
| tar -cvfz xx.tar.gz dir |
创建gzip压缩包 |
| tar -zxvf xx.tar.gz |
解压 |
| bunzip2 xx.bz2 |
解压 |
| bzip file |
压缩 |
| gunzip xx.gz |
解压 |
| gzip file |
压缩 |
| gzip -9 |
最大程度压缩 |
rpm
| 命令 |
作用 |
| rpm -qa |
查看已安装rpm包 |
| rpm -q pkg_name |
查询某个rpm包 |
| rpm -q --whatprovides xx |
查询xx功能是哪个包提供的 |
| rpm -q --whatrequires xx |
被哪一个程序包依赖 |
| rpm -q --changelog xx |
xx包的更改记录 |
| rpm -qi pkg |
包的详细信息 |
| rpm -qd pkg |
包的提供文档 |
| rpm -qc pkg |
已安装包的配置文件 |
| rpm -ql pkg |
包安装了哪些文件 |
| rpm -qf file |
文件属于哪个包 |
| rpm -qR pkg |
包的依赖关系 |
| rpm -ivh xxx |
安装xxrpm包 |
| rpm -ivh --test xxx |
测试安装xx包 |
| rpm -ivh --nodeps xxx |
安装包时忽略依赖关系 |
| rpm -e xx |
卸载 |
| rpm -Fvh pkg |
升级已安装的包 |
| rpm -Uvh pkg |
升级包(未安装就安装) |
| rpm -V pkg |
包详细信息校验 |
yum
| 命令 |
作用 |
| yum repolist enabled |
显示可用源仓库 |
| search pkg |
搜索包 |
| install pkg |
下载并安装 |
| install --downloadonly pkg |
只下载 |
| list |
显示所有程序包 |
| list installed |
显示已安装 |
| list update |
显示可更新包 |
| check-update |
显示可升级包 |
| update |
更新所有包 |
| update pkg |
升级指定包 |
| deplist pkg |
列出包依赖关系 |
| remove pkg |
删除 |
| clean all |
清楚缓存 |
| clean packges |
清除缓存包 |
| clean headers |
清除缓存的header |
dpkg
| 命令 |
作用 |
| dpkg -c xx.deb |
列出包内容 |
| -i xx |
安装|更新包 |
| -r pkg |
移除 |
| -P pkg |
移除(不保留配置) |
| -l |
列出已安装 |
| -l pkg |
显示包大致信息 |
| -L pkg |
查看包安装的文件 |
| -s pkg |
查看包详细信息 |
| -unpack xx |
解开deb包内容 |
apt
| 命令 |
作用 |
| apt-cache search pkg |
搜索 |
| show |
获取包概览信息 |
| apt-get install pkg |
安装升级包 |
| purge |
卸载(包括配置) |
| remove |
卸载(不包括配置) |
| update |
更新包索引信息 |
| upgrade |
更新已安装包 |
| clean |
清理缓存 |