文章目录

  • 一、文件编辑命令
    • 1. vim的介绍与安装
      • 1.1 vim介绍
      • 1.2 vim安装
    • 2. vim的三种模式
    • 3. vim三种模式切换
      • 3.1 模式切换示例图
      • 3.2 命令模式 切换到 插入模式
      • 3.3 命令模式 切换到 末行模式
    • 4. vim常用命令介绍
    • 5. vim的配置文件修改
      • 5.1 vim的配置文件在哪
      • 5.2 vim配置文件的设置修改方法(添加行号,搜索结果高亮,tab缩进等等)
    • 4. 文件查看命令
      • 4.1 cat
        • 4.1.1 可以用来查看文件内容
        • 4.1.2 可以用来合并文件
        • 4.1.3 可以用来往文件中写入数据,ctrl+d结束输入
        • 4.1.4 可以用来往文件的末尾添加数据,ctrl+d结束输入
      • 4.2 more
      • 4.3 less和more的使用方式一致。
      • 4.4 head
      • 4.5 tail
        • 4.5.1 显示文件倒数n行的内容,使用方式 tail -num filename
        • 4.5.2 用来观测日志文件
    • 5. 用户管理命令
      • 5.1 用户信息的存储
        • 5.1.1 用户的基本信息
        • 5.1.2 用户组信息
        • 5.1.3 用户密码信息
      • 5.2 添加新用户
      • 5.3 修改用户密码
      • 5.4 删除用户
    • 6.进程管理命令
      • 6.1 进程是什么?
      • 6.2 进程查看命令
        • 6.2.1 ps
        • 6.2.2 pstree
        • 6.2.3 kill
          • 6.2.3.1 前后台
          • 6.2.3.2 结束进程
        • 6.2.4 pkill
        • 6.2.5 jobs
        • 6.2.6 fg
        • 6.2.7 bg
        • 6.2.8 top
  • 二、编译与调试
    • 1. gcc g++ gdb
      • 1.1 安装gcc
      • 1.2 安装g++
    • 2. gcc分步进行编译链接
    • 3. 一步编译
      • 3.1 上述四个步骤可以通过一行代码完成
      • 3.2 上述前三个步骤可以通过一行代码完成
    • 4. 编译后执行
    • 5. 编译链接过程
    • 6. g++

一、文件编辑命令

1. vim的介绍与安装

1.1 vim介绍

一般来说,我们ubuntu系统自带的文本编辑器是vi,而红帽子自带的可能更新到了vim,vim是由vi发展而来的,是升级版本,vim的兼容性更强,功能更强大。

怎么区分自己电脑安装的是vi还是vim,可以通过方向键区分,vim的方向键可以用,vi用不了。

vim则可以说是开发者非常好用的一个工具。

vim官网:www.vim.org

1.2 vim安装

如果自己电脑没有安装vim,那么在终端上输入vim,电脑会自动识别没有安装,然后界面上会显示如何去安装vim的命令:

  • (1)先进入root用户(检查一下网络状态:打开一下百度试试)
  • (2)apt install vim
    如果安装不成功,则可以先刷新一下标准软件源,命令:apt update
    如果上述命令都显示失败:则将apt 换成 apt-get
    如果出现这种情况:

    我们通过root用户写命令删除锁:
    rm /var/lib/dpkg/lock-frontend

2. vim的三种模式

vim将使用场景分为三种模式:

  • 命令模式
  • 插入模式(编辑模式)
  • 末行模式

3. vim三种模式切换

3.1 模式切换示例图

3.2 命令模式 切换到 插入模式

i //进入到当前光标位置的前面,开始插入
a //进入到当前光标位置的后面,开始插入
I //进入到当前光标所在行的行头,开始插入
A //进入到当前光标所在行的行尾,开始插入
o //切换到当前光标所在行的下一行,开始插入
O //切换到当前光标所在行的上一行,开始插入
x //删除当前光标所在位置的字符

注意:上边这6个是在记不清,只记住i就可以,通过i进入到插入模式,然后方向键挪动也是可以的,当然都能记住是最好的

3.3 命令模式 切换到 末行模式

“:” //对文本的设置或者保存工作
w 只保存
wq 保存并退出
x 等同于wq
q 只退出
q! 强制退出(不保存退出)
w newfile 另存为
set nu //显示行号
set nonu //不显示行号
set hlsearch //显示搜索结果高亮
set nohlsearch //不显示搜索结果高亮
“/” //对文本进行全文向下搜索字符串“string” 例如/wxy(区分大小写)
“?” //对文本进行全文向上搜索字符串“string” 例如/wxy(区分大小写)

如果搜索到之后,我们还想接着向下找下一个:可以使用命令:n //表示重复上一次的搜索命令

4. vim常用命令介绍

dd //删除当前行
n dd //删除从光标开始向下的n行数据
yy //拷贝当前行
n yy //拷贝从光标开始向下的n行数据
p //粘贴
u //撤销上一步操作
ctrl + r //恢复上一步撤销的操作
r //替换一个字符
shift + 6 //将光标移动到当前行的行头
shift +4 //将光标移动到当前行的行尾
gg //将光标移动到整个文本的第一行
G(shift+g) // 将光标移动到整个文本的最后一行
n + G(n shift+g) //将光标移动第n行
d n G //删除光标到第n行的内容
y n G //拷贝光标到第n行的内容
H //移动到当前屏幕的第一行
M //移动到当前屏幕的中间行
L //移动到当前屏幕的末尾行
“.” //重复上一步操作

5. vim的配置文件修改

5.1 vim的配置文件在哪

所在位置:/etc/vim/vimrc

5.2 vim配置文件的设置修改方法(添加行号,搜索结果高亮,tab缩进等等)

  • 1.切换到root用户

  • 2.打开vim的配置文件vimrc

  • 3.在vimrc 文件的末尾 添加自己想添加的命令(建议赋值粘贴,或者仔细的敲):

    set nu
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    set expandtab
    set smartindent
    set hlsearch

  • 4.通过Esc从插入模式退出到命令模式,然后通过末行模式:wq(:x)保存退出

  • 5.通过命令exit 退出root用户

4. 文件查看命令

为什么不使用vim去查看,vim可以查看,但是有修改的风险,所以如果只向查看的话,尽量避免使用
vim,而是使用其他专门用于查看的命令。

4.1 cat

4.1.1 可以用来查看文件内容

示例如下:

4.1.2 可以用来合并文件

4.1.3 可以用来往文件中写入数据,ctrl+d结束输入

命令如下:cat > A.txt(注意:这里执行起来,首先A.txt会被清空)

示例如下

注意:“>” 会对原文件清空,然后再从头开始吸入(使用的时候一定要清楚源文件内容还需不需要

4.1.4 可以用来往文件的末尾添加数据,ctrl+d结束输入

注意:“>>” 是将光标先重新定向到文件的末尾,然后再写入数据,所以原先的数据不会丢失

4.2 more

当文件的内容超出屏幕的显示范围,则可以使用more命令,分屏显示文件内容。
示例如下:(more /etc/vim/vimrc)

进入到查看界面,这时可以通过空格(一次跳转的多)或者回车(一次跳转的少)的方式向下查看剩余数据。
如果不想接着向下看了,则可以按q退出。

注意:红帽子系统是可以通过上下键查看数据的,ubuntu对于more上下键不支持。

4.3 less和more的使用方式一致。

区别:

  • less显示的文件内容,左下角没有内容百分比%
  • less显示的文件内容,不会在终端上打印
  • less显示的文件内容,支持通过上下键查看

进入到查看界面,这时可以通过空格(一次跳转的多)或者回车(一次跳转的少)的方式向下查看剩余数据。
如果不想接着向下看了,则可以按q退出

4.4 head

显示文件前n行的内容,使用方式 head -num filename
示例如下:

注意:不写num行数参数,则默认显示10行*

4.5 tail

4.5.1 显示文件倒数n行的内容,使用方式 tail -num filename

示例如下:

注意:不写num行数参数,则默认显示10行

4.5.2 用来观测日志文件

tail这个命令可以用来查看日志文件,因为日志文件一般来说只去查看近期产生的记录数据,也就是查看日志文件的末尾

例如通过命令:tail -f filename(-f follow 实时跟踪显示文件末尾的信息)重启一个终端,通过命令cat >> filename,实时输入数据,则看tail -f 界面可不可以同步显示

示例如下:

5. 用户管理命令

linux是一个多用户多任务的操作系统,所以需要对于如果管理用户有了解
root:超级管理员

5.1 用户信息的存储

5.1.1 用户的基本信息

存储位置: /etc/passwd

每行用户基本信息都与“:”作为分隔符,将其共划分成7个段,每一个段代表的含义如下:

用户名 密码 UID GID 描述性信息 主目录 默认的shell
root x 0 0 对于用户的简单描述 /root /bin/bash

5.1.2 用户组信息

存储位置:/etc/group

5.1.3 用户密码信息

存储位置:/etc/shadow

格式:用户名: 加 密 算 法 的 i d 号 加密算法的id号 加密算法的id号加密密钥$密文
有兴趣的话可以简单了解一下加密算法:MD5

5.2 添加新用户

创建新用户的同时,应该会在/home下创建一个该用户的家目录,ubuntu系统不会自动添加,而红帽子系统会自动添加,那么ubuntu系统可以用户手动添加这个家目录,或者通过图形化界面添加新用户

添加新用户命令:useradd user_name(或者使用adduser,adduser更傻瓜式创建)

注意:添加新用户需要root权限

5.3 修改用户密码

通过passwd命令修改
例如:passwd stu(修改普通用户的密码)
示例如下:

注意:如果修改后的密码过于简单,系统可能通过不了,如果非要使用简单密码(例如123456),则切换到root权限,强行设置简单密码限

5.4 删除用户

使用命令userdel删除用户
注意:

  • 首先保证删除的用户不在线(没有登录)
  • userdel默认只删除用户本身,它的家目录数据都在(数据有可能还有使用的价值)
  • 若想顺手将用户和其家目录一起删除掉,则可以使用userdel -r user_name即可

6.进程管理命令

6.1 进程是什么?

  • 程序:完成特定任务的一系列指令的集合(程序=数据+指令,例如钢琴琴谱)
  • 进程:正在执行过程中的程序(被弹奏的钢琴琴谱)
    进程(process):计算机上一段程序的运行过程,是操作系统进行资源分配的基本单位

6.2 进程查看命令

6.2.1 ps

显示当前终端上有关的进程信息

  • -e(-A):显示系统的所有进程信息
  • -f:显示更多的进程的属性信息(全格式)
  • -L:显示进程的线程ID

6.2.2 pstree

将显示进程信息以树状图的形式打印出来

6.2.3 kill

结束或者挂起一个进程

  • -9(-SIGKILL)强制结束一个进程
  • -STOP 挂起一个进程(主动将进程的执行暂停,CPU不再给这个进程分配资源)
6.2.3.1 前后台

进程放到前台运行:路径+可执行文件名
进程发到后台运行:路径+可执行文件名 + &

6.2.3.2 结束进程

ctrl + d 结束输入
ctrl + c 结束终端上的进程
ctrl + z 挂机进程
ctrl + l 清屏

6.2.4 pkill

结束一组同名的进程

6.2.5 jobs

显示当前终端的任务,显示后台执行或者挂起的任务

6.2.6 fg

将后台运行的任务或者挂起的任务挪动到前台执行
命令格式:fg %任务号

6.2.7 bg

将挂起的任务挪动到后台运行

6.2.8 top

显示系统资源的使用情况,类似windows上的任务管理器

  • f 显示各个选项的信息(详细介绍)
  • *表示已经显示的内容

二、编译与调试

1. gcc g++ gdb

1.1 安装gcc

1.2 安装g++

2. gcc分步进行编译链接

之前我们说对一个源文件进行编译,其实上述可以细分为四个步骤,预处理(预编译),编译,汇编,链接

命令如下:
(1)预处理 (-E(大写))
gcc -E main.c -o mian.i
(2)编译(-S(大写))
gcc -S main.i -o mian.s
(3)汇编(-c(小写))
gcc -c main.s -o main.o
(4)链接(-o 指定生成的文件名)
gcc main.o*

3. 一步编译

3.1 上述四个步骤可以通过一行代码完成

命令如下:gcc main.c

3.2 上述前三个步骤可以通过一行代码完成

命令如下:gcc -c main.c

4. 编译后执行

编译后生成的可执行文件,例如a.out可以用过./a.out去启动,但是如果不加“./”,想让a.out像pwd,ls一样去执行,则显示错误,说未找到命令,这时怎么办?

我们发现,pwd,ls可以直接执行,因为他们在标准路径下有备份,那么我们如果也将a.out放到标准路径下/usr/bin,是否可以达到相同的效果?

5. 编译链接过程


《程序员的自我修养》 只看第二章

6. g++

上述一般“.c”文件是通过gcc去编译,而“.cpp”文件使用过g++,那么“.cpp”有几种方法编译:

第一种:通过g++进行编译

那么命令如下:g++ main.c


第二种:通过gcc进行编译

  • -l :library:表示链接的库名称,注意:-l和库名中间不要加空格

Linux 2:vim,编译与调试,进程相关推荐

  1. Q113:PBRT-V3分别在Linux和Mac下的编译与调试(汇总)

    Linux系统下: Q106:Linux系统下安装编译PBRT-V3 Q107:Linux系统下GDB对PBRT-V3进行debug 另外,也可以直接用CodeBlocks: Q115:Linux系统 ...

  2. linux下c++编译(g++)、cmake配置完结、配置json文件并调试项目、进程管理

    一.构建项目编译规则 1.系统配置: 系统要求:linux centos7 编译器:g++ 调试器:gdb 以及cmake IDE:vscode 可以通过命令去查看linux下是否安装:通过–vers ...

  3. 在Linux下使用Vi进阶编辑器Vim编译C/C++

    Vim – 编辑器之神 历史与争端 Vim 的前身是 vi,一个简洁但是略有不足的编辑器,但是从 vi 开始,编辑器的模式区分和唯快不破的思想就已经体现的很到位了.Vim 即是 vi improved ...

  4. Linux(Ubuntu)下C语言编译与调试

    Linux(Ubuntu)下C语言编译与调试 编译流程 gcc安装命令 sudo apt install build-essential vim/touch 创建源文件 vim打开编辑源文件(.c结尾 ...

  5. Linux内核5.10编译 与调试

    Linux内核5.10编译 与调试 Linux 5.10 编译 下载内核 准备编译环境 配置模板 编译 安装新内核 qemu 调试 busybox 根文件系统制作 qemu 运行 脚本二 方法三 目的 ...

  6. 一份简单的在 Linux下编译及调试 C 代码的指南

    摘要: 一份简单的在 Linux下编译及调试 C 代码的指南 对于Linux下的C程序员来说,几乎天天都会和Linux打交道.但在很多人的眼中,Linux是一个易用性极差.靠命令驱动的操作系统,根本无 ...

  7. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  8. Q115:Linux系统下CodeBlocks对PBRT-V3进行编译和调试

    我也是醉了,在各种环境下对PBRT-V3进行了编译和调试. 参考:Q113:PBRT-V3分别在Linux和Mac下的编译与调试(汇总) 不过,小编对CodeBlocks"情有独钟" ...

  9. 使用交叉编译工具链编译并调试linux内核

    内核源码的github地址 现在之后进入到目录之中 编译之前的准备工作:安装一些软件 sudo apt-get install qemu libncurses5-dev gcc-arm-linux-g ...

最新文章

  1. 研究生论文盲审、查重再加码!毕业或将变的更加困难...
  2. 完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题
  3. java字符串逐个分解_改进JAVA字符串分解的方法
  4. C#发现之旅第九讲 ASP.NET验证码技术
  5. C++入门之常量与变量
  6. 电工助手App开发 第三周
  7. 登录过gnome主题后无法再登录xfce主题
  8. php集成paypal接口,PHP中集成PayPal标准支付,php集成paypal标准_PHP教程
  9. Problem J: 蛇形填阵
  10. Android相关属性的介绍:android:exported = true
  11. Junit介绍与实现
  12. 库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)
  13. NMF(非负矩阵分解)
  14. 试简述smtp通信的三个阶段的过程_对通信技术来说,物联网起了什么样的作用?...
  15. linux下的timerfd机制
  16. Chrome浏览器安装vue插件(附插件下载地址)
  17. Python玩转图像格式转换
  18. 自助装机配置专家点评2
  19. 嵌入式学习的几种线路图
  20. Pycharm打开Project(工程)时停留在preparing workspace时间过长,导致打开很慢的解决方法...

热门文章

  1. SAP S4 HANA 本地化报表配置(科目余额表/资产负债表/利润表/会计凭证明细表)
  2. 电子计算机厂房火灾危险性,三氯化磷储罐的火灾危险性分类?
  3. js 调用TSC打印机
  4. 华为服务器sn号查询网站,linux 查询服务器sn号
  5. guid linux 识别的分区表_教你硬盘分区表格式GUID和MBR怎么区分
  6. HR是这样筛选简历的,不知道就完蛋!
  7. SIMULIA仿真技术研讨会浙江专场
  8. 使用JLink SEGGER_RTT_printf()函数实现打印浮点数
  9. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  10. 一、Java面试基础之面向对象的特征:继承、封装和多态(原创实例)