45 个常用Linux 命令,让你轻松玩转 Linux! - 程序员实验室 ...

2025-12-24 04:53:35 · 作者: AI Assistant · 浏览: 15

在Linux系统中,掌握常用命令是提升效率和深入理解系统运行机制的关键。本文整理了45个常用Linux命令,涵盖文件管理文本处理进程管理等核心领域,旨在帮助在校大学生初级开发者快速上手并灵活运用Linux环境。

常用Linux命令概述

Linux操作系统以其强大的命令行工具而闻名,从文件管理系统监控,每一个命令都代表着一种功能。掌握这些命令不仅能提升工作效率,还能增强对系统底层操作的理解。本文将详细介绍45个常用Linux命令,帮助你更高效地使用Linux环境。

文件管理命令

ls:列出目录内容

ls是最基本的目录查看命令,它用于显示当前目录或指定目录中的文件和子目录。常用的参数包括:

  • -l:以长格式列表显示文件信息(包括权限、所有者、大小、修改时间等)
  • -a:显示隐藏文件
  • -h:以可读的格式显示文件大小(如1K2M等)
  • -R:递归列出目录内容

示例

ls -l
ls -a
ls -h

cd:切换目录

cd命令用于切换当前工作目录。如果指定路径不存在,命令会报错。

示例

cd /home/user
cd ..
cd -

pwd:显示当前工作目录

pwd命令可以显示当前所在的目录路径,是导航定位文件的重要工具。

mkdir:创建目录

mkdir用于创建新的目录。可以一次创建多个目录,也可以指定父目录。

示例

mkdir new_dir
mkdir -p path/to/new_dir

rmdir:删除空目录

rmdir用于删除空目录,如果目录内有文件或子目录,命令会失败。

rm:删除文件或目录

rm命令可以删除文件或目录。常用参数包括:

  • -f:强制删除,不提示
  • -r:递归删除目录及其内容
  • -i:删除前提示

示例

rm file.txt
rm -r dir_name
rm -f file.txt

touch:创建空文件

touch命令可以创建一个空文件,或者更新文件的时间戳。

示例

touch new_file.txt

cp:复制文件或目录

cp用于复制文件或目录。可以复制单个文件或多个文件到一个目录中。

示例

cp file.txt /home/user/
cp file1.txt file2.txt

mv:移动或重命名文件或目录

mv命令可以移动文件或目录,也可以用于重命名文件。

示例

mv file.txt new_file.txt
mv file.txt /home/user/

find:查找文件或目录

find命令用于在指定目录中搜索文件或目录。支持多种搜索条件,如文件名、大小、类型等。

示例

find /home/user -name "*.txt"
find /home/user -size +1M

文本处理命令

cat:查看、连接和创建文件

cat命令可以查看文件内容、连接多个文件、创建新文件。

示例

cat file.txt
cat file1.txt file2.txt > combined.txt

less:分页查看文件内容

less命令用于分页查看大文件内容,支持上下滚动、搜索等操作。

示例

less file.txt

headtail:查看文件开头或结尾

  • head:查看文件的前几行
  • tail:查看文件的后几行,常用于实时查看日志文件

示例

head -n 10 file.txt
tail -n 20 file.txt
tail -f log.txt

grep:文本搜索

grep命令用于在文件中搜索特定字符串,支持正则表达式。

示例

grep "error" log.txt
grep -r "warning" /var/log

sort:排序文本

sort命令可以对文本文件进行排序,支持按字段、数字等排序方式。

示例

sort file.txt
sort -n file.txt

uniq:去重和统计

uniq命令用于去除重复行,并统计重复次数。通常与sort命令结合使用。

示例

sort file.txt | uniq
sort file.txt | uniq -c

wc:统计文件内容

wc命令用于统计文件中的行数、单词数和字符数。

示例

wc -l file.txt
wc -w file.txt
wc -c file.txt

tr:转换或删除字符

tr命令可以用于字符转换、删除或替换,常用于文本处理。

示例

tr 'a-z' 'A-Z' < file.txt
tr -d 'a' < file.txt

sed:流编辑器

sed是一个强大的流编辑器,可以用于文本替换、删除、插入等操作。

示例

sed 's/old/new/' file.txt
sed -i 's/old/new/' file.txt

awk:文本处理工具

awk是一个用于文本处理的工具,可以用于格式化、计算等操作。

示例

awk '{print $1}' file.txt

进程管理命令

ps:查看当前进程

ps命令用于查看当前运行的进程状态。常用参数包括:

  • aux:显示所有进程
  • ef:显示所有进程及其父进程
  • --help:显示帮助信息

示例

ps aux
ps ef

top:实时查看进程资源使用情况

top是一个动态的进程查看工具,可以实时显示系统中各个进程的资源使用情况,如CPU和内存使用。

kill:终止进程

kill命令用于终止进程。可以指定进程的PID或使用信号类型。

示例

kill 1234
kill -9 1234

pkill:根据名称终止进程

pkill命令可以根据进程名终止进程,更加灵活和方便。

示例

pkill process_name

nicerenice:调整进程优先级

nice用于启动进程时设置优先级,renice用于调整运行中的进程优先级。

示例

nice -n 10 my_program
renice 5 -p 1234

nohup:在后台运行进程并防止被中断

nohup命令可以确保进程在终端关闭后继续运行。

示例

nohup my_program &

bgfg:管理后台进程

  • bg:将进程放到后台运行
  • fg:将后台进程带回前台

示例

bg
fg

jobs:查看后台进程

jobs命令用于查看当前运行的后台进程。

&:在后台运行命令

在命令末尾添加&可以将进程放到后台运行。

示例

my_program &

Shell脚本与自动化运维

echo:输出文本

echo命令用于将文本输出到终端或文件。

示例

echo "Hello, World!"
echo "Hello" > file.txt

read:读取用户输入

read命令用于从终端读取输入,常用于脚本中获取用户输入。

示例

read -p "Enter your name: " name

ifelse:条件判断

ifelse用于在脚本中进行条件判断。

示例

if [ -f "file.txt" ]; then
    echo "File exists"
else
    echo "File not found"
fi

forwhile:循环结构

forwhile用于在脚本中实现循环逻辑。

示例

for i in {1..5}; do echo $i; done
while true; do echo "Looping..."; sleep 1; done

case:多条件分支判断

case命令用于实现多条件分支判断,类似于switch语句。

示例

case $var in
    "one") echo "One";;
    "two") echo "Two";;
    *) echo "Unknown";;
esac

function:定义函数

function命令用于定义自定义函数,提升脚本的复用性。

示例

function greet() {
    echo "Hello, $1!"
}
greet "World"

export:设置环境变量

export命令用于设置环境变量,使其在子进程中可用。

示例

export PATH=$PATH:/home/user/bin

source:加载脚本

source命令可以加载并执行脚本文件,常用于在当前环境中运行脚本。

示例

source script.sh

chmod:修改文件权限

chmod命令用于修改文件或目录的权限,支持符号模式和数字模式。

示例

chmod 755 script.sh
chmod +x script.sh

chown:修改文件所有者

chown命令用于修改文件或目录的所有者,支持递归修改。

示例

chown user:group file.txt
chown -R user:group dir_name

系统编程与进程控制

fork():创建子进程

C语言中,fork()函数用于创建子进程,是进程编程的核心。

exec():替换当前进程

exec()函数用于在当前进程中执行新的程序,替换当前进程。

wait():等待子进程结束

wait()函数用于等待子进程完成,常用于父进程中控制子进程的执行。

signal():发送信号

signal()函数用于向进程发送信号,如SIGKILLSIGTERM

pipe():创建管道

pipe()函数用于创建管道,用于进程间通信

dup()dup2():复制文件描述符

dup()dup2()函数用于复制文件描述符,实现重定向和管道操作。

Linux系统结构与核心组件

内核模块:实现硬件抽象

Linux内核模块负责处理硬件设备,如网络接口、存储设备等,是系统的核心。

系统调用:用户与内核的接口

系统调用是用户空间程序与内核交互的方式,如read()write()open()等。

进程调度:管理CPU资源

Linux的进程调度器负责分配CPU时间片给各个进程,确保系统稳定性。

文件系统:组织存储空间

Linux文件系统采用树状结构,根目录为/,支持多种文件系统类型,如ext4、XFS等。

内存管理:优化资源使用

Linux内存管理器负责分配和回收内存,支持虚拟内存、交换空间等机制。

进程间通信(IPC):实现进程协作

进程间通信是Linux系统编程的重要部分,支持多种方式,如管道、共享内存、消息队列等。

运维工具与实践

Docker:容器化技术

Docker是容器化技术的代表,提供轻量级的虚拟环境,支持快速部署和管理。

监控工具:保障系统稳定性

常用的监控工具包括tophtopiostatvmstat等,用于实时查看系统资源使用情况。

日志分析工具:跟踪系统行为

日志分析工具logrotatejournalctlawkgrep帮助开发者和运维人员跟踪系统行为和错误信息。

日志轮转:防止日志过大

logrotate是一个用于日志轮转的工具,可以自动压缩、归档和删除旧日志文件。

自动部署工具:简化运维流程

AnsibleChefPuppet等工具能够自动化部署和配置管理,提升运维效率。

版本控制工具:管理代码变更

Git是一个常用的版本控制工具,支持代码版本追踪、分支管理和协作开发。

Shell脚本最佳实践:提高可维护性

  • 使用set -e确保脚本在遇到错误时立即退出
  • 使用trap处理信号
  • 使用source加载配置文件
  • 使用chmod设置适当的权限

命令链与管道:高效处理数据

通过管道|将一个命令的输出作为另一个命令的输入,实现高效的数据处理。

示例

grep "error" log.txt | wc -l

脚本调试:提升开发效率

使用set -x启用调试模式,查看脚本执行过程。

示例

set -x
echo "Debugging script"

权限控制:保护系统安全

合理设置文件和目录的权限,避免权限滥用,提升系统安全性。

示例

chmod 600 file.txt
chown user:group file.txt

Linux命令的进阶技巧

通配符:简化路径操作

使用*?等通配符可以简化路径操作,如批量删除文件。

示例

rm *.txt

管道与重定向:数据流控制

通过>>><等重定向符号可以控制数据流,实现更灵活的操作。

示例

ls > file.txt
ls >> file.txt

后台运行与守护进程:持续运行任务

使用&将命令放到后台运行,或者使用nohup确保进程在终端关闭后继续运行。

定时任务:自动化执行

使用cronsystemd定时任务,实现定时执行脚本和程序。

示例

crontab -e

命令别名:提升效率

使用alias命令为常用命令创建别名,简化输入。

示例

alias ll='ls -l'

实战技巧与资源推荐

使用man命令:查看命令帮助

man命令可以查看命令的详细说明,是学习命令的必备工具。

示例

man ls
man grep

使用info命令:获取更详细的文档

info命令可以获取命令的更详细文档,适合深入学习。

示例

info ls
info grep

使用whichwhereis:查找命令位置

whichwhereis命令可以查找命令在系统中的位置。

示例

which ls
whereis grep

使用locate命令:快速查找文件**

locate命令允许快速查找文件,但需要先运行updatedb以更新文件数据库

示例

locate file.txt

使用find命令:精确查找文件**

find命令可以用于精确查找文件,支持多种搜索条件。

示例

find /home/user -name "*.txt" -size +1M

使用history命令:查看命令历史**

history命令用于查看当前用户的命令历史记录,有助于回顾和重复操作。

示例

history

总结与展望

掌握45个常用Linux命令Linux编程系统管理的基础。随着技术的发展,Linux命令的使用场景也在不断扩展。从文件管理系统编程,再到自动化运维,这些命令构成了Linux系统的核心。通过不断学习和实践,你将能够更高效地使用Linux环境,解决实际问题。

关键字列表:Linux命令, 文件管理, 文本处理, 进程管理, Shell脚本, 自动化运维, 系统编程, Docker, 日志分析, 进程调度