【Linux】系统指令与开发全栈(vim、ssh、gcc)

发布于:2025-05-20 ⋅ 阅读:(19) ⋅ 点赞:(0)

【Linux】系统指令与开发全栈(vim、ssh、gcc)


一、Linux 系统指令大全

1、文件与目录管理

  1. 基础操作

    指令 参数说明 典型用例 注意事项
    cd ~ 家目录,- 返回上级,.. 上级目录 cd ~/Documents 进入文档目录 无目录权限时会报错
    ls -l 详情,-a 隐藏文件,-h 易读大小 ls -lah /var/log 查看日志目录详情 避免直接 ls -R / 递归根目录
    cp -r 递归复制,-i 交互确认 cp -ri old_dir/ new_dir/ 带确认的目录复制 高危cp /* /target 可能覆盖系统文件
    mv -n 禁止覆盖,-v 显示过程 mv -v *.txt ~/backup 移动文本文件并显示进度 跨文件系统移动等同于“复制+删除”
    rm -r 递归删除,-f 强制 rm -rf ./tmp/ 删除临时目录 红色警报rm -rf / 会毁灭系统!
    scp -P 指定端口,-C 压缩传输 scp -P 2222 file.txt user@192.168.1.100:/path 跨服务器安全传输 需提前配置 SSH 免密登录
  2. 高级操作

    # 文件权限深度管理  
    chmod 755 script.sh          # 所有者RWX,其他用户RX  
    chown user:group file.txt    # 修改文件所有者  
    chattr +i important.conf    # 禁止文件被修改(需root权限)  
    
    # 查找与处理  
    find /home -name "*.log" -size +10M -exec rm {} \;  # 删除大于10MB的日志文件  
    grep -rn "ERROR" /var/log/                          # 全日志检索错误关键词  
    

2、系统监控与进程管理

  1. 实时监控工具

    指令 核心参数 监控焦点
    top -p PID 监控指定进程,-d 2 刷新间隔2秒 CPU/Memory 占用
    htop -u user 过滤用户进程,F2 进入配置界面 交互式进程管理
    iotop -o 只显示有IO操作的进程 磁盘I/O分析
    nethogs eth0 指定监控网卡 进程网络流量
  2. 进程控制

    kill -9 PID                  # 强制终止进程(无法捕获信号)  
    pkill -f "python app.py"     # 按进程名终止  
    pgrep -u root                # 查找root用户的进程ID  
    nice -n 19 tar -zcf bigfile.tar.gz /data  # 最低优先级压缩(避免系统卡顿)  
    

3、网络配置与调试

  1. 网络状态分析

    ip addr show                 # 查看所有网络接口(替代ifconfig)  
    ss -tulnp                    # 查看所有监听端口(比netstat更快)  
    traceroute -w 1 baidu.com    # 路由追踪(1秒超时)  
    mtr --report google.com      # 持续路由质量分析  
    
  2. 防火墙与端口

    sudo ufw allow 22/tcp        # 开放SSH端口  
    sudo iptables -L -n -v       # 查看iptables规则详情  
    nc -zv 192.168.1.1 80        # 快速检测目标端口开放状态  
    

4、环境变量与Shell配置

  1. 变量管理

    echo $PATH                   # 查看当前PATH变量  
    export PATH=$PATH:/new/path  # 临时添加路径  
    source ~/.bashrc             # 重新加载配置  
    
    # 永久生效方法  
    echo 'export JAVA_HOME=/usr/lib/jvm/java-11' >> ~/.bashrc  
    
  2. 常用环境变量表

    变量 作用 典型值示例
    PATH 可执行文件路径 /usr/local/bin:/usr/bin
    LD_LIBRARY_PATH 动态库路径 /usr/local/cuda/lib64
    PS1 终端提示符格式 \e[32m\u@\h:\w\$ \e[0m(绿色提示符)

5、Linux 紧急救援场景

问题 指令组合
恢复误删文件 sudo extundelete /dev/sda1 --restore-file /home/user/file.txt
系统无法启动 使用Live USB挂载硬盘 → fsck /dev/sda1
磁盘空间爆炸 du -h --max-depth=1 / | sort -hr 查找大文件

二、Vim 编辑器指令

1、模式系统

模式 进入方式 核心功能 退出方式
普通模式 启动默认 / 按 Esc 导航、删除、复制粘贴 输入 : 进入命令模式
插入模式 i(光标前),a(光标后),o(下方新行) 文本编辑 Esc 返回普通模式
可视模式 v(字符选择),V(行选择),Ctrl+v(块选择) 区域选择操作 Esc
命令模式 : 保存、退出、搜索替换 执行命令后自动退出
替换模式 R 直接覆盖文本 Esc
Ex模式 Q 进入,:visual 退出 批处理编辑 :visual

2、Vim 核心指令

  1. 文件操作

    指令 作用 场景示例
    :w 保存文件 修改后保存
    :q 退出编辑器 无修改时退出
    :q! 强制退出不保存 紧急放弃修改
    :wq 保存并退出 完成编辑
    :e! 放弃修改重载文件 恢复文件初始状态
  2. 高效编辑

    dd          # 删除当前行(配合 3dd 删除3行)  
    yy          # 复制当前行(5yy 复制5行)  
    p/P         # 粘贴到光标后/前  
    u/Ctrl+r    # 撤销/重做操作  
    gg=G        # 全文件自动缩进(适合代码格式化)  
    >>/<<       # 增加/减少缩进  
    
  3. 搜索与替换

    /error      # 向下搜索"error"(n下一处,N上一处)  
    ?warning    # 向上搜索"warning"  
    :%s/old/new/g      # 全局替换(确认加c参数:%s/old/new/gc)  
    :10,20s/^/#/       # 在第10-20行行首添加注释符(#)  
    

3、Vim 配置

  1. 基础配置(~/.vimrc

    " ========== 基础设置 ==========  
    set nocompatible      " 禁用兼容模式(完全启用Vim特性)  
    set number            " 显示行号  
    set cursorline        " 高亮当前行  
    set ruler             " 显示状态栏(行号/列号/百分比)  
    set showcmd           " 在状态栏显示部分命令(如选中行数/输入指令)
    set laststatus=2      " 始终显示状态栏  
    
    " ========== 搜索优化 ==========  
    set incsearch         " 实时搜索高亮  
    set hlsearch          " 保持搜索高亮  
    set ignorecase        " 忽略大小写  
    set smartcase         " 输入大写时启用精确匹配  
    
    " ========== 缩进与排版 ==========  
    set autoindent        " 自动继承缩进  
    set smartindent       " 智能缩进(代码块对齐)  
    set tabstop=4         " Tab显示为4空格  
    set shiftwidth=4      " 自动缩进宽度  
    set softtabstop=4     " 退格键删除缩进  
    set expandtab         " 将Tab转换为空格(Python友好)  
    
    " ========== 编程增强 ==========  
    syntax on             " 启用语法高亮  
    set showmatch         " 括号自动匹配高亮  
    set cindent           " C语言风格缩进  
    
    " ========== 跨平台集成 ==========  
    set clipboard=unnamed " 共享系统剪贴板(Windows/macOS兼容)  
    set mouse=a           " 启用鼠标支持(滚动/选择/调整窗口)  
    
    " ========== 高级功能 ==========  
    set autowrite         " 执行 :next/:make 等命令前自动保存(防修改丢失)
    set nobackup          " 禁止生成备份文件  
    set autoread          " 文件被外部修改时自动重载  
    map <F5> :w<CR>:!gcc % -o %< && ./%<  " F5编译运行C程序  
    
    " ========== 本地扩展配置 ==========
    if filereadable(expand("~/.vimrc.local"))  
        source ~/.vimrc.local  
    endif  
    

4、Vim 崩溃恢复方案

  1. 交换文件冲突
    vim -r filename      # 恢复未保存的修改  
    rm .filename.swp     # 删除交换文件  
    
  2. 编码乱码
    :set fileencoding=utf-8  " 强制设为UTF-8  
    :e ++enc=gbk            " 按GBK重新加载  
    

四、SSH 远程管理

1、基础连接与认证

指令 参数说明 典型用例 安全提示
ssh user@ip -p 2222 指定端口 ssh -p 2222 admin@192.168.1.100 默认使用22端口需修改
ssh-keygen -t ed25519 加密算法,-C "注释" ssh-keygen -t ed25519 -C "dev@2023" 密钥文件建议设置密码
ssh-copy-id -i 指定公钥文件 ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host 避免直接传输私钥

2、高级隧道与代理

# 本地端口转发(访问内网服务)  
ssh -L 8080:localhost:80 user@gateway  

# 动态SOCKS代理  
ssh -D 1080 user@proxy_server  

# 远程执行命令  
ssh user@host "ls /var/log; free -h"  

3、文件传输与同步

# SCP基础传输  
scp -P 2222 file.txt user@host:/path  

# Rsync增量同步(排除临时文件)  
rsync -avz --exclude '*.tmp' ./project/ user@host:/backup/  

# SFTP交互式操作  
sftp user@host  
> put local_file  
> get remote_file  

五、GCC 编译开发

1、基础编译指令

指令 参数说明 编译场景
gcc main.c 默认输出 a.out 单文件快速编译
gcc -o hello main.c -o 指定输出文件名 自定义可执行文件名
gcc -Wall -Wextra main.c 启用所有警告检查 代码规范审查

2、多文件工程编译

# 分步编译  
gcc -c module1.c       # 生成 module1.o  
gcc -c module2.c       # 生成 module2.o  
gcc -o app main.c module1.o module2.o  

# 单命令编译  
gcc -o app main.c module1.c module2.c  

3、调试与优化

# 调试版本(生成符号表)  
gcc -g -o debug_app main.c  

# 性能优化(O3级优化)  
gcc -O3 -o fast_app main.c  

# 指定C标准版本  
gcc -std=c11 -o modern_app main.c  

4、静态库与动态库

# 静态库创建  
gcc -c libmath.c  
ar rcs libmath.a libmath.o  

# 动态库编译  
gcc -shared -fPIC -o libmath.so libmath.c  

# 链接库文件  
gcc -o calc main.c -L. -lmath  


网站公告

今日签到

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