本文整理了Linux系统中常用命令,涵盖文件管理、文本处理、进程管理等多个方面,帮助Linux小白快速掌握系统操作和开发实践,是初学者必备的工具清单。
常用命令:系统信息查看
在Linux系统中,了解当前系统的状态是进行任何操作的第一步。掌握一些系统信息查看命令,可以帮助你快速判断系统配置、硬件状态及运行情况。
uname:查看系统信息
uname命令用于显示系统信息,包括内核版本、主机名和操作系统类型等。它的使用方式非常简单,可以通过不同的选项来获取更详细的信息。
uname -a
这条命令会显示完整的系统信息,包括内核版本、主机名、操作系统类型和硬件架构。这对于排查系统问题、确认软硬件兼容性非常有帮助。
top:实时监控系统资源
top是一个交互式工具,能够实时监控Linux系统的资源使用情况,包括CPU、内存和进程状态。它常用于排查系统性能瓶颈和分析进程占用情况。
top
运行top后,你可以看到当前系统中运行的进程列表,以及它们的CPU和内存使用率。通过按1可以查看每个CPU核心的负载情况,按q退出top界面。
df 和 du:磁盘空间管理
磁盘空间管理是Linux系统维护的重要一环。df和du命令是查看磁盘使用情况的两个常用工具。
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命令会显示隐藏文件(以.开头的文件),这对于查看配置文件或临时文件非常有用。
mkdir 和 rmdir:创建和删除目录
mkdir用于创建新目录,而rmdir用于删除空目录。这两个命令在文件系统管理中非常重要。
mkdir new_folder
mkdir new_folder命令会在当前目录下创建一个名为new_folder的子目录。如果需要创建多级目录,可以使用-p选项:
mkdir -p path/to/new_folder
rm 和 rm -r:删除文件和目录
rm命令用于删除文件,而rm -r则用于删除目录及其内容。使用时需谨慎,因为这些命令无法恢复被删除的文件。
rm filename
rm filename命令会删除当前目录下的filename文件。如果删除多个文件,可以使用空格分隔多个文件名:
rm file1.txt file2.txt
rm -r directory_name
rm -r directory_name命令会删除指定的目录及其所有内容。在删除前,建议确认目录内容,以免误删重要数据。
cp 和 mv:文件复制与移动
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
kill 和 killall:终止进程
kill命令用于终止指定进程ID的进程,而killall则用于终止所有匹配名称的进程。
kill process_id
kill process_id命令会终止指定ID的进程。如果进程没有响应,可以使用-9选项强制终止:
kill -9 process_id
killall process_name
killall process_name命令会终止所有名为process_name的进程。这种方法适用于结束多个相同名称的进程。
nice 和 renice:调整进程优先级
nice和renice命令用于调整进程的优先级。这有助于在系统资源紧张时优化多任务处理。
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脚本中可以使用for、while和until等循环结构来处理重复性任务。
#!/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 run、docker ps、docker stop和docker 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负载信息,有助于分析系统性能。
日志分析工具
日志分析是系统运维中不可或缺的一部分。常用的日志分析工具包括logrotate、journalctl和grep等。
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命令可以赋予普通用户临时管理员权限,但应避免不加限制地使用。 - 定期备份数据:使用
rsync或tar等工具对重要数据进行备份,防止数据丢失。 - 设置合理的权限:使用
chmod和chown命令对文件和目录设置合理的权限,避免权限过高导致安全风险。 - 使用日志轮转工具:如
logrotate,避免日志文件过大影响系统性能。 - 监控系统资源:使用
top、htop、free和df等工具监控系统资源使用情况,及时发现潜在问题。
总结
Linux系统提供了丰富的工具和命令,无论是系统信息查看、文件管理、文本处理,还是进程管理和Shell脚本,都是开发者和运维人员必须掌握的内容。通过熟练使用这些命令和工具,你可以更好地管理Linux系统,提高开发和运维的效率。在日常工作中,建议养成查阅文档和实践操作的习惯,不断积累经验,提升技术水平。
Linux小白必备:超全基础命令合集, 文件管理, 文本处理, 进程管理, Shell脚本, Docker, Prometheus, Zabbix, 日志分析, 权限管理, 系统监控, 系统信息查看, 资源管理, 自动化运维, 命令行工具, Linux开发, Linux运维