linux

linux学习书籍推荐linux学习书籍推荐 网上看到的,做个标记。没研究过,仅供参考 linux编程学习 inux 学习书目推荐 Linux基础 1、《Linux与Unix Shell 编程指南》 C语言基础 1、《C Primer Plus,5th Edition》【美】Stephen Prata著 2、《The C Programming Language, 2nd Edition》【美】Brian W. Kern... 阅读详情

每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。我并不是说你应该成为一个Linux专家,我的意思是,当面对Linux命令行任务时,你应该能很熟练的完成。事实上,学会了下面8个命令,我基本上能完成任何需要完成的任务。

注意:下面的每个命令都有十分丰富的文档说明。这篇文章并不是来详尽的展示每个命令的各种功用的。我在这里要讲的是这几个最常用的命令的最常见用法。如果你对linux命令并不是很了解,你想找一些这方面的资料学习,那这篇文章将会给你一个基本的指导。

让我们从处理一些数据开始。假设我们有两个文件,分别记录的订单清单和订单处理结果。

  
  1. order.out.log  
  2.   8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  3.   8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99  
  4.   8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  5.  
  6.   order.in.log  
  7.   8:22:20 111, Order Complete  
  8.   8:23:50 112, Order sent to fulfillment  
  9.   8:24:20 113, Refund sent to processing 

cat

cat – 连接文件,并输出结果

cat 命令非常的简单,你从下面的例子可以看到。

  
  1. jfields$ cat order.out.log   
  2. 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  3. 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99  
  4. 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 

就像它的说明描述的,你可以用它来连接多个文件。

  
  1. jfields$ cat order.*   
  2. 8:22:20 111, Order Complete  
  3. 8:23:50 112, Order sent to fulfillment  
  4. 8:24:20 113, Refund sent to processing  
  5. 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  6. 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99  
  7. 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 

如果你想看这些log文件的内容,你可以把它们连接起来并输出到标准输出上,就是上面的例子展示的。这很有用,但输出的内容可以更有逻辑些。

sort

sort – 文件里的文字按行排序

此时sort命令显然是你最佳的选择。

  
  1. jfields$ cat order.* | sort  
  2. 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  3. 8:22:20 111, Order Complete  
  4. 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99  
  5. 8:23:50 112, Order sent to fulfillment  
  6. 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  7. 8:24:20 113, Refund sent to processing 

就像上面例子显示的,文件里的数据已经经过排序。对于一些小文件,你可以读取整个文件来处理它们,然而,真正的log文件通常有大量的内容,你不能不考虑这个情况。此时你应该考虑过滤出某些内容,把cat、sort后的内容通过管道传递给过滤工具。

grep

grep, egrep, fgrep – 打印出匹配条件的文字行

假设我们只对Patterns of Enterprise Architecture这本书的订单感兴趣。使用grep,我们能限制只输出含有Patterns字符的订单。

  
  1. jfields$ cat order.* | sort | grep Patterns  
  2. 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  3. 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99 

假设退款订单113出了一些问题,你希望查看所有相关订单——你又需要使用grep了。

  
  1. jfields$ cat order.* | sort | grep ":\d\d 113, "  
  2. 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  3. 8:24:20 113, Refund sent to processing 

你会发现在grep上的匹配模式除了“113”外还有一些其它的东西。这是因为113还可以匹配上书目或价格,加上额外的字符后,我们可以精确的搜索到我们想要的东西。

现在我们已经知道了退货的详细信息,我们还想知道日销售和退款总额。但我们只关心《Patterns of Enterprise Architecture》这本书的信息,而且只关心数量和价格。我现在要做到是切除我们不关心的任何信息。

cut

cut – 删除文件中字符行上的某些区域

又要使用grep,我们用grep过滤出我们想要的行。有了我们想要的行信息,我们就可以把它们切成小段,删除不需要的部分数据。

  
  1. jfields$ cat order.* | sort | grep Patterns  
  2. 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  3. 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99  
  4.  
  5. jfields$ cat order.* | sort | grep Patterns | cut -d"," -f2,5  
  6.  1, 39.99  
  7.  -1, 39.99 

现在,我们把数据缩减为我们计算想要的形式,把这些数据粘贴到Excel里立刻就能得到结果了。

cut是用来消减信息、简化任务的,但对于输出内容,我们通常会有更复杂的形式。假设我们还需要知道订单的ID,这样可以用来关联相关的其他信息。我们用cut可以获得ID信息,但我们希望把ID放到行的最后,用单引号包上。

sed

sed – 一个流编辑器。它是用来在输入流上执行基本的文本变换。

下面的例子展示了如何用sed命令变换我们的文件行,之后我们在再用cut移除无用的信息。

  
  1. jfields$ cat order.* | sort | grep Patterns \  
  2. >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"\2, '\1'"/  
  3. 1, Patterns of Enterprise Architecture, Kindle edition, 39.99, '111'  
  4. -1, Patterns of Enterprise Architecture, Kindle edition, 39.99, '113'  
  5.  
  6. lmp-jfields01:~ jfields$ cat order.* | sort | grep Patterns \  
  7. >| sed s/"[0-9\:]* \([0-9]*\)\, \(.*\)"/"\2, '\1'"/ | cut -d"," -f1,4,5  
  8. 1, 39.99, '111'  
  9. -1, 39.99, '113' 

我们对例子中使用的正则表达式多说几句,不过也没有什么复杂的。正则表达式做了下面几种事情

  • 删除时间戳
  • 捕捉订单号
  • 删除订单号后的逗号和空格
  • 捕捉余下的行信息

里面的引号和反斜杠有点乱,但使用命令行时必须要用到这些。

一旦捕捉到了我们想要的数据,我们可以使用 \1 & \2 来存储它们,并把它们输出成我们想要的格式。我们还在其中加入了要求的单引号,为了保持格式统一,我们还加入了逗号。最后,用cut命令把不必要的数据删除。

现在我们有麻烦了。我们上面已经演示了如何把log文件消减成更简洁的订单形式,但我们的财务部门需要知道订单里一共有哪些书。

uniq

uniq – 删除重复的行

下面的例子展示了如何过滤出跟书相关的交易,删除不需要的信息,获得一个不重复的信息。

  
  1. jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c  
  2.    1  Joy of Clojure  
  3.    2  Patterns of Enterprise Architecture 

看起来这是一个很简单的任务。

这都是很好用的命令,但前提是你要能找到你想要的文件。有时候你会发现一些文件藏在很深的文件夹里,你根本不知道它们在哪。但如果你是知道你要寻找的文件的名字的话,这对你就不是个问题了。

find

find – 在文件目录中搜索文件

在上面的例子中我们处理了order.in.log和order.out.log这两个文件。这两个文件放在我的home目录里的。下面了例子将向大家展示如何在一个很深的目录结构里找到这样的文件。

  
  1. jfields$ find /Users -name "order*"  
  2. Users/jfields/order.in.log  
  3. Users/jfields/order.out.log 

find命令有很多其它的参数,但99%的时间里我只需要这一个就够了。

简单的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小时,你用管道把它们输出到屏幕上是可以的,但当文件大到超出屏幕时,你也许应该用管道把它们输出给less命令。

less

less – 在文件里向前或向后移动

让我们再回到简单的 cat | sort 例子中来,下面的命令就是将经过合并、排序后的内容输出到less命令里。在 less 命令,使用“/”来执行向前搜索,使用“?”命令执行向后搜索。搜索条件是一个正则表达式。

  
  1. jfields$ cat order* | sort | less 

如果你在 less 命令里使用 /113.*,所有113订单的信息都会高亮。你也可以试试?.*112,所有跟订单112相关的时间戳都会高亮。最后你可以用 ‘q’ 来退出less命令。

Linux里有很丰富的各种命令,有些是很难用的。然而,学会了前面说的这8个命令,你已经能处理大量的log分析任务了,完全不需要用脚本语言写程序来处理它们。

LINUX与SecureCRT 1、首先声明一下什么是SecureCRT? 简单地说是Windows下登录UNIX或Linux服务器主机的软件,可利用SecureCRT来远程操作LINUX的的命令行; 2、SecureCRT的下载 链接:https://pan.baidu.com/s/1rMp3hUUCm7NtulHpPNlXhQ 密码:4knf 3、SecureCRT的安装 a):下载解压后,将其中的文件放到一个根目... 阅读详情

相关推荐

【Linux】Linux的特点

Linux是一种可以在PC上执行的类似UNIX的操作系统,它与其他商业性的操作系统最大的不同点在于该操作系统是完全免费的,源代码是完全公开的,用户可以在网上随意下载、复制和使用。Linux在中国发行的版本主要有Red Hat、Ubuntu、Red Flag(红旗)、Open Linux、Turbo Linux等。 Linux之所以能在短短十几年的时间得到迅猛的发展,与Linux所具有的良好特性是分不

fragile_spume的博客 2091

每个程序员都应该知道的8个Linux命令

原文地址:http://www.youkuaiyun.com/article/2012-09-13/2809917-Linux-Commands-Every%20Developer-Should-Kn 摘要:Linux里有很丰富的各种命令,有些是很难用的。然而,学会了前面说的这8个命令,你已经能处理大量的log分析任务了,完全不需要用脚本语言写程序来处理它们。 每个程序员,在职业生涯的某个

CloudCraft的专栏 707

STM32G0实战:手把手教你用国产GD25Q16 Flash存储传感器数据(附完整驱动)

本文详细介绍了如何使用国产GD25Q16 Flash芯片与STM32G0系列MCU实现传感器数据存储的完整方案。从SPI接口配置、驱动层实现到存储系统架构设计,提供了实战代码和优化策略,帮助开发者快速构建高性价比的物联网数据存储系统。

weixin_30733003的博客 106

操作系统

如果想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么可以使用以下哪个命令? find . -name “.txt" grep “.txt” -r * ls ".txt” less “*.txt”

CTTACM的专栏 823

告别‘抓瞎’:CANoe的Trace、Graphics和Logging窗口实战技巧,高效分析总线故障

本文深入解析CANoe的Trace、Graphics和Logging窗口实战技巧,帮助工程师高效分析总线故障。通过智能过滤、可视化监控和智能日志管理,构建系统级问题定位工作流,显著提升车载网络故障排查效率。

weixin_42709044的博客 293

ArcGIS License Server点击启动没反应,许可管理器无法启动怎么办

4 当我们再打开ArcGIS License Server Administrator的时候。3 在【服务】中找到【ArcGIS License Manager】双击。无法启动ArcGIS License Server的情况。在使用ArcGIS的过程中,我们经常会遇到。专注GIS领域知识分享,交流行业软件技巧。欢迎关注,不定期分享GIS各种问题和技巧。1 右击我的电脑——【管理】服务状态——启动,确定即可。启动类型选择——自动。

GIS蒲公英的博客 2万+

Linux常用命令

Linux的常用命令 ls 显示文件或目录 mkdir 创建目录 cd 切换目录 cat 查看文件内容 mv 移动或重命名 rm 删除文件 find 在文件系统中搜索某 文件 grep 在文本文件中查找某个字符串 rmdir 删除空目录 pwd 显示当前目录 ln 创建链接文件 more、less 分页显示文本文件内容 head、tail 显示文件头、尾内容 Id 查看当前用户id 系统管理命令 stat 显示指定文件的详细信息,比ls更详细 ifconfig 查

weixin_42259841的博客 527

解决Android 14兼容性问题:NDK中arm64-v8a的正确配置方法

本文详细解析Android 14系统架构变化对NDK开发的影响,重点介绍arm64-v8a架构的正确配置方法。针对常见的兼容性问题如so库缺失、ABI不匹配等提供解决方案,并分享性能优化与自动化测试实践,助力开发者高效适配Android 14设备。

algae的博客 1222

Linux命令-find

find命令 Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。 即使系统中含有网络文件系统( NFS)...

不积硅步,无以至千里,不积小流,无以成江海。 598

74LS161/48 交通灯控制系统:30-5-20-5 时序逻辑电路 Multisim 仿真验证

本文详细解析了基于74LS161/48芯片的交通灯控制系统设计,通过Multisim仿真验证30-5-20-5时序逻辑电路。从系统架构搭建、状态机实现到波形分析,提供全流程操作指南与典型问题排查方法,助力数字电路课程设计高效完成。

weixin_26742753的博客 380

EMB电子机械制动系统和EHB电子液压制动系统控制功能的对比

EMB电子机械制动系统相比EHB液压制动系统具有显著优势:响应速度更快(<100ms)、控制精度更高(±2N·m)、能实现单轮独立控制,支持0.1%级制动力调节。在ABS、ESC等安全功能上表现更优,制动平顺性和NVH性能更好,同时提升能量回收效率15%-20%。特别适合智能驾驶需求,可使AEB等系统响应时间缩短50ms,紧急制动距离减少1米以上。EMB系统完美契合高阶自动驾驶对快速响应和精准控制的要求。

m0_59012156的博客 885

windows下如何列出目录下所有子目录及文件?

当需要对某个目录查看并列出所有子目录和文件的时候,在linux上我们使用tree命令,那在windows怎么查看呢? 同样适用 在windows上同样可以使用tree命令。 使用方法 规则:tree 目录 /f > xxx.txt ① tree :我们的命令; ②目录:指的是要查看的目录或文件夹; ③/f:是列出要查看目录或文件夹下所有的目录及文件;如果不加/f,则表示只列出所有的目录,不包含文件; ④ “>”:是重定向输出符号; ⑤ xxx.txt:重定向输出到指定的文件中。 使.

虫无涯的博客 1万+

YOLOv11改进策略【独家融合改进】| 模型轻量化二次改进:StarNet + FreqFusion,极限降参,适用专栏内所有轻量化模型

FreqFusion是一种旨在解决密集图像预测任务中特征融合问题。

Limiiiing的博客 2125

Oracle Linux download

Oracle Linux ISO Images AU AARnet http://mirror.aarnet.edu.au/pub/oraclelinux/ ftp://mirror.aarnet.edu.au/pub/oraclelinux/ rsync://mirror.aarnet.edu.au/ DE GWDG http://ftp5.gwdg.d...

极致,细节 2万+

SpringBoot整合JWT实战:从零构建无状态认证系统,详解Token生成、验证与安全最佳实践

JWT在SpringBoot中的实现与应用 摘要:本文介绍了JWT(JSON Web Token)的基本概念、与Session机制的对比,以及SpringBoot项目中JWT的整合实现。JWT由Header、Payload和Signature三部分组成,具有无状态、跨域支持等优势。文章详细展示了如何在SpringBoot项目中配置JWT环境,封装JWT工具类来实现Token的生成、解析和验证功能,包括密钥管理、自定义声明、签名验证等核心操作。通过对比表格和生活化比喻,帮助读者理解JWT与传统Session的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1775

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Linux基础】初始Linux

本文系统讲解 Linux 入门基础知识,整体分为六大板块: 发展史:先梳理 UNIX 起源,从 Multics 雏形到贝尔实验室初代 UNIX,分化出 System V、BSD 两大分支;1991 年林纳斯基于 Minix 开发 Linux 并发布 0.02 版,1994 年推出 1.0 正式版。 开源机制:Linux 内核开源,遵循 GPL 协议,允许所有人自由查看、修改、分发源码,是开源软件标杆。 四大应用领域 服务器:市场占比 75%,多用于政企、金融、电信核心业务; 桌面:有国产麒麟、深度及 Ubu

键盘敲碎了雾霭的博客 6853

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

如何学习linux?linux学习步骤

第一部分:LINUX平台搭建与环境熟悉 了解Linux系统;区分各种版本的Linux系统,以便于拓展 Linux视野。1、Linux 简介;2、Linux 系统的主要特点;3、Linux 的组成;4、主要的 Linux 版本;5、 嵌入式 Linux简介与发展第二部分虚拟机安装和LINUX系统安装1、虚拟机安装;2、 Linux系统的安装;3、 Linux系统的常用软件的安装;4、 Linux快速入门5、熟悉运用 Linux环境下,常用命令的操作与系统设置,如常用的 Shell...

zzxyd_qiao的博客 2278

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

linux 游戏程序,LINUX下的各种游戏

本文主要介绍LINUX下的各种游戏,其中包括LINUX自带的小游戏,经典的模拟器游戏,支持LINUX的大型游戏如DOOM3等,还有运行WINDOWS热门游戏的方法介绍。游戏迷们跟我来吧!本文以REDHAT9为例(本文发表在linux联盟站欢迎转贴,但请保留以上信息,有问题可到本站论坛)一、LINUX下自带的小游戏喜欢打牌的朋友可以玩“耐心”这款扑克游戏,如果你安装时装了游戏的话就在游戏菜单里,它集...

weixin_39771791的博客 1446

【Linux】Linux基本命令

Linux 是一个开源的操作系统内核,广泛应用于服务器、桌面、嵌入式系统和超级计算机等领域。它由 Linus Torvalds 于 1991 年首次发布,并由全球开发者社区共同维护和开发。以下是一些关于 Linux 的常用命令。

m0_64210833的博客 1931

Linux下默认的宏测试

今天为了弄明白用什么宏来区分linux平台,特意写了个小程序试了一下。代码如下:#include int main(int argc, char *argv[]){        #ifdef LINUX        printf("LINUX/n");        #endif        #ifdef _LINUX        printf("_LINUX/n");  

【红帆船】的专栏 2756

Linux内核

linux文件分布,模块编程,链表

weixin_47886272的博客 2317

LINUX的引导过程

 LINUX的引导过程技巧管理员(2000-12-23 09:07)〖返回〗〖转发〗启动Linux系统,通常需要安装LILO (the LInux LOader),LILO不仅可以引导LINUX,也可以引导其他操作系统,包括MS-DOS或WIN 9X以及Windows NT等。在安装LINUX时,LILO可以装在硬盘的MBR中,也可以安装在活动分区的引导扇区中。   微

hem的专栏 1669

什么电脑用linux,linux是什么啊?我们普通的台式电脑能不能用啊?

一种可免费使用的UNIX操作系统, 运行于一般的PC机上的开放源码的操作系统.1991年,芬兰赫而辛基的学生LinusTorvalds为了自己使用与学习的需要,他开发了类似Unix且运行在80386平台上运行的操作系统,命名为Linux。为了使每个需要它的人都能够容易的得到它,LinusTorvalds把它变成了"自由"软件。感谢Internet的飞速发展使得全世界的程序开发员有了一种全新的有效沟...

weixin_33476081的博客 2477

Linux嵌入式-正点原子LINUX驱动移植手册

Linux嵌入式-正点原子LINUX驱动移植手册 【下载地址】Linux嵌入式-正点原子LINUX驱动移植手册 者的驱动移植实践指南 项目地址: https://gitcode.com/Open-source-documentat...

gitblog_06784的博客 964

快速入门:LINUX基础 ——教你使用 linux 操作

文章目录一、LINUX介绍二、环境搭建三、如何在LINUX下做开发1.LINUX 中—vi的使用 一、LINUX介绍 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性

weixin_44278698的博客 1628

linux共有多少个命令,有人疑问,Linux到底有多少个命令

honglianqxw123 于 2012-07-11 08:51:18发表:具体可以看应用了。cuiweixie 于 2011-03-31 22:28:19发表:可以把自己的shell 或者程序放到默认目录 或者建立连接 或者 增加默认目录rhel5 于 2011-03-24 20:26:50发表:ding江南的燕子 于 2011-02-01 00:55:24发表:支持!!!!!!!!!...

weixin_42524824的博客 2634
上一篇: hdoj 1166 敌兵布阵
下一篇: KMP算法心得
IT旅行
博客等级 码龄12年 3粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值