第一节:
0.学习前的准备
1)购买阿里云ECS或者安装VMware-workstation-full-14.0.0.24051
2)熟悉一下阿里云控制台
3)安装XmanagerEnterprise5
4)下载linux环境下的jdk,tomcat,mysql
1.本课程学习目标
1)用户、组、文件权限分配
2)熟悉文件目录
3)熟悉一些命令,包括操作文件、操作用户、查一些网络端口、查看进程
4)要求会安装软件
2.linux简短介绍
1)linux严格来说不是一个操作系统,它是一个内核。操作系统为RedHat,CentOS,Ubuntu等
2)1991年,芬兰,linus,10月5日
3)http://www.centos.org
3.使用root连接到linux系统
1)SSH协议:远程连接安全协议,也就是说它是用来客户端跟主机进行连接的,并且是安全加密的,能够防止信息泄密,例如密码被窃取等.默认端口22.
2)终端工具:xshell,putty,secruit
3)登录到shell终端:需要注意内网、外网要分清楚
4)认识shell登录界面,都有哪些内容?代表什么含义?例如:[root@iZ2ze8y50ep4lui61ttg4pZ ~]# ,[root@iZ2ze8y50ep4lui61ttg4pZ /]#
4)使用终端工具的界面系统操作文件
4.liunux快捷键
tab 自动补全
ctrl c 中断当前执行的命令
ctrl d 退出系统,相当于logout
ctrl a 将光标定位到行的最前端
ctrl e 将光标定位到行的最后端
ctrl l 清屏,相当于clear
第3节:
5.Linux文件目录
/ 根目录
../ 上一级目录
./ 当前目录
~ 不同的用户对应不同的命令,例如root用户对应/root,非root用户/home/zhanglikun,总的来说可以理解成win的user目录
/bin 存放二进制文件,例如命令
/dev 一些设备信息
/etc 非常重要,是存放系统的一些配置文件,例如环境变量,yum等配置文件,系统运行的参数配置
/home 用户目录,例如存放用户的照片、歌曲等
/usr 默认的软件安装目录
/var 临时性的一些文件,例如缓存文件等
lost found 丢失的文件信息
备注:目录和文件不是一回事,目录是文件夹,文件是存放实际数据的载体
6.文件系统的3种身份
拥有者owner
组group
其他用户guest
7.文件系统的3种权限
读read
写write
执行execute
说明:每一个目录或者文件都有对应的身份和权限
8.Linux文件的身份和权限详解
1)目录或者文件的属性标识:用10位编码标识
2)标识符的第一位代表的是文件的类型,例如以d开头表示是一个目录,-开头表示是一个文件,l开头表示是一个快捷方式
3)r读,w写,x执行,-没有任何权限
4)剩下的9位分3组,每3个是一组,分别代表拥有者、组、其他用户的读、写、执行权限
第4节:
1.更改文件身份对应的权限
1)使用xshell终端工具更改权限
只需要选中文件或者文件夹,右键,更改权限。应用场景:
装一个软件的时候,提示目录没有权限。
2)使用chmod命令
r-4
w-2
x-1
如果一个用户的权限是7,即4 2 1,则证明该用户拥有r,w,x权限
如果一个用户的权限是4,即4,则证明该用户拥有r权限
如果一个用户的权限是3,即2 1,则证明该用户拥有w,x权限
如果一个用户的权限是6,即2 4,则证明该用户拥有r,w权限
例如:
chmod 777 test.txt
chmod 752 test.txt
思考:
如何用命令查看文件或目录的权限属性?可以使用上午的ll命令
2.练习题
练习使用xshell:新建文件夹、文件、上传、下载、cd命令、cd ..命令、pwd命令、快捷键
第5节:
linux常用命令
1.回忆之前接触的命令?启蒙命令
pwd
ls
ll
cd /
cd ..
cd
cd -
clear
logout
chmod
2.如何获取命令的帮助信息?
1)命令名称 -- help
2)man 命令名称
3.用户/组操作命令
会创建组、创建用户、能够把某个用户分到某个组,查看当前用户的id
useradd zhuohanjun 创建用户,同时在/home目录为该用户创建一个目录
groupadd 1611 创建组
groups 查询当前用户以及当前用户所在的组
groups zhuohanjun 查询zhuohanjun所在的组,如果没有分组则组名为空
gpasswd -a zhuohanjun 1611 将zhuohanjun放入1611组
id 获取当前用户的uid,gid等
id zhuohanjun 获取zhuohanjun的uid,gid等,如果没有该用户返回id: zhuohanjun: No such user
whoami 查看当前登录者的账号
su zhuohanjun 切换登录用户,如果当前登录用户是root则不需要输入密码,否则需要输入zhuohanjun的密码
su root 切换到root用户,需要root密码
passwd zhuohanjun 为zhuohanjun设置密码,注意键盘不能相连,不能太短太简单,否则系统不通过
userdel zhuohanun 删除某个用户,注意:如果该用户处于登录状态则无法删除,另外删除用户后其对应的/home/zhuohanhun目录不会删除
groupdel guest 删除某个组,注意:该组内的用户不会被删除,会移到无分组用户中
备注:
1)非root用户没有创建用户或者组的权限
2)由root用户su到其他用户时不需要验证密码,但是其他用户su到root用户时需要验证密码
3)课下练习:如何查看某个组下所有的用户?如何修改用户名?如何修改组名?
第6节:
1.文件操作命令
1)获取当前目录地址?
pwd
2)退出当上一级目录?
cd ..
3)回到上次所在的目录?
cd -
4)进入用户默认的目录?
cd
5)进入系统的根目录?
cd /
6)创建一个目录?
mkdir test 会在当前目录下创建一个目录
7)连续创建多层目录?
mkdir -p a/b/c 会在当前目录下创建n个目录
8)如何在指定目录下创建一个文件?
touch test.txt
9)如何将一段内容写入文件?
echo abcd>test.txt 使用echo命令和重定向符号将字符写入文件,重复使用后者会覆盖前者
echo abcd>>test.txt 使用echo命令和重定向符号将字符写入文件,重复使用后者不会覆盖前者
备注:一行一行的写入
10)如何为文件重新命名?
mv test.txt tt.txt
11)移动文件到上机目录?
mv tt.txt ../
12)将当前目录下所有的文件全部一次性移到/root下
mv * /root
13)如何拷贝一个文件?
cp tt.txt /root
复制一个目录到另外一个目录
cp -r tomcat8080 tomcat8081
14)如何删除一个文件?
rm tt.txt 询问
rm -f tt.txt 不询问
14)如何一次性删除多级非空目录?(该目录下结构为a/b/c/test.txt)
rm -rf a
备注:rm功能比较强大,不仅能删除文件,还可以删除目录,如果删除目录则需要加-r参数
15)如何删除一个空目录?
rmdir -p a/b/c
注意:不能rmdir -p a,提示目录a非空。另外,如果c下面有文件,该命令仍然不成功
rm -rf * 删除该目录下所有文件和目录
16)如何一次性删除多级空目录?(该目录下结构为a/b/c全部为空目录,如果非空则rmdir无法删除,它只针对空目录有效)
rmdir -p a/b/c
17)如何打包tar文件?
tar -zcvf test.tar test.txt
18)如何解包tar文件?
tar -zxvf test.tar
19)如何打包zip文件?
zip test.zip test.txt
20)如何解压zip文件?
unzip -o test.zip
备注:该命令默认没有安装,需要安装yum install unzip -y
21)如何查看文件内容?如何查看文件内容的同时显示行号?
cat test.txt
cat -n test.txt
22)如何只查看文件的前2行?
head -2 test.txt
23)如何只查看文件的末尾2行?
tail -2 test.txt
24)动态监控一个文件的内容?
tail -f /user/tomcat/log/catalina.out
25)统计文本总行数?
wc -l test.txt
26)如何在指定的文件中查找某个含有关键字的行?
grep a /home/test.txt 查找/home/test.txt中含有a的行
grep还可以查管道内的信息,例如:ps -ef|grep ssh
27)如何在指定目录查找文件?
find / -type f -name "*.txt"
找系统中所有txt文件,-type代表文件类型,f代表是文件不是目录,-name代表文件名称
28)查看磁盘剩余的磁盘空间?
任何目录下运行df
29)查看某个文件的权限属性?
ls 只列出所有文件和目录名字
ll 列出所有文件和目录详细信息
ll /etc/rc.d/init.d/mysqld 查看mysqld文件的详细信息
30)还有什么命令可以列出当前目录下所有文件和目录?
dir,跟ls同功能
第7节
1.网络命令
Ifconfig 启动网卡信息,包含内网IP地址
curl 获取某个网址的内容,也可以使用>存到文件中,例如curl https://www.baidu.com>baidu.html
curl 获得远程主机的IP地址,例如curl ipinfo.io该网站返回一段json信息,包含了远程主机的IP地址
wget 下载文件
telnet 远程登录命令,默认没有安装该服务,需要yum安装,例如telnet 47.95.255.233 22或者telnet taobao.com
2.进程/端口命令
查看进程:ps -ef|grep [进程标识], 例如:ps -ef|grep ssh 说明:管道符“|”,管道符左边命令的输出就会作为管道符右边命令的输入。
杀死进程:kill -9 [PID],例如:kill -9 1829
查看网络:netstat -lntup|grep [进程标识],例如netstat -lntup|grep ssh
端口占用:lsof -i:22 查询当前22端口被哪个用户的哪个程序占用,同时还包括该程序的PID、协议名称等,需要yum安装该命令
3.其他命令
date 获取服务器当前时间
shutdown -h 关机
shutdown -r 重启
shutdown -h 11:50 11:50关机
shutdown -h 180 180分钟以后关机
备注:shutdown只有root才能操作
第8节:
大名鼎鼎的vi编辑器,vim
1.vi的工作模式:命令行模式,插入模式,行末模式
1)什么情况下进入命令行模式?
默认运行vi命令的时候即进入命令行模式,例如vi test.txt
备注:
a.如果该文件不存在,则vi会帮我们创建这个文件,并自动打开
b.还可以用vi打开一个指定的文件
2)插入模式
进入命令行模式后,按i,a,o进入插入模式,在该模式下进行文本的编辑(增、删、改)。
3)行末模式
在插入模式下,按esc键,进入该模式。输入:又可进入命令行模式,然后输入相应的命令,例如
w保存
wq保存并退出
q退出但不保存
!强制执行,例如wq!,含义为强制保存并退出
wq newfilename 如果直接vi进入的则以newfilename命名并退出,如果vi filename进入的则另存为newfilename
2.总结
开始vi a.txt——命令行模式——i——插入模式——编辑内容——esc——行末模式——:——命令行模式——wq保存并退出
这就是3个模式之间的来回转换,通过这个转换我们实现了文件打开、编辑、保存、退出等操作。
第9节:
linux下软件的安装
1.软件的安装包来分
1)源码
2)二进制包
a.gz包
b.rpm 全称redhat package managers
备注:rpm针对的是redhat系列的linux
redhat centos
debian ubuntu
2.二进制之gz包的安装
JAVAHOME=/usr/local/jdk1.8.0131
CLASSPATH=.:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
非yum安装的需要配置上述环境变量,配置文件地址/etc/profile
3.二进制之yum安装
1)什么是yum?
yum是一个软件源,可以理解成一个软件黄页,各个大的互联网公司都提供这些软件的下载
2)yum源的配置文件
配置文件所在的目录:/etc/yum.repos.d/CentOS-Base.repo
注意:
a.文件名称可以随便改,但是后缀名不能改
b.可以配置多个yum源,163.repo,ali.repo
配置文件的格式:
$releasever:操作系统大的版本号
$basearch:cpu类型,386,x86_64
这2个变量会自动读取。
3)yum源的缓存目录
/var/cache/yum/x86_64/6
该目录是根据CPU类型和OS版本自动生成的,例如x86_64是CPU架构类型,6是centos的大版本号
4)安装JDK
命令格式:yum install softname -y
例如:安装jdk
提示找不到,怎么办?
运行yum list | grep jdk
知道到所有符合条件的列表,在列表中找自己的软件名称,例如:
yum install java-1.8.0-openjdk.x86_64 -y
5)安装tomcat
a.解压安装tar apache-tomcat-7.0.77.tar.gz
b.进入到tomcathome/bin,然后运行./startup.sh
c.测试http://ip:8080
d.查看日志tail -f /root/apache-tomcat-7.0.77/logs/catalina.out
6)mysql的安装
首先需要在阿里云控制台的安全策略中将3306端口打开,否则即使远程授权了也无法连接mysql,IP填写0.0.0.0/0
a.安装命令yum install mysql-server -y
b.启动服务service mysqld start
c.如果b出错1130,是因为系统认不到mysql服务,需要注册该服务,参照d
d.chkconfig mysqld on 命令去注册mysql服务,on代表开启服务,off代表关闭服务
e.启动服务,跟b一样
-----------至此,mysql启动成功
f.mysql -u root 登录mysql,默认mysql初密码为空
g.use mysql;选择库
select host,user,password from user;查看当前系统的用户
update user set password=password('123456')where user='root';重置密码
-----------至此,mysql重置密码成功
h.mysql -u root -p 重新登录mysql
password:
i.如果在shell中输入了正确的密码仍然提示1045密码错误,是因为远程连接没有开启,需要开启,参考k和l
k.mysql -h localhost -u root去登录,然后执行k
l.grant all privileges on . to 'root'@'%' identified by '123456';
flush privileges;
运行成功后会在user表增加一行数据,其中host为%,root为用户名,123456为密码
m.用本地navicat连接,进行测试
备注:如果sql写错了会进入“>”,输入exit退回到mysql>下
----------至此,mysql远程连接开启完毕
7)出现的问题:
A.没有创建msql用户和组
[root@iZ2ze2r6zsuwx4vfyvxofrZ /]# chkconfig mysqld on
[root@iZ2ze2r6zsuwx4vfyvxofrZ /]# service mysqld start
chown: invalid user: `mysql:mysql'
Starting mysqld: [FAILED]
[root@iZ2ze2r6zsuwx4vfyvxofrZ /]# id mysql
id: mysql: No such user
解决:
groupadd mysql
useradd -g mysql mysql
B.useradd或groupadd命令失效
[root@iZ2ze2r6zsuwx4vfyvxofrZ /]# groupadd mysql
-bash: groupadd: command not found
解决:
/usr/sbin目录下命令丢失,常见的命令都在该目录
第10节:
复习问答
1)在用户主目录下递归创建 bdqn/java/javaEE/ 文件目录
mkdir -p bdqn/java/javaEE
2)进入bdqn/java/javaEE/目录,并创建temp/文件目录
cd bdqn/java/javaEE
mkdir temp
3)在temp目录下新建myInfo.txt文件
touch myInfo.txt
4)myInfo.txt文件中增加内容,编辑完成后保存文件
echo "abcd">myInfo.txt
另外
vi myInfo.txt
5)保存文件并强制退出vi,并保存文件
:wq!
6)在myInfo.txt 第二行到第三行直接插入以下语句,编辑完成后保存文件
vi myInfo.txt
i
插入内容。。。
esc
:
wq
7)将tomcat8080在本目录下再复制一份并命名为tomcat8081
cp -r tomcat8080 tomcat8081
8)查看myinfo.txt的前二行信息
head -2 myinfo.txt
tail -2 myinfo.txt
9)将bdqn/java/javaEE/temp/myinfo.txt 重命名为wangmingInfo.txt
mv myinfo.txt wagnminginfo.txt
10)由当前用户切换到root用户
su root
12)使用root用户新建test用户
useradd lvxu
为lvxu设置密码passwd lvxu
13)给test用户新建密码,并切换到test用户,并查看test用户的用户组,用户,UID,GID
id test
判断系统中有没有abc这个用户?
id abc
14)在test用户下新建test.info文件,在test.info文件中输入I am a tester,保存文件
touch test.info
vim test.info
...输入内容
:wq
15)查看文件权限。确定当前用户,用户组,其他用户对test.info文件的权限
ll test.info
16)将test.info文件的读写权限赋给组用户,将test.info文件的读,执行的权限赋给其他用户
chmod 761 test.info
17)将test用户加入root组,查看test用户对test.info权限
gpasswd lvxu test
cat /etc/group 查看所有的组信息
cat /etc/group | grep "abc" 查看有没有abc这个组
groups abc查看有没有abc这个组
18)切换到root用户,新建test2用户组,将test用户所属分组修改为test2
19)删除test用户
userdel test
20)启动tomcat
绝对路径 /usr/local/tomcat/bin/startup.sh
相对路径 [root@localhost bin]#./startup.sh
21)动态查看tomcat后台日志
tail -f /usr/local/tomcat/logs/catalina.out
22)关闭tomcat
/tomcatHome/bin/shutdown.sh
23)查看java进程PID
ps -ef | grep "java"
24)查看tomcat进程
ps -ef |grep "tomcat"
25)强制杀掉tomcat进程,常用于tomcat无法关闭的情况,注意:用当初启动tomcat的用户来执行该命令
ps -ef |grep tomcat
kill -9 PID
26)将根目录下的etc文件打包
cd /etc
tar -zcvf etc
27)使用root账号对/home/zhanglikun目录进行打包
cd /home/zhanglikun
tar -zcvf zhanglikun.tar.gz ./
(28)使用root账号对/home/目录下的zhanglikun.tar.gz进行解压
tar -zxvf zhanglikun.tar.gz
29)在当前目录下找后缀名为log的文件
find ./-type f -name "*.log"
30)查找系统中后缀名为log的文件
find / -name "*.log"
31)如何判断系统中是否有abc这个用户?
id abc
32)查看当前磁盘用了多少?
df
本课程出现的问题:
1)不理解xshell的作用,以为通过xshell就能发mq访问网站等,可对比navicat理解
2)不理解内网IP和外网IP的作用,连接的时候不知道用哪个IP
3)不理解目录和文件的区别
4)rm,rmdir的区别?
5)装mysql
a.安装
b.启动
c.重置密码
d.授权远程主机连接
6)如果装的centos7用的却是centos6的yum源,导致mysql源无法找到无法安装
获取更多资源请关注微信公众号:AKA程序王