linux操作系统知识

1.操作系统

进程是资源的单位,拥有独立的地址空间,数据区,堆栈区

子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符(进程ID)仍然保存在系统中。这种进程称之为僵死进程。

线程是程序执行和系统调度的单位,线程间可以共享一些数据

内存储器、外存储器(硬盘)、swap

Linux四大组件:shell,文件系统,应用程序,内核


2.g++编译命令

g++ test.cpp  //默认生成名为a的可执行文件

g++ test.cpp -o test  //输出名为test的可执行文件

./test  //运行exe文件

注:gcc/g++ 在执行编译时,进行了4步

①  预处理,生成.i的文件[使用-E参数]

②  将预处理后的文件转换成汇编语言,生成文件.s[使用-S参数]

③  将汇编语言变为目标代码(机器代码)生成.o的文件[使用-c参数]

④  连接目标代码,生成可执行程序[使用-o参数]

静态链接:在生成可执行程序之前,将相互依赖的.o文件链接在一起,生成可执行文件

动态链接:程序运行阶段,发现有依赖时,再去加载相应的.o文件到内存中

make工具调用makefile文件中用户指定的命令来进行编译和链接,这些命令中就包含了调用g++,makefile文件由CMakeLists.txt文件生成

3.gdb调试命令

g++ -g -o hello hello.cpp

gdb + 可执行文件名

r 运行程序

b 添加断点

c 运行到下一个断点

n 下一步

s 跟踪进入函数

p 打印变量值

bt 查看函数调用栈信息

4.vim文件编辑器

打开文件:vim + filename

i: 从光标所在位置开始插入

I: 将光标移动到行首,然后进入插入模式

a: 从光标所在位置的下一个字符处开始插入

A: 将光标移动到行尾,然后进入插入模式

o: 在光标所在行的下方,新建一行,进入插入模式

O: 在光标所在行的上方,新建一行,进入插入模式

s: 删除光标所在字符,然后进入插入模式

S : 删除所在行,然后进入插入模式

/:查找字符

R:替换字符

>>:缩进(相当于一个tab)

<<:反缩进

可视块ctrl+v

选择要操作的行;输入I,进入insert模式;输入完后按Esc键

y:复制内容

5.rdesktop远程工具

rdesktop -g 分辨率 -P -z -x l -r sound:off -u 用户名 远程IP

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 换了工作环境,没有了台式机,也买了新的便携超薄本作为主要的工作电脑,开始逐渐尝试不用鼠标,尝试习惯用非全尺寸键盘,...
    静叶思迷阅读 4,021评论 0 2
  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 5,292评论 0 2
  • 自我总结篇: 对文件的操作技巧: vim文件一个有三种状态:命令(浏览/输入命令转变末行模式),文本(添加/编辑/...
    小知大知阅读 4,181评论 0 0
  • 曾经使用了几年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。...
    Sylar丶阅读 4,379评论 0 0
  • 在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可...
    三十儿阅读 3,089评论 0 1