作为一名码农,掌握常用的Linux命令是必不可少的。本篇博客将简要列举一些常用的Linux命令,并提供它们的功能、示例和一些实用技巧,帮助读者快速上手和更高效地管理Linux系统,建议各位看官收藏备用。
1. netstat命令(查看网络连接状态)
功能: 显示系统中所有活动的网络连接,包括TCP、UDP和UNIX域套接字。
用法: netstat [选项]
常用选项
-a:显示所有连接和监听端口。
-t:显示TCP连接。
-u:显示UDP连接。
-n:以数字形式显示地址和端口号,不尝试解析主机名、服务名等。
-p:显示每个连接的进程ID和进程名称。
-r:显示路由表。
-s:显示网络接口统计信息。
-l:仅显示监听状态的套接字。
-c:连续显示网络状态,每隔一定时间刷新一次。
-e:显示扩展信息,如网络接口的相关信息等。
示例:
netstat:显示所有网络连接状态。
netstat -t:仅显示TCP连接状态。
实用技巧:
使用netstat -an 显示所有连接并以数字形式显示地址和端口号。
使用netstat -p 显示每个连接的进程ID和进程名称,在某些系统中,你可能需要以root用户或使用sudo来运行netstat -p命令,以便看到所有用户的进程信息
2. pgrep命令(根据进程名查找进程ID)
功能: 查找指定进程名对应的进程ID。
用法: pgrep [options] pattern
-l:除了进程 ID 外,还显示进程名称。
-u :只查找由指定用户运行的进程。
-n:只显示最新(最近启动)的匹配进程。
-o:只显示最旧(最早启动)的匹配进程。
-v:反向匹配,即显示不匹配所给条件的进程。
-a:显示匹配进程的命令行参数。
-f:全匹配,即匹配整个命令行而不仅仅是进程名称。
-c:计数,只输出匹配进程的数量而不列出具体的进程 ID。
示例: pgrep
pgrep -l nginx 查找名为 “nginx” 的进程,并显示进程名称和 ID
pgrep -u www-data 查找由用户 “www-data” 运行的进程
实用技巧:
使用pgrep -f可以搜索包含指定字符串的进程名。
使用pgrep -l可以显示进程名和对应的进程ID。
3. tar命令(打包和压缩文件)
功能:将文件和目录打包成一个归档文件,并可选地对其进行压缩。
用法:tar [选项] 文件名
示例:
tar -cvf archive.tar file1 file2:创建一个名为archive.tar的归档文件,包括file1和file2两个文件。
tar -czvf archive.tar.gz dir:将目录dir打包并使用gzip进行压缩,创建一个名为archive.tar.gz的归档文件。
实用技巧:
使用tar -xvf可以解压缩归档文件。
使用tar -tf可以列出归档文件中包含的所有文件和目录。
4. scp命令(远程复制文件)
功能:在本地主机和远程主机之间复制文件和目录。
用法:scp [选项] 源文件 目标文件
示例:
scp file.txt user@remote:/path/to/dir:将本地文件file.txt复制到远程主机user账户的/path/to/dir目录下。
scp -r dir user@remote:/path/to/dir:将本地目录dir及其所有子目录和文件复制到远程主机指定目录下。
实用技巧:
使用scp -P port可以指定非默认SSH端口号进行连接。
使用scp -q可以关闭进度显示输出。
5. netstat命令(查看网络连接状态)
功能:显示系统中所有活动的网络连接,包括TCP、UDP和UNIX域套接字。
用法:netstat [选项]
示例:
netstat:显示所有网络连接状态。
netstat -t:仅显示TCP连接状态。
实用技巧:
使用netstat -a可以显示所有连接状态,包括监听和未监听的连接。
使用netstat -n可以显示IP地址和端口号而不是域名和服务名称。
6. pgrep命令(根据进程名查找进程ID)
功能:查找指定进程名对应的进程ID。
用法:pgrep 进程名
示例:
pgrep apache2:查找所有进程名为apache2的进程ID。
pgrep -u user sshd:查找用户user启动的所有sshd进程ID。
实用技巧:
使用pgrep -f可以搜索包含指定字符串的进程名。
使用pgrep -l可以显示进程名和对应的进程ID。
7. top命令(查看系统进程)
功能:实时显示系统中运行的进程和资源使用情况。
用法:top
示例:直接输入top命令即可运行。
实用技巧:
top命令默认情况下按CPU使用率排列进程列表
使用Shift + M可以按内存使用率排列列表。
使用top -u username可以仅显示特定用户的进程列表。
-c 显示命令行,
-p 查看指定进程
-H 显示进程树
-i 忽略僵尸进程
top之后:
E 头上内存单位切换
e 字段内的内存单位切换 ,
f 字段展示,排序设置,可以显示线程数,
h 查看帮助文档,
H线程模式
查看某进程的线程数: top -H -p
8. free命令(查看系统内存使用情况)
功能:显示系统中空闲和已使用的内存量。
用法:free [选项]
示例:
free:显示系统内存总量、已用和未用的数量。
free -m:以MB为单位显示内存使用情况。
实用技巧:
在使用free命令时,要注意将缓存和缓冲区占用的内存量计入可用内存量中。 如果需要更详细的内存统计信息,可以使用cat/proc/meminfo命令。
9. df命令(查看文件系统使用情况)
功能:显示文件系统的磁盘空间使用情况。
用法:df [选项] 文件系统
示例:
df:显示所有挂载的文件系统的使用情况。
df -h:以人类可读的方式显示文件系统使用情况。
实用技巧:
使用df -i可以显示文件系统节点的使用情况。
使用df -T可以显示文件系统类型。
10. du命令(查看文件和目录占用的磁盘空间)
功能:显示文件和目录占用的磁盘空间大小。
用法:du [选项] 文件/目录
示例:
du file.txt:显示file.txt文件占用的磁盘空间大小。
du -h /path/to/dir:以人类可读的方式显示目录占用的磁盘空间大小。
实用技巧:
在使用du命令时,要注意在文件和目录的名称后面加上斜杠(/),以避免误报符号链接或挂载点的大小。
使用du -s可以显示目录的总大小而不是详细列出每个子目录和文件的大小。
11. ps命令(查看进程信息)
功能:显示运行中的进程信息。
用法:ps [选项]
示例:
ps:显示当前用户所有运行中的进程信息。
ps -ef:以完整格式显示所有进程信息。
实用技巧:
使用 ps -u username 可以显示特定用户运行的进程信息。
使用 ps -ef | grep process_name:显示名称包含process_name的进程信息。
使用 ps -aux 可以显示所有进程信息,包括系统进程。
12. grep命令(搜索文件内容)
功能:在文件中搜索指定的模式。
用法:grep [选项] 模式 文件
示例:
grep “keyword” file.txt:在file.txt文件中搜索包含"keyword"的行。
grep -r “pattern” dir:递归地在目录dir中搜索包含"pattern"的行。
实用技巧:
使用grep -i可以进行不区分大小写的搜索。
使用grep -v可以显示不匹配的行。
13. awk命令(数据处理和报告生成)
功能:以行为单位对文本文件进行处理和分析,并可以生成报告。
用法:awk [选项] ‘脚本’ 文件
示例:
awk ‘{print $1}’ file.txt:显示文件file.txt中每一行的第一个字段。
awk ‘$3 >= 90 {print $1, $2}’ file.txt:显示文件file.txt中第三个字段大于等于90的行的第一个和第二个字段。
实用技巧:
使用awk -F可以指定字段分隔符。
使用awk ‘BEGIN{print “header”} {print $0} END{print “footer”}’ file.txt可以在输出结果前后添加头部和尾部信息。
14. sed命令(流编辑器)
功能:对文本流进行编辑和转换。
用法:sed [选项] ‘脚本’ 文件
示例:
sed ‘s/old/new/g’ file.txt:将文件file.txt中所有old字符串替换为new。
sed ‘/pattern/d’ file.txt:删除文件file.txt中包含指定模式的所有行。
实用技巧:
使用sed -i可以直接修改文件而不是输出结果。
使用sed -n可以只显示匹配的行。
15. find命令(查找文件和目录)
功能:在指定目录下查找符合条件的文件和目录。
用法:find [路径] [选项] [表达式]
示例:
find /path/to/dir -name “*.txt”:在目录/path/to/dir下查找所有扩展名为.txt的文件。
find /path/to/dir -type d -mtime +7:查找目录/path/to/dir中7天前被修改的所有子目录。
实用技巧:
使用find -exec可以对每个匹配的文件或目录执行指定的命令。
使用find -print 0 | xargs -0可以处理文件名中包含空格等特殊字符的情况。
16. curl命令(传输数据)
功能:从服务器传输数据,支持HTTP、HTTPS、FTP等协议。
用法:curl [选项] URL
示例:
curl https://www.example.com:访问网站https://www.example.com并输出响应结果。 curl -o file.txt https://www.example.com/data.txt:下载https://www.example.com/data.txt并保存为本地文件file.txt。
实用技巧:
使用curl -H "header"可以添加HTTP请求头部信息。
使用curl -X POST -d "data"可以进行POST请求并提交数据。
17. crontab命令(定时任务管理)
功能:设置或取消系统定时任务。
用法:crontab [选项]
示例:
crontab -e:编辑当前用户的定时任务列表。
crontab -l:列出当前用户的定时任务列表。
实用技巧:
使用crontab -r可以删除当前用户的所有定时任务。
使用crontab -u username可以查看其他用户的定时任务列表。
18. sort命令(排序工具)
功能:对文本文件的行进行排序。
用法:sort [选项] 文件
示例:
sort file.txt:按照字典序对文件file.txt中的行进行排序。
sort -rn file.txt:按照数字大小对文件file.txt中的行进行倒序排序。
实用技巧:
使用sort -u可以去除重复行。
使用sort -t可以指定字段分隔符。
19. wc命令(统计工具)
功能:对文本文件的行数、单词数和字符数进行统计。
用法:wc [选项] 文件
示例:
wc file.txt:统计文件file.txt中的行数、单词数和字符数。
cat file.txt | wc -l:只统计文件file.txt中的行数。
实用技巧:
使用wc -c可以只统计字符数。
使用wc -m可以统计字符数,包括多字节字符。
20. kill命令(进程终止工具)
功能:向指定进程发送终止信号,使其停止运行。
用法:kill [选项] 进程ID
示例:
kill 1234:向进程ID为1234的进程发送终止信号。
kill -9 1234:强制终止进程ID为1234的进程。
实用技巧:
使用killall命令可以根据进程名终止进程。
21. ifconfig命令(网络配置工具)
功能:查看和配置网络接口的信息。
用法:ifconfig [选项] 网络接口
示例:
ifconfig:显示所有网络接口的信息。
ifconfig eth0 up:启用eth0网络接口。
实用技巧:
使用ifconfig -a可以显示所有网络接口(包括未激活的)的信息。
使用ifconfig eth0 down可以禁用eth0网络接口。
22. ping命令(网络连通性测试工具)
功能:向指定IP地址发送ICMP回声请求,并接收回应以测试网络连通性。
用法:ping [选项] 目标主机
示例:
ping www.example.com:向www.example.com发送ICMP请求并等待回应。
ping -c 5 192.168.0.1:向192.168.0.1发送5个ICMP请求。
实用技巧:
使用ping -i可以设置ICMP请求的间隔时间。
使用ping -s可以设置ICMP请求的数据包大小。
23. ssh命令(远程登录工具)
功能:通过安全的加密协议在远程主机上执行命令或登录远程主机。
用法:ssh [选项] 用户名@主机名
示例:
ssh username@example.com:使用用户名username登录到example.com主机。
ssh -p 2222 username@192.168.0.1:使用用户名username登录到IP地址为192.168.0.1的主机,并指定SSH端口为2222。
实用技巧:
使用ssh -X可以开启X11转发,使得远程主机上的图形应用程序可以显示在本地。
使用ssh-copy-id命令可以将本地公钥复制到远程主机,实现免密码登录。
24. wget命令(非交互式网络下载工具)
功能:从指定URL下载文件或网页。
用法:wget [选项] URL
示例:
wget https://www.example.com/file.txt:下载指定URL的file.txt文件到当前目录。
wget -P /path/to/save https://www.example.com/file.txt:将file.txt文件下载到指定路径。
实用技巧:
使用wget -c可以在下载中断后继续下载。
使用wget -r可以递归下载整个网站。
25. vim命令(文本编辑器)
功能:在终端中编辑文本文件。
用法:vim [选项] 文件名
示例:
vim file.txt:打开或创建file.txt文件,并进入命令模式。
vim -O2 file1.txt file2.txt:水平分割窗口同时编辑file1.txt和file2.txt。
实用技巧:
:w可以保存文件
:q可以退出vim
:wq可以保存并退出vim
使用i进入插入模式,在该模式下可以编辑文本内容。
26. tail命令(文件尾部查看工具)
功能:显示文件的最后几行。
用法:tail [选项] 文件名
示例:
tail file.txt:显示文件file.txt的最后10行。
tail -f file.txt:实时显示文件file.txt的新增内容。
实用技巧:
使用tail -n可以指定显示的行数。
使用tail -F可以追踪文件的重命名和删除。
27. cat命令(文件内容查看工具)
功能:查看文件的内容。
用法:cat [选项] 文件名
示例:
cat file.txt:显示文件file.txt的全部内容。
cat file1.txt file2.txt > file3.txt:将file1.txt和file2.txt的内容合并到file3.txt中。
实用技巧:
使用cat -n可以显示行号。
使用cat -E可以在每行结尾添加一个美元符号。
28. more命令(分页显示文件内容工具)
功能:分页显示文件的内容。
用法:more [选项] 文件名
示例:
more file.txt:分页显示文件file.txt的内容。
ls -l | more:分页显示ls -l命令的输出结果。
实用技巧:
使用空格键翻页,使用q键退出。
使用/加关键词可以在分页中搜索。
29. iostat命令(磁盘I/O性能监控工具)
功能:显示磁盘I/O统计信息。
用法:iostat [选项] [时间间隔] [次数]
示例:
iostat:显示所有磁盘的I/O统计信息。
iostat -x sda:显示磁盘sda的详细I/O统计信息。
实用技巧:
使用iostat -p可以显示每个分区的I/O统计信息。
使用iostat -d可以显示每个设备的I/O统计信息。
30. vmstat命令(虚拟内存统计工具)
功能:显示虚拟内存和系统活动的统计信息。
用法:vmstat [选项] [时间间隔] [次数]
示例:
vmstat:显示虚拟内存和系统活动的统计信息。
vmstat 1 5:每秒钟输出一次统计信息,共输出5次。
实用技巧:
使用vmstat -s可以显示更详细的系统内存统计信息。
使用vmstat -d可以显示磁盘I/O统计信息。
31. mpstat命令(多核CPU性能监控工具)
功能:显示多核CPU的性能统计信息。
用法:mpstat [选项] [时间间隔] [次数]
示例:
mpstat:显示所有CPU的性能统计信息。
mpstat -P ALL:显示所有CPU和每个CPU的性能统计信息。
实用技巧:
使用mpstat -u可以显示CPU使用率。
使用mpstat -I ALL可以显示所有中断的统计信息。
这是一个能够显示多核CPU性能统计信息的命令。通过使用该命令,您可以了解每个CPU的负载情况、CPU使用率以及中断的统计情况。
32. pidstat命令(进程性能监控工具)
用法:pidstat [选项] [时间间隔] [次数]
示例:
pidstat:显示所有进程的性能统计信息。
pidstat -p PID:显示指定PID的进程性能统计信息。
实用技巧:
使用pidstat -d 可以显示进程的磁盘I/O统计信息
使用pidstat -r 可以显示进程的内存统计信息
使用pidstat -p ALL 展示所有进程信息
这是一个能够显示进程的性能统计信息的命令。通过使用该命令,可以了解进程的CPU使用率、内存使用情况、磁盘I/O统计等信息
33. ls命令(列表文件和目录)
功能:显示当前目录中的文件和子目录。
用法:ls [选项] [文件/目录]
示例:
ls:列出当前目录的所有文件和目录。
ls -l:以长格式显示文件和目录的详细信息。
ls -a:显示所有文件和目录,包括隐藏文件。
实用技巧:
使用ls -lh 可以以人类可读的方式显示文件大小。
使用ls -t 可以按照修改时间排序文件。
34. cd命令(切换目录)
功能:更改当前工作目录。
用法:cd [目录路径]
示例:
cd /home:切换到/home目录。
cd …:切换到父目录。
cd ~:切换到当前用户的主目录。
实用技巧:
使用cd -可以快速返回上次所在的目录。
使用cd …可以快速返回父目录。
35. mkdir命令(创建目录)
用法:mkdir [选项] 目录名
示例:
mkdir new_dir:在当前目录下创建一个名为new_dir的新目录。
mkdir -p /path/to/dir:递归地创建多层次的目录。
实用技巧:
使用mkdir -m mode dir可以指定新建目录的权限模式。
使用mkdir -v dir1 dir2可以显示创建过程中的详细信息。
36. rm命令(删除文件和目录)
功能:删除文件和目录。
用法:rm [选项] 文件/目录
示例:
rm file.txt:删除名为file.txt的文件。
rm -r dir:递归地删除名为dir的目录及其内容。
实用技巧:
使用rm -i可以在删除文件前进行确认提示。
使用rm -rf可以强制删除目录及其内容,慎用此选项。
37. cp命令(复制文件和目录)
功能:复制文件和目录。
用法:cp [选项] 源文件/目录 目标文件/目录
示例:
cp file.txt /path/to/destination:将file.txt文件复制到目标路径。
cp -r dir /path/to/destination:递归地复制整个目录到目标路径。
实用技巧:
使用cp -i可以在复制文件前进行确认提示。
使用cp -u可以仅复制更新的文件。
38. mv命令(移动或重命名文件和目录)
功能:移动或重命名文件和目录。
用法:mv [选项] 源文件/目录 目标文件/目录
示例:
mv file.txt /path/to/destination:将file.txt文件移动到目标路径。
mv old_name new_name:将文件或目录从旧名称改为新名称。
实用技巧:
使用mv -i可以在移动文件或重命名前进行确认提示。
使用mv -u可以仅移动或重命名更新的文件。
39. chmod命令(修改文件权限)
功能:更改文件或目录的权限。
用法:chmod [选项] 权限 文件/目录
示例:
chmod +x script.sh:添加执行权限给script.sh脚本。
chmod 644 file.txt:将文件的权限设置为644。
实用技巧:
使用数字形式的权限模式,如chmod 755 file.txt,可以更快地设置权限。
使用chmod -R可以递归地修改目录及其子目录的权限。
40. chown命令(更改文件所有者)
功能:更改文件或目录的所有者。
用法:chown [选项] 所有者 文件/目录
示例:
chown user1 file.txt:将file.txt文件的所有者更改为user1。
chown user1:group1 file.txt:将file.txt文件的所有者更改为user1,并将所属组更改为group1。
实用技巧:
使用chown -R可以递归地更改目录及其子目录和文件的所有者。
使用chown --reference可以将一个文件的所有者和权限复制到另一个文件。
请注意,更改文件或目录的所有者可能需要管理员权限或root用户权限。确保在使用chown命令时谨慎操
41. nohup(在后台运行程序)
功能:用于在后台运行程序,即使关闭终端或注销用户也能继续运行,同时将程序的输出重定向到指定文件中。
用法: nohup command [arg…] 参数说明: command:要执行的命令或程序。 arg…:命令或程序的参数。
示例: nohup python my_script.py & 这个示例中,执行了名为my_script.py的Python脚本,并将其放在后台运行。nohup会将程序的输出重定向到当前目录下的nohup.out文件中。最后的&符号表示将该命令放在后台运行。
使用技巧:
nohup java -Dsever.port=10086 -jar order.jar > output.log 2 > &1 & 后台运行jar程序并请标准输出和错误输出到output.log文件中
注意事项:
nohup默认将输出重定向到nohup.out文件中,如果需要将输出重定向到其他文件,可以使用重定向符号>。
nohup命令会将标准输出和标准错误输出合并到同一个文件中,如果需要分开保存,可以使用重定向符号1>和2>。例如: nohup command > output.log 2> error.log &
如果在执行nohup命令后关闭终端,程序将继续在后台运行。可以使用jobs命令查看后台任务的状态,使用fg命令将后台任务切换到前台运行,使用Ctrl + C组合键停止后台任务。
还有一些JVM的命令
42. java命令(运行Java应用程序)
功能:启动Java虚拟机并运行Java应用程序。
用法:java [选项] 主类 [参数]
示例:
java -version:显示Java版本信息。
java -jar app.jar:运行打包为可执行JAR文件的Java应用程序。
实用技巧:
使用java -Xmx可以设置Java应用程序的最大堆内存。
使用java -Xms可以设置Java应用程序的初始堆内存。
43. javac命令(编译Java源代码)
功能:将Java源代码编译为字节码文件。
用法:javac [选项] 源文件
示例:
javac HelloWorld.java:将HelloWorld.java文件编译为HelloWorld.class文件。
实用技巧:
使用javac -d可以指定编译后的字节码文件的输出目录。
使用javac -cp可以指定编译时的类路径。
44. jps命令(JVM进程状态工具)
功能:显示当前系统中正在运行的Java进程。
用法:jps [选项]
示例:
jps:显示当前系统中的Java进程列表。
实用技巧:
使用jps -l可以显示完整的Java进程主类名。
使用jps -v可以显示Java进程的启动参数。
45. jstat命令(JVM统计信息监视工具)
功能:显示Java虚拟机的统计信息。
用法:jstat [选项] 进程ID [时间间隔] [次数]
示例:
jstat -gcutil 12345:显示进程ID为12345的Java虚拟机的垃圾回收统计信息。
实用技巧:
使用jstat -gc可以显示Java虚拟机的垃圾回收统计信息。
使用jstat -class可以显示Java虚拟机的类加载和卸载统计信息。
46. jstack命令(Java堆栈跟踪工具)
功能:生成Java线程的堆栈跟踪。
用法:jstack [选项] 进程ID
示例: jstack 12345:生成进程ID为12345的Java线程的堆栈跟踪。
实用技巧:
使用jstack -l可以生成包括锁信息的详细堆栈跟踪。
47. jmap命令(Java内存映像工具)
功能:生成Java进程的内存快照。
用法:jmap [选项] 进程ID
示例:
jmap -heap 12345:生成进程ID为12345的Java进程的堆内存信息。
实用技巧:
使用jmap -histo可以生成Java进程的对象直方图。
48. jcmd命令(JVM诊断命令工具)
功能:执行各种JVM诊断命令。
用法:jcmd 进程ID 命令 [选项]
示例:
jcmd 12345 GC.run:强制进程ID为12345的Java虚拟机执行垃圾回收。
实用技巧:
使用jcmd 12345 help可以显示进程ID为12345的Java虚拟机支持的所有命令。
49. jinfo命令(Java配置信息工具)
功能:显示Java虚拟机的配置信息。
用法:jinfo [选项] 进程ID
示例:
jinfo 12345:显示进程ID为12345的Java虚拟机的配置信息。
实用技巧:
使用jinfo -flags可以显示Java虚拟机的所有参数和标志。
使用jinfo -sysprops可以显示Java虚拟机的系统属性。
50. jhat命令(JVM Heap Dump分析工具)
功能:将Java堆转储文件加载到Java虚拟机中进行分析。
用法:jhat [选项] heapdump文件
示例:
jhat heapdump.bin:将heapdump.bin文件加载到Java虚拟机中进行分析。
实用技巧:
使用jmap命令生成Java堆转储文件。
使用jhat -port可以指定Web服务器使用的端口号。
51. jconsole命令(Java监视和管理控制台)
功能:提供图形用户界面(GUI)用于监视和管理Java虚拟机。
用法:jconsole [选项]
示例: jconsole:启动Java监视和管理控制台。
实用技巧:
jconsole提供了用于监视和管理Java虚拟机的各种视图和选项卡,包括垃圾回收、线程、类和内存等。