一、操作系统概念
操作系统作用:管理硬件,服务软件
硬件:电路,写驱动程序,写应用程序
操作系统:微软(windows)/Linux,Unix(Unix要掏钱,这谁干呀,所以就有个流批的大哥写了一个免费的Unix系统----Linux,所以说他俩同出一辙)/苹果(mac)
Linux操作系统(世界巨头计算机,各个行业软件服务器系统),因为Windows不是开源的,人们不能单独去设计它,所以安全性比较低,在Windows操作系统上,微软公司可以查看用户信息,就比如,之前的哪个国家的军方设备使用Windows作为他们的操作系统,结果隔三差五的他们的导弹武器信息就会被传回微软公司,所以在一些安全系数高的设备上,一般不用Windows,而Linus是开源的,人们可以独立设计,所以安全系数比较高。
对于操作系统,根据视频学习,我的个人理解是电脑里面的硬件,需要操作系统去调用硬件上的函数库,然后形成虚拟的软件呈现在可视化界面上。目前是这样理解的,可能有偏差。就是连接硬件和软件之间的介质。
二、安装虚拟机和Linux
虚拟机(软件):通过调用系统接口模拟出一台机器。
这两个安装我就不说太多,可以上网上查,一查就有。
我要说的是今天下午我遇到的问题,就是在新建虚拟机的时候,里面有一个自定义硬件,点击之后,有一项需要镜像文件(.iso),但是我所学习的视频文件里面没有这个镜像文件(版本是CentOS-6.7),然后我就上网下载,链接是
CentOS镜像文件下载链接
地址是https://www.centos.org/download/
然后我就下了一个7.6的版本,好像是最新的。下载下来是一个压缩包,长这个样子
把他放在ISO镜像文件浏览里就行了,就能装一个7.6版本的Linux CentOS。
安装Linux的时候,还有需要注意的,里面有一步是让选择系统安装类型,我7.6版本忘记截图里,就勉强看一下6.7的把
这里面的几个类型的意思是啥类,看下面
我跟着视频走,选择的是Basic Server,就是没有可视化界面,就一个命令行窗口,黑压压一片,看!
接着还有一点注意的是,最后一步会让创建一个用户账号密码,然后还要设置管理员密码,要记着这一个账号两个密码,因为登陆的时候会让你填写用户登录账号密码,而管理员是你想使用权限的时候,得输入管理员密码。
三、Linux稍微介绍
1_Linux系统的应用
服务器系统:Web应用服务器,数据库服务器,接口服务器,DNS,FTP等等
嵌入式系统:路由器、防火墙、手机、PDA、IP分享器、家电用品的微电脑控制器等
高性能运算、计算密集型应用、Linux有强大的运算能力
桌面应用系统
移动手持系统
2_Linux的版本
我尤其是想记录的这个版本内容,我感觉Linux版本有很多
首先,Linux的版本分为两种:内核版本和发行版本,内核版本是旨在linux领导下的内核小组开发维护打的系统内核的版本号,发行版本是一些组织和公司根据自己发行版的不同而自定的。
主流版本有RedHat,Ubuntu(乌班图),CentOS等
四、Linux目录结构介绍
Linux目录结构,只有一个目录,根目录
user:相当于program files
etc:存放系统配置文件
root:系统管理员默认目录
home:存放其他用户的目录
五、利用CRT连接Linux
这个是不直接在虚拟机里Linux上敲命令,而是把命令行窗口引到CRT软件上。步骤如下:
1_在linux上获取IP,需要说明的是,视频上6.7版本获取IP是通过ifconfig命令,查出来后直接获取IP地址。
而在ContOS-7之后获取IP地址就需要做一些改动,当我们和6.7一样输入ifconfig的时候,会发现ens33没有存放IP地址的inet值(命令ip addr也可以查看IP地址)
接着来查看ens33网卡的配置,vi /etc/sysconfig/network-scripts/ifcfg-ens33 注意vi后面加空格
从配置清单中可以发现CentOS 7默认是不启动网关的(ONBOOT=no),把这一项改为YES,但是在该之前,要确保是以管理员身份(su命令进入管理员)改的,不然修改失败,修改后按ESC退出,输入命令:wq再按ENTER键即可(:wq是保存然后退出的意思),然后重启网络服务,输入命令 sudo service network restart
再次ifconfig就能看到IP地址了
2_打开绿色版本的CRT:点击SecureCRT.exe
3_点击文件——连接——快速连接
输入从Linux哪里读取到的IP地址,点击连接按钮
依次输入用户名,密码,就是登陆linux的账号密码,就可以把CRT连接到linux上。
成功的话 就是这个样子
4_解决CRT编码问题
关闭CRT,重新打开,选中待连接的ip,右击——属性
六、Linux核心命令学习
linux有两种用户,一种管理员root,另外一种普通:zhangsan lisi(就是登陆linux时候输入的账号),root用户登录到linux默认所在的目录是/root/,其他用户zhangsan登录到linux默认所在的目录是/home/zhangsan/
6_1查看目录结构
list:列出
ll:列出当前目录下的文件信息
ls -al:列出当前目录下的文件信息(包括隐藏文件,特殊目录)
ll /bin/:列出根目录下bin目录下的文件信息
6_2切换目录命令cd
touch 1.txt:在当前目录创建一个文件1.txt
clear:清除屏幕
cd ~ :当前用户目录
cd / :根目录
cd - :上一次访问的目录
cd … :上一级目录
cd :缺省当前用户目录,就是回到刚登上Linux时显示的的目录,就比如说root管理员登上操作系统时原始目录是/root,而自己用户CentOS_zjw登上的时候就是/home/CentOS_zjw,这个就是缺省当前目录。
6_3创建目录
pwd:打印当前工作目录
mkdir:创建目录
-p 父目录不存在情况下先生成父目录
-v 显示命令执行工程中的详细信息
mkdir a:当前目录下穿件文件夹a
mkdir /root/b :在根目录下的root下创建目录b
mkdir -pv /root/c/e/d:在根目录下的root下创建目录结构c/e/d,
6_4文件浏览命令
cat:如果文件中的内容很少,一页之内可以显示完毕
cat /root/文件名称
more:如果文件中内容比较多,一页之内显示不完
语法:more 文件名称
操作:Enter 向下n行,需要定义,默认为1行
空格键 向下滚动一屏,或者Ctrl+F
B 返回上一屏,或者Ctrl+B
q 退出more
less :如果文件中内容比较多,一页之内显示不完
less比more多了搜索功能
语法:less -mN 文件名称
-m 显示类似more命令的百分比
-N 显示每行的行号
操作:空格键:前进一页,或者page down
b:后退一页或page up
d:前进半页
u:后退半页
回车键:前进一行或者方向键向下
y:后退一行或者方向键向上
/字符串:向下搜索
?字符串:向上搜索
v:进入vim编辑器
q:退出
tail :查看文件末尾内容
-n<行数>显示行数
-f 循环读取(ctrl+c退出循环读取)
tail -10 /root/install.log :查看install.log文件中的最后10行的内容
6_5文件管理
复制文件
cp install.log install02.log
cp -b install.log install02.log :如果覆盖文件的时候,可以将源文件做一个备份
cp ./install.log …/ :将当前目录下的install.log赋值到复级目录
cp /root/install.log /bin/1.txt :将/root下的install.log文件复制到根目录下的bin目录下的1.txt中
复制目录(无论是单层目录还是多层目录都可以复制)
cp -r ./a ./b
cp -r /root/a /root/z
mv剪切文件
mv /root/install.log /root/a/
重命名文件
mv /root/install.log /root/test.log
删除文件
rm -f 文件名称
-f或–force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
rm -f /root/文件名称
删除目录
rm -rf 目录名称
-f或–force 强制删除文件或目录
-r或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理
rm -rf /root/目录名称
在某个目录下搜索文件/目录
find /root/ -name ‘in*’:在根目录下的root目录下寻找名称中包含in,而且是以in开头的文件/目录
6_6Vim编辑器
vim /root/1.txt :利用vim编辑器打开文件——>录入i(从一般模式转变为插入模式)——>录入各种信息——>esc(从插入模式转化为一般模式)——>:wq(保存并退出)
6_7系统命令
grep:过滤任务,经常和其他命令联合使用
grep -i 名称
cat /root/install.log | grep -i mysql :查看install.log文件中包含mysql内容信息
ps -ef :相当于任务管理器,对进程的一次查看
ps -ef | grep -i crond : 查看系统中crond的进程信息
管道命令: 命令的一种使用方式
命令1 | 命令2
命令1的输出是命令2的输入
cat /root/install.log | grep -i mysql
ps -ef | grep -i crond
杀死进程 kill -9 进程id
查看IP: ifconfig
查看机器是否连接通畅: ping 对方机器ip
6_8解压缩命令
tar功能:文件备份压缩
语法:tar命令
-c 建立一个压缩文件的参数指令(create)–压缩
-x 解开一个压缩文件的参数指令(extract)–解压
-z 是否需要用gzip压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在f之后要立即接档名(file)
常用解压参数组合:zxvf
常用压缩参数组合:zcvf
例子:查看root文件下都有什么文件
准备把这个1.txt压缩了,tar -zcvf 1.tar ./1.txt意思是把当前文件中的1.txt压缩成1.tar
现在我想把1.tar在解压了,我要先把1.txt删除掉
删除后,使用命令tar -zxvf ./1.tar意思是把当前文件中的1.tar文件解压,然后就解压出来了一个1.txt
6_9关机和重启
这个比较简单
Linux centos 重启命令:reboot
Linux centos 关机命令:halt 立刻关机
6_10文件权限
chmod(change mode)命令:更改目录/文件用户权限
语法:chmod[参数][<权限范围><符号><权限代号>]
-R或者–recursive 递归处理,将指定目录下的所有文件以及子目录一并处理权限范围的表示法如下
u:User,即文件或目录的拥有者
g:Group,即文件或目录的所属群组
o:Other,除了文件或目录拥有者或所属群组之外,其它用户皆属于这个范围
a:All,及全部的用户,包含拥有者,所属群组以及其他用户。
符号
“+” 添加权限
“-” 取消权限
有关权限代号的部分,列表于下
r:读取权限,数字代号是“4”
w:写入权限,数字代号是“2”
x:执行或切换权限,数字代号为“1”
“-”:不惧任何权限,数字代号为“0”
Linux权限格式:<类型><用户><组><其他用户>
- 第1位,文件类型(d目录,-普通文件,l链接文件)
- 第2-4位,所属用户权限,用u(user)表示
- 第5-7位,所属组权限,用g(group)表示
- 第8-10位,其他用户权限,用o(other)表示
- 第2-10位,表示所有的权限,用a(all)表示
例子:以数字形式更改目录、文件权限的规则如下
0:不具有任何权限
1:可以执行
2:可以写
3:1+2,可以执行,可以写
4:可以读
5:1+4,可以执行,可以读
6:2+4,可以写可以读
7:1+2+4,可以读,写,执行
例子看图:三位数分别代表u,g,o用户权限
6_11网络设置
查看网卡配置 cat /etc/sysconfig/network-scripts/ifcfg-ens33
查看IP地址命令,ifconfig
6_11命令总结和帮助
内部命令:属于shell解析器的一部分(系统启动直接加载到内存的)
cd切换目录
pwd显示当前工作目录
help帮助
外部命令:独立于shell解析器之外的文件程序(独立的可执行文件)
ls显示文件和目录列表
mkdir创建目录
cp复制文件或目录
查看帮助文档
内部命令:help + 命令(help cd)
外部命令:man + 命令 (man ls)
不用特以及以命令分类,开发中,如果需要查看命令参数,先试用man,如果没有结果,再使用help
七、在linux中安装jdk,tomcat,mysql
安装jdk,mysql,gcc相关的依赖包,所谓依赖包,就是在安装这些软件之前操作系统必须拥有的文件,否则就无法安装软件,windows也有个依赖包,所以可以在Windows操作系统上下软件。Linux得一个一个安装依赖包。
把上面的命令一个一个的输入linux,就可安装依赖包,但有的依赖包可能已经最新,不需要安装,比如上图MYSQL中的第二个yum update libstdc+±4.4.7-4.el6.x86_64。(这一点我也感觉很疑惑,上面显示的没有可用的软件包,但是视频上却说的不用更新。)
上图是视频中的情况。
依赖包安装完后,开始安装软件。
步骤一:
利用Filezillar.exe在linux /usr/local/src/ 建立3个目录java,mysql,tomcat
步骤二:
利用Filezillar.exe将windows上的3个软件jdk,mysql,tomcat上传到linux,放到刚才的那三个新建文件夹里。
步骤三:安装jdk
小1:使用命令rpm -qa | grep java,查看Linux上是否存在已经安装好的jdk javac java-version
小2:删除linux自带jdk
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.i686
小3:进入刚才创建的文件夹/usr/local/src/java里面,将jdk压缩包进行解压,
cd /usr/local/src/java
tar -zxvf jdk-7u71-linux-i586.tar.gz
小4:配置环境变量
① vim /etc/profile
② 在末尾行添加
#set java environment
JAVA_HOME=/usr/local/src/java/jdk1.7.0_71
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出
③source /etc/profile 使更改的配置立即生效
④java -version 查看JDK版本信息,如果显示出1.7.0证明成功
步骤四:安装tomcat
小1:进入刚才创建的文件夹/usr/local/src/tomcat里面,将tomcat压缩包进行解压,
tar -zxvf apache-tomcat-7.0.57.tar.gz
小2:重命名
mv apache-tomcat-7.0.57 tomcat
小3:启动Tomcat
cd itcast-usermanage/bin/
./startup.sh 或者 sh startup.sh
小4:查看日志:
tail -f ../logs/catalina.out
小5:查看网址
http://192.168.0.160:8080/
发现无法访问
小6:防火墙打开8080端口
在CentOS主机上查看当前主机在监听哪些端口的命令是netstat,常用的命令是:
netstat –tlunp
上面这个命令查看的是服务器上的进程对外监听的端口,但是在CentOS7中,默认会打开firewalld防火墙,如果防火墙打开后,默认情况下只会监听在22号端口,也就是说主机对外暴露的端口只有22。查看防火墙开放端口的命令是
iptables-save
输入命令后,在结果的最下面,会显示防火墙开放的端口,因为之前我打开了8080和3306端口,所以这样显示,正常情况下只会显示22端口。
如果想增加对外开放的端口,就需要通过防火墙的管理命令firewalld-cmd,例如我想开放8080端口,那么命令就是:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
第一条命令是添加端口,第二条命令是重载防火墙。看到sucess字样后,再使用iptables-save命令查看端口,可以看到,对外放开的端口增加了8080.
小7:安装成功,看到网页TOMCAT,虚拟机的IP是192.168.81.128
步骤五:安装MySQL
小1:检测是否已经安装了mysql
rpm -qa | grep mysql
如果已经安装了,将其卸载,如
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.i686
小2:安装MySQL
1、 cd /usr/local/src/mysql //进入MySQL的目录
2、 tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar //对MySQL文件进行解压
3、 rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm //安装server
在安装server客户机的时候,会报错,
file /usr/share/mysql/charsets/README frominstall of MySQL-server-5.6.34-1.el7.x86_64 conflicts with filefrom package mariadb-libs-1:5.5.44-2.el7.centos.x86_64
file /usr/share/mysql/czech/errmsg.sys frominstall of MySQL-server-5.6.34-1.el7.x86_64 conflicts with filefrom package mariadb-libs-1:5.5.44-2.el7.centos.x86_64
这是因为安装的mysqllib库和mariadb的库包冲突了,检查下mariadb的组件
rpm -qa |grep mariadb
会发现mariadb-libs-5.5.44-2.el7.centos.x86_64,所以得删除该组件
rpm -emariadb-libs-5.5.44-2.el7.centos.x86_64
删除组件时,说还有依赖
有依赖,强制删除
rpm -emariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
重新安装mysql,成功
rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
接着安装client
rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
在mysql的文件夹中,有如下几个安装包,只需要安装服务器server和客户机client就行了
小3:查询mysql服务运行状态
service mysql status
服务未启动
小4:启动mysql服务
service mysql start
小5:使用root账号登录mysql
但是没有账号密码怎么办,在安装mysql server的时候有句提示
去这个目录里面查看生成的随机密码
注意:这个密码是不安全的,所有需要修改初始密码。
小6:使用密码登录mysql账号:mysql -uroot -p
密码可以复制粘贴,因为生成的随机密码是一串随机的字符串
小7:修改root密码:SET PASSWORD = PASSWORD(‘123456’);
小8:系统启动时自动启动mysql服务
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on
查询列表:
chkconfig
小9:开启远程访问,就是在宿主机,非虚拟机上能够找到这个MySQL
登录:
mysql -uroot –p123456
设置远程访问(使用root密码):
grant:赋予
privileges:权限,规则
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
防火墙打开3306端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
然后就可以在宿主机上连接到linux系统下的mysql