一、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下通过相应的模拟器运行常见的DOSWindows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

4.多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行

5.良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

6.支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARCAlpha处理器的平台。此外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


还有一些常用的,后期会更新~