Linux的定义

Linux的定义

Xshell登陆主机-----ssh[ip]

一、Linux的定义

1、OS(操作系统)概念,定位

在这里插入图片描述
操作系统:一款搞"管理"的软件(主要采取树状结构),主要管理:软件 + 硬件
占用:文件 = 文件的内容 + 文件的属性(文件的创建时间,文件的类别…)

Linux是一个操作系统,我们称之为kernel(核心)。但我们一般用户不能直接使用kernel,而是通过kernel的“外壳”程序,shell,来与kernel沟通

2、shell命令及理解

①什么是shell外壳:包裹在操作系统外层的软件层,方便用户和OS进行沟通

shell:接受用户的输入,交给OS执行,得到结果反馈给用户

②shell的作用:a、交互

b、保护操作系统

③bash VS shell

  • bash是具体的某个外壳
  • shell是所有外壳的总称

3、Linux内核(kernel)

1、广义上的操作系统:shell + kernel + 配套的软件(应用 + 驱动等)
2、狭义上的操作系统:指的就是内核,纯的操作系统部分

4、集成开发工具VS2013

  • 编写代码-----vim编辑器
  • 编译代码-----gcc/g++编译器
  • debug代码-----gdb调试器
  • 可以满足多种应用场景

壹、vim-----文件编辑器

//即便是当前目录没有test.c文件,他也会自己创建一个
//但如果vim后,自己创建一个test.c文件后,没给里面放东西,他会自动删除
vim test.c
①vim的特征
  • vim是一个多模式的编辑器,处于不同的模式有不同的行为,默认处在命令模式
  • vim(命令模式,插入/编辑模式,底行模式)
  • 由命令(NORMOL)->插入(INSERT):i(光标不变),a(同行的下一个位置),o(新起一行)
  • 由插入->命令,按键盘上的ESC
  • 由命令->底行,按键盘上的shift+;,vim可以从底行进行退出(保存退出,按:wq,退出,q!)
  • 底行->NORMOL,按ESC
②vim的命令模式:常见的命令(热键)
上下定位:
a、yy-----复制光标所在,当前行
nyy-----n代表个数,nyy就是复制n行
7yy
b、p-----粘贴,光标在哪里,就粘贴到下一行
np-----n代表个数,np就是粘贴n行
//粘贴1000行
1000p
c、u-----撤销上次动作
d、dd-----剪切(删除光标所在行,并复制光标所在行)
ndd-----批量剪切(剪切从光标所在行开始的n行)
e、gg-----将光标定位到文件的最开始位置
n,shift + g-----将光标定位到第n行
shift + g-----将光标定位到文件的最结尾行
左右定位:
a、shift + 4($)-----将光标定位到当前行的最结尾,锚点
b、shift + 6(^)-----将光标定位到当前行的最开始,锚点
c、w-----以单词为单位向后移动1位
nw-----以单词有单位想后移动n位
b-----以单词为单位向前移动1位
nb-----以单词为单位向前移动n位
d、x-----删除光标所在行的1个字符
nx-----删除光标所在行的n个字符
shift + x-----删除文本,但从右往左删
e、shift + ~-----批量化进行大小写转化
f、多文件光标切换(在两个窗口都是命令模式的情况下)
  • ctrl + w + h-----切换窗口
  • ctrl + w + l-----切换窗口
  • ctrl + 快速两次w-----切换窗口(推荐)
上下左右键盘模拟:
a、h-----左移
b、j-----下移
c、k-----上移
d、l-----右移
③底行命令
a、/-----找文本里面的字符串

/hello会将文本中的hello高亮,按n下一个hello

?-----查找文本里面的字符串

?hello会将文本中的hello高亮,按n上一个hello

b、set nu/nonu-----调出行号/取消
c、vs fiil.c-----打开(如果没有就创建一个)file.c文件

二、Linux的符号

三、win VS Linux保存文件类型的方式有差别

  • win :通过文件名后缀区分文件类型
  • Linux :采用属性信息列的第一个字母区分文件类型(-开头为普通文件)
    文件类型和文件后缀没有直接关系!但是我们依旧保留这种做法,为了照顾人的习惯。

四、Linux软件的安装方式

1、源码安装(工作)
2、rpm包安装
3、yum(推荐)

应用市场(客户端)应用(具体的app)
软件包管理器软件包
centos:yum快手,抖音

yum:查找,下载,安装,卸载

//在yum中寻找lrzsz文件
sudo yum list | grep 'lrzsz'
//将在yum中寻找到的lrzsz文件下载下来,并安装(免交互版本)
sudo yun install -y lrzsz.x86_64 
//卸载软件

查看软件包:
在这里插入图片描述

五、Linux的编译过程

在这里插入图片描述

1、gcc -E-----预处理:头文件展开,去注释,宏替换,条件编译

  • 形成.i文件

2、gcc -S-----编译(文件->a.out)

编译:将c代码翻译形成汇编代码

//gcc编译完成后形成的可执行程序默认为a.out
//用-o选项可以将形成的可执行程序改名为helloworld
gcc helloworld.c -o helloworld
  • 形成.s文件

3、gcc-c-----汇编:将汇编形成目标二进制文件

  • 形成.o文件
//.o文件一般是一堆乱码,可以以八进制展开
//以八进制展开
od

4、gcc-o-----链接:将目标文件和系统库进行链接形成可执行程序

  • 形成可执行文件

六、命令调试-----gdb

在这里插入图片描述

  • quit-----退出

Linux默认生成的可执行程序是动态链接且是以release方式发布的!(没有调试信息)
gcc -g-----使程序以debug形式发布,debug方式会给程序内部添加调试信息,能够让程序可被调试(若想让程序可被调试,必须gcc -g)

调试hello.c中的文件

gdb hello.c
//将第10行上下十行代码进行显示
gdb hello.c
l 10

breakpoint-----打断点

//将断点打在第17行
breakpoint 17
//第二种
b 17

quit-----退出

七、热键

ctrl + r-----历史命令的搜索

八、Linux的环境变量

1、环境变量(PATH)

想看环境变量里面的值时

//在/usr/bin文件夹中逐个查找ls
echo $PATH

env-----展示环境变量

getenv(“PWD”)-----获取环境变量的路径

在这里插入图片描述

2、SHELL

①是什么?

系统中的某些具有一定全局性质的变量,通常是为了满足某些系统需求

②为什么?

系统的全局变量,都是为了方便用户,开发者,系统进行某种最简单化的查找,定位,确定等等问题

③怎么办?

命令行,env,export,PATH,HOME

ls -a -b -c

ls-----可执行程序
-a-----命令行参数

//argc为命令行参数的个数
//argv指针数组中,存放的是命令行参数,从0开始存放,最后一个位置为NULL
//env指针数组中,放的是每个环境变量的起始地址
int main(int argc,char* argv[],char* env[]){

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值