1 Linux概述

1.1 Unix介绍

Unix是一个强大的多用户、多任务操作系统。
于1969年在AT&T(美国电话电报公司)的贝尔实验室开发。
UNIX的商标权由国际开放标准组织(The Open Group)所拥有。
UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。不过UNIX有免费版的,例如:NetBSD等类似UNIX版本。

1.2 Linux介绍

Linux是一套免费的类Unix操作系统
Linux是一套免费使用和自由传播的类Unix操作系统,可以任意修改其源代码。
Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。
image.png
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux操作系统诞生于1991 年10 月5 日。芬兰大学生林纳斯-托瓦兹(Linux Torvalds)和后来陆续加入的众多爱好者共同开发完成。
image.pngimage.png
Linux的特点:它是多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面,出色的速度性能.
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。

1.3 Linux系统的应用

服务器系统:Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;
嵌入式系统:路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,
高性能运算、计算密集型应用:Linux有强大的运算能力。
桌面应用系统
移动手持系统

1.4 Linux的版本

Linux的版本分为两种:内核版本(https://www.kernel.org/)和发行版本。
内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号。
发行版本是一些组织和公司根据自己发行版的不同而自定的。

1.5 Linux的主流版本

image.png
 RedHat Linux
Red Hat领导着Linux的开发、部署和经营,从嵌入式设备到安全网页服务器,它都是用开源软件作为Internet基础设施解决方案的领头羊。
Red Hat解决方案包括Red Hat Linux、开发人员和嵌入式技术,以及培训、管理和技术支持。
 Ubuntu
Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统。
Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
为桌面虚拟化提供支持平台
 CentOS
CentOS 是Linux发行版之一。
由Red Hat Enterprise Linux提供的源代码编译而成。很多公司使用CentOS替代商业版RedHat Linux。
RedHat 和CentOS差别不大,Red Hat Linux 和Centos系统是免费的。
Red Hat Linux 服务是收费的,比如免费版本不支持在线升级
Centos每个版本服务都是免费的.

2 1 Linux安装

1.1 什么是虚拟机

虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟机软件:
VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,收费的。VMware是全球桌面到数据中心虚拟化解决方案的领导厂商
VirtualBox 是一款开源虚拟机软件。VirtualBox是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox

1.2 安装VMware(//TODO 安装及配置自己做一个录像)

参考《01.VMware使用.doc》

1.3 安装CentOS(//TODO 安装及配置自己做一个录像)

参考《02.Linux(CentOS)安装.doc》
安装Desktop版(可以使用窗口模式也可以使用图形化界面,Basic Service 版只能用窗口模式不可以使用图形化界面。)

1.4 CRT工具使用(//TODO 安装及配置自己做一个录像)

参考《03.CRT连接linux.doc》

1.5 Linux目录结构

image.png
 /: 根目录,一般根目录下只存放目录,不要存放文件。
/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
 /bin: /usr/bin: (binaries)存放二进制可执行文件。如常用的命令ls、tar、mv、cat等。
 /boot: 放置linux系统启动时用到的一些文件。
/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可
 /dev:(devices) 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备。
常用的是挂载光驱mount /dev/cdrom /mnt。
/etc:(etcetera) 系统配置文件存放的目录,不建议在此目录下存放可执行文件。
重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。
 /home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
 /lib: (library) /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
/root: 系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
 /sbin: (super user binaries) /usr/sbin: /usr/local/sbin: 放置系统管理员使用的可执行命令。
如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能”查看”而不能设置和使用。
/usr:(unix shared resources) 应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间。
 /var:(variable) 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message: 所有的登录文件存放目录,/var/spool/mail: 邮件存放的目录, /var/run: 程序或服务启动
 /opt: 给主机额外安装软件所摆放的目录。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
 /tmp:(temporary) 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
 /srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
 /mnt:/media:(mount) 光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
 /proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等

3 常用命令

3.1 磁盘管理

3.1.1 ls命令

 ls(list)功能:列出目录内容
 格式:ls [参数] [文件或目录]
-a或—all 下所有文件和目录。注意隐藏文件、特殊目录、. 和 ..
-l 使用详细格式列表。
-t 用文件和目录的更改时间排序。
-r 反向排序
—help 在线帮助。
 常用
ls -l —> 此命令非常常用,提供简化版命令 ll
ls -al
ll /home/ —> 显示指定目录下的内容
image.png
image.png

3.1.2 cd命令

 cd(change directory) 功能:切换目录
 语法:cd [目录]
 常用
cd ~ ,当前用户目录
cd / ,根目录
cd - ,上一次访问的目录
cd .. ,上一级目录
cd ,缺省当前用户目录
image.png

3.1.3 pwd命令

 pwd(print working directory) 功能:显示工作目录
image.png

3.1.4 mkdir命令

 mkdir(make directoriy)功能: 创建目录
-p 父目录不存在情况下先生成父目录 (parents)
-v 显示命令执行过程中的详细信息

  1. mkdir -pv ./abc/123

image.png

3.2 文件管理—文件浏览

3.2.1 cat命令

 cat(catenate)功能:显示文本文件内容
 语法:
cat 文件 ,显示指定文件的所有内容
image.png

3.2.2 more命令

 more功能:分页显示文件内容,还支持直接跳转行等功能。
 语法:more file
 操作
Enter 向下n行,需要定义。默认为1行
空格键 向下滚动一屏 或 Ctrl+F
B 返回上一屏 或 Ctrl+B
q 退出more

  1. more /root/install.log

image.png

3.2.3 less命令(最强大,常用)

 less功能:分页显示文件内容,操作更详细。
 语法:less [参数] 文件
-m 显示类似more命令的百分比
-N 显示每行的行号
 操作
空格键:前进一页 或 page down
b:后退一页 或 page up
d:前进半页
u:后退半页
回车键:前进一行 或 方向键向下
y:后退一行 或 方向键向上
/字符串:向下搜索
?字符串:向上搜索
v:进入vim编辑器
左右方向键:相当于水平滚动条
q:退出

  1. less -mN /root/install.log

image.png

3.2.4 tail命令

 功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
 格式:tail[必要参数][选择参数][文件]
-n<行数> 显示行数
-f 循环读取

  1. ping 127.0.0.1 > ip.log &
  2. tail -f ip.log

image.png
 & 表示后台运行,否则占用终端
 ctrl + c 退出

3.3 文件管理—文件操作

3.3.1 cp命令(常用)

 cp(copy)功能:复制文件或目录。
 语法:cp [参数] [源文件或目录] [目标文件或目录]
-r或—recursive 递归处理,将指定目录下的文件与子目录一并处理。

cp ./abc ./xxx                #无法复制目录
cp -r ./abc ./xxx            #复制目录必须使用 -r参数

image.png

cp ip.log ip2.log
cp ip.log ip2.log
cp -b ip.log ip2.log

image.png

3.3.2 mv命令(常用)

 mv(move) 功能:移动或更名现有的文件或目录。
 语法:mv [源文件或目录][目标文件或目录]
-f或—force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。

mv ./abc/123/ ./xxx/111            #移动一个空目录 或 一个文件

image.png

cp ip.log ./abc/ip.log
mv ip.log ./abc/ip.log
mv -f ip.log ./abc/ip.log

image.png

3.3.3 rm命令

 rm(remove) rm 功能:删除文件或目录。
 语法:rm [-dfirv][—help][—version][文件或目录…]
-f或—force 强制删除文件或目录。
-r或-R或—recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

rm ./ip2.log
rm -f ./ip2.log            #强制删除文件
rm -f ./xxx
rm -rf ./xxx            #强制删除目录

image.png

3.3.4 find命令

 find功能:查找文件或目录。
 语法:find [目录…] [参数]
-name 指定字符串作为寻找文件或目录的范本样式。

find /root/ -name 'test*'

image.png

3.4 文档编辑

3.4.1 vi 或 vim 命令(常用)

3.4.1.1 基本操作

 输入“vim 文件名”进入“一般模式”
 按下“i”从一般模式,进入“插入模式”
 按下“esc”从“插入模式”退出到“一般模式”
 在“一般模式”下,输入“:wq”,退出编辑。
image.png

3.4.1.2 vi基本概念

基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

3.4.1.3 常用命令

分组 命令 描述
插入

(从一般模式进入到插入模式)
i 在光标插入
shift + i 在光标当前行开始插入
a 在光标插入
shift + a 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
shift + o 在光标当前行的上一行插入新行
复制或粘贴

(在插入模式下)
yy **
将光标移动到将要复制的行处
nyy 多行复制
将光标移动到将要复制的首行处
p 粘贴
将光标移动到将要粘贴的行处
定位 gg 到文本的第一行
shift + g 到文本的最后一行
删除 dd **
ndd 删除n行
退出 :q 退出vi(没有做任何修改时)
:q! 强制退出不保存
:w 保存不退出
:wq 保存后退出

3.4.2 管道 |(常用)

 linux提供管道符号“|”。作用是“命令1”的输出内容,将作为“命令2”的输入内容。一般与grep命令一起使用。
 格式:命令1 | 命令2

3.4.3 grep命令(常用)

grep全称是Global Regular Expression Print,表示全局正则表达式版本
 功能:用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
 格式:grep [option] pattern [file]
-i 或 —ignore-case #忽略字符大小写的差别。

#格式:grep  参数  过滤条件  文件
#查看install.log文件中含有“control”字符的内容
grep -i control /root/install.log

image.png

#格式: 其他命令 |  grep  参数  过滤条件
cat /root/install.log | grep -i control        #在cat命令输出结果基础上,进行过滤

image.png

3.5 系统命令(普通用户一般用不到,企业开发里一般不会给root账户)

3.5.1 ps命令

 功能:ps命令是Process Status的缩写。提供对进程的一次性查看。及执行ps命令的那个时刻进程信息。
 格式:ps[参数]
-e 此参数的效果和指定”A”参数相同,显示所有程序
-f 显示UID,PPIP,C与STIME栏位


ping 127.0.0.1 > ip.log &
ps -ef | grep -i ping

image.png

3.5.2 kill命令

 kill功能:删除执行中的程序或工作。
 语法:kill [参数][程序]
-l <信息编号> 若不加<信息编号>选项,则-l参数会列出全部的信息名称。
image.png
kill -9 表示强制终止

格式: kill -9  pid
kill -9 4199

3.5.3 ifconfig命令

 功能:显示网络设备
 命令:ifconfig
image.png

3.5.4 ping命令

 功能:测试与目标主机的连通性
 命令:ping 主机名或ip地址
image.png

3.6 备份压缩:tar命令(常用)

 tar功能:文件备份压缩
 语法:tar命令
-c 建立一个压缩文件的参数指令(create)—压缩
-x 解开一个压缩文件的参数指令(extract)—解压
-z 是否需要用 gzip 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)
常用解压参数组合:zxvf
常用压缩参数组合:zcvf
 压缩

tar -zcvf itheima.tar ./itheima/

image.png
 解压

rm -rf ./itheima              #将“itheima”移除,再解压
ll | grep -i itheima
tar -zxvf ./itheima.tar

image.png

3.7 关机重启

 Linux centos重启命令:reboot
 Linux centos关机命令:halt 立刻关机

3.8 文件权限:chmod 命令

 chmod(change mode) 功能:变更文件或目录的权限。
 语法:chmod [参数] [<权限范围><符号><权限代号>]
-R或—recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
 权限范围的表示法如下:
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
 符号:
+ 添加权限
-取消权限
 有关权限代号的部分,列表于下:
r:读取权限,数字代号为”4”。
w:写入权限,数字代号为”2”。
x:执行或切换权限,数字代号为”1”。
-:不具任何权限,数字代号为”0”。

mkdir xxx
ll | grep xxx
chmod u-rwx xxx        #取消xxx目录,用户“读写执行”权限
chmod g-rwx xxx     #取消xxx目录,组“读写执行”权限
chmod 777 xxx        #给xxx目录添加所有权限

image.png
 linux 权限格式:<类型><用户><组><其他用户>
image.png

3.9 网络配置(了解就行)

3.9.1 VIM命令配置

 查看网卡配置 cat /etc/sysconfig/network-scripts/ifcfg-eth0
 概要信息如下:
DEVICE=eth0 #网卡名称
TYPE=Ethernet #网卡类型
ONBOOT=yes #是否开机启动网卡
BOOTPROTO=static #静态获取IP,其他取值:dhcp(如果设置dhcp下面红色不需要)
IPADDR=192.168.44.100 #ip地址
GATEWAY=192.168.44.2 #网关
NETMASK=255.255.255.0 #子网掩码

3.9.2 setup设置

setup

image.png
 1)选择“网络配置”
image.png
 2)选择“设备配置”
image.png
 3)选择“第一块网卡”
image.png
 4)设置IP地址等详细信息
image.png

3.10 命令总结 和 帮助

 内部命令:属于Shell解析器的一部分 (系统启动直接加载到内存的)
cd 切换目录(change directory)
pwd 显示当前工作目录(print working directory)
help 帮助
 外部命令:独立于Shell解析器之外的文件程序(独立的可执行文件)
ls 显示文件和目录列表(list)
mkdir 创建目录(make directoriy)
cp 复制文件或目录(copy)
 查看帮助文档
内部命令:help + 命令(help cd)
image.png
外部命令:man + 命令(man ls)
image.png
 不用特意记忆命令分类,开发中,如果需要查看命令参数,先使用man,如果没有结果,再使用help。