接01文件系统
Linux 命令在线查询:https://www.linuxcool.com/
( 补充文件指令:
cat :cat:监听输入,结束输入后打印输入内容
cat profile.txt:读取文件内容,
将整个文档加载到内存中,并进行一次性显示
除非后面使用管道,传递数据
more less : 分页查看文档 ,适用内容文档内容太多时
tail:查看文档末尾数据
tail -5 profile.txt 查看 profile文本文件末尾五行内容
| : 管道符
tail -5 profile.txt | head -2 查看profile文本文件末尾五行的前两行内容
head: 从文章开始读取N行e
默认如果超过10行读取10行,否则读取现在行数
head -5 profile
find:查找指定文件,find 要查找的范围 -name名字
find /etc -name profile 查找/etc目录下面名字为profile的文件
basename:
剔除目录部分,只显示文件名
basename /etc/rc.d/rc.loca
dirname:
剔除非目录部分,只显示目录名
dirname /etc/rc.d/rc.local
tail的高级使用:
-f 监听文件
> 重定向
ping jd.com > jd.txt 将ping京东网站返回的信息存到一个文件中去
tail -f jd.txt 监听jd.txt文件变化
jd.txt文件被删除后重新输入相同ping指令,无法延续监听
-F 根据名字监听文件
tail -F jd.txt
jd.txt文件被删除后重新输入相同ping指令,可以延续监听---根据文件名监听
)
计算机间的数据传输
Windows-Linux
lrzsz: 需要手动安装: yum -y install lrzsz
rz:将文件从Windows上传到Linux
sz:文件:将文件从Linux传输到Windows
安装完 lrzsz 插件以后,还支持使用鼠标拖拽文件至 Xshell 的方式来上传文件
xftp :较为通用的文件传输方式
FinalShell
Xshell
Xftp
Linux-Linux
scp: 文件复制同步
@node01 是在hosts文件中配置了IP地址映射
连接远程主机第一次会遇到
输入yes后会提示输入远程主机登录密码
然后登录成功
basenode 登录使用 node01
scp指令实践:
将basenode / 下的testscp.txt 发送给node01
测试不建议发送到 / 根目录里 给空目录/opt 发了记得删除
rsync:
Linux系统——rsync命令_linux rsync-优快云博客
rsync 和 scp 在文件夹均不存在时,执行时间相差不大,但是文件夹存在的情况下差异很大。原因是 scp 是复制:若 目的地文件不存在则新建,若存在则覆盖。而 rsync 是同步,比较两边文件是否相同,相同的话,就什么都不做,若存在 差异就直接更新。
起到同步的作用时用 rsync 会快一些,起到复制作用时两者均可(目的地无文件)。视情况来选择 rsync 或 scp,如果 小文件非常多(过万),且只改动了一两个,使用 rsync 就不见得比 scp 快,因为 scp 无脑全部覆盖,rsync 还需要一个个 去比较,比较会浪费大量时间。
tar:文件压缩
主要针对的文件是 lucky.tar.gz
解压缩
tar -zx(解压)v(过程)f(文件) lucky.tar.gz 压缩 tar -zc(压缩)f(文件)
tomcat.tar.gz(压缩后的名字) apache-tomcat-7.0.61(源文件)
tar -zxf tomcat.tar.gz -C /opt/
-C 指定解压缩的文件目录
zip和unzip
安装 yum install zip unzip -y
压缩 zip -r tomcat.zip apache-tomcat-7.0.61
解压缩 unzip tomcat.zip
Linux的网络信息
1.主机名称
临时修改
hostname newname
长久修改
vi /etc/hostname
2.DNS解析
域名解析服务
可以将域名转换为IP地址
NNS域名劫持
Windows -->C:\Windows\System32\drivers\etc\hosts
123.56.138.186 www.baidu.com
123.56.138.186 www.taodao.com
修改主机域名
vi /etc/hosts
将来我们需要把所有的虚拟机都配置hosts文件
192.168.88.101 node01
192.168.88.102 node02
3.网络相关命令(了解)
ifconfig 查看当前网卡的配置信息
这个命令属于 net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包 所以7的时候需要自己手动安装
如果没有ifconfig ,可以使用ip addr 临时代替
netstat
查看当前网络的状态信息
一个机器默认有65536个端口号[0,65535]
这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问
一个端口只能被一个程序所监听, 端口已经被占用
netstat -anp
netstat -r 核心路由表 == route
ping
查看与目标IP地址是否能够连通
telnet
查看与目标IP的指定端口是否能够连通
yum install telnet -y
telnet 192.168.31.44 22
curl
restful 我们所有的资源在网络上中都有唯一的定位
那么我们可以通过这个唯一定位标识指定的资源
http://localhost:8080/lucky/user.action/666
curl -X GET http://www.baidu.com
4. 主机间的相互免秘钥
4.1服务器相互免秘钥
生成公钥
ssh-keygen -t rsa -f ~/.ssh/rsa_id
两次回车
将公钥发送给需要免秘的服务器
ssh-copy-id -i ~/.ssh/rsa_id.pub root@node01
验证是否能够免秘登录(第一次登录需要密码)
成功
node01 进行相同操作 生成公钥 并将公钥文件发送给basenode
rsa :非对称加密算法
(grep 与 cat 形式类似的 查询内容的命令
)
日期与时间
时间命令
查看时区:
ll /etc/localtime
/ect/locatime-->../usr/share/zoneinfo/America/Los_Angeles
设置时区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date:
查看当前系统时间
cal:查看日历
cal 2020
修改时间
date -s 11.11.11
date -s 2019-11-11
date -s '2019-11-11 11:11:11'
日期自动同步
首先安装时间同步的服务
yum -y install ntp
自动同步网络时间中心
ntpdate cn.ntp.org.cn
用户-组-权限
用户
修改用户(组名称和家目录是不会被修改的):
usermod -l newname oldname
锁定用户(禁止登录):
usermod -L zs
解锁用户:
usermod -U zs
删除用户:
userdel zs (家目录不会被删除) userdel -r zs (家目录会被删除)-r表示递归操作
添加用户并指定组:
useradd zs -g java (-g 表示添加组,-G表示添加副组)
添加用户指定组和附属组:
useradd zs -g java -G jvm
切换用户:
su - zs (- 表示环境跟着切换,用exit退出,不然用户切换线程一直存在)
组
创建组:
groupadd java
修改组:
groupmod -n newgroup oldgroup
groupmod -n bigdata java
查看当前用户对应的组:
groups
查看其它用户对应的组:
groups lisi
修改用户的组:
-g 修改主组(只能一个):
usermod zs -g bigdata
-G 修改附属组(可以多个):
usermod zs -G java,python
删除组:
groupdel python(组内有用户存在则不能直接删除)
权限
r 可读 w 可写 x 可执行
如图所圈处 第一根 - 表示是普通文件 如果是 l 表示是软连接 如果是 d 表示是目录 如果是
紧随其后 每三个位置 或 --- 代表一个范围权限 左边三个表示当前用户的权限 中间三个 - 表示当前组的权限 ,最后三个-表示当前用户附属组的权限
如 -rwxrwxrwx 表示 普通文件---用户可读可写可执行 用户组可读可写可执行,附属组可读可写可执行。
修改权限
修改文件所属用户和组信息命令为: chown 用户:组 文件名 。
UGO模型
UGO 模型分别表示 User 用户、Group 组用户、Other 其他用户。通过修改 UGO 可以直接确定当前文件在不同模型下 所对应的具体权限。修改命令如下:
777模型
赋予权限
在某些情况下我们可以赋予普通用户一些超级用户的命令,例如创建用户的命令我们可以交给一个特定的用户去操 作。但是默认情况下是不允许的,因为这个命令属于 sbin 命令即超级用户才可以使用的命令。
怎么解决这个问题呢?可以通过修改 /etc/sudoers 配置文件的方式来赋予普通用户这个权限。注意:修改这个文 件需要使用命令 visudo 打开。添加如下图红色框中内容:
以上配置支持通配符 * ,如果想赋予更多权限 /sbin/user* 或者 /sbin/* 即可。 然后 zhangsan 用户就可以使用 useradd 来创建用户了,但是需要在命令前添加 sudo ,如下:
管道与重定向
管道
管道 | 就是将前面命令的结果作为参数传递给后面的命令,例如:
ping 百度 收集一条返回信息 将信息传递给 grep 查询 from ,查询结果 传递给 cut ,-d表示 按什么切割数据 -d ‘ ’ 就是按空格切割数据 -f 4 取切割后的第四条数据 。
重定向
Linux 中的重定向就是将原本要输出到屏幕中的数据,重新指向某个特定的文件中,或者定向到黑洞(/dev/null)中。
简单的理解就是:利用重定向操作符重新定义命令涉及的默认的输入和输出设备对象,即利用重定向操作符将命令输 入和输出数据流从默认设备重定向到其他位置。
输出重定向
重定向符号 >
可以将最终结果数据重定向输入到一个文本文件之中去,如
>重定向写入文件是每批次覆盖写入,就是说如果再执行上图指令,那么test.txt中的内容会被新内容给覆盖掉。
为了不覆盖原文,可以用 >> ,追加重定向
如上图所示 test.txt 原文是123,执行完重定向操作后 是内容追加。
> 符号前面默认有个1 , 1>表示只重定向正确操作的内容
如果想要重定向错误信息,则要将1 改为2,但不会重定向正确信息了
如果正确信息和错误信息都想重定向到某个文件中,则要使用 末尾加 2>&1 进行操作。
输入重定向
输入重定向符号 <
所以,通常来说可以让输入定向符在前面,输入定向符在后面。
Linux的系统进程
进程信息
ps -ef 查看进程信息
UID PID PPID C STIME TTY TIME CMD
UID 所属用户
PID 当前进程编号
PPID 当前进程编号的父进程编号
ps -ef | grep redis
ps -aux
所有信息
ps -aux --sort -pcpu
top
当前服务器内存使用率
后台进程
杀死进程
kill -9 17599 直接中断停止进程 (杀死进程)
kiil -15 17599 发送消息告知进程停止
(可以通过 & 将ping 操作放到后台从而让命令行不被占用
7032表示平操作的进程ID
可以通过kill 指令关闭
)
Linux的软件安装
内容较多,此处指实践一下 jdk的配置
首先在/opt目录下创建一个jdk文件夹,并将jdk文件通过rz命令从Windows系统中上传到jdk文件夹中。
先假装我还没有解压
如上图所示,通过指令
tar zxvf jdk1.8.0_351 -C /opt/jdk
将jdk文件解压到jdk文件夹中
执行完后输入ls查看
解压成功
环境配置
方法一:通过修改/etc/profile文件,在最下面添加环境变量,容易把profile文件搞坏,不推荐
方法二:在/etc/profile.d中新建my_env.sh 文件,添加环境变量配置,重启profile文件完成配置。
注:环境变量配置内容相同 一个是加到profile文件里,一个是加到my_env.sh文件里
vim my_env.sm 进入并编辑添加配置
保存退出,然后输入 source /etc/profile 或 . /etc/profile 然后输入java -version 出现版本信息则配置完成。