什么是Linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
常见的Linux发行版
1.Debian
广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主,而且Debian开发者 所创建的操作系统中绝大部分基础工具来自于GNU工程 ,因此 “Debian” 常指Debian GNU/Linux。
非官方内核分支还有只支持x86的Debian GNU/Hurd(Hurd微内核),只支持amd64的Dyson(OpenSolaris混合内核)等。这些非官方分支都存在一些严重的问题,没有实用性,比如Hurd微内核在技术上不成熟,而Dyson则基础功能仍不完善。
“Debian” 正式发音为 /ˈdɛ.bi.ən/ ,Debian 是国际化协作项目,官方未指定任何非英文名称。
Debian GNU/Linux(简称Debian)是目前世界最大的非商业性Linux发行版之一,是由世界范围1000多名计算机业余爱好者和专业人员在业余时间制做。KaliLinux就是基于Debian的Linux系统。
2.Centos
CentOS是Community Enterprise Operating System的缩写,也叫做社区企业操作系统。是企业Linux发行版领头羊Red Hat Enterprise Linux(以下称之为RHEL)的再编译版本(是一个再发行版本),而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。
3.Ubuntu
Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。 自Ubuntu 18.04 LTS起,Ubuntu发行版又重新开始使用GNOME3桌面环境。
4.Deepin(国产)
深度操作系统是基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本、台式机和一体机。深度操作系统(deepin)包含深度桌面环境(DDE)和近30款深度原创应用,及数款来自开源社区的应用软件,支撑广大用户日常的学习和工作。另外,通过深度商店还能够获得近千款应用软件的支持,满足您对操作系统的扩展需求。深度操作系统由专业的操作系统研发团队和深度技术社区共同打造,其名称来自深度技术社区名称“deepin”一词,意思是对人生和未来深刻的追求和探索。
深度操作系统(deepin)是中国第一个具备国际影响力的Linux发行版本,截止至2019年7月25日,深度操作系统支持33种语言,用户遍布除了南极洲的其它六大洲。深度桌面环境(DDE)和大量的应用软件被移植到了包括Fedora、Ubuntu、Arch等十余个国际Linux发行版和社区。
安装Centos7
下载Centos7镜像
下载地址
国外 https://www.centos.org/download/
国内 https://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
由于Centos7的下载地址在国外,下载速度很慢,我们可以使用国内的镜像仓库来进行下载
- 中科大 http://mirrors.ustc.edu.cn/
我们以中科大镜像仓库为例进行下载
在文件列表找到Centos打开
找到7.9版本
选择ISOS
选择x86-64
选择第一项
即可开始下载
这里分为3个版本
CentOS-7-x86_64-DVD-2009.iso
DVD版本:默认大下,含有常用的软件
CentOS-7-x86_64-Everything-2009.iso
Everything版本:含有所有软件
CentOS-7-x86_64-Minimal-2009.iso
Minimal版本:只包含系统和基础软件
CentOS-7-x86_64-NetInstall-2009.iso
NetInstall版本:通过网络进行安装,安装过程需要联网
下载虚拟机软件
虚拟机是借助于CPU虚拟化功能实现的如要使用虚拟机需要进入BIOS打开CPU虚拟化,部分笔记本默认打开。常见的虚拟机软件有 WindowsHyper-V Oracle VM VirtualBox (开源免费,界面比较复杂,不适合新手)VMware Workstation Player (免费不开源)且有商业版本VMware Workstation Pro 而两者差别不大此教程所使用的软件为VMware Workstation Pro ,建议大家支持正版,下载正版有三十天的试用期(下载Pro版本会自带VMware Workstation Player无需重新下载)
VMware Workstation Pro下载:
https://www.vmware.com/cn/products/workstation-pro.html
VMware Workstation Player版本下载:
https://www.vmware.com/cn/products/workstation-player.html
下载完成后创建虚拟机
选择稍后安装操作系统
版本选择centos7(64位)
选择ISO文件
创建完成后开启虚拟机
开机后选择第一项,安装centos7
进入安装程序后语言选择英语
选择时区
选择asia,shanghai
选择需要安装的软件
我们把基本的软件和开发工具给选择上
选择安装磁盘
选择自动分区
开启网络
打开后会显示你的IP地址
点击开始安装即可
设置root密码
在这里需要多点两下done
创建一个普通用户
出现Reboot按钮代表安装完成,点击reboot按钮即可重启
重启后选择第一项回车
出现这个界面就代表已经安装完成了
接下来输入用户名root
密码就是你安装时设置的密码
这样就已经成功登录了
接下来我们会进行一些基础配置
1.安装常用软件
yum install 后面的四个就是软件名,输入下面的命令回车即可执行
yum install curl wget vim lrzsz
*yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。*
执行命令后他会询问你是否要下载,输入y回车代表同意,n代表不同意,我们选择y
在这里他问你是否要安装选择y
看到complete代表安装完成
clear命令进行清屏
VIM的使用方法
Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/Mac OS X/Windows系统,利用它可以建立、修改文本文件。
使用vim创建文件可以直接输入
vim 【文件名称】
例如创建一个study.txt的文件
vim study.txt
执行该命令后就会进入到vim的程序窗口
vim分为三种模式
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
输入模式:
在命令模式按i键即可进入输入模式(部分人也叫做编辑模式)按esc键退出编辑模式回到命令模式
如查看是否处于输入模式,进入输入模式后左下角会出现insert单词
在这个模式下就可以直接对文件的内容进行修改
例如进入输入模式后输入linux study直接输入即可
例如我们输入
linux study
is
very
easy
我们按esc键退出输入模式
底线命令模式:
在命令模式输入:即可进入底线命令模式
那么如何对写入的内容进行保存呢?只是就需要进入底线命令模式了
如果您当前处在输入模式需要先退出输入模式,进入命令模式,再通过命令模式进入底线命令模式
如何查看是否处于底线命令模式呢?
底线命令模式会在左下角出现一个:(冒号)
在底线命令模式下可以显示行号
在底线命令模式下输入
set nu
回车即可显示行号
讲了这么多大家是否有个疑惑,那命令模式能干什么呢?
我们普遍使用命令模式来搜素内容
例如我们在底线命令模式下需要先退出底线命令模式,按esc键,退出后我们发现左下角什么都没有了,
这时我们只需输入
/[搜索内容]
即可进行搜索。
例如我们搜索is
/is
我们发现is就已经标红了,但是由于内容太少,左下角会报一个小的错误,不用管
那么如何对文件进行保存内
我们需要进入底线命令模式
:w
代表保存
:wq
保存并退出
:q
退出
q!
强制退出
查看当前目录下的文件
lLinux ls 命令
Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
ls
执行后我们就看到了我们刚刚创建的study.txt文件
ls -l
查看文件的详细信息
ls -a
查看当前目录下的所有文件
.[文件名]
文件名前有一个.代表是隐藏文件
Linux文件权限
当我们执行ls -l时发现前面这一串-和字母,那这个就是代表着Linux的文件权限
每个Linux文件具有四种访问权限:可读®、可写(w)、可执行(x)和无权限(-)。
利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为准。第一个字段由10个字符组成,如下:
-rwxr-xr-x
第一位表示文件类型,-表示文件,d表示目录
2-4位: 表示文件所有者的权限,u权限
5-7位: 表示文件所有者所属组成员的权限,g权限
8-10位: 表示所有者所属组之外的用户的权限,o权限
2-10位: 的权限总和有时称为a权限
以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。
二、文件权限修改----chmod
用数字表示法修改权限
所谓数字表示法,是指将r、w和x分别用4、2、1来代表,没有授予权限的则为0,然后把权限相加,如下:
原始权限 转换为数字 数字表示法
rwxrwxr-x (421)(421)(401) 775
rwxr-xr-x (421)(401)(401) 755
修改权限的例子:将文件test的权限修改为所有者和组成员具有读写的权限,其他人只有读权限
chmod 664 test
用文本表示法修改权限
文本表示法用4个字母表示不同的用户:
u:所有者
g:组成员
o:其他成员
a:所有人
权限仍用r、w和x表示
和数字表示法不同,文本表示法不仅可以重新指定权限,也可以在原来权限的基础上增加或减少权限,如下:
=:重新制定权限
-:对目前的设置减少权限
+:对目前的设置增加权限
例子:讲上述例子中,所有者加上执行权限,组成员减少执行权限,其他成员设置为执行权限,执行以下命令:chmod u+x,g-x,o=x test
注意:逗号前后不能有空格
三、目录权限
目录权限的修改和文件权限修改不同,只是四种权限代表的含义如下:
r:可列出目录中的内容
w:可在目录中创建、删除和修改文件
x:可以使用cd命令切换到此目录
-:没有任何此目录的访问权限
注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件的权限设置为任何人都可以读写
chmod 666 /test/*
四、指定文件的默认权限掩码-----umask
权限掩码有4个八进制的数字组成,讲现有的权限减掉权限掩码后,即可产生此文件建立时的默认权限。
一般来说,新建文件的默认值是0666,新建目录的默认值是0777,如果将全线掩码设置为0002,则每个新建文件的默认权限为0666-0002=0664,而目录的默认权限则为775。可以直接输入umask命令来检查目前的默认权限掩码,或输入"umask 权限掩码"来指定默认权限掩码。
用umask的方式指定默认权限掩码,可以避免添加访问权限过大的文件或目录。
Linux目录结构
linux系统中有一句话,一切皆文件。
/ 代表根目录,跟windows中的C盘是一样的
在linux中,我们默认所在的文件夹为用户的家目录,由于我们使用的是root用户也就是系统管理员用户,进行登录,所以我们的家目录为单独的root文件夹,而在我们安装系统时还创建了一个普通用户test,而test用户的家目录在/home/test目录
我们可以执行pwd查看当前的路径
那么如何进入根目录呢?
cd /
cd(英文全拼:change directory)命令用于切换当前工作目录。
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。