Linux
一 、Linux简介
1.1 为什么要学习Linux
开源,稳定,漏洞少,主要定位在服务器端操作系统
比如:可在Windows下使用idea进行软件开发,开发完毕后发布到Linux服务器上。
Linux是一套免费使用和自由传播的类Unix操作系统。
二、 虚拟机及其安装
注意:将防火墙、杀毒软件、保护软件、wifi助手尽量都关掉
三 Linux的安装(详情见安装文档)
四 Xshell和Xftp的安装
五 Linux的目录和文件结构
1 Linux一切皆文件
windows的目录和文件结构:分为多个盘符c: d: e:…,每个盘符都有一个根目录,目录结构采用倒挂的树结构。
Linux的目录和文件结构:没有盘符的概念,整个系统只有一个根目录。但是磁盘可以分区,可以分成多个分区,在linux中采用目录挂载的方式mount,每个分区作为一个目录存在。
★2.目录结构
/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/etc:(等等,感觉应该是conf) 所有的系统管理所需要的配置文件和子目录
/opt :这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/usr(unix software resource):这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/usr/local这是另一个给主机额外安装软件所摆放的目录。一般是通过编译源码方式安装的程序。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/dev(device) :类似windows的设备管理器,把所有硬件用文件形式存储
★3. 路径
在Linux中,存在着绝对路径和相对路径
绝对路径:路径的写法一定是由根目录 / 写起的,例如 /usr/local/mysql
相对路径:路径的写法不由根目录 / 写起的,例如当前目录是”/usr”,然后再进入到下级目录local,执行的命令为 “#cd local”,这个local是相对于/usr目录来讲的,所以称为相对路径。
在Linux中,有几个特殊的符号也可以表示目录
“/”:表示根目录
“.”:表示当前目录,用在相对路径中,一般情况下会省略。
“..”:表示当前目录的上一级目录,用在相对路径中,比如 cd ..
“~”:表示/root目录
六 VI/VIM的使用
1.VI、VIM是什么
vi:记事本
vim:notepad++
使用vim
最小安装没有vim,可以使用yum install vim安装
★ 2.三个模式之间的切换关系
vi和vim一共有三种工作模式:一般模式、编辑模式和命令模式。
编辑模式和命令模式之间无法之间转换,都需要先通过ESC键进入到一般模式
★3.常用操作
dd | 删除光标当前行 |
---|---|
dnd | 删除n行 |
Shift+g | 移动到页尾 |
1+Shift+g | 移动到目标行 |
N+shift+g | 移动到第N行 |
i | 当前光标前录入 |
:w write :wq | 保存 |
:q quit | 退出 |
:! q! | 强制执行 |
:%s/old字符/new字符 | 批量替换 |
/要查找的词 | 搜索,n查找下一个,N查找上一个 |
:set nu | 显示行号 |
:setnonu | 关闭行号 |
★★★七 常用命令(重点内容)
1.基本命令
cd | 切换目录 (change directory) |
---|---|
ls | 显示当前目录下的内容(list)-a 全部文件,连同隐藏的文件-l 列出详细列表 别名ll (long) |
grep | 通过|管道符,配置grep进行过滤筛选。比如: ls –l |grep xxxls –l |grep xxx | grep yyy |
rm | 删除文件或者目录(remove)-rvf:递归删除所有目录内容,有提示(recursive verbose force)-rf:递归删除所有目录内容,无提示[慎用] |
cp | 复制(copy)-r : 递归复制整个目录-v:显示复制过程中文件的列表\cp:强制覆盖不提示 |
mv | 重命名或者移动文件(move)mv oldFileNamenewFileName重命名mv/原目录/原文件/新目录移动文件 |
find | 查找文件,提供了丰富的模糊搜索及条件搜索Find+搜索路径+参数+搜索关键字按文件名: find /目录/… -name “.txt”find /目录/… -iname “.txt” 不区分字母大小写 |
locate | 查找文件,基于索引,查询速度更快locate ‘.log’locate -i '.log’ 不区分大小写通过updatedb来更新索引 |
tar | tar -zcvf xxx.tar.gz xxxx压缩文件 tar -tvf xxxx压缩文件 查看压缩文件内容 tar -zxvf xxx.tar.gz 解压缩文件 -c:创建一个新归档 -x:从归档中解出文件 -v:显示详细信息 -f:指定压缩后的文件名 -z:通过gzip过滤归档 -t: 查看压缩文件中内容 |
问题:有了ls,还用find干什么
ls atguigu 查看atguigu有哪些部门,显示所有的
ls atguigu/teacher 查看atguigu有哪些老师,显示所有的
寻找是否有某一个部门或者老师,需要使用find
问题2:有了find,为什么还需要locate 查看atguigu有没有一个学生叫zhangsan
find:到每个教室逐个查找,效率低
locate:找到负责老师,直接查看学生信息表 效率高 有个学生刚刚插班,还没有录入信息表
2.网络配置命令
- 查看网络配置信息
ifconfig / ip addr
- 命令行方式
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#静态分配IP如下:
而不再使用DHCP动态分配
BOOTPROTO="static"
#IP和子网掩码
IPADDR=192.168.74.128
NETMASK=255.255.255.0
#网关和DNS服务器
GATEWAY=192.168.74.2
DNS1=8.8.8.8
#IP地址的前24为代表网络地址,后面是主机地址
PREFIX=24
3.进程类命令
在windows中可以通过任务管理器查看开启的进程、开启的服务,也可以结束任务。在Linux中同样可以做这些事情
查看查询进程列表 |
---|
命令1: ps -aux |
命令2: ps -ef |
结束任务(杀死进程) |
---|
kill pid |
kill -9 pid |
4.服务类
① Linux的运行级别一共有7个级别,最关键的两个:
multi-user.target等价于原运行级别3(多用户有网,无图形界面)
graphical.target等价于原运行级别5(多用户有网,有图形界面)
②查看当前运行级别
systemctl get-default |
---|
systemctl start 服务名(xxxx.service) |
systemctl restart 服务名(xxxx.service) |
systemctl stop 服务名(xxxx.service) |
systemctl reload 服务名(xxxx.service) |
systemctl status 服务名(xxxx.service) |
自启动systemctl enable service_name |
不自启动systemctl disable service_name |
在Centos6中使用的是service命令,到Centos7中换成了systemctl命令;但是还是有个别的服务需要使用service来start、stop等操作。
③查看某个端口被哪些进程占用,得到进程号使用kill将它kill
netstat -anp | grep 8080
八 rpm和yum
1. rpm
1) 查询已安装的rpm列表 |
---|
rpm –qa|grep xx |
2) 安装rpm |
rpm –ivh rpm包名 |
3) 卸载rpm |
rpm -e RPM软件包 |
使用RPM安装软件依赖关系严重,不管是安装还是卸载,都需要先处理依赖软件,考验耐心。为了解决该方式,于是推出了yum安装方式。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
注意:
使用yum安装特别的简单,使用yum卸载,不会卸载依赖包
使用yum安装vim,实际是安装了1个vim+30个依赖软件
使用yum卸载vim,只会卸载vim
如果想卸载vim的时候,将30多个依赖包也卸载,也是有机会的。
2.Yum操作
l yum list:列出官网所有可安裝的软件清单 |
---|
l yum list | grep xxx:从列出所有可安裝的软件清单中查询指定软件 |
l yum list installed 列出已经安装的软件清单 |
l yum search xxx:查找软件包命令 |
l yum install xxx -y :下载并安装指定的软件(不需要确认) |
l yum remove xxx:删除软件包命令: |
九. 安装JDK
① 使用Vftp传输JDK安装文件到 Linux:jdk-8u152-linux-x64.tar.gz
② 使用tar将JDK解压缩到opt目录下
tar -zxvf jdk-8u152-linux-x64.tar.gz
可以移动到指定目录下mv jdk1.8.0_221/ …
③ 配置环境变量:vim /etc/profile
JAVA_HOME=/opt/jdk1.8.0_152
PATH=/opt/jdk1.8.0_152/bin:$PATH
export JAVA_HOME PATH
或者
export JAVA_HOME=/opt/jdk1.8.0_152
export PATH=$JAVA_HOME/bin:$PATH
export的作用是设置或显示环境变量
注意:是$而不是%来引用环境变量;使用:而不是;来连接内容
④ 解析文件:让配置生效,可以避免重启系统
source /etc/profile
⑤ 查看安装是否成功
java -version
十. 安装Tomcat
① 使用Vftp传输Tomcat7安装文件到Linux:apache-tomcat-7.0.70.tar.gz
②使用tar解压缩到/opt目录
tar apache-tomcat-7.0.70.tar.gz
可选:mv apache-tomcat-7.0.70 ../tomcat7
③ 进入到Tomcat目录下的bin目录中,启动tomcat
./startup.sh
注意:不可以直接访问startup.sh。使用命令行执行某个程序时,Linux会到PATH环境变量的路径去搜索程序文件,但在默认情况下,Linux和Windows不同,Windows会搜索当前目录,而Linux不会搜索当前目录,所以在当前目录下的程序,而当前目录不再PATH环境变量中的话,就需要加上"./"来指定到当前目录下去查找应用程序了。
④进入宿主机,在浏览器中访问Tomcat。确保Linux端防火墙已经关闭
⑤可选:配置环境变量并解析配置文件:
vim /etc/profile
export CATALINA_HOME=/opt/tomcat7
export PATH=$CATALINA_HOME/bin:$PATH
source /etc/profile
startup.sh
十一.安装MySQL
l 拷贝安装包到opt目录下
MySQL-client-5.5.54-1.linux2.6.x86_64.rpm
MySQL-server-5.5.54-1.linux2.6.x86_64.rpm
l 执行如下命令进行安装
rpm -ivh MySQL-client-5.5.54-1.linux2.6.x86_64.rpm
rpm -ivh MySQL-server-5.5.54-1.linux2.6.x86_64.rpm
①检查安装是否成功
l 安装完成后查看MySQL的版本
执行mysqladmin --version,如果打印出消息,即为成功
或者通过rpm查询
rpm –qa|grep –i mysql(-i表示忽略大小写)
②MySQL服务的启停
启动: service mysql start
停止: service mysql stop
③ 设置root用户的密码
mysqladmin -u root password ‘root’
④ 本地登录MySQL
mysql -uroot -p123123
⑤远程访问
l MySQL默认的root用户只允许本机登录,远程通过SQLyog工具不能登录.
l 查看MySQL mysql库中的用户表
列显示: select * from user\G;
查询常用字段: select host,user,password,select_priv from mysql.user;
l 创建可以远程访问的root用户并授予所有权限
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
⑥ 修改用户的密码
修改当前用户的密码
set password =password('123456’)
修改某个用户的密码
update mysql.user set password=password(‘123456’) where user=‘li4’;
l 注意:所有通过user表的修改,必须使用flush privileges 命令才能生效.
十二. 卸载MySQL
MySQL必须干净卸载,否则会影响二次安装
①卸载客户端:rpm -e MySQL-client-5.5.54-1.linux2.6.x86_64
② 卸载服务器端:rpm -eMySQL-server-5.5.54-1.linux2.6.x86_64
③查看残留并删除:whereis mysql
④ 查看残留并删除:find / -iname 'mysql ’ 尤其其中/var/lib/mysql一定要确保删除
注意:
Linux whereis命令,会在特定目录中查找符合条件的文件,这些文件应属于原始代码、二进制文件,或是帮助文件。一般文件的定位需使用locate或者find命令。
注意:以后安装卸载jdk、tomcat、mysql基本不使用这么方法。因为推出了docker!!!
能生效.