Linux系统常用指令

发布于:2025-05-24 ⋅ 阅读:(16) ⋅ 点赞:(0)

一、文件与目录操作

1. 基本操作

ls:列出目录内容

ls -l      # 显示详细信息(权限、大小、时间)
ls -a      # 显示隐藏文件(以.开头的文件)
ls -lh     # 显示文件大小(如KB/MB)

cd:切换目录

cd ~       # 进入用户家目录
cd ..      # 返回上级目录
cd -       # 返回上一次所在的目录

pwd:显示当前目录路径

pwd        # 输出:/home/username/projects

mkdir:创建目录

mkdir new_folder          # 创建单层目录
mkdir -p parent/child     # 递归创建多级目录

rm:删除文件或目录

rm file.txt               # 删除文件
rm -r folder/             # 递归删除目录(慎用!)
rm -f *.log               # 强制删除所有.log文件(无确认)

cp:复制文件/目录

cp source.txt dest.txt     # 复制文件
cp -r src_dir/ dest_dir/   # 递归复制目录

mv:移动或重命名

mv old.txt new.txt        # 重命名文件
mv file.txt /tmp/         # 移动文件到/tmp目录
2. 文件内容查看
  • cat:查看文件内容

    cat app.log               # 显示整个文件内容
    cat file1 file2 > merged  # 合并多个文件
  • head/tail:查看文件开头/结尾

    head -n 10 app.log        # 显示前10行
    tail -f app.log           # 实时追踪日志新增内容(调试神器)
  • less:分页查看文件(支持搜索)

    less large_file.log       # 按空格翻页,/keyword搜索,q退出
3. 文件查找
  • find:按条件搜索文件

    find /var/log -name "*.log"           # 查找/var/log下所有.log文件
    find . -type f -mtime -7             # 查找当前目录下7天内修改过的文件
    find /home -user root -exec rm {} \;  # 查找并删除root用户的所有文件(危险!)
  • grep:文本搜索工具

    grep "ERROR" app.log                 # 查找包含ERROR的行
    grep -r "TODO" ./src/                # 递归搜索src目录下的TODO注释
    grep -v "debug" file.txt             # 排除包含debug的行

二、文本处理与管道

1. 文本处理三剑客
  • sed:流编辑器(批量替换/删除)

    sed 's/foo/bar/g' file.txt          # 将文件中所有foo替换为bar
    sed -i.bak 's/old/new/' config.conf # 直接修改文件并备份原文件
  • awk:文本分析工具(按列处理)

    awk '{print $1}' access.log         # 输出第一列(如IP地址)
    awk -F':' '{print $3}' /etc/passwd  # 以冒号分隔,输出第三列(用户ID)
    awk '/ERROR/ {count++} END {print count}' app.log  # 统计ERROR出现次数
  • sort/uniq:排序与去重

    sort file.txt | uniq -c            # 排序后统计每行出现次数
    ps aux | sort -nk 4                # 按内存使用率排序进程
2. 管道与重定向
  • 管道 |:将前一个命令的输出作为下一个命令的输入

    cat app.log | grep "ERROR" | wc -l  # 统计ERROR出现的总行数
  • 重定向 >>>:输出到文件

    echo "Hello" > output.txt          # 覆盖写入文件
    echo "World" >> output.txt         # 追加到文件末尾

三、系统监控与进程管理

1. 资源监控
  • top:实时查看系统资源占用

    top                                # 按CPU排序进程,按M切换内存排序
  • htop(需安装):增强版交互式监控工具

    htop                               # 支持鼠标操作,颜色高亮
  • free:查看内存使用

    free -h                            # 以GB/MB显示内存情况
  • df/du:磁盘空间分析

    df -h                              # 查看磁盘分区使用情况
    du -sh /var/log/                   # 统计/var/log目录总大小
2. 进程管理
  • ps:查看进程状态

    ps aux | grep nginx                # 查找nginx相关进程
    ps -ef --forest                    # 显示进程树
  • kill:终止进程

    kill -9 1234                       # 强制终止PID为1234的进程
    pkill -f "python app.py"           # 根据名称杀死进程
  • nohup:后台运行程序

    nohup ./start.sh > output.log 2>&1 &  # 后台运行并将输出重定向到日志

四、权限与用户管理

1. 文件权限
  • chmod:修改文件权限

    chmod 755 script.sh               # 设置权限为rwxr-xr-x
    chmod +x script.sh                # 添加可执行权限
    chmod u=rw,go=r file.txt          # 用户读写,组和其他只读
  • chown:修改文件所有者

    chown user:group file.txt         # 修改所有者和所属组
2. 用户与组
  • sudo:以超级用户权限执行命令

    sudo apt update                   # 更新软件包列表(需管理员权限)
  • useradd/usermod:管理用户

    sudo useradd devuser              # 创建新用户
    sudo usermod -aG sudo devuser     # 将用户加入sudo组
  • passwd:修改密码

    passwd                           # 修改当前用户密码
    sudo passwd root                 # 修改root密码(需sudo权限)

五、网络调试与工具

1. 网络连接
  • ping:测试网络连通性

    ping google.com                   # 检查是否可达
  • curl:发送HTTP请求

    curl -I http://example.com        # 仅显示响应头
    curl -O https://example.com/file.zip  # 下载文件
  • wget:下载文件

    wget -c http://example.com/large.iso  # 断点续传下载
2. 端口与连接
  • netstat/ss:查看网络连接

    netstat -tulnp                   # 查看监听中的TCP/UDP端口
    ss -s                            # 显示简化的统计信息
  • lsof:列出打开的文件与端口

    lsof -i :8080                    # 查看占用8080端口的进程
  • nc(netcat):网络调试工具

    nc -zv 192.168.1.1 1-100         # 扫描目标主机的1-100端口

六、开发实用命令

1. 压缩与解压
  • tar:归档与压缩

    tar -czvf archive.tar.gz folder/  # 压缩为gzip格式
    tar -xzvf archive.tar.gz          # 解压gzip文件
  • zip/unzip:处理zip文件

    zip -r project.zip project/       # 递归压缩目录
    unzip project.zip -d dest/        # 解压到指定目录
2. 环境变量与路径
  • export:设置环境变量

    export PATH=$PATH:/opt/bin        # 临时添加路径
    echo 'export PATH=$PATH:/opt/bin' >> ~/.bashrc  # 永久生效
  • which/whereis:查找命令路径

    which python                     # 显示python命令的路径
    whereis java                     # 查找Java相关文件

七、实战场景案例

1. 日志分析
# 统计Nginx日志中每个IP的访问次数(Top 10)
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10
2. 批量重命名文件
# 将所有.txt文件后缀改为.md
for file in *.txt; do mv "$file" "${file%.txt}.md"; done
3. 监控高内存进程
watch -n 1 'ps aux --sort=-%mem | head -n 5'  # 每秒刷新内存占用Top5进程
4. 快速搭建HTTP服务器
python3 -m http.server 8000       # 在当前目录启动HTTP服务(端口8000)

网站公告

今日签到

点亮在社区的每一天
去签到