Linux基础命令及vi编辑器基础(5.4)

Linux历史:

一、历史了解

丹利斯*里奇   C语言的创造者

 

李纳斯   Linux内核的创造者

 

 

二、linx体系架构

linux内核

shell

文件系统

实用程序

 

 

三、操作系统

思考:操作系统的作用是什么?

答:合理的管理和分配资源(硬件资源:CPU,ARM和其他外设,软件资源:进程,线程,应用程序)

 

PC:

检测硬件

BIOS自检

| 初始化内存

|

引导程序

|

|

OS启动

|

|

应用程序

 

 

ARM开发板

BOOTleader  初始化我们的硬件设备

|

|

引导程序

|

|

引导内核

|

|

系统初始化(init进程)

|

|

用户登陆

使用小技巧:ctrl + alt + F1-F6  进入命令界面

 crlt + atl + F7 切换回图形界面

 

vimtutor zh  进入vim中文阅读手册

四、vi编辑器的三种模式

 

1、命令模式:vi默认进入的模式

 h———–光标左移

 j———–光标下移

 k———–光标上移

 l———–光标右移

 

2、插入模式:我们可以编写我们的数据

 i——–光标前插入

 a——–光标后插入

 o——–下一行插入

 

3、底行模式:对文件进行保存,退出

 w——write  可理解为保存

 q——quit    退出

 a——all    所有的文件

 !——- 强制执行

常用:wq  保存和退出

q! 强制退出

wqa 保存所有的文件

x  相当于wq  保存和退出。

练习:写一个程序1+2+3…+10的和,要求用h,j,k,l进行移动

 

四、vi使用方法

详见《vi使用进阶》

五、ubuntu 软件包管理机制

 

a.deb软件包格式

Deian,ubuntu

 

 

b.rpm软件包格式

RedHat

 

 

命名规范:例如:sl_3.0.3-16_i386.deb

 

软件包名:sl

版本号:3.0.3

修正版本号:16

可用平台:i386

包类型:deb

 

1、dpkg软件包管理[本地安装]

特点:

(1)不会检查软件包之间的依赖关系,需要手动安装

 

A.安装软件

 

sudo dpkg -i 软件包(iptux-3.0.8-13-i386.deb)

 

 

sudo dpkg -i *.deb [多个软件包一起安装]

 

 

B.卸载软件

 

sudo dpkg -r 软件包名(iptux)

 

C、清除已经安装的软件包及其配置文件

sudo dpkg -P 软件包名

 

 

D、列出软件包所在系统的安装的文件

sudo dpkg -L 软件包名

 

2、apt-get软件包管理

特点:(1)支持在线安装(本质:先把软件下载先来,然后在安装)

(2)会检查软件包之间的依赖关系,并且会将依赖的软件包一起下载下来安装

三个特殊路径:

 

/etc/apt/source.list[file]—>镜像站点服务器(可以立即成软件包下载下来的网站)

/var/lib/apt/lists[dir]   —>索引文件(可以理解成我们软件下载具体内容的在本地的缓存)

/var/cache/apt/archives[dir] —-> 下载下来的软件包存放的地方

 

 

原理讲解:我们使用apt-get命令下载文件的时候,默认是在镜像站点服务器的索引文件搜索我们软件

          一些信息,当搜索到我们软件的信息之后,就到我们的镜像站点服务器对应的网址中

          下载我们需要的软件,把软件下载完成之后,就存放到我们的/var/cache/apt/archives。

          并且安装该软件。

 

A.安装软件

sudo apt-get install 软件包名(sl)

 

B.卸载软件

sudo apt-get remove 软件包名

 

C.更新索引文件

sudo apt-get update

 

D.清空存放下载软件包的目录

sudo apt-get clean 

 

 

 

六、Linux基础命令(必须记住)

详见<<1.linux基础命令.txt>>

 

 

文件系统简介

/

| |   |    |

etc  dev  bin  home

 |

test.c

 

绝对路径:以根目录为起点,依次向下递增。

相对路径:以当前目录为起点

vi /etc/test.c


Linux基础命令:

一、常用基本命令了解(必记)

<1>ls  显示当前目录下的文件及目录

参数:

 -a  显示所有的文件,包括隐藏文件(以.开头的文件)

 -l  显示当前目录下的文件及目录属性

 -lh 显示当前目录下的文件及目录属性,并且K,M,G为单位显示文件大小

 

 

<2>pwd 显示当前工作目录所在的绝对路径

 

 

<3>cd 切换工作目录   

常用:

cd + 回车  切换到用户主目录

 

  cd  + 路径名称  切换到指定路径下面

  例如:cd  /home/chw/work

  

  cd .. 切换到上一层目录

  

  cd ~ 切换到用户主目录

  

  cd  – 切换到前一个工作目录

  

<4>mkdir 新建一个目录

常用:

 

a.在当前目录下新建一个目录

mkdir /home/chw/dir

 

b.在当前目录下递归创建多个目录

mkdir -p /home/chw/one/two/three

 

 

<5>cp 拷贝源文件或者目录到指定路径

常用:

 

a.将普通文件拷贝到指定的路径   

sudo cp /mnt/hgfs/share/test.c  /home/chw

 

b.将目录拷贝到指定的路径

sudo cp /mnt/hgfs/share/dir  /home/chw  -a

 

c.实现备份的功能,将源文件备份一次

sudo cp test.c  test_bak.c

 

d.实现备份的功能,将目录备份一次 

sudo cp dir  dir_bak  -a

 

练习:1、在用户主目录递归创建one/two/three 三个文件夹  /home/ubuntu

2、在用户主目录写一个hello.c

3、在用户主目录新建一个test文件夹,并把hello.c移动到test文件夹中

4、把test文件夹备份成test_farsight

5、把test_farsight文件夹复制到/home/ubuntu/one/two/three 该文件夹下

cd /home/ubuntu

mkdir -p one/two/three

vi hello.c

 

mkdir test 

cp hello.c test

 

cp test test_farsight -a

 

cp test_farsight /home/ubuntu/one/two/three -a

<5>touch 新建文件

常用:

touch test1.c test2.c test3.c

<6>cat  显示文件的内容

常用:

cat /home/chw/test.c

参数:-n 加行号来显示内容

cat -n /home/chw/test.c

<7>mv  移动源文件或者目录到指定的位置  

常用:

 

a.将普通文件移动到指定位置

  mv /home/chw/test.c /mnt/hgfs/share

  

b.将文件实现重命名的功能

 mv  test.c  hello.c

 

c.将目录实现重命名的功能

 mv  dir   dir_list

 

<8>rm  删除一个或者多个文件或目录,物理删除,不可恢复

常用:

   rm  test.c

   

参数: 

-r   删除目录文件

-f   强制删除

例如: 删除当前目录下的hello.c文件

 rm -rf dir_list

 

<9>file 查看文件的类型

例如:

 

a.查看普通文件类型

file test.c

 

b.查看目录的类型

  file  dir_list

作业:

1.将/etc/passwd文件拷贝到用户主目录(例如:/home/ubuntu)

 

2.将用户主目录下的passwd文件备份为passwd-bak

 

3.在用户主目录下新建目录test_dir

 

4.将passwd-bak移动到test_dir目录下

 

5.将test_dir目录下的passwd-bak文件改名为passwd

 

6.将test_dir目录拷贝到你的用户主目录的Desktop目录下(例如:/home/ubuntu/Desktop)

 

7.将Desktop目录下的test_dir目录改名为dir


Vi编辑器的三种模式:

一、简介

Vi编辑器是一个命令行编辑器,类似于我们windows下的记事本。它有以下三种模式。

<1>命令模式:vi界面默认进入的模式,可以输入命令来执行多种功能。例如:光标的 

             移动,字符、行的移动等。

当有文本中有内容的时候,在命令模式下:

h——-表示光标向左移动

l——-表示光标移动

j——-表示光标移动

k——-表示光标移动

 

<2>插入模式(编辑模式):输入我们文本内容。在命令模式下一般按下以下三个键之 

                         一就进入了我们的插入模式。按下esc键回到命令模式。

i————>光标前插入

a———–>光标后插入

o———–>下一行插入

<3>底行模式: 将写好的文件保存或者退出。也可以执行其他的操作。

 按下”esc”键进入命令模式,在命令模式下, 

              按下shif + “:” 就进入了我们的底行模式。

(注:由于都与我们的命令模式有关,在有的书籍中把底行模式也划入命令模式中。)

     常用:在底行模式下 w———>保存文件(write的缩写,我们这里理解为保存)

q———->退出文件(quit的缩写,即退出的意思)

!———–>强制执行(有些权限无法退出,需要用到它)。

Vi使用进阶:

以下命令均在vi命令模式有效

 

h 光标左移一个字符

l 光标右移一个字符

j 光标下移一行

k 光标上移一行

 

一.对整行操作

1.复制光标所在行 yy

粘贴光标所在行 p(注:是在当前行的下一行粘贴)

2.删除光标所在行 dd

3.选中光标所在行 shift + v

结合j k选取多行

4.复制选中内容 y

5.粘贴选中内容 p(向光标所在行的下一行粘贴)

shift + p(向光标所在行的上一行粘贴)

 

数字 + p 指定粘贴次数

 

6.剪切选中内容 x

可当退格键使用,删除光标处字符

 

7.撤销上次操作 u

 

作业:1、大家自己来写一个hell.c

  2、利用组合键来复制和粘贴5行  printf("hello world!\n");这一项

  3、第二个printf要求输出hello

  4、第三个printf要求输出world!

 

二.对单词操作

8.选取几个字符 v 结合h l选择

9.粘贴选中内容 p(注意此时我们是在光标的当前行粘贴)

10.替换单个字符 r+要替换字符

11.替换多个字符 R+要替换字符 Esc结束替换

12.查找字符串

/向下查找字符串

?向上查找字符串

*查找当前光标处单词

n下一个匹配的字符串

N上一个匹配的字符串

取消高亮 :nohls

13.替换字符串

:m,n s/oldstring/newstring/g

:.,$ s/oldstring/newstring/g

:%s/oldstring/newstring/g

m,n 指定替换从m行到n行

. 表示光标当前行

$ 表示文件最后

g 替换所有找到字符串,若无g则只替换每行找到的第一个字符串

% 表示所有的行

 

 

作业:1、大家自己写一个“my name is XX”,然后输出

      2、利用替换字符串符号来把XX替换成自己的名字。

 

14.定位到某行

<1>打开文件后定位到某行

:行号

 

<2>在打开文件的时候定位到某一行

vi  文件名  +行号

例如: vi hello.c +3

 

 

terminal 快捷键

15.另开一个终端(默认进入了当前目录) ctrl + shift + n   

16.当前终端再开一个终端(默认进入用户目录/home/用户名) ctrl + shift + t    

 

Ubuntu软件包详解:

一、简单介绍

Ubuntu Linux采用了Debian的软件包管理机制。由于软件包具有易用性、灵活性和扩展性的特点,再加上再加上Internet的支持,使用户随时都能拥有最新的 Ubuntu系统,这也是Ubuntu受到推崇的一个重要原因。因而,Deb软件包管理也成为Ubuntu中最有活力的部分。本章将介绍ubuntu软件包管理器。

二、目前流行的两种软件包管理机制

最初,基于Linux系统的开发者在完成应用程序的开发之后,将很多的二进制文件发送给用户。因此,Debian Linux首先提出“软件包”的管理机制——Deb软件包,将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用 户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。

随即,Redhat Linux基于这个理念推出了自己的软件包管理机制——Rpm软件包。当然,Redhat Linux采用了自己的打包格式生成Rpm包文件,由Rpm包管理器负责安装、维护、查询,甚至软件包版本管理。由于Redhat Linux系统的普及,Rpm软件包被广泛使用,甚至出现第三方开发的软件管理工具,专门管理Rpm格式的软件包。

ubuntu Linux系统的软件包管理机制延续了Debian的包管理方法。

三、目前流行的两种软件包管理机制

<1>简介

Debian包文件包含了二进制可执行文件、库文件、配置文件和man/info帮助页面等文档。通常Debian包文件的后缀为.deb,因此称为“Deb软件包”。Ubuntu有两种类型的软件包:二进制软件包(deb)和源码包(deb-src)。

  ●    二进制软件包(Binary Packages):包含可执行文件、库文件、配置文件、man/info页面、版权声明和其他文档。

  ●    源码包(Source Packages):包含软件源代码、版本修改说明、构建指令以及编译工具等。先由tar工具归档为.tar.gz文件,然后再打包成.dsc文件。

注:我们可以在/etc/apt/source.list中来查看我们的两种包类型

 

打开之后的页面,

二进制/源码包     访问的地址          ubuntu发行版本的一种      软件包组件

 

这里的deb就是我们的二进制包,这里的deb-src就是我们的源码包.

<2>软件包的命名规则

在Ubuntu Linux中,软件包的命名遵循以下约定:

 

例如:

 

软件包名: g++

软件版本:4.1.2

修正版本:9

体系架构:i386

包类型:deb包

软件包:g++_4.1.2-9ubuntu2_i386.deb

<2>软件包的安装工具简介

(1)dpkg软件包管理(本地安装)

   1.1概念了解

我们常常使用的软件包管理工具有两种,一种叫做dpkg软件包管理工具,它是”debian package”的简写,是Debian软件包管理器的基础。它是最早的deb软件包管理工具,他在Debian Linux一提出软件包管理模式后就诞生了。使用dpkg可以实现软件包的安装、编译、卸载、查询,以及应用程序打包等功能。但是由于当时Linux系统规模 和Internet网络条件的限制,我们使用dpkg安装软件包的时候需要考虑软件包之前的依赖关系。也有人把它叫做本地安装工具。总之,dpkg是一个底层的软件包管理系统,主要用于对已下载到本地和已安装的软件包进行管理.

 

图1.1  软件包依赖关系

基于这个特性,我们的dpkg安装一般来说有可能要安装多个软件包。而我们linux系统中的依赖关系相对复杂,因此就定义了一个依赖关系表。

 

        图1.2 依赖关系表

 既然有了依赖关系,那么我们肯定会安装多个软件包,那么哪个软件包先安装,那个软件包后安装呢?于是,这里就又有了一个叫做优先级的说法。Ubuntu中为每个软件包指定了一个优先级,作为软件包管理器选择安装和卸载的一个依据。下图中有关于优先级的描述。

 

 

1.2dpkg命令详解

特点:不会检查软件包之前的依赖关系。故可能安装多个软件包。

A.安装软件 

sudo  dpkg -i 软件包 [安装单个软件包]

或者

sudo apkg -i  *.deb [多个软件包一起安装]

例如:sudo dpkg -i nano_2.2.6-1_i386.deb

 

B.移除已经安装的软件包

sudo dpkg  -r 软件包名

例如:sudo dpkg -r nano

 

C.移除已安装的软件包及配置文件

sudo dpkg -P 软件包名 移除已安装的软件包及配置文件 

 

D.列出软件包在系统所安装的文件 

sudo dpkg -L 软件包名  

 

E.列出软件包安装状态

sudo dpkg -s 软件包名 

 

 

(2)apt-get软件包管理(联网安装)

1)镜像站点服务器

      APT系列工具可能是Deb软件包管理工具中功能最 强大的。它会自动检测软件包之间的依赖关系。因为它采用了集中式的软件仓库的机制,将各式各样 的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。(可理解为我们上网的时候,有很多的网站,网站中有一些下载的链接,这里下载的链接中就又很多的软件包,这就是软件包仓库,这里的镜像站点服务器可理解为下载的网站)。这些镜像服务器就是它们的软件源(下载网站的集合

我们可以在/etc/apt/source.list中来查看我们的软件源。这个路径就叫做镜像站点服务器

内容如下:

 

 

 

 

2)索引文件

     我们的镜像站点服务器只是告诉了我们。我们的软件包应该在哪里去下载。但是我们这些镜像站点具体拥有哪些资源,对我们来说,不是很清楚。如果,我们每安装一个软件包就到我们的服务器上去寻找一遍,这样的话效率就太低了。因此,我们提出了一个概念,叫做索引文件。它的本质就是我们为服务器上的软件资源在本地列了一个清单,以便于主机进行查询操作。(可理解为网站服务器在本地的缓存)。

我们可以在/var/lib/apt/lists/ 这个目录来查看

 

3)下载软件包存放的路径

我们在windos上下载软件的时候,一般是会把.exe的安装包下载到一个指定的路径,然后双击它进行安装。我们的ubuntu也是一样的。只不过这个下载路径是固定的。

我们可以到/var/cache/apt/archives这个目录下来查看我们的软件包

 

4)安装命令

A.安装软件

sudo apt-get install 软件包名(sl)

B.卸载软件

sudo apt-get remove 软件包名

C.更新索引文件

sudo apt-get update

D.清空存放下载软件包的目录

sudo apt-get clean

总结:三个重要的路径

/etc/apt/sources.list [文件] -> 镜像站点服务器地址(可以理解成软件包的下载网站)

/var/lib/apt/lists [目录] -> 每个镜像站点软件包的索引文件(可以理解成我们软件包下载 网站具体内容的缓存,例如:软件版本,软件名等等)

/var/cache/apt/archives [目录 ] -> 下载下来软件包存放路径

原理:我们使用apt-get命令下载文件的时候,默认是在镜像站点软件包的索引文件中查找该软件的一些信息,当我们找到索引文件中的软件信息之后,就进入了我们的镜像站点服务器地址来下载我们需要的软件,下载的文件存放在/var/cache/apt/archives目录下。


Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注