1. Linux简介
1.1 Linux起源
1. linux是什么?
系统内核
2. linux的优点?
模块化程度高、硬件支持广泛、安全稳定、可移植性良好
3. unbuntu是什么?
linux的发行版
操作系统 = 内核 + 应用 + 硬件驱动
windows NT
ubuntu linux
Andriod linux
Mac Os unix
1.2查看系统版本
1)查看ubuntu版本
sudo lsb_release -a
cat /etc/issue
2)查看内核版本
uname -r
cat /proc/version
5.4.0-150-generic
5:主版本号
4:次版本号
0:修订版本号
150:5.4.0第150次微调
generic:通用版本
1.3分层结构
应用层 程序、命令
内核层 五大功能:进程管理、设备管理、网络管理、内存管理、文件系统管理
1. 进程管理 进程:程序的一次执行过程
2. 设备管理 设备驱动
3. 网络管理 TCP UDP
4. 内存管理 malloc free
5. 文件系统管理
/home 存放用户信息
/etc 配置文件 passwd 存放用户信息 init.d 存放所有服务的启动脚本
/dev 设备文件
/bin 二进制文件
/boot 存放linux内核和系统的启动文件
/mnt 挂载目录
/lib 库文件
/proc 进程相关的信息文件
硬件 鼠标、键盘
1.4 关机重启命令
sudo shutdown -h now 立即关机
sudo shutdown -r now 立即重启
sudo reboot now 立即重启
sudo shutdown -h 时间 提示语句:定时关机
sudo shutdown -r 时间 提示语句:定时重启
shutdown -c 取消操作
2.linux安装工具
2.1软件包的安装
2.1.1软件包的管理机制
常见软件包的后缀:
windows .exe
andriod .apk
ubuntu .deb
redhat .rpm
debian : deb软件包的管理机制
redhat : rpm的管理机制 Redhat Pakeage Manager
查看Ubuntu的管理机制
sudo vi /etc/apt/sources.list 源
2.1.2软件包的分类
二进制软件包: xxx.deb
源码包: xxx.dsc 源码、二进制文件、配置文件、说明文档
二进制软件包和源码包的区别?
二进制包里面包括了已经经过编译,可以马上运行的程 序。你只需要下载和解包(安装)它们以后,就马上可以使用。
源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程 序,所以从源代码安装的时间会比较长。
2.1.3软件管理工具
在Debian的linux发行版本下,采用dpkg和apt两种包管理工具。
dpkg与apt工具的区别:
dpkg : 离线安装,安装本地包,不需要网络;不能检查包的依赖关系,不关系仓库内的软件
apt: 在线安装,通过仓库获取软件包资源,解决依赖关系,把依赖包一起安装,不能安装本地包
2.2dpkg工具
dpkg -i 软件包的全称
sudo dpkg -i 软件包全称 : 安装软件
sudo dpkg -s 软件包名 :检查软件的安装状态
运行: 软件包名称
sudo dpkg -L 软件包名 :显示软件包的安装路径
sudo dpkg -r 软件包名 :卸载软件
sudo dpkg -P 软件包名:完全卸载软件,重新下载不会保留上次的配置
2.3apt
2.3.1apt-get
源头:/etc/apt/sources.list
默认下载路径: /var/cache/apt/archives
sudo apt-get install 软件包名: 安装软件包
例如:sudo apt-get install oneko
运行:oneko
sudo apt-get remove 软件包名:卸载软件
sudo apt-get --purge remove 软件包名:完全卸载软件
sudo apt-get update:下载更新软件包列表信息
sudo apt-get upgrade:将系统所有软件包升级到最新版本
sudo apt-get clean:清空安装包的存放路径
练习:oneko figlet bastet cmatrix
应用:figlet 123
oneko
bastet
2.3.2apt-cache
sudo apt-cache show 软件包名:获取二进制软件包的详细描述信息
sudo apt-cache policy 软件包名 : 获取软件包当前的安装状态
sudo apt-cache depends 软件包名:获取该软件包的依赖信息
sudo apt-cache rdepends 软件包名:获取所有依赖于该软件包的软件包
网络配置
1. 桥接模式
1)桥接模式:编辑->虚拟网络编辑器->更改设置->选择vmnet0->桥接模式->桥接的网络适配器(根据主机的网络连接进行选择,当然选择自动也可以)->确定。
如果自动不行也可以找到对应的网络适配器。
2)虚拟机->设置->网络适配器->选择桥接模式
1. nat模式
1)编辑->虚拟网络编辑器->更改设置->选择vmnet8->nat模式->确定。
2)虚拟机->设置->网络适配器->选择nat模式
如果还不行就试试关闭虚拟机然后还原默认设置
手动设置:
3. shell
3.1shell的基础知识
3.1.1概念
shell:命令行解释器
shell是贝壳的意思, 起保护作用。那linux的shell可以保护内核。
作用:负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。
3.1.2命令的执行过程
用户在命令行提示符下键入命令文本,开始与Shell进行交互。
接着,Shell将用户的命令或按键转化成内核所能够理解的指令
控制操作系统做出响应,直到控制相关硬件设备。
然后,Shell将输出结果提交给用户。
3.1.3shell分类
(1)Bourne Shell(简称sh):Bourne Shell由AT&T贝尔实验室的S.R.Bourne开发,也因开发者的姓名而得名。它是Unix的第一个Shell程序,早已成为工业标准。目前几乎所有的Linux系统都支持它。不过Bourne Shell的作业控制功能薄弱,且不支持别名与历史记录等功能。目前大多操作系统是将其作为应急Shell使用。
(2)C Shell(简称csh):C Shell由加利福尼亚大学伯克利分校开发。最初开发的目的是改进Bourne Shell的一些缺点,并使Shell脚本的编程风格类似于C语言,因而受到广大C程序员的拥护。不过C Shell的健壮性不如Bourne Shell。
(3)Korn Shell(简称ksh):Korn Shell由David Korn开发,解决了Bourne Shell的用户交互问题,并克服了C Shell的脚本编程怪癖的缺点。Korn Shell的缺点是需要许可证,这导致它应用范围不如Bourne Shell广泛。
(4)Bourne Again Shell(简称bash):Bourne Again Shell由AT&T贝尔实验室开发,是Bourne Shell的增强版。随着几年的不断完善,已经成为最流行的Shell。它包括了早期的Bourne Shell和Korn Shell的原始功能,以及某些C Shell脚本语言的特性。此外,它还具有以下特点:能够提供环境变量以配置用户Shell环境,支持历史记录,内置算术功能,支持通配符表达式,将常用命令内置简化。
3.1.4shell命令格式
命令名称 选项 参数
命令名称:必须有
选项 参数:可有可无,注意选项前有-
3.2历史记录命令
在家目录下的隐藏文件,通过vi打开:
.bash_history(默认存放2000条历史命令的文件)
.bashrc:定义HISTSIZE(使用history时默认显示的记录个数)和
HISTFILESIZE(.bash_history文件可以存放命令的个数)变量的脚本文件
history:查看历史命令,默认显示的命令行数根据HISTSIZE来定
echo $HISTSIZE :将变量的值显示在终端
HISTSIZE=500 : 修改环境变量的值
修改.bashrc文件中的HISTSIZE的值,将终端退出:可以永久修改
3.3起别名命令
alias : 查看所有起别名的命令
alias 新名字='原来的命令' :起别名
unalias 新名字 :取消别名
注意不要修改已经存在的命令
3.4linux特殊字符
3.4.1通配符
* 匹配所有字符
? 匹配一个字符
[...] 匹配[ ]中的一个字符
[..-..] 匹配指定的一个字符范围
[^...] 匹配除了其中指定字符外的一个字符
例如:
字符 | 含义 | 实例 |
* | 匹配0个或多个任意字符 | a*b,a与b之间可以有任意长度的字符,也可以没有。 例如:aabcb,ab,azxcb... |
? | 匹配一个任意字符 | a?b,a与b之间必须但也只能存在一个字符,该字符可以是任意字符。 例如:aab,abb,acb... |
[list] | 匹配list中的任意单个字符 | a[xyz]b,a与b之间必须但也只能存在一个字符,该字符只能是x或y或z。 例如:axb,ayb,azb |
[!list] | 匹配除list中的任意单个字符 | a[!a-z]b,a与b之间必须但也只能存在一个字符,该字符不能是小写字母。 例如:aAb,a0b... |
[^] | 匹配除了指定的一个字符 | ab[^z] , ab之后可以匹配除了z的任意字符。 例如: aba abc abf abG ab3... |
[c1-c2] | 匹配c1-c2间的任意单个字符 | a[0-1]b,a与b之间必须但也只能存在一个字符,该字符只能是数字。 例如:a0b,a1b... |
{string1,string2,...} | 匹配string1、string2等中的一个字符串 | a{abc,xyz,opq}b,a与b之间必须但也只能存在一个字符串,字符串只能是abc或xyz或opq。 例如:aabcb,axyzb,aopqb... |
3.4.2管道
格式: command1 | command2
前一个命令的输出是后一个命令的输入
例如:
wc -l 文件名 : 显示文件的行数
wc -w 文件名:显示文件的单词的个数
wc -c 文件名:显示文件的字符的个数
显示当前路径下单词的个数(文件个数)
ls | wc -w
3.4.3输入输出重定向
标准输入 标准输出 标准出错
0 1 2
> file :输出重定向,新建模式
例如:
echo hello > file2.c
>> file :输出重定向,追加模式
例如:
echo 123 >> file2.c
2> file 或 &> file :将由错误命令产生的错误信息输出到文件中
>file 2>&1 :将输出重定向到文件,然后将错误重定向到输出,所以也到了文件
例如:
< file :输入重定向