linux学习笔记

第一节:

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 install jdk -y

提示找不到,怎么办?

运行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程序王

你可能感兴趣的:(dubbo,zookeeper,java,笔记,面试题)