首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux入门精通(九)——Linux编程

Linux编程 1. vi的工作方式 三种方式:命令方式、插入方式、末行方式 命令方式:用户一进入vi就进入命令方式,在该模式中任何键入的字符都被看成vi的命令,键入后立即执行。...移动多行: :n1,n2 m k # n1行n2行的文本移动到k行处,其中m是移动命令 搜索和替换: /string:向前搜索指定字符串。 搜索时忽略大小写:set ic ?...同时,由于 GCC 编译器支持多种编程语言的编译,而实际情况中我们可能只需要编译 1~2 种编程语言,因此需要对其进行必要的配置。...对于不同版本的gcc来讲,n的取值范围及其对应的优化效果可能并不完全相同,比较典型的范围是0变化2或3。 通常情况下,数字越大,会起到更好的优化效果,但整个编译链接的过程会变慢。...Make工具大大提高了实际项目的工作效率,几乎所有Linux下的项目编程都会涉及它。 即:通过Makefile 文件,制定编译规则,根据时间戳,判断文件是否进行过修改。

2K30

Linux入门精通(十二)——shell编程

shell编程 1. shell和shell脚本 1.1 shell Shell是一种具备特殊功能的程序,它是介于使用者和UNIX/Linux操作系统之核心程序 ( kernel) 之间的一个接口。...目前几乎所有的Linux系统 都支持它,将其作为应急Shell使用。 C Shell (简称csh) :C Shell由加利福尼亚大学 伯克利分校开发。...编程风格类似于C语言,健壮性不 如Bourne Shell。 Korn Shell (简称 ksh) :与Bourne Shell向下完全兼容。...$#:传递脚本的参数的数量; $*:以"参数1参数2… "形式保存所有参数; $@:以"参数1" “参数2” …形式保存所有参数; $?...此为缺省(默认)选项; echo命令的转义符(echotest.sh): 转义符 含义 \a 系统喇叭发送出声音 \b 向左刪除 \c 抑制输出后面的字符并且最后不换行 \E ESCAPE键 \f 换页字符

4.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux学习入门精通

1、Linux入门 1.1、主机名配置 查看主机名 hostname 修改主机名 (重启后无效) hostname hadoop 修改主机名 (重启后永久生效) vi /ect/sysconfig...grep sshd 查找指定 ssh 服务进程 ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身 ps -ef | grep sshd – c...查找指定进程个数 cat a.txt | grep -f b.txt 文件中读取关键词进行搜索 输出 a.txt 文件中含有 b.txt 文件中读取出的关键词的内容行 cat a.txt | grep...– nf b.txt 文件中读取关键词进行搜索, 显示行号 grep -n 'linux' test.txt 文件中查找关键词,并显示行号 cat test.txt |grep ^u 找出以...这时就需要用到定时器功能,而在Linux系统中提供了一个类似于定时器的小工具:crontab crontab 是 Unix 和 Linux 用于设置周期性被执行的指令。

2.4K20

C++入门精通——nullptr

同时,nullptr还可以与C++的智能指针(如std::unique_ptr、std::shared_ptr等)一起使用,更好地管理动态分配的内存。...在CC++中,可以使用NULL宏定义表示空指针。当使用NULL赋值给一个指针时,表示该指针不指向任何内存地址。 使用空指针可以用于以下情况: 初始化指针变量,避免野指针的问题。...二、指针空值nullptr(C++11) 指针空值nullptr是C++11引入的一种特殊的空指针常量。在以前的C++标准中,常用的空指针常量是NULL,它通常被定义为整数0或者(void*)0。...C++98中的指针空值 在良好的C/C++编程习惯中,声明一个变量时最好给该变量一个合适的初始值,否则可能会出现不可预料的错误,比如未初始化的指针。...注意: 在使用nullptr表示指针空值时,不需要包含头文件,因为nullptr是C++11作为新关键字引入的。

11010

C++入门精通——模板

前言 C++模板是C++语言中的一种泛型编程技术,可以实现在编译期间生成不同类型的函数或类。通过使用模板,可以编写通用的代码,使其能够处理多种不同类型的数据。...C++模板可以分为函数模板和类模板两种类型 一、泛型编程 如何实现一个通用的交换函数呢?...泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。...同时,函数模板还可以提供更加灵活的编程方式,允许用户根据具体需求自定义类型参数。 函数模板格式 template<typename T1, typename T2,.........// 与非模板函数匹配,编译器不需要特化 Add(1, 2); // 调用编译器特化的Add版本 } 对于非模板函数和同名函数模板,如果其他条件都相同,在调动时会优先调用非模板函数而不会该模板产生出一个实例

5110

C++入门精通——引用(&)

C++的引用 前言 C++的引用是别名,它为已存在的对象提供了另一个名称。一旦引用被初始化指向一个对象,它就不能再指向其他对象。引用必须在声明时初始化,并且必须初始化为有效的对象或字面量。...C++11引入了右值引用和移动语义,允许更高效的资源管理和性能优化。总的来说,C++的引用是一种强大的工具,能够增强代码的可读性和性能。...因为参数是引用类型,所以对i的修改会直接影响x。...需要注意的是,引用作为函数参数时,函数内部对引用的修改也会反映函数外部的变量上。...x + y;//是可以的,和上面一样是临时变量的原因 除了类型转换之外,还有以下几种情况会生成临时变量: 函数返回值:当一个函数返回一个临时变量时,编译器会在函数结束时生成一个临时变量,并将其复制函数返回的地方

5510

C++入门精通——this指针

这种机制使得成员函数能够识别和操作其所属的对象,从而实现了面向对象编程中的封装性和数据隐藏。 一、this指针的引出 this指针是C++中的一个特殊指针,它指向当前对象。...由于 p 是一个空指针,试图通过空指针调用函数会导致运行时错误,本题是对p指针解引用调用_a,所以会出现运行崩溃(即this->_a) 什么时候会出现编译报错 编译报错通常在编程过程中出现,以下是一些常见的情况...这可能是由于编程错误、内存泄漏、资源耗尽等引起的。 内存问题:程序运行时需要占用大量内存,但系统资源不足,导致程序崩溃。这可能是由于内存泄漏、内存溢出、过多的进程占用内存等引起的。...四、C语言和C++实现Stack的对比 C语言实现 typedef int DataType; typedef struct Stack { DataType* array; int capacity...函数中都是通过Stack*参数操作栈的 调用时必须传递Stack结构体变量的地址 结构体中只能定义存放数据的结构,操作数据的方法不能放在结构体中,即数据和操作数据的方式是分离开的,而且实现上相当复杂一点,涉及大量指针操作

8710

Python编程之旅:入门精通

其简洁易懂的语法、丰富的库和广泛的应用领域,使得Python成为了众多初学者的首选编程语言。那么,如何学习Python呢?本文将带你一步步踏上Python编程的旅程。...一、入门篇:搭建环境与基础语法 首先,你需要在你的电脑上安装Python环境。Python官网提供了各种操作系统的安装程序,你可以根据自己的操作系统选择合适的版本进行安装。...安装完成后,你可以通过Python自带的IDLE工具或者其他的集成开发环境(IDE)如PyCharm、VSCode等进行编程。 接下来,你需要学习Python的基础语法。...此外,你还可以学习Python的并发编程、网络编程、数据库编程等高级话题。这些话题将帮助你更全面地掌握Python编程技能,并让你在实际工作中更加游刃有余。...五、总结 学习Python编程是一个持续不断的过程。入门精通,你需要不断地学习、实践和探索。在这个过程中,你需要保持耐心和热情,不断挑战自己的极限。

11210

C++入门精通——缺省参数

在许多编程语言中,如Python、Java和C++等,都支持缺省参数的概念。下文将以C++为例,通过在函数定义时为某些参数指定默认值,就可以创建出可以接受可变数量参数的函数。...10, int c = 20) { cout<<"a = "<<a<<endl; cout<<"b = "<<b<<endl; cout<<"c = "<<c<<endl...; } 如果参数不够就会报错 注意: 半缺省参数必须右往左依次来给出,不能间隔着给 缺省参数不能在函数声明和定义中同时出现 //a.h void Func(int a = 10); /...需要注意的是,在 C++ 中,缺省参数只能从右到左连续出现,即在参数列表中,缺省参数必须位于非缺省参数的右侧。 lambda表达式 在C++中,lambda表达式被用于创建匿名函数。...它的语法与其他编程语言中的lambda表达式相似。

6010

C++入门精通——命名空间

因此,在编程中,合理地使用命名空间是一种重要的编程实践。...例如,在C++标准库中,所有的标准函数和类都被定义在一个名为std的命名空间中,这样我们在使用标准库时就需要通过std::前缀来访问其中的元素。 除了C++,其他编程语言也提供了类似命名空间的机制。...而引用头文件(#include)则是C++中实现代码重用和模块化编程的重要手段。头文件通常包含了类的声明、函数的原型、常量定义等,它们可以被多个源文件共享和引用。...虽然引用命名空间和引用头文件在C++编程中有着不同的作用,但它们在实际应用中往往是相辅相成的。例如,在一个头文件中,我们可能会定义一些属于特定命名空间的函数或类。...综上所述,引用命名空间和引用头文件在C++编程中各有其独特的作用。引用命名空间主要用于解决命名冲突和简化代码书写,而引用头文件则主要用于实现代码重用和模块化编程

6610

C++入门精通——内联函数

一、内联函数概念 为什么会出现内联函数 C语言使用宏定义编写两数交换 引例:C语言可以使用宏定义实现两数交换的功能。...在C语言中没有内联函数的概念,我们通常会使用宏定义来实现,但是宏定义的写法过于困难,如上所示的宏定义实现的交换,所以便在C++中便提出内联函数这个概念,来替代宏定义写的函数。...内联函数的优点有以下几点: 减少函数调用的开销:函数调用会涉及栈的操作、参数传递和返回值的处理等,而内联函数的代码直接嵌入调用的地方,避免了这些开销。...减少函数调用带来的代码膨胀:函数调用会导致代码中出现大量的跳转指令,而内联函数的代码直接嵌入调用的地方,可以减少跳转指令的数量,使代码更加紧凑。...提高缓存命中率:内联函数的代码嵌入调用的地方,可以减少函数调用时的跳转,使得程序的指令更加连续,更有可能被CPU缓存命中,提高程序的执行效率。

7610

C++入门精通——函数重载

C++、Java等面向对象的编程语言中,函数重载是一种常见且有用的编程技巧。通过使用函数重载,开发者可以为类或者命名空间中定义的行为提供多个入口,以适应不同的数据类型或调用场景。...C语言是一种相对简单的编程语言,它的设计目标是提供一种简洁、高效的工具来进行系统级编程。因此,C语言主要关注的是语言的简洁性和效率,而不是提供过多的语言特性。...所以C语言中的函数只能有一个名称,没有函数重载的概念。 相比之下,C++是一种更为复杂和功能更强大的编程语言。它在C语言的基础上添加了许多面向对象的特性,并且支持更高级的编程抽象。...我们以c语言为例,关于具体的编译和链接的过程可看——C语言入门实战——编译和链接 实际项目通常是由多个头文件和多个源文件构成,而通过C语言入门实战——编译和链接这篇文章,我们可以知道,【当前a.cpp...采用C语言编译器编译后结果 结论:在linux下,采用gcc编译完成后,函数名字的修饰没有发生改变。

11610

Linux入门精通(十)——进程管理

当进程获得处理器而运行时 ,state的值仍然为TASK_RUNNING,并不发生改变;但Linux会把一个专门用来指向当前运行任务的指针current指向它,以表示它是一个正在运行的进程。...这个状态被应用在内核中某些场景中,比如当进程需要对磁盘进行读写,而此刻正在DMA中进行着数据内存的拷贝,如果这时进程休眠被打断(比如强制退出信号)那么很可能会出现问题,所以这时进程就会处于不可被打断的状态下...一般和"-n"选项合用,用于把 top 命令重定向文件中; -n 次数:指定 top 命令执行的次数。...简单来说,缓存(cache)是用来加速数据硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。...如果我们想要看到所有的进程,则可以把 top 命令的执行结果重定向文件中。 不过 top 命令是持续运行的,这时就需要使用 “-b” 和 “-n” 选项了。

1.3K50

Linux入门精通系列之NFS

Linux 服务器端NFS 服务器的配置    以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。    ...  最后执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求:   # /etc/rc.d/init.d/NFS start   用户也可以重新启动Linux...在NFS 服务器启动后,还需要检查Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS 使用的端口和允许通信的主机,主要是检查Linux 服务器iptables,ipchains...我们首先在Linux 服务器上进行NFS 服务器的回环测试,验证共享目录是否能够被访问。...在Linux 服务器上运行如下命令:   # mount –t NFS 192.168.0.20:/home/work /mnt   # ls /mnt   命令将Linux 服务器的NFS

1.5K40

C++入门精通——友元

例题 关于重载可以去看我的这篇文章——C++入门精通——类的6个默认成员函数之赋值运算符重载 问题:现在尝试去重载operator<<,然后发现没办法将operator<<重载成成员函数。...const修饰 友元函数可以在类定义的任何地方声明,不受类访问限定符限制 一个函数可以是多个类的友元函数 友元函数的调用与普通函数的调用原理相同 二、友元类 概念 友元类(Friend Class)是指在C+...在C++中,类的友元关系可以通过在类的定义中使用friend关键字来声明。当一个类被声明为另一个类的友元类时,该友元类的所有成员函数都可以直接访问该类的私有成员。...友元关系不能传递 如果B是A的友元,C是B的友元,则不能说明C时A的友元。 友元关系不能继承,在继承位置再给大家详细介绍。

9110
领券