当前位置: 首页 > news >正文

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

【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分析
    nethogseth0 指定监控网卡进程网络流量
  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  

相关文章:

  • 项目中把webpack 打包改为vite 打包
  • c#将json字符串转换为对象数组
  • Electron使用WebAssembly实现CRC-8 ITU校验
  • Electron + Vue 实现系统消息通知与点击跳转页面
  • 如何实现从网页一键启动你的 Electron 桌面应用(zxjapp://)
  • 汽车零部件的EMI抗扰性测试
  • GStreamer (三)常⽤插件
  • word文档中如何在方框中打✔
  • 计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据
  • eMMC深度解析:嵌入式多媒体卡的硬件电路设计要点
  • 软考 系统架构设计师系列知识点之杂项集萃(63)
  • 大语言模型 13 - 从0开始训练GPT 0.25B参数量 MiniMind2 补充 训练开销 训练步骤 知识蒸馏 LoRA等
  • 核保核赔的集中管理方案
  • 三键标准、多键usb鼠标数据格式
  • 【工具】Windows|外接的显示器怎么用软件调亮度(Brightness Slider)
  • 应用服务器发生内存溢出怎么办
  • 大模型在股骨干骨折诊疗全流程中的应用研究报告
  • 澳大利亚TikTok网络专线+本地化策略:澳洲电商品牌的破局之道
  • Qt—模态与非模态对话框
  • [长城杯 2024]anote
  • 中国戏剧梅花奖终评结果公示,蓝天、朱洁静等15名演员入选
  • 《中华人民共和国经济史(1949—1978年)》教材出版发行
  • 中美贸易代表会谈后是否已确定下一次会谈?外交部回应
  • 释新闻|拜登确诊恶性前列腺癌,预后情况如何?
  • 证监会披露两起操纵市场处罚结果,今年来涉操纵股票罚没金额超7.5亿元
  • 俄乌刚谈完美国便筹划与俄乌领导人通话,目的几何?