几个linux指令提升编程效率

history

history命令是Linux/Unix系统中的一个常用命令,用于查看当前用户在命令行中执行过的命令历史记录。该命令允许用户查看、搜索、编辑和执行之前执行过的命令,为用户提供了方便、快捷的操作方式。

查看历史命令:

history

查看最近n条历史命令:

history n

搜索历史命令:

history |grep "指定字符串"

在这里插入图片描述
调出第84行命令执行:

!84

调出上一条指令执行

!!

grep

grep是一个在Unix和Unix-like系统上使用的命令行工具,用于在文本文件中搜索匹配指定模式的行。它的名字来自于"global regular expression print"(全局正则表达式打印)的缩写。grep的基本用法是通过指定一个正则表达式模式和一个文件名(或者从标准输入读取数据),来查找和打印与模式匹配的行。它可以用于简单的文本搜索,也可以与其他命令结合使用来实现更复杂的操作。

递归查询当前目录下匹配的字符串,直接定位软件源码报错位置,方便debug:

grep "指定字符" * -nr

在这里插入图片描述

管道

Linux管道(Pipeline)是一种将多个命令连接在一起形成一个处理数据流的方法。通过管道,一个命令的输出可以直接作为另一个命令的输入,实现数据的连续处理,提高命令行的灵活性和效率。当在两个命令之间设置管道时,管道符|左边命令的输出就变成了右边命令的输入。只要第一个命令向标准输出写入,而第二个命令是从标准输入读取,那么这两个命令就可以形成一个管道。大部分的 Linux 命令都可以用来形成管道。

举个例子,搜索历史命令:

history |grep "指定字符串"

vim

Vim(Vi IMproved)是一款功能强大的文本编辑器,它是Unix和Unix-like系统中的一个常用编辑器。Vim是从Vi编辑器发展而来,提供了许多增强的功能和扩展性。Vim被设计成高度定制和可扩展的,可以通过配置和插件来满足不同用户的需求。

查看文件第561行:

:561

然后回车,直接跳到对应行数找到问题所在。
在这里插入图片描述

使用指定库编译软件

一般情况下我们编译安装的软件或库都有四个目录:

  • bin目录:bin目录通常存放可执行文件(二进制文件),例如命令行工具和可执行程序。当您安装新软件或库时,相关的可执行文件通常会被安装在这个目录下。系统会将bin目录添加到环境变量PATH中,以便在任何位置都可以直接运行这些可执行文件。

  • include目录:include目录用于存放头文件,头文件包含了函数和数据结构的声明,供其他程序在编译时引用。

  • lib目录:lib目录用于存放库文件,库文件包含了已编译的代码和函数,供其他程序在链接时使用。通常,库文件分为静态库和动态库两种形式。静态库(以".a"为扩展名)在编译时会被完整地复制到可执行文件中,而动态库(以".so"为扩展名)在运行时由系统动态加载。当您开发软件时,可以将自己编写的库文件或第三方库的库文件放在这个目录下,以便其他程序可以链接并使用。

  • share目录:share目录主要用于存放共享数据,例如程序使用的配置文件、文档、示例数据等。共享数据可以供多个程序或用户共享和访问。

举个例子,mpi库有很多版本,我们需要用指定的mpi编译软件,一种方法是添加环境变量:

export PATH=/usr/local/mpi-x/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/mpi-x/lib:$LD_LIBRARY_PATH

冒号是并列的意思,如果单纯用作字符比如生成文件名需要转义,我就吃了这个亏,所有变量一样,唯有文件句柄不一样,最后查到冒号这里。另一种方法是配置时指定mpi编译软件,CC=/usr/local/mpi-x/bin/mpicc:

./configure --with-log-path=/darshan-logs --with-jobid-env=PBS_JOBID CC=/usr/local/mpi-x/bin/mpicc --prefix=/thfs3/software/darshan_nudt/software/darshan-3.4.4/darshan-prefix

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/207259.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx三种虚拟主机的配置(IP,端口,域名)

准备工作: [rootbogon ~]# mkdir -p /data/nginx{1..3} #-p是用于递归创建使用 [rootbogon ~]# echo "hello nginx1" > /data/nginx1/index.html [rootbogon ~]# echo "hello nginx2" > /data/nginx2/index.html [rootbogon ~]# echo &q…

adb环境搭建(adb下载与安装)

文章目录 前言一、adb下载二、adb安装1.将下载的安装包解压缩2.将解压缩后的文件夹放到自己想存放的目录下(不要放到带有中文的目录下)——我这放到D盘根目录下3.配置环境变量3.1.鼠标放到 "此电脑"→鼠标右击→选择属性3.2.点击 "高级系…

海银・颖奕海南国际健康管理基地启航!“财富+健康”双轮驱动战略加速中

现场,颖奕集团、颖奕生物科技集团董事长凌临贵,海南博鳌乐城国际医疗旅游先行区管理局党委书记、局长贾宁,海银控股董事长韩宏伟(从左至右)共同启动该项目。 11月24日,“海银颖奕海南国际健康管理基地”在…

正则表达式及文本三剑客grep sed awk

正则表达式 1.元字符 . //匹配任意单个字符,可以是个汉字 [yang] //匹配范围内的任意单个字符 [^y] //匹配处理指定范围外的任意单个字符 [:alnum:] //字母和数字 [:alpha:] //代表…

二叉树的操作(C++实现)

目录 ⚽实现要求: 🏐题目分析: 🏀代码展示: 📌前提类和函数声明: 🥎模块一(层次—>创建二叉树): 🎱模块二(三种…

QT Creator 保存(Ctrl+S)时,会将Tab制表符转换为空格

今天在写makefile文件时,发现QT Creator 保存(CtrlS)时,会将Tab制表符转换为空格,之前没有发现,略坑,官网上也有说明,点这里 简单来说,解决办法如下 依次点击:Tools ->Options-&g…

C51--DHT11数据读取

DHT11传输0的时序分析: DHT11传输1的时序分析: 用while(dht)卡点,当不满足while时,信号拉低; 用while(!dht)卡点,当不满足while时,信号拉高。 传输0和1时有效数据都是高电平&…

每日一题:LeetCode-1089. 复写零

每日一题系列(day 09) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

Linux:服务器管理工具宝塔(bt)安装教程

一、简介 bt宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等多项服务的管理功能 二、安装 使用 SSH 连接工具,如堡塔SSH终端连接到您的 Linux 服务器后,挂载磁盘,根据系统执…

微信如何单独隐藏某个人的聊天记录?

微信,如今已成为我们生活中不可或缺的沟通工具,它的应用范围涵盖了工作、学习及日常生活的方方面面。然而,有时为了保护个人隐私,或是不愿让他人看到特定对话,我们需要对与某人的聊天记录进行隐藏。那么,微…

【已解决】如何打开设置了密码的7Z压缩文件?

7Z是一种常见的压缩文件格式,相比RAR和ZIP格式,它的压缩率更高,可以压缩出更小的文件体积,也同样可以设置密码保护,那设置了密码的7Z压缩文件要如何打开呢? 我们知道,7Z压缩文件设置密码保护后…

06-Git分支相关的命令,如创建/删除/切换分支

Git分支(副本) 在版本控制过程中需要同时推进多个任务,此时可以为每个任务创建单独分支即开一个一模一样的副本 ,最终分支开发完后再合并到主分支提高开发效率 使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候不会影响主线分支的运…

Linux命令--根据端口号查看进程号(PID)

Linux命令–根据端口号查看进程号(PID) 查找8080端口对应的进程号: netstat -nlp|grep :8297对应的进程号1061,如果想杀掉此进程,可以用一下命令: kill -9 1061

2023年中国金融租赁行业研究报告

第一章 行业概况 1.1 定义 金融租赁是一种融资方式,其中租赁公司(出租人)为企业(承租人)购买所需设备,并在租赁期内由承租人使用。承租人负责支付租金,租赁期满后有权选择退租、续租或购买设备…

Java中重载和重写的区别

1.重写(Override) 从字面上看,重写就是重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型…

【机器学习】集成学习算法之AdaBoost

文章目录 基本步骤示例生成第 1 棵决策树生产第 2 棵决策树生成第 T 棵决策树加权投票 sklearn 实现 基本步骤 首先,是初始化训练数据的权值分布 D 1 D_1 D1​。假设有 m m m 个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值…

爬虫从入门到精通(21) |字体加密通杀方案

文章目录 一、了解什么是字体加密二、Python打开字体加密文件三、字体加密的通杀1.静态的字体文件固定顺序的字体2.其他动态变化情况 一、了解什么是字体加密 字体加密是页面和前端字体文件想配合完成的一个反爬策略。通过css对其中一些重要数据进行加密,使我们在代…

启用Android放大镜功能,事半功倍,可惜该功能只存在于Android 14

安卓屏幕放大镜是一种无障碍功能,旨在通过放大屏幕上显示的内容来帮助任何有视力障碍的人。这是安卓提供的几个功能之一,旨在使智能手机更具包容性和用户友好性。 如果你曾经想知道如何在你的安卓手机上设置并充分利用屏幕放大镜,那么你就来…

索尼mxf覆盖部分恢复案例(索尼PMW-580)

索尼mxf覆盖部分恢复案例(索尼PMW-580) 索尼的摄像机型号是比较繁多的,高端系列基本上是以mxf文件为主,这一类案例之前处理不少,今天我们看一个索尼pmw-580摄像机删除后又覆盖的恢复案例。 故障存储:64G SD卡/Exfat文件系统 故障现象: 拍…

Java核心知识点整理大全25-笔记

目录 25. Hadoop 25.1.1. 概念 25.1.2. HDFS 25.1.2.1. Client 25.1.2.2. NameNode 25.1.2.3. Secondary NameNode 25.1.2.4. DataNode 25.1.3. MapReduce 25.1.3.1. Client 25.1.3.2. JobTracker 25.1.3.3. TaskTracker 25.1.3.4. Task 25.1.3.5. Reduce Task 执行…