一、什么是Linux?
与Windows操作系统软件一样,Linux也是一个操作系统软件。但是和Windows不同的是,Linux是一套开放源代码程序的、并可以自由传播的类Unix操作系统软件(Unix系统是Linux系统的前身,具备很多优秀特性)。其在设计之初,就是基于Intel x86系列CPU架构的计算机的。它是一个基于POSIX的多用户、多任务并且支持多线程和多CPU的操作系统。
Linux是由世界各地成千上万的程序员设计和开发实现的。当初开发Linux系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类Unix操作系统兼容产品。在过去的20年里,Linux系统主要应用于服务器端、嵌入式开发和个人PC桌面三大领域,其中服务器端领域是重中之重。
二、virtualBox安装
我们想要安装linux系统,一种方式就是直接把我们的电脑做成linux系统,但是这样我们就无法使用windows系统了,所以我们采用一种更友好的方式来装linux系统--虚拟机。
虚拟机软件有很多,我们这次讲的是virtualBox,你们如果已经安装了vmware的可以直接使用,有一个虚拟化软件即可。
三、centos7系统安装
1.下载centos7的系统镜像文件
2.打开虚拟化软件,创建一个虚拟机,虚拟机的系统选择linux
3.加载镜像文件到虚拟机中
4.首次开启虚拟机会自动打开安装centos7的界面
5.基本都可以采用默认的配置,最后设置一个root密码即可
四、文件和目录
Linux系统中,文件和目录的命名规则如下:
1.除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,使用某些特殊字符并不是明智之举。例如,在命名时应避免使用<、>、?、*和非打印字符等。如果一个文件名中包含了特殊字符,例如空格,那么在访问这个文件时就需要使用引号将文件名包括起来。
2.目录名或文件名的长度不能超过255个字符。
3.目录名或文件名是区分大小写的。如DOG、dog、Dog、DOg,是互不相同的目录名或文件名,但使用字符大小写来区分不同的文件或目录,也是不明智的。
4.与Windows操作系统不同,文件的扩展名对Linux操作系统没有特殊的含义,换句话说,Linux系统并不以文件的扩展名开分区文件类型。例如,dog.exe只是一个文件,其扩展名.exe并不代表此文件就一定是可执行文件。
五、linux绝对路径和相对路径
Linux系统中,文件是存放在目录中的,而目录又可以存放在其它的目录中。因此,用户(或程序)可以借助文件名和目录名,从文件树中的任何地方开始,搜寻并定位所需的目录或文件。
说明目录或文件名位置的方法有两种,分别使用绝对路径和相对路径。绝对路径指的是从根目录(/)开始写起的文件或目录名称,而相对路径则指的是相当于当前路径的写法。
换句话说,绝对路径必须以一个正斜线(/),也就是根目录开始,到查找对象(目录或文件)所必须经过的每个目录的名字,它是文件位置的完整路标,因此,在任何情况下都可以使用绝对路径找到所需的文件。
登陆系统后,第一眼看到的内容是: [root@localhost~]#
这就是Linux系统的命令提示符。那么,这个提示符的含义是什么呢?
- []:这是提示符的分隔符号,没有特殊含义。
- root:显示的是当前的登录用户,笔者现在使用的是root用户登录。
- @:分隔符号,没有特殊含义。
- localhost:当前系统的简写主机名(完整主机名是localhost.localdomain)。
- ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
- #:命令提示符,Linux用这个符号标识登陆的用户权限等级。如果是超级用户,提示符就是#;如果是普通用户,提示符就是$。
[root@localhost~]#命令[选项][参数]
命令格式中的[]代表可选项,也就是有些命令可以不写选项或参数,也能执行。那么,我们就用Linux中常见的ls命令来解释一下命令的格式。如果按照命令的分类,那么ls命令应该属于目录操作命令。
cd命令,是Change Directory的缩写,用来切换工作目录。
cd命令的基本格式如下:
[root@localhost~]#cd[相对路径或绝对路径]
除此之外,cd命令后面可以跟一些特殊符号,表达固定的含义
~:代表当前登录用户的主目录
-:代表上次所在的目录
. :代表当前目录
.. :代表上级目录
六、常用命令的学习
1.pwd命令
是Print Working Directory(打印工作目录)的缩写,功能是显示用户当前所处的工作目录。
2.ls命令
list的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容
3.mkdir命令
是make directories的缩写,用于创建新目录,此命令所有用户都可以使用。
[root@localhost~]#mkdir[-mp]目录名
-m选项用于手动配置所创建目录的权限,而不再使用默认权限。
-p选项递归创建所有目录,以创建/home/test/demo为例,在默认情况下,你需要一层一层的创建各个目录,而使用-p选项,则系统会自动帮你创建/home、/home/test以及/home/test/demo。
4.touch命令
[root@localhost~]#touch[选项]文件名
当文件不存在时会创建文件,文件存在是会修改文件的时间戳
七、Linux常用命令
1.ln命令
在文件之间建立链接(硬链接和软链接)
ln命令的基本格式如下:
[root@localhost~]#ln[选项]源文件 目标文件
选项:
- -s:建立软链接文件。如果不加“-s”选项,则建立硬链接文件;
- -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件;
2.cp命令
主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。
cp命令的基本格式如下:
[root@localhost~]#cp[选项]源文件 目标文件
选项:
- -a:相当于-d、-p、-r选项的集合,这几个选项我们一一介绍;
- -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
- -i;询问,如果目标文件已经存在,则会询问是否覆盖;
- -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
- -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
- ·-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
- -r:递归复制,用于复制目录;
- -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。
3.rm命令
rm 是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。
此命令的基本格式为:
[root@localhost~]#rm[选项]文件或目录
选项:
- -f:强制删除(force),和-i选项相反,使用-f,系统将不再询问,而是直接删除目标文件或目录
- -i:和-f正好相反,在删除文件或目录之前,系统会给出提示信息,使用-i可以有效防止不小心删除有用的文件或目录。
- -r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。
注意,rm 命令是一个具有破坏性的命令,因为rm命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用rm命令将其删除,将无法恢复,因此,尤其在使用rm 命令删除目录时,要慎之又慎。
4.mv命令
mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名
此命令的基本格式为:
[root@localhost ~]# mv[选项]源文件 目标文件
选项:
- -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
- -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
- -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
- -v:显示文件或目录的移动过程;
- -u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级;
需要注意的是,同rm 命令类似,mv 命令也是个具有破坏性的命令,如果使用不当,很可能给系统带来灾难性的后果。
5.tar命令
打包命令,可以压缩和解压缩
此命令的基本格式为:
[root@localhost ~]#tar[选项]源文件或目录
选项:
- -c:将多个文件或目录进行打包。
- -A:追加 tar 文件到归档文件。
- -f包名:指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
- -v:显示打包文件过程;
- -x:对 tar 包做解打包操作。
例:打包文件和目录。
[root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
#把anacondehks.cfg打包为 anacondehks.cfg.tar文件
例:解打包命令
[root@localhost ~]# tar -zxvf tmp.tar.gz
#解压缩与解打包".tar.gz"格式
6.cat命令
cat 命令可以用来显示文本文件的内容(类似于DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。
cat 命令的基本格式如下:
[root@localhost ~]# cat [选项]文件名
或者
[root@localhost ~]# cat 文件1 文件2>文件3
注意:cat 命令用于查看文件内容时,不论文件内容有多少,都会一次性显示。如果文件非常大,那么文件开头的内容就看不到了。
7.more命令
more命令可以分页显示文本文件的内容,使用者可以逐页阅读文件中的内容
此命令的基本格式如下:
[root@localhost~]#more[选项]文件名
8.less命令
less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看。
less 命令的基本格式如下:
[root@localhost ~]# less「选项] 文件名
9.head命令
head 命令可以显示指定文件前若干行的文件内容
其基本格式如下:
[root@localhost ~]# head[选项]文件名
-n 100 这个选项表示展示前100行数据
10.tail命令
tail 命令和 head 命令正好相反,它用来查看文件末尾的数据
其基本格式如下:
[root@localhost ~]# tail[选项] 文件名
选项:
- -n K :这里的 K指的是行数,该选项表示输出最后K行,在此基础上,如果使用 -n +K,则表示从文件的第 K 行开始输出。
- -c K: 这里的 K指的是字节数,该选项表示输出文件最后 K个字节的内容,在此基础上,使用 -c+K 则表示从文件第 K 个字节开始输出。
- -f:输出文件变化后新增加的数据。
11.grep命令
grep命令能够在一个或多个文件中,搜索某一特定的字符模式(也就是正则表达式),此模式可以是单一的字符、字符串、单词或句子。
正则表达式是描述一组字符串的一个模式,正则表达式的构成模仿了数学表达式,通过使用操作符将较小的表达式组合成一个新的表达式。正则表达式可以是一些纯文本文字,也可以是用来产生模式的一些特殊字符。为了进一步定义一个搜索模式,grep 命令支持如表1所示的这几种正则表达式的元字符(也就是通配符)。
grep命令的基本格式如下:
[root@localhost~]#grep[选项]模式 文件名
这里的模式,要么是字符(串),要么是正则表达式。而此命令常用的选项以及各自的含义如下
八、vim编译器
1.vi是linux系统内置的一个文本编辑器,类似于windows中的记事本,vim是vi的一个升级版,用起来更方便
2.用vim打开文件的方式:
[root@localhost ~]#vim[文件名称]
vim有三种模式,命令模式、输入模式、编辑模式
打开文件后默认是命令模式,在该模式下,可使用方向键(上、下、左、右键)或 k、j、h、i移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
3.输入模式:
在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。
4.使 Vim 进行输入模式的方式是在命令模式状态下输入 i、l、a、A、o、O等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
- i:在当前光标所在位置插入随后输入的文本光标后的文本相应向右移动
- l:在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行i命令
- o:在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
- O:在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
- a:在当前光标所在位置之后插入随后输入的文本
- A:在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令
5.编辑模式
编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。
6.使 Vim 切换到编辑模式的方法是在命令模式状态下按":"键,此时 Vim 窗口的左下方出现一个":"符号,这是就可以输入相关指令进行操作了。
7.指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。
8.vim编辑器退出的方法:
在编辑模式输入q 直接退出
输入wg 保存并退出
九、Linux用户和用户组
1.Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。
2.不同用户具有不问的权限,每个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
3.用户组就是对用户的分组,一组用户有相同的权限
4.用户和用户组的对应关系有以下 4 种:
一对一:一个用户可以存在一个组中,是组中的唯一成员;
一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
多对多:多个用户可以存在多个组中,也就是以上3种关系的扩展。