目录
1.Linux简介
1.1Linux起源
- linux的优点?
模块化程度高、硬件支持广泛、安全稳定、可移植性良好
- linux是什么?
操作系统内核
- ubuntu是什么?
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分层结构
应用层:程序、命令
内核层:五大功能:进程管理、设备管理、网络管理、内存管理、文件系统管理
- 进程管理 进程:程序的一次执行过程
- 设备管理 设备驱动
- 网络管理 TCP UDP
- 内存管理 申请malloc free
- 文件系统管理
/bin 系统常用的可执行文件 二进制文件
/boot 存放linux内核和系统的启动文件
/dev 存放设备文件
/etc 存放配置文件 passwd 存放用户信息 init.d 存放所有服务的启动脚本
/home 存放所有用户的信息
/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软件包管理机制(Red Hat Package Manager)
查看Ubuntu软件包管理机制
sudo vi /etc/apt/sources.list
2.1.2 软件包分类
二进制软件包:xx.deb
源码包: xx.dsc 源码、二进制文件、配置文件、说明文档
二进制软件包和源码包的区别?
二进制包里面包括了已经经过编译,可以马上运行的程 序。你只需要下载和解包(安装)它们以后,就马上可以使用。
源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程 序,所以从源代码安装的时间会比较长。
2.1.3 软件管理工具(重点)
在debian的linux发行版本下采用dpkg 和apt两种包管理工具
dpkg 和 apt工具的区别:
dpkg:离线安装,安装本地包,不能检查软件包的依赖关系,不关系仓库内的软件
apt:在线安装,通过仓库获取软件包的资源,解决依赖关系,不能安装本地包。
2.2dpkg工具
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 remove 软件包名:卸载软件
sudo apt-get --purge remove 软件包名:完全卸载软件
sudo apt-get update:下载更新软件包列表信息
sudo apt-get upgrade:将系统所有软件包升级到最新版本
sudo apt-get clean:清空安装包的存放路径
2.3.2apt-cache
sudo apt-cache show 软件包名:获取二进制软件包的详细描述信息
sudo apt-cache policy 软件包名 : 获取软件包当前的安装状态
sudo apt-cache depends 软件包名:获取该软件包的依赖信息
sudo apt-cache rdepends 软件包名:获取所有依赖于该软件包的软件包
3.shell
3.1shell基础知识
3.1.1概念
shell:命令行解释器
shell是贝壳的意思, 起保护作用。那linux的shell可以保护内核。
作用:负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。
3.1.2命令的执行过程
用户在命令行提示符下键入命令文本,开始与Shell进行交互。
接着,Shell将用户的命令或按键转化成内核所能够理解的指令
控制操作系统做出响应,直到控制相关硬件设备。
然后,Shell将输出结果提交给用户。
3.1.3 shell分类
(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 > file1.c
echo helloworld > file1.c
>> file : 输出重定向,追加模式
例如:
echo 12345 >> file1.c
2> 或 &>file :将由命令产生的错误信息输出到文件中
>file 2>&1:将输出重定向到文件,然后将错误重定向到输出,所以也到了文件
例如:
< file : 输入重定向
例如:
练习:实现利用管道两个程序交互,./output的输出是./input的输入,input实现输入一句话然后打印
3.4.4命令置换符
esc 下面 `
comman1 `command2`
将一个命令的输出作为另一个命令的参数
3.5echo
向终端输出指定的内容
echo -n 字符串:不换行输出
echo "字符串" :原样输出
3.6date
date:显示当前日期和时间
sudo date -s y/m/d 修改日期
sudo data -s h:m:s 修改时间
标签:字符,Shell,sudo,高级,apt,命令,软件包 From: https://blog.csdn.net/thh135/article/details/140816418