Linux
1.Linux的引言
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于
POSIX和Unix
的多用户
、多任务
、支持多线程和多CPU的操作系统
。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持
。它除了在服务器操作系统
方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。目前Linux存在着许多不同的Linux发行版本,但它们都使用了Linux内核
。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
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
和后来加入的众多爱好者共同开发完成。
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](https://baike.baidu.com/item/Red Hat) Enterprise Linux使用。两者的不同,在于CentOS完全开源。
4.2 centos 和 readheat区别
目前的Linux操作系统主要应用于生产环境,
主流企业的Linux系统仍旧是RedHat或者CentOS
,他们出自于同样的源代码,但centos完全免费。其独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务!
5.安装 Cent OS
5.1 环境准备
# 环境要求:
1. windows7+
2. VMware Workstation8+,
3. CentOS系统(镜像)
5.2 安装Cent OS
# 0.下载centos
官网:https://www.centos.org/
官网的下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/
# 1.第一步:打开VMware Workstation
# 2.选择菜单File的第一项新建虚拟机
# 3.选择自定义虚拟机安装
# 4.选择下一步
# 5. 虚拟机设置之后安装系统
# 6.选择虚拟机安装系统以及版本
# 7.选择虚拟机名称与位置
# 8.设置处理器数
# 9.设置虚拟机内存
# 10.选择网络模式
# 11.选择io总线 下一步
# 12.选择新建硬盘
# 13.选择硬盘类型
# 14.拆分硬盘
# 15.设置磁盘位置
# 16.创建完成
6.Linux中目录结构
# 目录结构
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 ls 命令
# ls 显示文件和目录列表 (list)
常用参数:
-l (long) 长格式显示文件和目录信息
-a (all) 显示所有文件和目录(包含隐藏文件和目录)
-R 递归显示指定目录下的文件清单,即会显示指定目录分支内各子目录中的文件清单。
# 0. ls (查看目录下文件和目录)
[root@localhost ~]# ls
aa aa.txt
# 1. ls -l (长格式展示文件)
[root@localhost ~]# ls -l
总用量 60
drwxrwxr-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
# 2. ls -a (显示所有文件)
[root@localhost ~]# ls -a
. aa .bash_history .bash_profile .cshrc .tcshrc
.. aa.txt .bash_logout .bashrc .pki .viminfo
# 3. ls -R (递归显示文件)
[root@localhost ~]# ls -R
.:
aa aa.txt
./aa:
7.2 操作文件命令
# 0.cd 用来切换目录
# 1.pwd 显示当前工作目录(print working directory)
# 2.touch 创建空文件
# 3.mkdir 创建目录(make directoriy)
-p 父目录不存在情况下先生成父目录 (parents)
# 4.cp 复制文件或目录(copy)
-r 递归处理,将指定目录下的文件与子目录一并拷贝(recursive)
# 5.mv 移动文件或目录、文件或目录改名(move)
mv 文件名 新文件名 文件改名
mv 文件名 目录名 文件移动
mv 目录名 不存在目录名 目录改名
mv 目录名 已存在目录名 目录移动
# 6.rm 删除文件(remove)
-r 同时删除该目录下的所有文件(recursive)
-f 强制删除文件或目录(force)
# 7.rmdir 删除空目录(remove directoriy)
# 8.cat 显示文本文件内容 (catenate)
# 9.more、less 分页显示文本文件内容
# 10.head、tail查看文本中开头或结尾部分的内容
head -n 5 a.log 查看a.log文件的前5行
# 11.tail -f b.log 循环读取(fellow)
# 12.echo 输出命令
echo I love baby 说明:用来向屏幕输出一句话
echo I Love baby >> aa.txt 说明:将这段内容输入到 文件中
7.3 网络相关命令
# 1.ip addr 查看IP地址
# 2.ping 测试网络连通性
ping 192.168.0.1
7.4 tar命令
# tar命令
-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)
`通常组合使用:`
tar -cvf aaa.tar file1.txt file2.txt 将file1和2打包成aaa.tar
tar -zcvf aaa.tar.gz file1.txt file2.txt 将file1和2打包成aaa.tar并压缩
tar -zxvf aaa.tar.gz file1.txt file2.txt 将aaa.tar.gz解压
7.5 systemctl 服务命令
# systemctl
systemctl status 服务名 说明:查看某个服务的运行状态
systemctl start 服务名 说明:启动某个服务
systemctl restart 服务名 说明:重启某个服务
systemctl stop 服务名 说明:停止某个服务
7.6 进程相关命令
# 1.ps 询在当前控制台上运行的进程
ps -aux 说明:查询系统中所有运行的进程,包括后台进程,其中参数a是所有进程,参数x包括不占用控制台的进程,参数u显示用户。
ps -ef 说明:查询系统中所有运行的进程,包括后台进程,而且可以显示出每个进程的父进程号。
4、netstat -tunlp|grep 端口号
# 2.top 命令 动态显示系统进程
# 3.kill 杀死进程
kill 3029 说明:上述命令中3029是进程号;一般在执行kill命令之前,先用ps或pstree来查询一下将要被杀掉的进程的进程号。
kill -9 3029 说明:强制终止3029号进程的运行,其中参数-9代表强制的意思,实际上kill命令是向该进程发送信号,
该进程接到信号后决定是否停止运行,有些守护进程必须要收到参数9才终止运行。
7.7 vi命令
# vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。
# 常用命令:
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
----------------重点---------------------------
:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行
------------------重点-------------------------
u undo,取消上一步操作
Ctrl + r redo,返回到undo之前
-------------------重点------------------------
Shift+ zz 保存退出,与“:wq”作用相同
:q 退出不保存
:q! 强制退出不保存
:wq 保存退出
:wq! 强制保存退出
7.8 软件相关命令
RPM命令
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便,
# rpm 命令
常用参数:
i:安装应用程序(install)
e:卸载应用程序(erase)
vh:显示安装进度;(verbose hash)
U:升级软件包;(update)
qa: 显示所有已安装软件包(query all)
例子:rmp -ivh gcc-c++-4.4.7-3.el6.x86_64.rpm
YUM命令
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
例子:
yum install gcc-c++
yum remove gcc-c++
yum update gcc-c++
使用YUM命令必须连接外部网络
7.9 用户和组相关命令
# 1.查看当前用户:whoami
# 2.查看登录用户:who
-m或am I 只显示运行who命令的用户名、登录终端和登录时间
-q或--count 只显示用户的登录账号和登录用户的数量
# 3.退出用户: exit
# 4.添加、删除组账号:groupadd、groupdel
# 5.添加用户账号:useradd
-g 指定组名称 说明:如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
# 6.设置用户密码:passwd [用户名]
# 7.su 切换用户
su root
7.10 权限相关命令
Linux文件有
三种
典型的权限,即r读权限、w写权限和x执行权限
。在长格式输出中在文件类型的后面有9列权限位,实际上这是针对不同用户而设定的。r=4,w=2,x=1
# chmod
字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] 含义
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o other 表示其他以外的人
a all 表示这三者皆是
[ +-= ] 含义
+ 增加权限
- 撤销权限
= 设定权限
rwx 含义
r read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
8.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工具连接即可