查看原文
其他

Linux 运维必备 150 个命令汇总

Java后端 2022-09-05
本文章盘点了 Linux 运维必备 150 个命令,请配合下面的网站使用。定位你需要使用的命令,然后去这个网站查询详细用法即可。
地址:wangchujiang.com/linux-command/

这个网站来自 GitHub 项目:linux-command,更多有用的 GitHub 项目可以看看这篇文章:推荐几个有用的 GitHub 项目

线上查询及帮助命令
man:全拼manual,用来查看系统中自带的各种参考手册。
help:用于显示shell内部命令的帮助信息。
文件和目录操作命令
ls:全拼list,列出目录的内容及其内容属性信息。
cd:全拼change directory,切换当前工作目录至dirName(目录参数)。其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home目录。另外,“~”也表示为home目录的意思,“.”是表示目前所在的目录,“..”则表示目前目录位置的上一层目录。
cp:全拼copy,复制文件或目录。
find:用来在指定目录及目录下查找文件。
mkdir:全拼make directories,创建目录。
mv:全拼move,移动或重命名文件。
pwd:全拼print working directory,显示当前工作目录的绝对路径。
rename:可用字符串替换的方式批量改变文件名。
rm:全拼remove,删除一个或多个文件或目录。必须格外小心地使用该命令。
rmdir:全拼remove empty directories,删除空目录。
touch:修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
tree:以树状图列出目录的内容。它会列出指定目录下的所有文件,包括子目录里的文件。
basename:显示文件名。用于去掉文件名的目录和后缀。
dirname:显示给定路径的目录部分。
chattr:全拼change file attributes,改变文件的扩展属性。
lsattr:全拼list file attributes,显示文件扩展属性。
file:用来识别文件类型。
md5sum:用于生成和校验文件的md5值。它会逐位对文件的内容进行校验,它常用于检查文件的完整性。
查看文件及内容处理命令
cat:全拼concatenate,用于连接多个文件并且打印到屏幕输出或重定向到指定文件中,可查看文件内容。
tac:cat的反向拼写,因此命令的功能为反向显示文件内容。文件内容的最后一行先显示,第一行最后显示。
more:一页一页的形式显示文件内容,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,按 h 。
less:less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
head:显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
tail:查看文件尾部内容,有一个常用的参数 -f 常用于查阅正在改变的文件。可以看到最新的文件内容。
cut:将文件的每一行按指定分隔符分割并输出。
split:分割文件为不同的小片段。
paste:用于合并文件的列。paste指令会把每个文件以列对列的方式,一列列地加以合并。
sort:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序。
uniq:全拼uniqique,用于检查及删除文本文件中重复出现的行列。
wc:统计文件的行数、单词数或字节数等。
iconv:转换文件的编码格式。
dos2unix:是将Windows DOS格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为\\r\\n ,而Unix&Linux文件的换行符为\\n.。dos2unix命令其实就是将文件中的\\r\\n 转换为\\n。
diff:全拼difference,diff以逐行的方式比较文件的差异。
vimdiff:命令行可视化文件比较工具,常用于文本文件。
rev:全拼reverse,rev命令将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推。
grep/egrep:全拼(Extend)Global standard Research Expression Print out the line,是一种文本搜索工具,可以通过使用指定的通配符/正则表达式来实现文本搜索功能。
join:用于将两个文件中,指定栏位内容相同的行连接起来。找出两个文件中,指定栏位内容相同的行,并加以合并,再标准输出。
tr:拼translate,tr命令用于转换或删除文件中的字符。tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
vi/vim:vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
文件压缩及解压缩命令
tar:tar命令是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
unzip:unzip命令用于解压缩zip文件。
gzip:gzip命令用于压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。
zip:zip命令可以用来将文件压缩成为常用的zip格式。
信息显示命令
uname:全拼Unix name,用于显示系统信息。
hostname:hostname命令用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。
dmesg:全拼diagnostic message,用于显示开机信息,诊断系统故障。kernel会将开机信息存储在ring buffer中。若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
uptime:显示系统运行时间及负载。
stat:全拼status,用于显示文件和文件系统状态属性。
du:全拼disk usage,显示指定的目录或文件所占用的磁盘空间。
df:全拼disk free,用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。
top:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。
free:free命令显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。
date:date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式。
cal:全拼calendar,cal命令用来显示公历日历。
搜索文件命令
which:which命令用于查找文件。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
find:从磁盘遍历查找文件或目录。
whereis:该指令会在特定目录环境变量PATH路径查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
locate:locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。一般情况我们只需要输入 locate your_file_name 即可查找指定文件。locate与find 不同: find 是去硬盘找,locate 只在资料库中找。locate的速度比find快,它并不是真的查找,而是查数据库。
用户管理命令
useradd:建立用户帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
usermod:修改系统已经存在的用户属性。
userdel:userdel命令用于删除用户帐号。若不加参数,则仅删除用户帐号,而不删除相关文件。
groupadd:用于创建一个新的用户工作组。新工作组的信息将被添加到系统文件中。
passwd:全拼password,passwd命令用来更改使用者的密码。
chage:全拼change,chage命令是用来修改帐号和密码的有效期限。
id:显示用户以及所属群组的实际与有效ID。
su:全拼Switch User,su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
visudo:visudo编辑/etc/sudoers文件的专属命令。sudoers文件的默认权限是440,即默认无法修改,visudo需要超级用户权限,可以在不更改sudoers文件权限的情况下,直接修改sudoers文件。
sudo:sudo命令可以把某些超级用户权限分类有针对性授权给指定的普通用户,并且普通用户不需要知道root密码就可以使用得到的授权。也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。这样用户就可以通过自己的普通帐户登录实现利用root的权限来管理系统了,当然也就不需要有root账号及密码了。
基础网络操作命令
telnet:telnet命令使用TELNET协议远程登录。执行telnet指令开启终端机阶段作业,并登入远端主机。
ssh:使用SSH加密协议远程登录。
scp:全拼secure copy,用于不同主机之间复制文件。, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
wget:用来从指定的URL下载文件。
ping:测试主机之间网络的连通性。
route:显示和设置linux系统的路由表。
ifconfig:全拼interfaces config,通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。
ifup:启动网卡。
ifdown:关闭网卡。
netstat:显示网络状态。利用netstat指令可让你得知整个Linux系统的网络情况。
ss:全拼Socket Statistics,用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
深入网络操作命令
nmap:全拼Network Mapper,是Linux下的网络扫描和嗅探工具包。nmap是在网络安全渗透测试中经常会用到的强大的扫描器。
lsof:全名list open files,列出当前系统打开文件的工具。在linux系统环境下,任何事物都可以以文件形式存在,通过文件不仅可以访问常规的数据,还可以访问网络连接和硬件。
mail:电子邮件发送和接收工具。
mutt:邮件管理命令。
nslookup:交互式查询互联网DNS服务器的命令。
dig:常用的域名查询工具,可以用来测试域名系统工作是否正常。
host:常用的分析域名查询工具,可以用来测试域名系统工作是否正常。
traceroute:显示数据包到主机间的路径。traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
tcpdump:免费的网络分析工具。TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。
有关磁盘与文件系统的命令(16个)
mount:用于挂载Linux系统外的文件。
umount:用于卸除文件系统。
fsck:全拼file system check,用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
parted:磁盘分区命令,没有磁盘大小限制。针对大于2TB的硬盘,需要采用GPT分区,使用parted命令进行操作 。
mkfs:全拼make filesystem,格式化创建Linux文件系统。常见的文件系统有ext2,ext3, ext4 , vfat等。
partprobe:从kernel重新读取分区信息。
e2fsck:检查ext2/ext3/ext4类型文件系统。
mkswap:用于设置交换区(swap area)。mkswap可将磁盘分区或文件设为Linux的交换区。
swapon:启用交换分区。
swapoff:关闭交换分区。
sync:在 linux/unix 系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync 命令则可用来强制将内存缓冲区中的数据立即写入磁盘。
resize2fs:调整ext2/ext3/ext4文件系统大小。
系统权限及用户授权相关命令
chmod:全拼Change mode,Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。chmod命令可以控制文件如何被他人所调用。
chown:全拼Change owner,Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。chown将指定文件的拥有者改为指定的用户或组 。
chgrp:全拼Change group,用于变更文件或目录的所属群组。
umask:显示或设置权限掩码。在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw- ,创建目录的默认权限 drwxrwxrwx ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。
查看系统用户登陆信息的命令
whoami:显示当前有效的用户名称。
who:显示目前登录系统的用户信息。
w:显示已经登陆系统的用户列表,并显示用户正在执行的指令。
last:用于显示用户最近登录信息。
lastlog:显示系统中所有用户最近一次登录信息。
users显示当前登录系统的所有用户的用户列表。
finger:显示本地主机现在所有的用户的登陆信息。
内置命令及其它
echo:打印变量,或直接输出指定的字符串。
printf:将结果格式化输出到标准输出。
rpm:管理rpm包的命令。rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
yum:yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
watch:周期性的执行给定的命令,并将命令的输出以全屏方式显示。
alias:用于设置指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile(全局生效)或.bashrc(当前用户生效)中设定指令的别名。别名的作用:1)通过给危险命令加一些保护参数,防止人为误操作。2)把很多复杂的字符串或命令变成一个简单的字符串或命令。
unalias:用于删除别名。
date:用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式。
clear清除屏幕。
history:显示历史记录和执行过的指令命令。
eject:弹出光驱。
time用于测量一个命令的运行时间。
nc:一个功能强大的网络工具,通过它不仅可以探测端口,还能作为客户端连接服务。
xargs:全拼extended arguments,给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
exec:用于调用并执行指令的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。
export:设置或者显示环境变量。
unset:删除变量或函数。
type:用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。
bc:任意精度计算器语言,通常在linux下当计算器用。
系统管理与性能监视命令
chkconfig:用于检查,设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。
vmstat:全拼Virtual Memory Statistics,用来显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。
mpstat:全拼Multiprocessor Statistics,实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
iostat:用于输出CPU和磁盘I/O相关的统计信息。
sar全拼System Activity Reporter,目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告。
ipcs:用于报告linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。
ipcrm:用来删除一个或更多的消息队列、信号量集或者共享内存标识。
strace:用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
ltrace:用来跟踪进程调用库函数的情况。
关机/重启/注销和查看系统信息的命令
shutdown用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
halt:用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
poweroff:用来关闭计算机操作系统并且切断系统电源
logout:退出当前登录的Shell。
exit退出当前登录的Shell。
Ctrl+d:退出当前登录的Shell的快捷键。
进程管理相关命令
bg:将一个在后台暂停的命令,变成继续执行。
fg:将后台中的命令调至前台继续运行。
jobs:查看当前有多少在后台运行的命令。
kill:用于删除执行中的程序或工作。
killall:用于终止某个指定名称的服务所对应的全部进程。
pkill:通过进程名终止进程。
crontab:用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。
ps:全拼Processes Status,用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
pstree:将所有行程以树状图显示。
nice/renice:为未运行命令指定运行时调度优先级的,如果是已运行的命令则需要renice命令。
nohup:全拼no hang up,让后台工作在离开操作终端时,也能够正确地在后台执行。
pgrep通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。
runlevel查看系统当前运行级别。
init:用于切换到指定的运行级别。
service:用于管理Linux操作系统中服务的命令。它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
地址:https://blog.csdn.net/weixin_39157014

推荐阅读
1. GitHub 上有什么好玩的项目?
2. 这个牛逼哄哄的数据库开源了
3. SpringSecurity + JWT 实现单点登录

4. 100 道 Linux 常见面试题


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存