一、 Linux简介与基础

Linux是一种开源的类Unix操作系统内核,由林纳斯·托瓦兹于1991年首次发布。它以其稳定性、安全性和灵活性著称,广泛应用于服务器、嵌入式设备和个人计算机。本章将介绍Linux的基本概念和常用命令分类。

二、 文件与目录操作命令

1. 目录导航与查看

  • pwd:显示当前工作目录的完整路径
  • ls:列出目录内容
    • ls -l:长格式显示(详细信息)
    • ls -a:显示所有文件(包括隐藏文件)
    • ls -lh:人类可读的文件大小
  • cd:切换目录
    • cd ..:返回上级目录
    • cd ~:返回用户主目录
    • cd -:返回上一个目录

2. 文件与目录管理

  • mkdir:创建目录
    • mkdir -p dir1/dir2:创建多级目录
  • rmdir:删除空目录
  • rm:删除文件或目录
    • rm -r:递归删除目录及其内容
    • rm -f:强制删除,不提示
  • cp:复制文件或目录
    • cp -r source_dir target_dir:递归复制目录
  • mv:移动或重命名文件/目录
  • touch:创建空文件或更新文件时间戳

3. 文件内容查看与编辑

  • cat:连接文件并打印到标准输出
    • cat file1 file2 > combined.txt:合并文件
  • less / more:分页查看文件内容
  • head:显示文件开头部分
    • head -n 20 file.txt:显示前20行
  • tail:显示文件末尾部分
    • tail -f logfile.log:实时跟踪文件变化
  • nano / vim / emacs:文本编辑器

三、 系统信息与进程管理

1. 系统信息查询

  • uname:显示系统信息
    • uname -a:显示所有信息
  • hostname:显示或设置系统主机名
  • uptime:显示系统运行时间、用户数和负载
  • free:显示内存使用情况
    • free -h:人类可读格式
  • df:显示磁盘空间使用情况
    • df -h:人类可读格式
  • du:显示目录或文件磁盘使用情况
    • du -sh directory:汇总显示目录大小

2. 进程管理

  • ps:显示当前进程状态
    • ps aux:显示所有进程详细信息
    • ps -ef:显示完整格式的进程列表
  • top / htop:实时显示进程状态
  • kill:终止进程
    • kill -9 PID:强制终止进程
  • killall:按进程名终止进程
  • pkill:按模式匹配终止进程
  • bg / fg:后台/前台运行进程
  • jobs:显示当前作业状态

四、 网络相关命令

1. 网络配置与诊断

  • ifconfig / ip:显示或配置网络接口
  • ping:测试网络连通性
    • ping -c 4 google.com:发送4个数据包
  • traceroute / tracepath:跟踪数据包路径
  • netstat:显示网络连接、路由表、接口统计等
    • netstat -tulpn:显示所有监听端口
  • ss:socket统计信息(netstat的替代)
  • dig / nslookup:DNS查询
  • curl / wget:从网络下载文件

2. 远程连接与文件传输

  • ssh:安全远程登录
    • ssh user@hostname:远程登录
    • ssh -p 2222 user@hostname:指定端口
  • scp:安全文件复制
    • scp file.txt user@remote:/path/:复制到远程
    • scp user@remote:/path/file.txt .:从远程复制
  • rsync:远程文件同步
    • rsync -avz source/ user@remote:/dest/:归档同步
  • sftp:安全文件传输协议

五、 权限与用户管理

1. 文件权限管理

  • chmod:修改文件权限
    • chmod 755 file.sh:设置权限为rwxr-xr-x
    • chmod u+x file.sh:给所有者添加执行权限
  • chown:修改文件所有者和组
    • chown user:group file.txt:修改所有者和组
  • chgrp:修改文件所属组

2. 用户与组管理

  • useradd / adduser:添加用户
  • userdel:删除用户
  • usermod:修改用户属性
  • passwd:修改用户密码
  • groupadd:添加用户组
  • groupdel:删除用户组
  • id:显示用户身份信息
  • who / w:显示已登录用户
  • su:切换用户身份
  • sudo:以超级用户权限执行命令

六、 文本处理与搜索

1. 文本处理工具

  • grep:文本搜索
    • grep "pattern" file.txt:搜索匹配行
    • grep -r "pattern" directory/:递归搜索
    • grep -i "pattern" file.txt:忽略大小写
  • awk:文本处理语言
    • awk '{print $1}' file.txt:打印第一列
    • awk -F',' '{print $2}' file.csv:指定分隔符
  • sed:流编辑器
    • sed 's/old/new/g' file.txt:全局替换
    • sed -n '10,20p' file.txt:打印10-20行
  • cut:提取文件部分内容
    • cut -d',' -f1,3 file.csv:提取第1、3列
  • sort:排序文件内容
  • uniq:报告或忽略重复行
  • wc:统计文件行数、单词数、字节数
    • wc -l file.txt:统计行数

2. 文件查找

  • find:查找文件
    • find /home -name "*.txt":按名称查找
    • find . -type f -mtime -7:查找7天内修改的文件
    • find . -size +100M:查找大于100MB的文件
  • locate:快速查找文件(基于数据库)
  • which:显示命令的完整路径
  • whereis:定位命令的二进制、源码和手册页

七、 压缩与归档

  • tar:归档文件
    • tar -czvf archive.tar.gz directory/:创建gzip压缩包
    • tar -xzvf archive.tar.gz:解压gzip压缩包
    • tar -cjvf archive.tar.bz2 directory/:创建bzip2压缩包
  • gzip / gunzip:压缩/解压.gz文件
  • bzip2 / bunzip2:压缩/解压.bz2文件
  • zip / unzip:压缩/解压.zip文件
  • 7z:7-Zip压缩工具

八、 软件包管理

1. Debian/Ubuntu (APT)

  • apt update:更新软件包列表
  • apt upgrade:升级所有已安装软件包
  • apt install package_name:安装软件包
  • apt remove package_name:卸载软件包
  • apt search keyword:搜索软件包
  • apt show package_name:显示软件包信息
  • dpkg -i package.deb:安装.deb包

2. Red Hat/CentOS (YUM/DNF)

  • yum install package_name:安装软件包
  • yum remove package_name:卸载软件包
  • yum update:更新所有软件包
  • yum search keyword:搜索软件包
  • yum info package_name:显示软件包信息
  • rpm -i package.rpm:安装.rpm包
  • dnf:DNF(YUM的下一代版本)

3. Arch Linux (Pacman)

  • pacman -S package_name:安装软件包
  • pacman -R package_name:卸载软件包
  • pacman -Syu:更新系统
  • pacman -Ss keyword:搜索软件包
  • pacman -Qi package_name:显示软件包信息

九、 系统服务管理

1. Systemd (现代Linux发行版)

  • systemctl start service_name:启动服务
  • systemctl stop service_name:停止服务
  • systemctl restart service_name:重启服务
  • systemctl status service_name:查看服务状态
  • systemctl enable service_name:设置开机自启
  • systemctl disable service_name:禁用开机自启
  • systemctl list-units --type=service:列出所有服务
  • journalctl -u service_name:查看服务日志

2. SysVinit (传统系统)

  • service service_name start:启动服务
  • service service_name stop:停止服务
  • service service_name restart:重启服务
  • service service_name status:查看服务状态
  • chkconfig service_name on:设置开机自启
  • chkconfig service_name off:禁用开机自启

十、 实用技巧与快捷键

1. 命令行快捷键

  • Ctrl+C:终止当前命令
  • Ctrl+Z:暂停当前进程(可用fg恢复)
  • Ctrl+D:退出当前shell(EOF)
  • Ctrl+L:清屏
  • Ctrl+A:移动到行首
  • Ctrl+E:移动到行尾
  • Ctrl+U:删除光标前所有内容
  • Ctrl+K:删除光标后所有内容
  • Ctrl+R:搜索命令历史
  • Tab:命令/文件名自动补全

2. 实用组合命令

  • command1 | command2:管道,将前一个命令的输出作为后一个命令的输入
  • command > file:将输出重定向到文件(覆盖)
  • command >> file:将输出追加到文件
  • command 2>&1:将标准错误重定向到标准输出
  • command &:在后台运行命令
  • command1 && command2:前一个命令成功才执行后一个
  • command1 || command2:前一个命令失败才执行后一个

十一、 总结

Linux命令是系统管理和开发的基础工具,掌握这些命令能极大提高工作效率。本文涵盖了Linux系统中最常用和最重要的命令,从基础的文件操作到高级的系统管理。建议读者在实际操作中多加练习,结合man手册(man command)和--help选项(command --help)深入学习每个命令的详细用法。随着经验的积累,你会逐渐发现Linux命令行的强大与灵活。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐