Linux
1.Linux的引言
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。目前Linux存在着许多不同的Linux发行版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
![](https://i-blog.csdnimg.cn/blog_migrate/51307382c5d1a56fd37c7d48f120eabb.png)
2.Linux的诞生
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于
PC
;
DOS
显得简陋,且源代码被软件厂商严格保密;
MacOS
是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为
MINIX
,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。
总结 :Linux出现于 1991年 ,是由 芬兰赫尔辛基大学学生 , Linus Torvalds 和后来加入的众多爱好者共同开发完成。
![](https://i-blog.csdnimg.cn/blog_migrate/f9bf0d6a5a8d41fa60fa39ac45f56295.png)
3.Linux的特点
3.1 完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其
源代码
。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数
程序员
参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
3.2 多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。同时`丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,出色的速度性能。
4.Linux之Cent OS
4.1 centos 引言
CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照
开放源代码
规定释出的源代码所编译而成。由于出自同样的
源代码
,因此有些要求高度稳定性的
服务器
以CentOS替代商业版的
Red Hat
Enterprise Linux使用。两者的不同,在于
CentOS完全开源
。
4.2 centos 和 readheat区别
目前的Linux操作系统主要应用于生产环境,主流企业的Linux系统仍旧是RedHat或者CentOS,他们出自于同样的源代码,但centos完全免费。其独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务!
5.安装 Cent OS
5.1 环境准备
# 环境要求:
- windows7+
- VMware Workstation8+,
- CentOS系统(镜像)
5.2 安装Cent OS
# 0.下载centos
# 1.第一步:打开VMware Workstation
![](https://i-blog.csdnimg.cn/blog_migrate/8d84a5f1ec46b83a14e5f769db6e6ab5.jpeg)
# 2.选择菜单File的第一项新建虚拟机
![](https://i-blog.csdnimg.cn/blog_migrate/80f0b339f49ca6107bd89313afdd89d8.png)
# 3.选择自定义虚拟机安装
![](https://i-blog.csdnimg.cn/blog_migrate/3c286a37639b9d927384b136a34d874e.png)
# 4.选择下一步
![](https://i-blog.csdnimg.cn/blog_migrate/c1250be56d317d90402dcaa984173642.jpeg)
# 5. 虚拟机设置之后安装系统
![](https://i-blog.csdnimg.cn/blog_migrate/ed9e185b8fe28e0898ec6d2ed80d2d08.jpeg)
# 6.选择虚拟机安装系统以及版本
![](https://i-blog.csdnimg.cn/blog_migrate/1560f7a5815c9f8621132b0e7df87dd6.png)
# 7.选择虚拟机名称与位置
![](https://i-blog.csdnimg.cn/blog_migrate/a34ff95198d0988b6bae1e8bfa8ff82e.png)
# 8.设置处理器数
![](https://i-blog.csdnimg.cn/blog_migrate/33230dd4ff2d5c3a455b82414bbfa111.png)
# 9.设置虚拟机内存
![](https://i-blog.csdnimg.cn/blog_migrate/7b03884baa60ddc4cf4333212ee65689.png)
# 10.选择网络模式
![](https://i-blog.csdnimg.cn/blog_migrate/b31da371a01a849c0b813a90e836acbd.png)
# 11.选择io总线 下一步
![](https://i-blog.csdnimg.cn/blog_migrate/1085080b783b88df3c30c0e1b1e2a5ae.png)
# 12.选择新建硬盘
![](https://i-blog.csdnimg.cn/blog_migrate/1a406a81b47e3a49620792cb77e0918a.png)
# 13.选择硬盘类型
![](https://i-blog.csdnimg.cn/blog_migrate/cabc3bebccb41ad3bcff37bcd07b0451.png)
# 14.拆分硬盘
![](https://i-blog.csdnimg.cn/blog_migrate/6bd7773f8a9463137164d2e5e2c17413.jpeg)
# 15.设置磁盘位置
![](https://i-blog.csdnimg.cn/blog_migrate/10593dd81640d6c53ff708256eaf3fe0.png)
# 16.创建完成
![](https://i-blog.csdnimg.cn/blog_migrate/e4a8df1b21e3c2a38e0fe9a77deb37f5.jpeg)
6.Linux中目录结构
![](https://i-blog.csdnimg.cn/blog_migrate/4972a5025bd8be61601c70e7dfbd9d37.png)
# 目录结构
bin (binaries)存放二进制可执行文件
[重点]
sbin (super user binaries)存放二进制可执行文件,只有root才能访问
etc (etcetera)存放系统配置文件
[重点]
usr (unix shared resources)用于存放共享的系统资源
[重点]
home 存放用户文件的根目录
[重点]
root 超级用户目录
[重点]
dev (devices)用于存放设备文件
lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt (mount)系统管理员安装临时文件系统的安装点
boot 存放用于系统引导时使用的各种文件
tmp (temporary)用于存放各种临时文件
[重点]
var (variable)用于存放运行时需要改变数据的文件
7. Linux中常用指令
# Linux中命令格式:
命令 -选项 参数 如: ls -l /usr
注意:在linux中命令严格区分大小写
7.1、目录简化表示
#当前目录 ./#上层目录 ../
7.2、ls命令
说明:查看命令,对所在目录中的文件查看展示。
语法:
ls -l //
长格式显示文件和目录信息,简写:ll
ls -a //
显示所有文件和目录(包含隐藏文件和目录)
ls -R //
递归显示指定目录下的文件清单,即会显示指定目录分支内各子目录中的文件清单
# ls -l (长格式展示文件)[root@localhost ~]# ls -l[root@localhost ~]# ll总用量 60drwxrwxr-x 2 user1 user1 4096 Aug 17 09:10 abc- rw- r-- r-- 1 user1 user1 17 Aug 17 09:04 host.conf- rw- r-- r-- 1 user1 user1 38450 Aug 17 09:04 php.ini
`长格式含义:`
文件类型 文件权限 链接数 属主 属组 大小 日期 时间 文件名
d rwxrwxr-x
2
user1 user1
4096
Aug
17
09:10 abc
7.3、pwd命令
说明:显示当前所在目录。
用法:
pwd //显示所在目录所在路径地址
pwd
7.4、touch命令
说明:创建文件。
用法:
touch 文件名 //创建文件
touch 文件1 文件2 文件3 //创建多个文件
touch /root/文件名 //在root目录创建文件
touch nginx.conftouch a1.txt a2.txt a3.txttouch /usr/nginx/nginx.conf
7.5、mkdir命令
说明:创建目录。
用法:
mkdir 名称 //在所在目录创建文件夹
mkdir -p 目录名 //递归建立文件夹,没有上级目录先创建上级目录
mkdir nginxmkdir /usr/abc/aa
7.6、cp命令
说明:复制文件或目录。
用法:
cp 文件 目录 //拷贝文件到指定目录
cp -r 目录 目录 //递归处理目录下的子文件和子目录一并拷贝,拷贝目录到指定目录
cp http.conf /etc/fdfs/cp aa/ root/
7.7、mv命令
说明:对文件和目录进行移动或更改名称。
用法:
mv 文件 目录 //移动文件到指定目录
mv 文件 新文件名 //对文件更改名称
mv 目录 目录 //移动目录到指定目录
mv 目录 新目录名 //对目录进行重命名
7.8、rm命令
说明:删除文件或目录。
用法:
rm 文件
rm -f 文件或目录 //强行删除文件或目录
rm -i 文件或目录 //先询问然后是否删除文件或目录
rm -r 目录或文件 //递归删除文件或目录
rm -rf 目录或文件 //强行递归删除文件或目录
rm nginx.confrm -i nginx.confrm -r /usr/nginx/nginx.confrm -rf /usr/nginx/nginx.conf
7.9、tail命令
说明:查看文件内的信息,常用语读取日志文件,持续输出日志信息。
用法:
tail -f 文件 //循环读取文件内信息
tail -n 行数 文件 //显示文件最后几行信息
tail -f aa.logtail -n 10 aa.log
7.10、echo命令
说明:对文件输入内容。
用法:
echo 内容 >>文件 //对文件输入指定内容
echo LOVE baby >> a.txt
7.11、clear命令
说明:清除控制台内容。
用法:
clear //清除
clear
7.12、cd命令
说明:切换目录。
用法:
cd 目录 //切换到指定目录
cd ../ //切换到上级目录
cd /root/cd /usr/bin/cd ../cd ../../
7.13、cat命令
说明:查看文件内容。
用法:
cat 文件 //查看文件内容
cat nginx.conf
7.14、ip addr 命令
说明:查看IP地址。
用法:
ip addr //查看IP地址,简写:ip a
ip addrip a
7.15、ping命令
说明:检查主机与另一台服务器IP地址是否联通。
用法:
ping IP地址 //测试主机与IP地址是否联通
ping 10.153.44.232
7.16、tar命令
说明:用于解压tar压缩包文件。
参数:
-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)
-C 解压到指定目录
用法:
tar -cvf tar压缩包 目录或文件 //将文件或目录打包成tar压缩包
tar -zcvf tar压缩包 目录或文件 //将文件或目录打包成tar压缩包并压缩
tar -zxvf tar压缩包 //将tar压缩包解压到所在目录
tar -zxvf tar压缩包 -C /usr/ //将tar压缩包解压到指定目录
tar -cvf nginx.tar.gz nginxtar -cvf ab.tar.gz a.txt b.txttar -zcvf nginx.tar.gz nginxtar -zxvf nginx.tar.gztar -zxvf nginx.tar.gz -C /usr/
7.17、systemctl命令
说明:操作服务的启动,停止,查看。
用法:
systemctl status 服务名 //查看服务状态
systemctl start 服务名 //启动服务
systemctl stop 服务名 //停止服务
systemctl restart 服务名 //重启服务
systemctl status firewalldsystemctl start firewalldsystemctl stop firewalldsystemctl restart firewalld
7.18、ps命令
说明:查看服务是否启动并查看进程信息。
参数:
-ef 查询系统中所有运行的进程,包括后台进程,而且可以显示出每个进程的父进程号
用法:
ps -ef|grep 关键字 //根据关键字查询进程
ps -ef|grep tomcat
7.19、kill命令
说明:结束进程。
参数:
-9 强行杀死某个进程
用法:
kill 进程号 //根据进程号杀死服务
kill -9 进程号 //根据进程号强行杀死服务
kill 14312kill -9 12453
7.20、netstat命令
说明:用于显示各种网络信息。
参数:
-a 显示所有socket连接
-l 显示监控中(listening)的socket连接
-n 直接使用ip地址,而不使用域名服务器
-p 显示正在使用socket的程序的pid和名称
-r 打印路由表
-t 显示TCP传输协议的连线状况
-u 显示UDP传输协议的连线状况
-s 显示网络工作信息统计表
用法:
netstat -nlp|grep 端口号 //根据端口号查询进程
netstat -nlp|grep 8080
7.21、vi命令
说明:文本编辑器。
命令:
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行
/ 要搜索的内容 搜索
VG 全选
u undo 取消上一步操作
Ctrl + r redo 返回到undo之前
Shift+ zz 保存退出,与“:wq”作用相同
:q 退出不保存
:q! 强制退出不保存
:wq 保存退出
:wq! 强制保存退出
用法:
vi 文件 //编辑文件
vi nginx.conf
![](https://i-blog.csdnimg.cn/blog_migrate/b199cf7f370a431acf55d8a4e387539b.png)
7.22、rpm命令
说明:
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便。
参数:
i:安装应用程序(install)
e:卸载应用程序(erase)
vh:显示安装进度;(verbose hash)
U:升级软件包;(update)
qa: 显示所有已安装软件包(query all)
用法:
rpm -ivh 安装包 //安装
rpm -ivh xxxx.rpm
7.23、yum命令
说明:
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
参数:
install 安装
remove 删除
update 更新
clean 清除
info 获取所有软件包信息
list 列出所有可安装的软件包
erase 卸载
用法:
yum install 软件包
yum remove 软件包
yum update 软件包
yum install unzipyum remove unzipyum update unzip
7.24、su命令
说明:切换用户。
用法:
su //切换root账号,回车然后输入用户名密码
su 用户名 //切换用户,回车然后输入用户名密码
su
7.25、whoami命令
说明:查看当前登录用户。
用法:
whoami
whoami
7.26、find命令
说明:查找。
find
[path...]
-options
[-print / -ecex / -ok]
path:表示要查找的目录路径
-
~ 表示home目录
-
. 表示当前目录
-
/ 表示根目录
-print:表示将结果输出到标准输出上
-exec:表示对文件执行所给出的shell命令
-ok:作用域-exec相同
_options:有以下几种查找方式:
-
按照名字查找(-name)
-
按照安装权限进行查找(-perm)
-
不在当前指定的目录下寻找(-prune)
-
按照文件属主来查找(-user)
-
按照文件的所属组来查找(-group)
-
查找没有有效的所属组文件(-nogroup)
-
查找没有有效属主的文件(-nouser)
-
按照文件类型来查找(-type)
用法:
find / -name 关键字 //在根目录根据名字查找
find / -name *关键字* //在根目录根据名字模糊查找
find / -name 'tomcat'find / -name '*tomcat*'
7.27、which命令
说明:
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
用法:
which 关键字
which mysql
7.28、unzip命令
说明:unzip是对zip压缩文件进行解压的命令。
下载:
yum install zip && yum install unzip
用法:
unzip zip文件 //解压zip文件
unzip -d 目录 zip文件 //解压zip文件到指定目录
unzip -n zip文件 //解压不想覆盖已经存在的文件
unzip -n -d 目录 zip文件 //解压zip文件到指定目录并不覆盖已经存在的文件
unzip -l zip文件 //查看zip文件包含什么文件,补进行解压
unzip -v zip文件 //查看zip文件包含文件列表和文件的压缩比率
unzip -t zip文件 //检查zip文件是否损坏
unzip fastdfs.zipunzip -d /root/fastdfs/ fastdfs.zip
7.29、history 命令
说明:查看用户已键入的命令,用户所有键入的命令都会记录在文件中。
用法:
history
7.30、scp命令
说明:服务器之间拷贝文件。
scp -r -P B服务器端口 A服务器压缩包路径 B服务器用户名@B服务器IP:复制到B服务器上的路径
用法:
scp -r -p 22 /home/selectmodel.tar.gz root@172.16.18.13:/home/
7.31、telnet命令
说明:检查A服务与B服务器IP+port(端口)是否联通 。
用法:
telnet ip port
telnet 10.153.54.xxx 80
失败相应:
Trying 10.153.54.xxx...
telnet: connect to address 10.153.54.134: Connection refused
7.32、reboot命令
说明:重启服务器。
用法:
reboot
8. 权限相关命令
Linux文件有 三种 典型的权限, 即r读权限、w写权限和x执行权限 。在长格式输出中在文件类型的后面有9列权限位,实际上这是针对不同用户而设定的。 r=4,w=2,x=1
# chmod
all = user + group + other
chmod u+rwx,g+rwx,o+rwx 文件名
字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ]
含义
u
user
表示该文件的所有者
g
group
表示与该文件的所有者属于同一组( group )者,即用户组
o
other
表示其他以外的人
a
all
表示这三者皆是 chmod a+rwx 文件名
[ +-= ]
含义
+
增加权限
-
撤销权限
=
设定权限
rwx
含义
r
read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
w
write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
x
excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
数字法: 4读 2写 1执行
chmod 777 文件名
9.CRT终端操作
# 0.准备工作
安装CRT客户端工具,安装winscp工具
# 1.设置linux获取ip地址 (编辑网络配置文件)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 2.修改ens33配置文件:
BOOTPROTO=dhcp
ONBOOT=yes
# 3.重启启动网路服务加载修改配置生效
systemctl restart network
# 4.查看ip地址
ip addr
# 5.此时ip已经获取
ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:07:16:9e brd ff:ff:ff:ff:ff:ff
inet 192.168.202.136/24 brd 192.168.202.255 scope global noprefixroute dynamic ens33
valid_lft 1459sec preferred_lft 1459sec
inet6 fe80::b22b:7e01:db87:52fe/64 scope link noprefixroute
# 6.测试外部网络连通(保证宿主机windows可以上网前提)
ping
www.baidu.com
# 7.使用CRT工具连接即可
10.firewalld 防火墙
如果没有防火墙,需要先安装防火墙
yum install firewalld
1、启动防火墙
systemctl start firewalld
2、禁用防火墙
systemctl stop firewalld
3、设置开机启动
systemctl enable firewalld
4、停止并禁用开机启动
sytemctl disable firewalld
5、重启防火墙
systemctl restart firewalld
6、查看状态
systemctl status firewalld