一、Linux简史
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。linux来源于哪里?为什么linux是免费的?linux的发展历
1969年 ken.Thompson | 使用BCPL(基本组合编程语言)开发出了Unics |
1972年 Dennis Ritchie | 用c语言改写Unix |
1984年 Richard M.Stallman | 创办GNU计划和自由软件基金会,旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU 系统,bash工作环境,gcc编译程序等自由软件GPL |
1987年 Andrew S. Tanenbaum | Minix |
1991年 Linus Benedict Torvalds | Linux |
1994年 Bob Young Marc Ewing | RedHat(Linux的发行版之一),是世界上最大的开放源代码的公司之一。 |
二、Linux主要特性:
1.基本思想(一切皆文件)
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
2.完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
3.完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
4.多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
5.良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
6.支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。常见的操作系统:UNIX、Linux类、MacOS、Windows类、iOS、Android、WP、ChromeOS
linux严格来说只是linux内核,我们通常说的linux其实都是基于linux内核的一个发行版本的操作系统。linux这些发行版都是***和自由传播的操作系统并且Linux发行版在服务器上已成为主流的操作系统。
三、Linux的基本原则:
1、由目的单一的小程序组成
2、一切皆文件,设备的访问入口也是文件
3、避免捕获用户接口,尽量不和用户交互
4、配置文件保存在纯文本格式,只要有一个文本编辑器,足以搞定所有的配置。
四、Linux命令格式:
>命令
>命令 参数
>命令 -选项
>命令 -选项 参数
- 修改命令的执行特性: 短选项 -l long
- 多个选项可以组合: 长格式 --long
- 参数:指定命令的作用对象
进入正题!!! 请收下以下大礼包,觉得有收获的话,点个赞再走吧~
最常用:
ip a 查看ip地址
dhclient 地址请求
pwd 指出当前工作环境 print workdoing directory
su 切换到root用户并不切换环境(工作目录) switch user
su redhat 切换为用户身份,但不切换工作目录(工作环境)
kill -9 ID 结束相应的进程
touch 文件名 创建文件
mkdir 目录名 创建目录 -p parents 父目录 -v verbose 详细信息
ln 原文件 目标文件 创建硬链接
ln -s 原文件 目标文件 创建软链接
Nano 文件名 编辑文件
cat 文件名 查看文件
rm -f -R 文件/目录的路径 -f强制删除,-R递归删除(将某个目录下的文件都删除)
df -h 查看磁盘分区
du -a /文件的绝对路径 查看文件分区
挂载:
mount 镜像 挂载点
umount 挂载点
文件/目录权限的修改:
read write execute
user group other
r w x
4 2 1
u g o
chmod -R u/g/o +/- r/w/x 文件/目录的绝对路径
-R是递归 即如果修改的是目录文件 则其下的所有文件都会被修改
文件/目录的所属修改:
uid gid
ID/name ID/name
chown -R uid:gid 文件/目录绝对路径
chgrp gid 文件/目录绝对路径
which 只想查看命令路径但是不想查看别名路径
\which ls
which --skip-alias ls
who 查看谁登陆到当前系统相关用户信息
-b 最近一次系统是什么时间启动的 tty本地虚拟终端
-d 显示死亡进程
-r 显示运行级别
w就是who是增强版的who(可以显示登录用户,以及在做什么)
详细:
文件/目录的复制与移动:
cp [命令选项] 源文件 目的文件
常用命令选项:
-f:强行复制文件或目录,不论目标文件或目录是否已存在
-i:覆盖既有文件之前先询问用户
-p:复制的时候保留文件原有的属性,时间戳等信息
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
-a:归档复制,常用于备份 (-rp)
mv [命令选项] 源文件 目标文件
常用命令选项:
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理'。
查看目录文件:
命令格式:主命令 选项 参数(操作对象)
列出目录下的内容(list):ls
ls -l 以长列表方式列出 =ll
ls -r 逆序列出
ls -d 查看当前目录.
ls -ld 长列表列出当前目录的详细信息
ls -lh 显示目录或文件大小
ls -a 列出隐藏文件,包括.和..
ls -A 列出隐藏文件,不包括.和..
ls -i 显示文件索引节点号(inode)。一个索引节点代表一个文件,在linux中保存在磁盘分区 中的文件都给它分配一个编号,称为索引节点号inode。
man ls 查看ls的使用手册
enter键可以一行一行的翻,空格键可以一页一页的翻
按q键退出
文件查找:
find
-name 指定名字查找
-inum
-iname 指定名字进行查找忽略大小写
-user 查找属主为指定用户的文件# find /tmp -user redhat
-group 查找属组为指定组的文件
-uid
-gid
-nouser 查找没有属主的文件
-type TYPE(f d b c p s )# find / -type l ls
组合测试查找: 与( -a)或(-o)非(!)
find /tmp -nouser -o type f -ls
find /tmp -nouser -a type f ls
强大的工具 man手册
linux中使用man命令来查询命令的帮助文件,命令格式如下:
man [章节] command
常用命令如下:
d, Ctrl+D: 向文件尾部翻半屏;
u, Ctrl+U: 向文件首部翻半屏;
q: 退出;
#:跳转至第#行;
1G: 回到文件首部;
G:翻至文件尾部。
命令的帮助文件通常存放在/usr/share/man目录下。
man包含9个章节,章节用数字表示,分别是:
用户命令
系统调用
C库调用
设备文件及特殊文件
配置文件格式
游戏
杂项
管理类的命令
Linux 内核API
如果查询命令的时候不追加章节,则默认从第一个章节开始查询,以此类推,直到找到对应要查询的命令为止。
强大的vim vim大法好
文本编辑vim:
命令模式:按esc键可回到命令模式
dd 删除当前行
dw 按单词删除
u 撤销当前操作
ctrl+r 重做
yy 复制光标所在行
2 yy 复制光标所在行和光标下一行
p 粘贴到光标下一行
cc 剪切
行数cc 剪切当前行开始的几行
x 删除光标所在位置的内容
w,b 按单词进行移动光标
gg 跳转到文档首部行首
dgg 删除光标至文档首部
G 跳转到文档尾部行首
/字符串1 查找字符串1
$ 行尾
^ 行首
h 往左按字符移动光标
j 往下(后)按行移动光标
k 往上(前)按行移动光标
l 往右按字符移动光标
H 跳转到当前屏幕输出的最上面一行
L 跳转到当前屏幕输出的最下面一行
M 跳转到当前屏幕输出的中间那一行
插入模式:
i 在光标前插入
I在光标所在行行首插入
a 在光标后插入
A 在光标所在行末尾插入
s 删除光标所在位置字符并插入
S 删除光标所在行并插入
o 在光标所在行下一行插入
O 在光标所在行上一行插入
末行模式:
:wq 保存退出
:q 退出(未修改文件内容才可以退出)
:wq! 强制保存退出
:q! 强制退出,不保存
:set nu 显示行号
:set nonu 不显示行号
:行号 跳转到指定行号
:3,5 d 删除3-5行
:r 文件名1 读出文件1的内容到当前文件里
:%s/字符串2/字符串3 字符串3替换字符串2
:%s/1/2/g 将1替换为2,全局修改
:w 文件名1 另存为文件名1
会了上面那些列举的基础,拿着这些原材料,来进行软件的安装吧~
软件安装:
- 命令参数解释:
rpm redhat package manager
-ivh 安装 v打印相关进度信息install--verbose--hash
-evh 删除
-qa 查询所有安装的软件包 ,一般在后面跟上管道符使用grep来过滤关键字
-ql 查看软件包释放的文件列表[Query list]
-qf 查看某个文件是哪个软件包释放的[Query File];
-Uvh 升级软件包--Update;
-qpi 列出软件包的详细信息
-Va 校验所有的RPM软件,查找丢失的文件[View Lost];
-e:删除包
-v verfiy 核对证实
-h hash 进度条
什么是yum?
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
- 详细步骤:
1.mount /dev/sr0 /mnt (获取软件包)
2.vim /etc/yum.repos.d/base.repo (定义yum仓库文件)
[base] 源标识 (表示仓库存在)
name=haha 源名称 (仓库命名)
baseurl=file:///mnt (定义包的资源定位符/定义安装软件包的绝对路径)
gpgcheck=0 (关闭软件包公钥检查)
enable=1 (表示重启后,yum仍然生效)
yum clean all
3.yum repolist 查看仓库状态 RHEL7.2 的状态: 本地4620 / 0
4.yum install 软件名 -y(直接确认)
5.yum remove 软件名 -y
yum clean all 清除yum缓存
yum grouplist
yum groupinstall
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all全部清除
[root@localhost ~]# cd /var/cache/yum/x86_64/7Server/base/
查看源标识、源名称、状态:yum repolist
安装软件:yum install
删除软件:yum remove
本地rpm软件包:localinstall
还有一些常用的,后期会更新~