Linux小白必备:超全基础命令合集 - 知乎

2025-12-25 16:57:14 · 作者: AI Assistant · 浏览: 16

本文整理了Linux系统中常用命令,涵盖文件管理文本处理进程管理等多个方面,帮助Linux小白快速掌握系统操作开发实践,是初学者必备的工具清单

常用命令:系统信息查看

在Linux系统中,了解当前系统的状态是进行任何操作的第一步。掌握一些系统信息查看命令,可以帮助你快速判断系统配置、硬件状态及运行情况。

uname:查看系统信息

uname命令用于显示系统信息,包括内核版本、主机名和操作系统类型等。它的使用方式非常简单,可以通过不同的选项来获取更详细的信息。

uname -a

这条命令会显示完整的系统信息,包括内核版本主机名操作系统类型硬件架构。这对于排查系统问题、确认软硬件兼容性非常有帮助。

top:实时监控系统资源

top是一个交互式工具,能够实时监控Linux系统的资源使用情况,包括CPU、内存和进程状态。它常用于排查系统性能瓶颈和分析进程占用情况。

top

运行top后,你可以看到当前系统中运行的进程列表,以及它们的CPU和内存使用率。通过按1可以查看每个CPU核心的负载情况,按q退出top界面。

dfdu:磁盘空间管理

磁盘空间管理是Linux系统维护的重要一环。dfdu命令是查看磁盘使用情况的两个常用工具。

df -h

df -h命令会以易读格式(如GB、MB)显示各分区的磁盘空间使用情况,包括总的容量、已用空间、剩余空间和使用百分比。这对于判断系统是否接近满载非常有用。

du -sh *

du -sh *命令可以查看当前目录下每个子目录和文件的大小,其中-s表示汇总,-h表示以易读格式显示。它有助于识别哪些文件或目录占用过多空间。

free:查看内存和交换空间使用情况

free命令用于查看系统的内存使用情况,包括物理内存和交换空间(swap)。它可以帮助你判断系统是否处于内存不足的状态,从而采取相应的优化措施。

free -h

free -h命令以易读格式显示内存和交换空间的使用情况,包括总内存已用内存空闲内存缓存交换空间。通过观察这些指标,你可以更好地管理系统的资源分配。

常用命令:文件管理与权限设置

Linux系统中的文件管理是日常操作的核心。掌握这些命令,可以让你更高效地处理文件和目录,同时确保系统安全。

ls:列出目录内容

ls是最常用的命令之一,用于列出当前目录或指定目录中的文件和子目录。你可以通过不同的选项来控制输出内容。

ls -l

ls -l命令会以详细列表形式显示文件和目录信息,包括权限所有者文件大小创建时间以及文件类型。这是进行文件权限管理文件分析的基础。

ls -a

ls -a命令会显示隐藏文件(以.开头的文件),这对于查看配置文件或临时文件非常有用。

mkdirrmdir:创建和删除目录

mkdir用于创建新目录,而rmdir用于删除空目录。这两个命令在文件系统管理中非常重要。

mkdir new_folder

mkdir new_folder命令会在当前目录下创建一个名为new_folder的子目录。如果需要创建多级目录,可以使用-p选项:

mkdir -p path/to/new_folder

rmrm -r:删除文件和目录

rm命令用于删除文件,而rm -r则用于删除目录及其内容。使用时需谨慎,因为这些命令无法恢复被删除的文件。

rm filename

rm filename命令会删除当前目录下的filename文件。如果删除多个文件,可以使用空格分隔多个文件名:

rm file1.txt file2.txt
rm -r directory_name

rm -r directory_name命令会删除指定的目录及其所有内容。在删除前,建议确认目录内容,以免误删重要数据。

cpmv:文件复制与移动

cp用于复制文件,mv用于移动或重命名文件。这两个命令在文件操作中非常常用。

cp source_file destination_file

cp source_file destination_file命令会将source_file复制到destination_file。如果目标路径是目录,则文件会被复制到目录中。

mv source_file destination_file

mv source_file destination_file命令可以将文件从一个位置移动到另一个位置,也可以用于重命名文件。例如:

mv old_name.txt new_name.txt

touch:创建空文件

touch命令用于创建一个空文件,或者更新文件的时间戳。它可以用来快速生成测试文件。

touch new_file.txt

这条命令会在当前目录下创建一个名为new_file.txt的空文件。如果文件已经存在,touch命令会更新其时间戳,而不是覆盖内容。

常用命令:文本处理与搜索

在Linux系统中,文本处理是开发和运维中不可或缺的一部分。掌握一些常用的文本处理命令,可以大大提高工作效率。

grep:文本搜索

grep命令用于在文件中搜索特定字符串。它是文本处理中最强大的工具之一。

grep "keyword" filename

grep "keyword" filename命令会在filename文件中查找包含keyword的行。如果要忽略大小写,可以使用-i选项:

grep -i "keyword" filename

sort:文本排序

sort命令用于对文本文件中的内容进行排序。它可以按字母顺序、数字顺序或其他自定义规则排序。

sort filename

sort filename命令会按照字母顺序对filename文件中的内容进行排序。如果要按数字顺序排序,可以使用-n选项:

sort -n filename

uniq:去除重复行

uniq命令用于去除文本中连续重复的行。它通常与sort命令配合使用,以确保重复行被正确识别。

uniq filename

uniq filename命令会去除filename文件中连续重复的行。如果要去除所有重复行(不考虑连续性),可以使用-d选项:

uniq -d filename

sed:流编辑器

sed是一个流编辑器,可以对文本进行替换、删除、插入等操作。它是处理文本的强大工具之一。

sed 's/old/new/' filename

sed 's/old/new/' filename命令会将filename文件中所有的old替换为new。如果你想将替换结果输出到另一个文件,可以使用-i选项:

sed -i 's/old/new/' filename

awk:文本分析工具

awk是一个用于文本分析和处理的脚本语言。它常用于对数据进行提取、转换和计算。

awk '{print $1}' filename

awk '{print $1}' filename命令会打印filename文件中每一行的第一个字段。你还可以使用-F选项指定字段分隔符:

awk -F',' '{print $1}' filename

wc:统计文本行数、单词数和字节数

wc命令用于统计文件中的行数、单词数和字节数。它是处理文本数据时非常有用的工具。

wc -l filename

wc -l filename命令会统计filename文件中的行数。如果你想统计单词数,可以使用-w选项:

wc -w filename

如果你想统计字节数,可以使用-c选项:

wc -c filename

常用命令:进程管理

Linux系统中,进程管理是运维和开发中的核心任务。掌握一些进程管理命令,可以让你更好地监控和控制系统的运行状态。

ps:查看进程状态

ps命令用于查看当前系统中运行的进程状态。它是进程管理的基础工具。

ps -ef

ps -ef命令会显示所有进程的详细信息,包括进程ID父进程ID运行时间用户命令。你可以使用grep来过滤特定进程:

ps -ef | grep process_name

killkillall:终止进程

kill命令用于终止指定进程ID的进程,而killall则用于终止所有匹配名称的进程。

kill process_id

kill process_id命令会终止指定ID的进程。如果进程没有响应,可以使用-9选项强制终止:

kill -9 process_id
killall process_name

killall process_name命令会终止所有名为process_name的进程。这种方法适用于结束多个相同名称的进程。

nicerenice:调整进程优先级

nicerenice命令用于调整进程的优先级。这有助于在系统资源紧张时优化多任务处理。

nice -n 10 command

nice -n 10 command命令会以优先级10运行command。优先级范围通常在-20到19之间,数值越小,优先级越高。

renice 10 -p process_id

renice 10 -p process_id命令会将指定ID的进程的优先级调整为10。这种方法适用于运行中的进程。

常用命令:Shell脚本编写

Shell脚本是Linux系统中实现自动化运维任务调度的核心工具。掌握Shell脚本编写技巧,可以显著提升工作效率。

基本结构

Shell脚本通常以#!/bin/bash开头,表示使用Bash解释器。脚本中的每一行都是一个命令。

#!/bin/bash
echo "Hello, World!"

上述脚本会输出“Hello, World!”,是Shell脚本的最简示例。

变量与参数

在Shell脚本中,变量和参数的使用非常常见。你可以使用$符号来引用变量,使用$1$2等来获取命令行参数。

#!/bin/bash
name=$1
echo "Hello, $name!"

上述脚本会输出“Hello, [参数]!”,其中$1是第一个参数。

条件判断

Shell脚本中可以使用if语句进行条件判断。这有助于实现更加复杂的逻辑。

#!/bin/bash
if [ "$1" == "start" ]; then
    echo "Starting the service..."
elif [ "$1" == "stop" ]; then
    echo "Stopping the service..."
else
    echo "Usage: $0 [start|stop]"
fi

上述脚本会根据传入的参数执行不同的操作,如“启动”或“停止”服务。

循环结构

Shell脚本中可以使用forwhileuntil等循环结构来处理重复性任务。

#!/bin/bash
for i in {1..5}; do
    echo "Number: $i"
done

上述脚本会循环打印从1到5的数字。

函数定义

你可以使用function关键字或直接定义函数来提高脚本的可读性和复用性。

#!/bin/bash
function greet() {
    echo "Hello, $1!"
}
greet "World"

上述脚本定义了一个名为greet的函数,并在脚本末尾调用它,输出“Hello, World!”。

运维工具:Docker与监控系统

在现代Linux系统中,Docker已经成为容器化部署的标准工具。与此同时,监控系统如Prometheus和Zabbix也能帮助你更好地管理系统的健康状况。

Docker基础操作

Docker是一个容器化平台,可以让你在隔离环境中运行应用。它的核心命令包括docker rundocker psdocker stopdocker rm等。

docker run -d --name my_app my_image

docker run -d --name my_app my_image命令会以后台模式运行一个名为my_app的容器,使用my_image镜像。

docker ps

docker ps命令会列出所有正在运行的容器,包括容器ID镜像名称状态端口映射

docker stop my_app

docker stop my_app命令会停止指定名称的容器。

监控工具:Prometheus与Zabbix

Prometheus和Zabbix是两种常用的系统监控工具。Prometheus以其灵活的查询语言强大的数据采集能力而闻名,而Zabbix则以其图形界面报警功能受到欢迎。

Prometheus

Prometheus通过拉取方式从目标系统采集数据,支持多种数据源,如Linux系统应用日志数据库

curl http://localhost:9090/metrics

这条命令会获取Prometheus服务器上的监控数据,包括CPU使用率、内存使用情况和网络流量等。

Zabbix

Zabbix是一个开源的监控软件,支持主动和被动监控,可以配置报警规则,并在出现问题时自动通知

zabbix_get -s 127.0.0.1 -k "system.cpu.load"

这条命令会获取Zabbix代理上的CPU负载信息,有助于分析系统性能。

日志分析工具

日志分析是系统运维中不可或缺的一部分。常用的日志分析工具包括logrotatejournalctlgrep等。

logrotate:日志轮转

logrotate用于自动轮转日志文件,避免日志文件过大影响系统性能。

logrotate /etc/logrotate.d/syslog

这条命令会按照/etc/logrotate.d/syslog配置文件中的规则进行日志轮转。

journalctl:查看系统日志

journalctl是一个强大的日志查看工具,用于查看和分析systemd日志。

journalctl -u sshd

journalctl -u sshd命令会查看sshd服务的日志内容,有助于排查连接问题。

最佳实践:Linux开发与运维规范

为了确保系统的稳定性和安全性,进行Linux开发和运维时应遵循一些最佳实践

  • 使用sudo谨慎执行sudo命令可以赋予普通用户临时管理员权限,但应避免不加限制地使用。
  • 定期备份数据:使用rsynctar等工具对重要数据进行备份,防止数据丢失。
  • 设置合理的权限:使用chmodchown命令对文件和目录设置合理的权限,避免权限过高导致安全风险。
  • 使用日志轮转工具:如logrotate,避免日志文件过大影响系统性能。
  • 监控系统资源:使用tophtopfreedf等工具监控系统资源使用情况,及时发现潜在问题。

总结

Linux系统提供了丰富的工具和命令,无论是系统信息查看文件管理文本处理,还是进程管理Shell脚本,都是开发者和运维人员必须掌握的内容。通过熟练使用这些命令和工具,你可以更好地管理Linux系统,提高开发和运维的效率。在日常工作中,建议养成查阅文档实践操作的习惯,不断积累经验,提升技术水平。

Linux小白必备:超全基础命令合集, 文件管理, 文本处理, 进程管理, Shell脚本, Docker, Prometheus, Zabbix, 日志分析, 权限管理, 系统监控, 系统信息查看, 资源管理, 自动化运维, 命令行工具, Linux开发, Linux运维