1.Linux的简介

1.1.Linux的概述

Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统, 所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统.

Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了成千上百种不同的Linux系统。
Linux基础_压缩包
Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在linux系统上的。
Linux基础_linux_02

1.2.Linux的分类

  • Linux根据市场需求不同,基本分为两个方向:
    1)图形化界面版:注重用户体验,类似window操作系统,但目前成熟度不够
    2)服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似 于DOS,是我们架设服务器的最佳选择
  • Linux根据原生程度,又分为两种:
    1)内核版本:在Linus领导下的内核小组开发维护的系统内核的版本号
    2)发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本
  • Linux发行版本不同,又可以分为n多种:
    Linux基础_linux_03

1.3.Linux系统的应用

WEB服务器系统

Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;

嵌入式系统

路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,
高性能运算、计算密集型应用
Linux有强大的运算能力。

桌面应用系统(乌班图)
移动手持系统

2.Linux的安装

2.1.虚拟机的安装(软件)

因为Linux也是一个系统,本质上跟我们电脑的Window没有区别,所以我们要学习Linux就首先将我们电脑的Window系统换成Linux系统,或者在我们电脑上安装双系统,听上去是不是很可怕。其实我们可以在我们电脑上安装一个软件,这个软甲可以模拟一台或多台虚拟的电脑机器,这就是虚拟机
虚拟器常用的有两种:
Linux基础_根目录_04
VMware(威睿)公司的虚拟机软件,功能强大,收费产品
Linux基础_压缩包_05
VitrualBox 虚拟机软件 Oracle公司的虚拟机软件,免费商品
由于市场上VMware使用率很高,所以我们安装VMware 《VMware安装手册》

2.2.CentOS的安装

CentOS是一个Linux的发行版本,是目前企业中用来做应用服务器系统的主要版本,CentOS的安装,其实是将该系统安装到VMware虚拟机软件中,让VMware虚拟机软件模拟出一台Linux系统的电脑。CentOS6.7安装请见《CentOS安装手册》

3.Linux的基本命令

服务器版的Linux安装完毕了,但没有图形化界面,我们只能通过控制台去操作系统,我们就要使用类似DOS命令的Linux命令去操作系统,那么下面我们就进行Linux的命令的学习。Linux命令成百上千,课程不能一一涉及,也没有必要一一涉及,根据我们程序员在日常工作中的需求,总结出如下几种供学习。

3.1.Linux的目录结构

window中通过图形化界面和鼠标可以任意切换需要进入的目录,但Linux必须通过cd命令切换目录。但在学习cd命令之前,我们有必要分清Linux的目录结构(linux目录结构详细说明)
Linux基础_根目录_06

Linux一切皆文件!
root管理员的home目录root
其他用户的home目录home目录中

3.2.目录切换命令

cd app  切换到app目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录

pwd 查看当前所在的路径

绝对路径 相对于/根目录 出发
相对路径 相对于当前目录 当前目录

clear清屏 快捷键 ctrl+l

3.3.目录的操作命令(增删改查)

linux的命令遵循结构:命令 -[参数]

(1) 增加目录操作(增)

命令:mkdir 目录名称

示例:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个test问目录
Linux基础_linux_07(2) 查看目录(查)

命令:ls [-al] 父目录

示例:在根目录 / 下使用ls,可以看到该目录下的所有的目录和文件
Linux基础_压缩包_08
示例:在根目录 / 下使用ls -a,可以看到该目录下的所有文件和目录,包括隐藏的
Linux基础_linux_09
示例:在根目录 / 下使用ls -l,可以看到该目录下的所有目录和文件的详细信息
Linux基础_压缩包_10

注意:ls -l 可以缩写成ll

(3) 搜索目录(查)

命令:find 目录 参数 文件名称

示例:find /root -name ‘test*’

(4) 修改目录的名称(改)

命令:mv 目录名称 新目录名称

示例:test目录下有一个oldTest目录,使用mv oldTest newTest命令修改
Linux基础_linux_11

注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行重命名的操作

(5) 移动目录的位置—剪切(改)

命令:mv 目录名称 目录的新位置

示例:在test下将newTest目录剪切到 /usr下面,使用mv newTest /usr
Linux基础_根目录_12

注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

(6) 拷贝目录(改)

命令:cp -r 目录名称 目录拷贝的目标位置 -----r代表递归

示例:将/usr下的newTest拷贝到根目录下的test中,使用cp -r /usr/newTest /test
Linux基础_压缩包_13

注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不  用写-r递归

(7) 删除目录(删)

命令:rm [-rf] 目录

示例:删除/usr下的newTest,进入/usr下使用rm -r newTest

Linux基础_linux_14
示例:删除/test下的newTest而不需要询问强制删除,在/test下使用rm -rf newTest
Linux基础_压缩包_15

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,  无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包

3.4.文件的操作命令(增删改查)

(1) 文件的创建(增)

命令:touch 文件名称 ----- 空文件

示例:在test目录下创建一个空文件 touch aaa.txt
Linux基础_压缩包_16
(2) 文件的查看(查)

命令:cat/more/less/tail 文件

示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
Linux基础_linux_17
示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看
Linux基础_根目录_18
示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
Linux基础_linux_19
示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束
Linux基础_压缩包_20

注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控 文 件的变化

(3) 修改文件的内容(改)

命令:vim 文件

示例:编辑/test下的aaa.txt文件,使用vim aaa.txt
Linux基础_linux_21
但此时并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式,可以 编辑文件
Linux基础_压缩包_22
编辑完成后,按下Esc,退回命令模式
Linux基础_压缩包_23
此时文件虽然已经编辑完成,但是没有保存,需输入冒号:进入底行模式,在底行模 式下输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。
Linux基础_根目录_24

关于vim使用过程:
vim 文件-------->命令模式--------->输入i---------->编辑模式----------->编辑文件----------->按下Esc--------->命令模式--------->按下:---------->底行模式----------->输入wq保存并退出/q!强制退出不保存

总结:
vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用vim编辑修改文件的方式基本会使用就可以了。

(4) 删除文件(删)
同目录删除:熟记 rm -rf 文件 即可

4.压缩文件的操作命令

(1) 打包并压缩文件
Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:.tar
linux中的压缩文件:.gz
linux中打包并压缩的文件:.tar.gz

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
命令:tar -zcvf 打包压缩后的文件名 要打包的文件
其中:z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名

示例:打包并压缩/test下的所有文件 压缩后的压缩包指定名称为xxx.tar.gz
tar -zcvf xxx.tar.gz aaa.txt bbb.txt ccc.txt 或:tar -zcvf xxx.tar.gz /test/*
Linux基础_压缩包_25
(2) 解压压缩包(重点)

命令:tar [-xvf] 压缩文件
其中:x:代表解压

示例:将/test下的xxx.tar.gz解压到当前目录下
tar -xvf xxx.tar.gz
Linux基础_linux_26
示例:将/test下的xxx.tar.gz解压到根目录/usr下
tar -xvf xxx.tar.gz -C /usr------C代表指定解压的位置
Linux基础_根目录_27

5.其他命令

(1) 显示工作目录

命令:pwd

(2) 查看进程

命令:ps -ef —显示所有的进程

(3) kill命令

命令:kill -9 pid(pid是进程的id)

(4) 搜索命令

命令:grep 要搜索的字符串 要搜索的文件

示例:搜索/usr/sudu.conf文件中包含字符串to的行
Linux基础_压缩包_28
示例:搜索/usr/sudu.conf文件中包含字符串to的行 to要高亮显示
Linux基础_根目录_29(5) 管道命令

命令:| 将前一个命令的输出作为本次目录的输入

示例:查看当前系统中所有的进程中包括system字符串的进程
Linux基础_linux_30(6) 网络通信命令
查看当前系统的网卡信息:ifconfig
Linux基础_压缩包_31
查看与某台机器的连接情况:ping
Linux基础_根目录_32
(7) 关机命令

重启命令:reboot
立即关机:halt

6.Linux的权限命令

权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以 查看某个目录下的文件或目录的权限

示例:在随意某个目录下ls -l
Linux基础_压缩包_33
第一列的内容的信息解释如下:
Linux基础_根目录_34
文件的类型:

d:代表目录
-:代表文件
l:代表链接(可以认为是window中的快捷方式)

后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的 用户的权限,其他用户的权限

r:代表权限是可读,r也可以用数字4表示
w:代表权限是可写,w也可以用数字2表示
x:代表权限是可执行,x也可以用数字1表示

Linux基础_linux_35
修改文件/目录的权限的命令:chmod
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,
其他用户只有读的权限
chmod u=rwx,g=rw,o=r aaa.txt
Linux基础_linux_36

上述示例还可以使用数字表示:
chmod 764 aaa.txt

7.用户的管理

useradd 添加一个用户

useradd test 添加test用户
useradd test -d /home/t1 指定用户home目录

passwd 设置、修改密码
passwd test 为test用户设置密码

su – 用户名 切换登录

userdel 删除一个用户

userdel test 删除test用户(不会删除home目录)
userdel –r test 删除用户以及home目录