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

常用SHELL命令

在 Unix/Linux 系统中,除了基本的文件和目录操作命令外,还有许多强大的工具命令,用于文本处理、系统监控、文件操作等。以下是一些常用的 Shell 命令,特别是类似 sedawk 的文本处理工具:

文本处理命令

  1. sed - 流编辑器,用于文本替换、删除、插入等操作

    sed 's/old/new/g' file.txt       # 替换文件中的所有 'old' 为 'new'
    sed -n '1,5p' file.txt           # 打印文件的第 1 到第 5 行
    sed '/pattern/d' file.txt        # 删除匹配 'pattern' 的行
    
  2. awk - 文本处理工具,适用于复杂的文本分析和处理

    awk '{print $1}' file.txt        # 打印每行的第一个字段
    awk -F: '{print $1, $3}' /etc/passwd  # 使用 ':' 作为分隔符,打印每行的第一个和第三个字段
    awk '/pattern/ {print $0}' file.txt   # 打印包含 'pattern' 的行
    
  3. grep - 文本搜索工具,用于匹配和查找文本

    grep 'pattern' file.txt          # 查找文件中匹配 'pattern' 的行
    grep -r 'pattern' /path/to/dir   # 递归查找目录中匹配 'pattern' 的文件
    grep -i 'pattern' file.txt       # 忽略大小写匹配 'pattern'
    
  4. cut - 截取文本行中的指定部分

    cut -d':' -f1 /etc/passwd        # 使用 ':' 作为分隔符,截取每行的第一个字段
    cut -c1-5 file.txt               # 截取每行的第 1 到第 5 个字符
    
  5. sort - 排序文件内容

    sort file.txt                    # 对文件内容进行排序
    sort -r file.txt                 # 逆序排序
    sort -n file.txt                 # 按数值排序
    
  6. uniq - 去除重复行

    uniq file.txt                    # 去除相邻重复行
    uniq -c file.txt                 # 统计重复行出现的次数
    
  7. tr - 替换或删除字符

    tr 'a-z' 'A-Z' < file.txt        # 将文件中的小写字母转换为大写
    tr -d '0-9' < file.txt           # 删除文件中的所有数字
    
  8. paste - 合并文件

    paste file1.txt file2.txt        # 将两个文件的内容并列显示
    
  9. join - 连接两个文件的内容

    join file1.txt file2.txt         # 连接两个文件的内容,基于共同字段
    
  10. head - 显示文件的前几行

    head -n 10 file.txt             # 显示文件的前 10 行
    
  11. tail - 显示文件的后几行

    tail -n 10 file.txt             # 显示文件的后 10 行
    tail -f file.txt                # 实时显示文件的新内容
    

系统监控和管理命令

  1. ps - 显示当前进程信息

    ps aux                          # 显示所有进程的详细信息
    ps -ef                          # 以标准格式显示所有进程
    
  2. top - 实时显示系统资源使用情况

    top                             # 实时显示系统资源使用情况
    
  3. htop - 交互式进程查看器(需安装)

    htop                            # 交互式显示系统资源使用情况
    
  4. df - 显示磁盘使用情况

    df -h                           # 以人类可读格式显示磁盘使用情况
    
  5. du - 显示目录和文件的磁盘使用情况

    du -sh /path/to/directory       # 显示目录的总大小
    du -h --max-depth=1 /path/to/directory  # 显示目录下每个子目录的大小
    
  6. free - 显示内存使用情况

    free -h                         # 以人类可读格式显示内存使用情况
    
  7. uptime - 显示系统运行时间和负载

    uptime                          # 显示系统运行时间和负载
    
  8. uname - 显示系统信息

    uname -a                        # 显示所有系统信息
    uname -r                        # 显示内核版本
    

文件操作命令

  1. cp - 复制文件或目录

    cp source.txt destination.txt   # 复制文件
    cp -r source_dir destination_dir  # 递归复制目录
    
  2. mv - 移动或重命名文件或目录

    mv oldname.txt newname.txt      # 重命名文件
    mv /path/to/source /path/to/destination  # 移动文件或目录
    
  3. rm - 删除文件或目录

    rm file.txt                     # 删除文件
    rm -r directory                 # 递归删除目录
    rm -rf directory                # 强制递归删除目录
    
  4. touch - 创建空文件或更新文件时间戳

    touch newfile.txt               # 创建一个空文件
    
  5. chmod - 修改文件权限

    chmod 755 script.sh             # 设置文件权限
    chmod +x script.sh              # 使文件可执行
    
  6. chown - 修改文件所有者

    chown user:group file.txt       # 修改文件所有者和所属组
    
  7. ln - 创建链接

    ln -s /path/to/source /path/to/link  # 创建符号链接
    ln /path/to/source /path/to/hardlink # 创建硬链接
    

这些命令是 Unix/Linux 系统中最常用的工具,熟练掌握这些命令可以大大提高你的工作效率。根据具体需求选择合适的命令和选项,可以完成各种复杂的任务。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一文了解常见DNS问题
  • 【python基础】—pip与conda的区别
  • c++【入门】分享水果
  • Linux shell编程学习笔记62: top命令 linux下的任务管理器
  • [解决] chrome/edge浏览器打开F12开发者模式,点击应用标签崩溃
  • IPython代码块粘贴秘籍:效率与技巧的完美结合
  • Perl 语言开发(三):运算符和表达式
  • 【自动驾驶仿真在做什么——初学者总结(陆续补充)】
  • 部署LVS+keepalived做网站的高可用,高负载。
  • k8s学习--基于k8s的ELK日志收集的详细过程
  • TreeMap、HashMap 和 LinkedHashMap 的区别
  • 爬虫进阶:Selenium与Ajax的无缝集成
  • Java 基础知识之 依赖注入(Dependency Injection)
  • 北京十大拆迁律师事务所排名
  • Android zygote访谈录
  • 【mysql】环境安装、服务启动、密码设置
  • es6--symbol
  • Laravel 菜鸟晋级之路
  • linux学习笔记
  • Odoo domain写法及运用
  • VuePress 静态网站生成
  • vue总结
  • 代理模式
  • 如何进阶一名有竞争力的程序员?
  • 时间复杂度与空间复杂度分析
  • 使用API自动生成工具优化前端工作流
  • 微信小程序设置上一页数据
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • # Redis 入门到精通(七)-- redis 删除策略
  • #git 撤消对文件的更改
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (7)STL算法之交换赋值
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)用.Net的File控件上传文件的解决方案
  • .Net 6.0--通用帮助类--FileHelper
  • .Net FrameWork总结
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net6Api后台+uniapp导出Excel
  • .NET开源、简单、实用的数据库文档生成工具
  • .NET连接MongoDB数据库实例教程
  • .NET企业级应用架构设计系列之开场白
  • .NET实现之(自动更新)
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @RequestParam详解
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ 蓝桥杯Web真题 ]-布局切换
  • []使用 Tortoise SVN 创建 Externals 外部引用目录