软件包及shell命令

软件包及shell命令

linux简介

Linux的发展

1.Unix的起源

1969年,由kenthompson在AT&T贝尔实验室实现的。使用的是汇编语言。

1970年,KenThompson和DennisRitchie是使用C语言对整个系统进行了再加工和编写,是的Unix能够很容易的移植到其他硬件的计算机上。

2.什么是Linux?

GNU&GPL

GNU = GNU is Not Unix,由Richard Stallman在1984创建,最初的软件:gcc、make、glibc。
GPL = General Public License(通用公共许可证)

Linux是一种操作系统,1991年,芬兰赫尔辛基大学的学生Linux Torvals为了能在家里的PC机上使用与学校一样的操作系统,开始编写了类UNIX。1991.8.25,Linux首次发布了一个Linux内核的公共版本

3.各种Linux发行版本

Red Hat、Fedora Core、SUSE、Debian、Mac OS X、Ubuntu、FreeBSD、OpenBSD、NetBSD等等

4.Linux体系结构
​ 1)Linux内核
​ 2)Shell
​ 3)文件系统
​ 4)实用程序

		 命令、程序或shell脚本
				↓
			    shell
				↓           (用户空间)

				↓           (内核空间)
			系统调用(system calls)
文件系统      I/O    内存管理   进程调度   中断异常处理  Cache

deb软件包管理

流行的两种软件包管理机制

Debian Linux软件包管理机制—Deb软件包

Redhat Linux软件包管理机制—Rpm软件包

软件包的类型

二进制软件包

源码包

软件包管理工具分类

根据用户交互方式的不同,可以将常见的软件包管理工具分为三类:

1.命令行: dpkg-deb、dpkg、apt
2. 文本窗口界面:dselect、aptitude、tasksel
3. 图形界面:synaptic

dpkg相关命令

dpkg -i 安装一个在本地文件系统上存在的Debian软件包
dpgk -r 移除一个已经安装的软件包
dpkg -P 移除已安装软件包及配置文件
dpkg -L 列出安装的软件包清单
dpkg -s 显出软件包的安装状态

dpkg和apt软件包管理器的区别

1、dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。
2、apt会解决和安装模块的依赖问题,并会咨询软件仓库, 但不会安装本地的deb文件, apt是建立在dpkg之上的软件管理工具。

APT工作原理

  1. Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存在软件仓库中,进行有效地组织和管理。然后将软件仓库置于许许多多的镜像服务器中,并保持基本一致,因此,对于用户,这些镜像服务器就是他们的软件源。

  2. 在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list列出最适合访问的镜像站点地址。

  3. 软件源配置文件只是告诉Ubuntu系统可以访问的镜像站点地址。但那些镜像站点都拥有什么软件资源并不清楚。若是每安装一个软件包,就在服务器上寻找一边,效率是很低的。因而就有必要为这些软件资源列出个清单(建立索引年文件),以便本地主机查询,这就是APT软件包管理器的工作原理。

  4. /etc/apt/sources.list。本质就是一个普通的文本文件,就可以在超级管理员授权下,使用任何文本编辑器进行编辑。在该文件中,添加的软件源镜像站点称为一个配置项。

  5. 刷新软件源
    1)修改了配置文件—/etc/apt/source.list,目的只是告知软件源镜像站点的地址。但那些所指向的镜像站点所具有的软件资源并不清楚,需要将这些资源列个清单,以便本机主机知晓可以申请哪些资源。

    2)使用“apt-get update”命令会扫描每一个软件源服务器,并为该服务器所具有软件包资源建立索引文件,存放在本地的/var/lib/apt/lists目录中。

软件管理相关工作

1.管理软件包

apt-get subcommands

[-d | -f| -m| -q|--purge|--reinstall| -b| -s| -y| -u| -h| -v] pkg

2.修复软件包依赖关系

检查软件包依赖关系:

apt-get check

用于修复依赖关系

apt-get -f install

3.更新软件包

apt-get upgrade

4.安装软件包

apt-get install pkg

5.重新安装软件包

apt-get install package –reinstall 

6.卸载软件包

apt-get remove//不完全卸载
apt-get --purge remove//完全卸载

7.清理软件包缓冲区

apt-get clean//清理整个软件包缓冲区,除了lock锁文件和partial目录

8.查询软件包信息

apt-cache//查询软件源和软件包的相关信息
apt-cache subcommands [-p|-s|-q|-i|-c|-h] pkg
apt-cache show//获取指定软件包的详细信息

9.获取软件包安装状态

apt-cache policy//获取软件包当前的安装状态
apt-cache depends//了解某个软件包依赖于哪些软件包
apt-cache rdepends//了解某个软件包被哪些软件包所依赖

shell基本命令

shell简介

  1. 英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。

  2. 可以这样认为,Linux中的shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。

  3. 命令是用户向系统内核发出控制请求,与交互的文本流。

  4. shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。

  5. 当需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑成为shell脚本文件,交给shell批量执行。

shell命令格式

立即关机与重启

sudo shutdown -h now//立刻关机
sudo shutdown -r now//关机重启
sudo reboot now

定时关机重启

sudo shutdown -h +45 “That is all,game over.”//定时关机
sudo shutdown -r +60//定时重启

shell的命令格式

username@hostname:direction$
用户名     主机名     目录名
  1. username:用户名,显示当前登录用户的账户名 (执行的命令是 whoami)
  2. hostname: 主机名,显示登录的主机名,例如若远程登录后,则显示登录的主机名;(执行的命令是hostname)
  3. direct$: 目录名,显示当前所处的路径,当在根目录下显示为“/”,当在用户主目录下显示为“~“;(执行的命令是pwd)

shell命令的三要素

$ Command [-Options] Argument1 Argument2
   指令       选项      参数1     参数2
  1. KaTeX parse error: Expected 'EOF', got '#' at position 28: …当前用户为超级用户,提示符为“#̲”,其他用户的提示符均为“”;
  2. Command:命令名称,Shell命令或程序,严格区分大小写
  3. Options:命令选项,用于改变命令执行动作的类型,由“-”引导,可以同时带有多个选项;
  4. Argument:命令参数,指出命令作用的对象或目标,有的命令允许带多个参数

shell命令格式

 	 1)一条命令的三要数之间用空格隔开;
	 2)若将多个命令在一行书写,用分号(;)将各命令隔开;
	 3)如果一条命令不能在一行写完,在行尾使用反斜杠(\)表明该条命令结束。

补齐文件名:或者键,连续按两下TAB键或ESC键,用于命令补齐;按一次TAB键,用于文件名补齐。

查询命令历史: history命令,记录有限条的历史命令,默认保留500条命令。可以修改家目录下的 .bashrc 文件中的HISTSIZE

shell中的特殊字符

1.通配符

*			 匹配任意长度的字符串		  							  例如:file_*.txt,file_wang.txt,file_lee.txt
?           匹配一个长度的字符        							   例如:file_?.txt,file_1.txt,file_2.txt,file_3.txt
[...]       匹配其中指定的一个字符     								例如:file_[otr].txt,file_o.txt,file_r.txt,file_t
[-]         匹配指定的一个字符范围    									例如:file_[a-z].txt,file_a.txt,file_b.txt直到file_z.txt
[^...]      除了其中指定的字符均可匹配  								 例如:file_[^otr].txt,file_t.txt

2.shell中的通道

管道可以把一系列命令链接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成一个管道。

ls /use/bin | wc -w

3.输入输出重定向

linux中默认的标准输入(0)定义为键盘,标准输出(1)定义为终端窗口,错误输出(2).

>file			将dile文件重定向为输出源,新建模式				ls /usr > Lsoutput.txt,将ls /usr的执行结果,写到Lsoutput.txt文件中,若有同名文件将被删除
>> file			将file文件重定向为输出源,追加模式				ls /usr >> Lsoutput.txt,将ls /usr的执行结果,追加到Lsoutput.txt文件已有内容后
< file			将file文件重定向为输入源						wc < file1,将file1中的内容作为输入传给wc命令
2> 或 &>	    将由命令产生的错误信息输入到文件中				ls noexistingfile.txt  2> err.log,使用ls命令,查看一个不存在的文件时,将系统错误提示保存在err.log文件中

4 命令置换

命令替换是将一个命令的输出作为另一个命令的参数

command1  `command2`

例如 ls pwd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值