XFtp 文件上传至Linux
因为/ 表示的是根目录,如果你要进入abc目录,应该这样:cd abc, 而不是cd /abc, 如果你非要使用绝对路径,则应该是cd /home/abc。
cd 与 cd ~都是打开用户目录的
删除目录
rmdir 删除的前提是文件夹中没有内容
rm -rf 删除目录即他们的内容
rm -f删除文件
文件重命名
mv 旧文件名 新文件名
创建一个新文件 文件名 以及文件内容
Vim 文件名
cp
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点…的形式。例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign .
cp 文件名 新文件名 将会把旧文件内容copy到新文件中
查找文件
find 如果是从根目录查找需要权限
Linux用户管理
su 用户名 跳转到相应用户 su 默认就跳转到root权限超级管理员
Linux重启
reboot
Tomcat 在windows无法访问
需要在linux的防火墙上放行8080端口
Linux第一天笔记
课程简介
1:linux操作系统简介
2:linux操作系统安装
3:linux操作系统常用指令
4:linux操作系统常用文件指令
复习(上线,能通过互联网-公网问)
Linux简介
1:linux是一个服务器操作系统,项目发布,(运行环境,jdk,tomcat,mysql,redis,nginx,…)环境搭建。
特点: 免费 ,开源,高效,安全,处理高并发能力很强。
Linux内核,华为小米()
2:linux的发行版(在内核的基础上进行的开发应用)
红帽 centOS Ubantu suse 红旗 (中国)
Android—》小米 华为
《鸟哥私房菜》—>初级linux(基础的linux指令)
《人月神话》 --》linux 高级应用(集群,部署信息)
VM和linux的安装
VM:虚拟机
通过vm软件在windows平台虚拟一个新的操作系统(光驱,硬盘,声卡网卡…)
虚拟化,(集群搭建),云计算:运维(linux)
必须开启:当前系统的虚拟化,否则安装失败(F** 2, **或者是F10,F1)
操作系统支持虚拟化,bios 虚拟机化开启enalbel
CentOS:linux操作系统(就是一系列的文件)
-
(1)创建一个虚拟机
根据windows硬件,配置虚拟机的配置。
配置网络连接的时候选择nat方式
-
(2)安装centos操作系统
网络设置和终端
1:配置网络
自动获取动态IP地址
也就是通过路由器的DHCP功能,使Linux主机自动获取IP地址。
设置方法如下:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
编辑本地网卡的配置文件
主要查看下面这两项是否和下面给出的一致即可。
ONBOOT=yes
BOOTPROTO=dhcp
第一项是确保本地网卡eth0开启。
第二项是使用dhcp,自动获取IP地址、子网掩码、网关和DNS。
然后,执行下面的命令,重启网络服务即可。
service network restart
重启网络服务,使配置文件生效
安装vmtools工具
Vmtools工具可以将windows中的文本文件拷贝到linux中,linux中的内容可以移动的windows中
安装:击安装VMware Tools 会下载到/media/VMware Tools目录下
- 1)在root权限将vmtools工具压缩包,解压到opt目录下
tar -zxvf /media/VMware Tools/压缩文件名-C /opt
- 进入解压后的文件目录(cd 目录名) cd /tmp/vmware-tools-distrib
- 安装文件 ./***.pl文件(一路回车) ./vmware-install.pl
- 重启linux,vmtools工具才能生效
文件在linux和windows之间就可以自由的拷贝了.
Linux的目录结构
Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层称之为根目录,使用"/"表示然后在此目录下创建其他目录
Linux是一个文件系统,在linux中一切内容都是文件。
常用目录介绍:
/bin [重点](/usr/bin、/usr/local/bin)
bin是binary的缩写,这个目录中存放着最经常使用的 命令
cat /etc/passwd
/sbin(/usr/sbin、/usr/local/sbin)
s就是superuser的意思,这里存放的是系统管理员使用的系统管理程序
/home[重点]
存放普通用户的主目录,在linux中每个用户都有自己的一个目录,一边该目录名是以用户账号命名的。
/root 该目录是系统管理员,或者是超级权限者的用户目录
/lib 系统开机所需要的最基本的动态链接共享库,
/lost+font 这个目录一般是空的,系统非法关机后这里就会存放一些文件
/etc [重点] 所有的系统管理所需要的 配置文件** (防火墙,jdk,密码)**和子目录
/usr** [重点] 这是一个非常重要的目录, 用户的 很多 应用程序**和文件都放在此目录下类似于windeows下的program file文件夹
/boot 存放的是启动linux时使用的一些核心文件目录
/proc、/srv、/sys 这三个目录和linux内核有关的目录,他是系统内存的一个映射,访问这个目录来获取系统信息。Linux高手才会用到,普通操作者不要乱动。
/tmp 存放临时文件的目录
/dve 类似于windows的设备管理器,把所有的硬件用文件的形式存储
/media linux会自动识别一些设备,如u盘,光驱等,当识别后linux会把识别的设备挂载到这个目录下
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统。
/opt[重点] 这个是我们存放安装软件的目录(jdk tomcat sogou…)
/usr/local [重点] 这个是另外一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装程序
/var 存放不断变化的文件,例如日志文件,经常更新,就放到这个目录下。
/selinux 是一个安全子系统,控制程序访问特定文件
远程登录linux
在我们实际操作中,我们的服务器安装的linux系统,让后将项目发布到服务器上,linux服务器是没有显示器的。而且我们和服务器机房不在同一个地方,所以需要远程服务器
Xshell5 就是一个远程终端,用于登录到linux上,如果需要在linux上安装文件,我们还需要将文件远程上传到linux系统上,使用的就是xftp5
注意: 因为xshell5远程登录到linux系统,linux系统必须打开sshd服务,因为这个服务监听22号端口,如果没有开启我们需要开启这个服务。
nc -lp 23 &(打开23端口,即telnet)
netstat -an | grep 23 (查看是否打开23端口)
- 1)安装xshell5完成以后
- 2)获取当前linux的ip地址
- 3)使用ip进行远程连接
安装文件上传工具 sftp,按照下图进行配置
修改sftp中文乱码问题:默认为gbk编码
勾选后然后刷新就可以改变乱码了.
Linux的常用指令:
1:文件和目录
- 1)Pwd :显示当前所在的目录
-
/ linux中根目录
- 当前的用户目录
- cd 切换目录 (. , …) .当前目录 …上一层目录
cd /home 进入’/ home’ 目录’
cd … 返回上一级目录
cd …/… 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
- ls查看目录下的文件
ls -F 查看目录中的文件 file
ls -l 显示文件和目录的详细资料(常用的查看指令)
ls -a 显示隐藏文件
ll -s 显示文件详细信息
查看文件内容:
Cat 指令 查看文件内容的指令
Cat 文件名
Cat 有效的文件路径/文件 查看文件内容
- 4)目录指令
mkdir dir1 创建一个叫做’dir1’ 的目录’ make directory
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树(多个文件夹的嵌套)
rmdir dir1 删除一个叫做’dir1’ 的目录’(文件夹中没有内容的) rmove directory
rm -rf dir1 删除一个叫做’dir1’ 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
m_v dir1_ new_dir 重命名
5)创建文件的指令
Touch file1 创建一个叫’file1’的文件
Vim 文件名编辑文件内容后就会产生一个文件
Echo ‘内容’> 文件名 将制定内容添加到文件中,这样会覆盖文件原有内容,如果不想覆盖请使用>> 符号
Rm -f 文件名(或者是一个有效的文件目录,最终指向一个文件) 删除一个文件
Mv 文件名新文件名 给文件重命名
Mv 文件名一个有效的文件目录。将某个文件移动到指定目录中
Mv 文件的路径 文件的路径 将当前目录中制定的文件移动到目标文件中
- 5)Cp 复制指令
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 路径复制一个目录到当前工作目录
cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中
Vi 和Vim文本编辑器使用:
Vim是从vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说,vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具
三种模式
正常模式:
以vim打开一个档案就直接进入一般模式(这个是默认的模式) 在这个模式中可以使用[上下左右]按键来移动光标,你可以使用删除字符或者是删除正行来处理档案内容,可以使用复制粘贴来处理文件数据 记得ESC退出
插入模式
按下i I o O a A r R 等任何一个字母之后才会进入编辑模式一般来说按i即可 :wq保存退出
命令行模式(底行模式)
在这个模式当中,可以提供相关指令,完成读取,存盘替换离开vim、显示行号等动作则是在此模式中打成
三种模式的切换:
:wq 退出保存
:q! 退出不保存
-
(1)创建一个文本文件
Touch 文件名
-
(2)使用vim指令切换不同的模式完成练习
find文件查找指令(名字)
Find指令
基本格式:语法:find [查找文件的路径] [查找条件] [处理动作]
1.按照文件名查找
(1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
(3)find /etc -name ‘srm’ #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串’srm’的文件
(4)find . -name ‘srm*’ #表示当前目录下查找文件名开头是字符串’srm’的文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
(10) find /- type f|d 查找当前目录下所有文件 file directory
Grep指令(文件内容查找)
grep [options] ‘pattern’ filename
下面所列的参数主要是一些常用的参数。
option主要参数
编号 参数 解释
- 1–version or -V grep的版本
- 2-A 数字N 找到所有的匹配行,并显示匹配行后N行 after
3 -B 数字N 找到所有的匹配行,并显示匹配行前面N行 befor
4 -b 显示匹配到的字符在文件中的偏移地址
5 -c 显示有多少行被匹配到
6 --color 把匹配到的字符用颜色显示出来
7 -e 可以使用多个正则表达式
8 -f FILEA FILEB FILEA在FILEAB中的匹配
9 -i 不区分大小写针对单个字符 inorgecase
10 -m 数字N 最多匹配N个后停止
11 -n 打印行号
12 -o 只打印出匹配到的字符
13 -R 搜索子目录
14 -v 显示不包括查找字符的所有行
pattern主要参数
编号 参数 解释
1 ^ 匹配行首
2 $ 匹配行尾
3 [] or [n - n] 匹配[]内字符 [9] 1[3-5]
4 . 匹配任意的单字符
5 * 紧跟一个单字符,表示匹配0个或者多个此字符
6 \ 用来屏蔽元字符的特殊含义
7 ? 匹配前面的字符0次或者1次
8 + 匹配前面的字符1次或者多次
9 X{m} 匹配字符X m次
10 X{m,} 匹配字符X 最少m次
11 X{m,n} 匹配字符X m—n 次
12 666 标记匹配字符,如666 被标记为1,随后想使用666,直接以1 代替即可
13 | 表示或的关系
020-876643434 0755
876643434
- (1)创建一个文件内容为
a
bc
def
ght12
abc999
tydvl658
123
456
789abc
命令
grep --version 显示grep的版本号
grep -A 2 “a” test.txt //匹配字符’a’ 后面两行
grep -B 2 “a” test.txt //匹配字符’a’ 前面两行
grep -c “a” test.txt //在整个txt中,共有三个字符’a’被匹配到
grep --color “a” txt //匹配到的内容使用颜色显示
grep -e “a” -e “1” test.txt //查找txt中字符 ‘a’ 和字符 ‘1’
grep -i “a” test1.txt //找出所有字符’a’ 并且不区分大小写
grep -m 2 “a” test.txt //匹配2个后停止
grep -n -m 2 “a” test.txt//打印出匹配字符的行号
grep “a” * //只在当前目录查找字符’a’
grep -R “a” * //在当前目录和子目录查找字符’a’
grep -v “a” test.txt 显示不包括查找字符的所有行
grep -n ‘^a’ test.txt //匹配以字符’a’开头的
grep -n ‘33$’ test.txt //匹配以字符串"33"结束的
文件压缩和解压(必须)
打包和压缩文件:
tar -tf archive.tar 显示一个压缩包中的内容
tar -zcvf info.tar.gz a.java bb.java 创建一个gzip格式的压缩包
tar -xvf info.tar.gz -C /root 解压一个gzip格式的压缩包
tar -axvf info.tar.gz -C /root 解压一个gzip格式的压缩包
Linux用户和组的管理
1)Linux系统是一个 多用户多任务 的操作系统,任何要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统中用户名 /home
2)Linux的用户需要至少属于一个组。
3)在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。
4)linux中所创建的账号和其相关信息(密码除外)均放在/etc/passwd 文件中,linux在安装好后会默认创建多个用户,但是这些用户为linux进程用户不能登录
用户信息结构为:(使用指令 cat /ect/passwd 查看)
5)为安全起见,用户真实的密码采用 MD5 加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。
与passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。第一个字段为用户帐户名,第二个字段为账户的密码。
6)用户组帐号信息保存在/etc/group配置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。
在group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔
-
7)用户指令操作
Useradd 用户名 (使用当前的用户名添加一个组,并将创建的用户放入到这个组中)
Passwd 用户名为当前用户设置密码
Userdel -r 用户名删除该账户和所有目录结构
Passwd -l 用户名锁定账户密码 lock
Passwd -u 用户名解锁账户密码 unlock
Passwd -S 用户名 查看用户密码锁定状态
Groups 查看用户属于哪个组
-
8)用户组操作命令
Groupadd 组名 创建用户组
Groupdel 组名 删除用户组(有用户的组不能删除的,空组可以删除组信息)
Useradd -g 组名 用户名 创建用户并且制定用户所属的组
gpasswd ** **** -a 用户账户 **** **用户组名 将某个用户添加到该组 add
gpasswd -d 用户账户 用户组名 将某个用户移除该组 delete
9)切换用户和操作环境
su - username #用户和操作环境都改变
su username #只切换用户不切换操作环境及环境变量不变。还可用于退出超级权限
10)用户和组常用命令
groups 查看当前登录用户的组内成员
groups 用户名 查看当前用户所在的组
whoami 查看当前登录用户名
文件权限
-
rw- r-- r-- root root 0 7月 20 01:03 a.java
-
第一个字符代表文件(-)、目录(d),链接(l)
-
其余字符每3个一组r 读 w 写 x执行 read write execute
rw-读写没有执行权利(当前的文件拥有者) tomer
r-- 读 没有写和执行的权利(和当前文件拥有者在 同一个组 的用户) root
r-- 读 没有写和执行的权利(其他用户的权利)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 777 755 rwxr-xr-x
- 1 表示连接的文件数
- root 表示用户
- root表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
改变权限的命令
chmod 改变文件或目录的权限
chmod 755 ** 文件:赋予abc权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx 文件名:同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w 文件名:给abc去除用户执行的权限,增加组写的权限
chmod a+r 文件名:给所有用户添加读的权限
改变所有者(chown)和用户组(chgrp)命令
chown 用户名文件名:改变abc的所有者为xiaoming change owner
chgrp 组 文件:改变abc所属的组为root
chown 用户目录:改变abc这个目录的所有者是root
chown ‐R 用户 目录:改变abc这个目录及其下面所有的文件和目录的所有者是root
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组
usermod ‐g 组名用户名
关机、重启、注销
关机:
shutdown -h 0 #<==0秒后关机
shutdown -h now #<==现在关机
shutdown -h 10 #<==10分钟后关机
shutdown -h 23:20 #<==23:20分关机
shutdown -c #<==取消shutdown关机命令
init 0 #<==立马关机(切换运行级别为0,推荐使用)
halt #<==立马关机
poweroff #<==立马关机
重启
shutdown -r now #<==现在重启
shutdown -r 23:20 & #<==23:20分重启,加&符号代表把该命令转到后台处理
reboot #<==立马重启(推荐使用)
init 6 #<==立马重启(切换运行级别为6,推荐使用)
注销用户
logout #<==立马注销
exit #<==立马注销
清屏指令
Clear
Ctrl+l
注意:
Sync:这个指令将数据从内存中同步到磁盘上(关机和重启之前使用)
登录的时候少用管理员,可以使用普通用户登录后然后使用指令
Su -root 指令切换到管理员
Linux第二天笔记
课程简介
1:linux操作系统安装jdk
2:linux操作系统下tomcat的安装
3:linux操作系统安装eclipse
4: linux操作系统安装mysql
5:linux系统下shell脚本的编写和运行
复习
配置EditPlus
文件>FTP>设置FTP服务器
Jdk安装
1:通过 Xftp工具将我们安装工具包(jdk-8u211-linux-x64.tar.gz)传入到/root文件夹下
cd /root
2:解压jdk的压缩文件
tar -zxvf jdk-8u211-linux-x64.tar.gz;
把解压出来的目录jdk1.8.0_211移动到/usr/local
mv jdk1.8.0_211 /usr/local/ 移动
cd /usr/local 切换目录
ls 查看
3: 这个时候我们进入解压的文件夹中的bin目录下就可以输入 ./java ./javac等指令
这样导致的结果很不方便,所以我们需要配置环境变量
cd jdk1.8.0_211/bin
4:配置环境变量 /etc/profile 文件中 (将java的内容配置到最后行比较清晰)
Vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_211
PATH=/usr/local/jdk1.8.0_211/bin:$PATH
export JAVA_HOME PATH
Esc退出编辑模式
:wq 保存我们修改的数据
5: 重启 linux后,在任何目录下都可以直接使用java 和javac指令了 然后编码测试即可
Tomcat
上传 apache-tomcat-8.5.40.tar.gz 到root
cd /root
1:解压tomcat的压缩包
tar -axvf apache-tomcat-8.5.40.tar.gz
mv apache-tomcat-8.5.40 /usr/local/ 移动
2:启动tomcat。、
进入到解压文件夹的bin目录下,使用指令开启服务
cd /usr/local/apache-tomcat-8.5.40/bin
./startup.sh
3: 在linux中我们使用 localhost:8080 就可以访问了.
4: 这个时候我们在windows中使用浏览器无法访问,原因是linux的防火墙对这个端口没有放行
(1)使用指令 service iptables status 查看只有22端口放行。
5: 编辑防火墙文件放行8080端口
使用指令 vim /etc/sysconfig/iptables 打开防火墙文件 放开8080端口
6:重启防火墙
Service iptables restart
7: 在windows中使用 ip和端口号就能够正常访问了.
关闭防火墙的方法为:
-
永久性生效,但是要重启
开启:chkconfig iptables on
关闭:chkconfig iptables off -
即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop
安装mysql
使用yum快速 安装MySQL数据库
1.查看CentOS下是否已安装mysql
[root@localhost ~]# yum list installed | grep mysql
2.删除已安装mysql
[root@localhost ~]# yum -y remove mysql
3.查看yum库中的mysql(非必须)
[root@localhost ~]# yum list | grep mysql
4.从yum库中的安装mysql
[root@localhost ~]# yum -y install mysql mysql-server mysql-devel
5.验证是否安装成功
[root@localhost ~]# rpm -qi mysql-server
6.启动MySql服务
[root@localhost ~]# /etc/init.d/mysqld start
7.登录并设置密码
[root@localhost ~]# mysql -u root 初始没有密码
Mysql>show variables like ‘%port%’; 查看端口号信息
mysql> show databases;
mysql> use mysql; mysql数据库中存放的是用户的信息user表
mysql> update user set password=password(‘root’) where user=‘root’;
8.开放远程登录权限
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
开放3306端口
5: 编辑防火墙文件放行3306端口
使用指令 vim /etc/sysconfig/iptables 打开防火墙文件 放开8080端口
6:重启防火墙
Service iptables restart
9:mysql服务是否正常启动
service mysqld status 查看mysql服务是否开启
Ps -ef |grep mysql 查看后台进程中的mysql状态。
Shell脚本(linux编程) startup.sh
(1)运维人员在进行服务器集群管理的时候,需要编写一下shell脚本来进行集群的管理
(2)大数据的工作人员需要编写shell脚本对数据库进行管理
Shell是一个命令行解释器,它为用户提供了一个向linux系统内核发送请求以便运行程序的界面系统级程序,用户可以通过shell脚本来启动,挂起,停止或者是编写一些程序。
1:编写shell 输出hello world
(1)Shell 脚本以 ***.sh 命名
(2)Shell 脚本的开头为 #!/bin/bash 开头
(3)赋予用户执行的权限 +x
(4)执行的时候可以是相对路径 或者是绝对路径
vim hello.sh
内容如下:
#!/bin/bash
echo “Hello World !”
:wq
chmod 755 hello.sh
./hello.sh
Linux第一天笔记
课程简介
1:linux操作系统简介
2:linux操作系统安装
3:linux操作系统常用指令
4:linux操作系统常用文件指令
复习(上线,能通过互联网-公网问)
Linux简介
1:linux是一个服务器操作系统,项目发布,(运行环境,jdk,tomcat,mysql,redis,nginx,…)环境搭建。
特点: 免费 ,开源,高效,安全,处理高并发能力很强。
Linux内核,华为小米()
2:linux的发行版(在内核的基础上进行的开发应用)
红帽 centOS Ubantu suse 红旗 (中国)
Android—》小米 华为
《鸟哥私房菜》—>初级linux(基础的linux指令)
《人月神话》 --》linux 高级应用(集群,部署信息)
VM和linux的安装
VM:虚拟机
通过vm软件在windows平台虚拟一个新的操作系统(光驱,硬盘,声卡网卡…)
虚拟化,(集群搭建),云计算:运维(linux)
必须开启:当前系统的虚拟化,否则安装失败(F** 2, **或者是F10,F1)
操作系统支持虚拟化,bios 虚拟机化开启enalbel
CentOS:linux操作系统(就是一系列的文件)
-
(1)创建一个虚拟机
根据windows硬件,配置虚拟机的配置。
配置网络连接的时候选择nat方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0D8YTQG-1576757449917)(https://word2md.com/)]
-
(2)安装centos操作系统
网络设置和终端
1:配置网络
自动获取动态IP地址
也就是通过路由器的DHCP功能,使Linux主机自动获取IP地址。
设置方法如下:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
编辑本地网卡的配置文件
主要查看下面这两项是否和下面给出的一致即可。
ONBOOT=yes
BOOTPROTO=dhcp
第一项是确保本地网卡eth0开启。
第二项是使用dhcp,自动获取IP地址、子网掩码、网关和DNS。
然后,执行下面的命令,重启网络服务即可。
service network restart
重启网络服务,使配置文件生效
安装vmtools工具
Vmtools工具可以将windows中的文本文件拷贝到linux中,linux中的内容可以移动的windows中
安装:击安装VMware Tools 会下载到/media/VMware Tools目录下
- 1)在root权限将vmtools工具压缩包,解压到opt目录下
tar -zxvf /media/VMware Tools/压缩文件名-C /opt
- 进入解压后的文件目录(cd 目录名) cd /tmp/vmware-tools-distrib
- 安装文件 ./***.pl文件(一路回车) ./vmware-install.pl
- 重启linux,vmtools工具才能生效
文件在linux和windows之间就可以自由的拷贝了.
Linux的目录结构
Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层称之为根目录,使用"/"表示然后在此目录下创建其他目录
Linux是一个文件系统,在linux中一切内容都是文件。
常用目录介绍:
/bin [重点](/usr/bin、/usr/local/bin)
bin是binary的缩写,这个目录中存放着最经常使用的 命令
cat /etc/passwd
/sbin(/usr/sbin、/usr/local/sbin)
s就是superuser的意思,这里存放的是系统管理员使用的系统管理程序
/home[重点]
存放普通用户的主目录,在linux中每个用户都有自己的一个目录,一边该目录名是以用户账号命名的。
/root 该目录是系统管理员,或者是超级权限者的用户目录
/lib 系统开机所需要的最基本的动态链接共享库,
/lost+font 这个目录一般是空的,系统非法关机后这里就会存放一些文件
/etc [重点] 所有的系统管理所需要的 配置文件** (防火墙,jdk,密码)**和子目录
/usr** [重点] 这是一个非常重要的目录, 用户的 很多 应用程序**和文件都放在此目录下类似于windeows下的program file文件夹
/boot 存放的是启动linux时使用的一些核心文件目录
/proc、/srv、/sys 这三个目录和linux内核有关的目录,他是系统内存的一个映射,访问这个目录来获取系统信息。Linux高手才会用到,普通操作者不要乱动。
/tmp 存放临时文件的目录
/dve 类似于windows的设备管理器,把所有的硬件用文件的形式存储
/media linux会自动识别一些设备,如u盘,光驱等,当识别后linux会把识别的设备挂载到这个目录下
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统。
/opt[重点] 这个是我们存放安装软件的目录(jdk tomcat sogou…)
/usr/local [重点] 这个是另外一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装程序
/var 存放不断变化的文件,例如日志文件,经常更新,就放到这个目录下。
/selinux 是一个安全子系统,控制程序访问特定文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMgqe1bv-1576757449922)(https://word2md.com/)]
远程登录linux
在我们实际操作中,我们的服务器安装的linux系统,让后将项目发布到服务器上,linux服务器是没有显示器的。而且我们和服务器机房不在同一个地方,所以需要远程服务器
Xshell5 就是一个远程终端,用于登录到linux上,如果需要在linux上安装文件,我们还需要将文件远程上传到linux系统上,使用的就是xftp5
注意: 因为xshell5远程登录到linux系统,linux系统必须打开sshd服务,因为这个服务监听22号端口,如果没有开启我们需要开启这个服务。
nc -lp 23 &(打开23端口,即telnet)
netstat -an | grep 23 (查看是否打开23端口)
- 1)安装xshell5完成以后
- 2)获取当前linux的ip地址
- 3)使用ip进行远程连接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JVgmBswH-1576757449926)(https://word2md.com/)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nwe9fzDl-1576757449928)(https://word2md.com/)]
安装文件上传工具 sftp,按照下图进行配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0C4YGAN1-1576757449931)(https://word2md.com/)]
修改sftp中文乱码问题:默认为gbk编码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Te1fwrvP-1576757449941)(https://word2md.com/)]
勾选后然后刷新就可以改变乱码了.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g0tgBU3h-1576757449943)(https://word2md.com/)]
Linux的常用指令:
1:文件和目录
- 1)Pwd :显示当前所在的目录
-
/ linux中根目录
- 当前的用户目录
- cd 切换目录 (. , …) .当前目录 …上一层目录
cd /home 进入’/ home’ 目录’
cd … 返回上一级目录
cd …/… 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
- ls查看目录下的文件
ls -F 查看目录中的文件 file
ls -l 显示文件和目录的详细资料(常用的查看指令)
ls -a 显示隐藏文件
ll -s 显示文件详细信息
查看文件内容:
Cat 指令 查看文件内容的指令
Cat 文件名
Cat 有效的文件路径/文件 查看文件内容
- 4)目录指令
mkdir dir1 创建一个叫做’dir1’ 的目录’ make directory
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树(多个文件夹的嵌套)
rmdir dir1 删除一个叫做’dir1’ 的目录’(文件夹中没有内容的) rmove directory
rm -rf dir1 删除一个叫做’dir1’ 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
m_v dir1_ new_dir 重命名
5)创建文件的指令
Touch file1 创建一个叫’file1’的文件
Vim 文件名编辑文件内容后就会产生一个文件
Echo ‘内容’> 文件名 将制定内容添加到文件中,这样会覆盖文件原有内容,如果不想覆盖请使用>> 符号
Rm -f 文件名(或者是一个有效的文件目录,最终指向一个文件) 删除一个文件
Mv 文件名新文件名 给文件重命名
Mv 文件名一个有效的文件目录。将某个文件移动到指定目录中
Mv 文件的路径 文件的路径 将当前目录中制定的文件移动到目标文件中
- 5)Cp 复制指令
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 路径复制一个目录到当前工作目录
cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中
Vi 和Vim文本编辑器使用:
Vim是从vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说,vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具
三种模式
正常模式:
以vim打开一个档案就直接进入一般模式(这个是默认的模式) 在这个模式中可以使用[上下左右]按键来移动光标,你可以使用删除字符或者是删除正行来处理档案内容,可以使用复制粘贴来处理文件数据
插入模式
按下i I o O a A r R 等任何一个字母之后才会进入编辑模式一般来说按i即可
命令行模式(底行模式)
在这个模式当中,可以提供相关指令,完成读取,存盘替换离开vim、显示行号等动作则是在此模式中打成
三种模式的切换:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H28o161v-1576757449944)(https://word2md.com/)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DNrlQmVv-1576757449946)(https://word2md.com/)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rgl3pgEk-1576757449947)(https://word2md.com/)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oAX3scxa-1576757449948)(https://word2md.com/)]
:wq 退出保存
:q! 退出不保存
-
(1)创建一个文本文件
Touch 文件名
-
(2)使用vim指令切换不同的模式完成练习
find文件查找指令(名字)
Find指令
基本格式:语法:find [查找文件的路径] [查找条件] [处理动作]
1.按照文件名查找
(1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
(3)find /etc -name ‘srm’ #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串’srm’的文件
(4)find . -name ‘srm*’ #表示当前目录下查找文件名开头是字符串’srm’的文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
(10) find /- type f|d 查找当前目录下所有文件 file directory
Grep指令(文件内容查找)
grep [options] ‘pattern’ filename
下面所列的参数主要是一些常用的参数。
option主要参数
编号 参数 解释
- 1–version or -V grep的版本
- 2-A 数字N 找到所有的匹配行,并显示匹配行后N行 after
3 -B 数字N 找到所有的匹配行,并显示匹配行前面N行 befor
4 -b 显示匹配到的字符在文件中的偏移地址
5 -c 显示有多少行被匹配到
6 --color 把匹配到的字符用颜色显示出来
7 -e 可以使用多个正则表达式
8 -f FILEA FILEB FILEA在FILEAB中的匹配
9 -i 不区分大小写针对单个字符 inorgecase
10 -m 数字N 最多匹配N个后停止
11 -n 打印行号
12 -o 只打印出匹配到的字符
13 -R 搜索子目录
14 -v 显示不包括查找字符的所有行
pattern主要参数
编号 参数 解释
1 ^ 匹配行首
2 $ 匹配行尾
3 [] or [n - n] 匹配[]内字符 [9] 1[3-5]
4 . 匹配任意的单字符
5 * 紧跟一个单字符,表示匹配0个或者多个此字符
6 \ 用来屏蔽元字符的特殊含义
7 ? 匹配前面的字符0次或者1次
8 + 匹配前面的字符1次或者多次
9 X{m} 匹配字符X m次
10 X{m,} 匹配字符X 最少m次
11 X{m,n} 匹配字符X m—n 次
12 666 标记匹配字符,如666 被标记为1,随后想使用666,直接以1 代替即可
13 | 表示或的关系
020-876643434 0755
876643434
- (1)创建一个文件内容为
a
bc
def
ght12
abc999
tydvl658
123
456
789abc
命令
grep --version 显示grep的版本号
grep -A 2 “a” test.txt //匹配字符’a’ 后面两行
grep -B 2 “a” test.txt //匹配字符’a’ 前面两行
grep -c “a” test.txt //在整个txt中,共有三个字符’a’被匹配到
grep --color “a” txt //匹配到的内容使用颜色显示
grep -e “a” -e “1” test.txt //查找txt中字符 ‘a’ 和字符 ‘1’
grep -i “a” test1.txt //找出所有字符’a’ 并且不区分大小写
grep -m 2 “a” test.txt //匹配2个后停止
grep -n -m 2 “a” test.txt//打印出匹配字符的行号
grep “a” * //只在当前目录查找字符’a’
grep -R “a” * //在当前目录和子目录查找字符’a’
grep -v “a” test.txt 显示不包括查找字符的所有行
grep -n ‘^a’ test.txt //匹配以字符’a’开头的
grep -n ‘33$’ test.txt //匹配以字符串"33"结束的
文件压缩和解压(必须)
打包和压缩文件:
tar -tf archive.tar 显示一个压缩包中的内容
tar -zcvf info.tar.gz a.java bb.java 创建一个gzip格式的压缩包
tar -xvf info.tar.gz -C /root 解压一个gzip格式的压缩包
tar -axvf info.tar.gz -C /root 解压一个gzip格式的压缩包
Linux用户和组的管理
1)Linux系统是一个 多用户多任务 的操作系统,任何要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统中用户名 /home
2)Linux的用户需要至少属于一个组。
3)在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。
4)linux中所创建的账号和其相关信息(密码除外)均放在/etc/passwd 文件中,linux在安装好后会默认创建多个用户,但是这些用户为linux进程用户不能登录
用户信息结构为:(使用指令 cat /ect/passwd 查看)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xRi3VJ7k-1576757449954)(https://word2md.com/)]
5)为安全起见,用户真实的密码采用 MD5 加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。
与passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。第一个字段为用户帐户名,第二个字段为账户的密码。
6)用户组帐号信息保存在/etc/group配置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。
在group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔
-
7)用户指令操作
Useradd 用户名 (使用当前的用户名添加一个组,并将创建的用户放入到这个组中)
Passwd 用户名为当前用户设置密码
Userdel -r 用户名删除该账户和所有目录结构
Passwd -l 用户名锁定账户密码 lock
Passwd -u 用户名解锁账户密码 unlock
Passwd -S 用户名 查看用户密码锁定状态
Groups 查看用户属于哪个组
-
8)用户组操作命令
Groupadd 组名 创建用户组
Groupdel 组名 删除用户组(有用户的组不能删除的,空组可以删除组信息)
Useradd -g 组名 用户名 创建用户并且制定用户所属的组
gpasswd ** **** -a 用户账户 **** **用户组名 将某个用户添加到该组 add
gpasswd -d 用户账户 用户组名 将某个用户移除该组 delete
9)切换用户和操作环境
su - username #用户和操作环境都改变
su username #只切换用户不切换操作环境及环境变量不变。还可用于退出超级权限
10)用户和组常用命令
groups 查看当前登录用户的组内成员
groups 用户名 查看当前用户所在的组
whoami 查看当前登录用户名
文件权限
-
rw- r-- r-- root root 0 7月 20 01:03 a.java
-
第一个字符代表文件(-)、目录(d),链接(l)
-
其余字符每3个一组r 读 w 写 x执行 read write execute
rw-读写没有执行权利(当前的文件拥有者) tomer
r-- 读 没有写和执行的权利(和当前文件拥有者在 同一个组 的用户) root
r-- 读 没有写和执行的权利(其他用户的权利)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 777 755 rwxr-xr-x
- 1 表示连接的文件数
- root 表示用户
- root表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
改变权限的命令
chmod 改变文件或目录的权限
chmod 755 ** 文件:赋予abc权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx 文件名:同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w 文件名:给abc去除用户执行的权限,增加组写的权限
chmod a+r 文件名:给所有用户添加读的权限
改变所有者(chown)和用户组(chgrp)命令
chown 用户名文件名:改变abc的所有者为xiaoming change owner
chgrp 组 文件:改变abc所属的组为root
chown 用户目录:改变abc这个目录的所有者是root
chown ‐R 用户 目录:改变abc这个目录及其下面所有的文件和目录的所有者是root
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组
usermod ‐g 组名用户名
关机、重启、注销
关机:
shutdown -h 0 #<==0秒后关机
shutdown -h now #<==现在关机
shutdown -h 10 #<==10分钟后关机
shutdown -h 23:20 #<==23:20分关机
shutdown -c #<==取消shutdown关机命令
init 0 #<==立马关机(切换运行级别为0,推荐使用)
halt #<==立马关机
poweroff #<==立马关机
重启
shutdown -r now #<==现在重启
shutdown -r 23:20 & #<==23:20分重启,加&符号代表把该命令转到后台处理
reboot #<==立马重启(推荐使用)
init 6 #<==立马重启(切换运行级别为6,推荐使用)
注销用户
logout #<==立马注销
exit #<==立马注销
清屏指令
Clear
Ctrl+l
注意:
Sync:这个指令将数据从内存中同步到磁盘上(关机和重启之前使用)
登录的时候少用管理员,可以使用普通用户登录后然后使用指令
Su -root 指令切换到管理员