系统常识
通过xshell工具来连接Linux服务器
Linux,windows,macos 三大操作系统
windows(win7,win10,winxp)
linux(Redhat/红帽,centos,ubuntu/乌班图 版本)
Centos又有centos6.0/centos6.5/centos7.0版本
[image:7729B1C7-381A-43A2-B516-A1525989E159-275-0001300B82818465/图片3.png]

登录服务器我们需要哪些参数?
服务器ip,账号,密码,端口号22,协议ssh(远程登录协议)
Linux操作命令:备注:
[test040@bogon ~]$ 普通用户为$
[root@bogon ~]# 管理员用户为#
[test040@bogon ~]$ ~为当前用户的家目录(类似windows的桌面)
[test040@bogon /]$ /为根目录 都是系统相关的文件
-rw-r—r— 首字母以-开头是文件
Drwxr-xr-x 首字母以d开头为文件夹
/ 斜杠
\ 反斜杠
| 竖杠
- 横岗
_ 下划线
PID 是进程ID
PPID 是父进程ID
./ 代表当前目录
一般日志文件都是以log或out为后缀
Zombie 僵尸进程(会一直吃内存直至系统崩溃)
Mem 是内存
Swap 磁盘交换区(当内存被使用完毕之后系统会把一部分磁盘交换区虚拟成内存来使用)
命令:
Ssh 服务器ip地址 连接服务器
ctrl + l 清屏
clear 清屏
ifconfig 查看服务器的IP地址
Ll 查看当前目录下面所有文件和文件夹的详细信息
Ls 查看当前目录下的所有文件和文件夹的名字
Ls -a 查看所有文件包含隐藏文件
touch abc.txt 创建一个文件名字为abc.txt
touch abc.txt qqq.txt 一次性创建多个文件
mkdir aaa 创建文件夹
mkdir .test.txt 创建隐藏文件
cd aaa 进入aaa文件夹
Cd .. 返回上一级目录
Cd或者cd ~ 直接回到家方面=-
Pwd 输出当前路径
cd /home/test040/aaa/bbb 进入指定目录
Cp 要复制的文件的完整目录 目标文件夹的完整目录
Cp -r 要复制的文件夹的完整目录 目标文件夹的完整目录
Tree 目录 显示目录结构
Cat 文件名字 直接显示文件所有内容
More 文件名字 以百分比形式显示文件内容
Less 文件名字 按行展示文件内容 按q退出展示
Cat 文件1 > 文件2 把文件1的内容覆盖到文件2里面
Cat 文件1 >> 文件2 把文件1的内容追加到文件2里面
Mkdir -p a/b/c/d/e 创建文件目录 如果目录不存在一并创建
Find 目录路径 -name ‘*aa*’ 在指定目录下查找文件名字包含aa
‘aa*’ 以aa开头的
‘*aa’ 以aa结尾的
find ./ -name ‘*aaa*’ -type d 在当前路径查找文件夹名字包含aaa
find 路径 -name ‘*aaa*’ -type f 在当指定路径径查找文件名字包含aaa
find ./ -name ‘*.txt’ | xargs rm -rf 在当前路径下找名字以.txt结尾的文件并且去执行删除
Rm 文件名字 删除文件
Rm -rf 文件/文件夹名字 删除文件或者文件夹
grep过滤
Grep ‘关键字’ 文件完整路径
grep ‘1234’ /home/test040/qqq.txt
把qqq这个文件里面的1234给过滤出来
grep -n‘1234’ /home/test040/qqq.txt 过滤并显示行号
Grep ‘1234’ qqq.txt —col -C5 把1234从qqq里面过滤出来并且用颜色标记显示附近5行
grep -E ‘1234|5678|999’ qqq.txt过滤多个关键字
Ps 查看当前进程
Ps -ef 查看所有进程
ps -ef |grep 进程IP(PID) 过滤进程ID
Nohup 脚本名 & 把脚本放在后台去运行
nohup ping 192.168.2.2 &
Tail -f 文件名 查看动态文件内容(比如查看动态日志)
Tail -100f 文件名 查看最近100行的动态内容
Tail -n 3 文件名 静态查看最后3行的文件内容
如:tail -n 5 test.log 查看最后test.log日志的最后三行内容
Head -n 3文件名 查看文件前三行的内容
sed -n ‘10,18p’ test.log 查看文件第10-18行的内容
sed -n ‘/2018-08-01 20:55:51/,/2018-08-01 20:59:51/p’ test.log 查看某个时间段内的日志
sed -I ’s/66666/44444/g’ test.log 批量修改文件test.log中的66666改为44444
curl [www.baidu.com](http://www.baidu.com/) 访问网站是否联通
Kill 进程id 杀死进程
pkill 进程名字
pkill java 杀死所有java进程
sz 文件名 从Linux系统下载文件到windows系统
rz 回车 从windows系统下载文件到Linux系统
Netstat -nult 查看所有端口的占用情况
netstat -nult | grep 8080 查看8080端口是否被占用
Df -h 查看磁盘占用情况
Vmstat 查看静态资源占用率
Free 查看静态内存和磁盘资源占用率
Top 查看动态资源占用率
文件编辑命令
vi 文件名字 进入文件
进入文件之后
按a进入编辑状态(q为quit退出缩写,w是write缩写)
先按esc 然后 :q不保存退出
先按esc 然后 :q!强制不保存退出
先按esc 然后 :wq保存退出
先按esc 然后 :wq!强制保存退出
直接跳到文件尾部是 GG
直接跳到文件头部是 gg
直接跳到行首是 按0
直接跳到行尾是 shitf $
直接删除一行 dd
查找关键字 先esc 然后 :?关键字
显示行号 先esc 然后 :set number
tar包的压缩与解压
Tar -zcvf 压缩包的新名字 要压缩的文件名字/文件夹
tar -zcvf 重命名.tar.gz test.log 压缩文件test.log到当前文件夹
压缩到指定路径
Tar -zcvf /路径/重命名.tar.gz 文件名 压缩到指定文件路径下
tar -zcvf aa.tar.gz 11.aaa 2.aa 3.aa /home/test001/qq
tar -zxvf bb.tar.gz -C /home/test001/a
.tar.gz或者.gz为tar包的文件的后缀固定格式
压缩多个文件
Tar -zcvf /路径/重命名.tar.gz 文件1 文件2 文件3 压缩多个文件到指定目录
解压文件到指定路径
Tar -zxvf 压缩包名字 -C 路径 解压文件到指定路径
如:tar -zxvf qa.tar.gz -C /home/test040/a/b/
zip包的压缩与解压
压缩文件至当前目录
Zip 新压缩包名字 要压缩的文件
如:zip yy.zip 11.aaa
Zip 路径/新压缩包名字 要压缩的文件 压缩文件到指定目录
Zip -r 要压缩的路径 要压缩的文件夹
如:zip -r /home/test007/bbb/kk.zip a
Unzip 要解压的文件 -d 解压到的路径
如:unzip kk.zip -d /home/test007/aaa 解压文件到指定目录
war包的压缩与解压
压缩:jar -cvf 路径/aaa.war 路径/文件
解压:jar -xvf 路径/aaa.war 解压到的路径
多用户间数据互传
把本地文件上传到指定用户的指定位置
Scp 本地文件 目标用户@服务器IP:/路径/
scp qqq.txt test039@192.168.2.110:/home/test039/aaa/
把本地的qqq文件上传到test039账户下面的aaa文件夹里面
scp test039@192.168.2.110:/home/test039/geeknet.txt /home/test040/bbb/
把test039账户下面的geeknet文件拷贝一份放到本地test040的bbb文件夹
Scp -r 操作文件夹
文件夹的权限
drwxr-xr-x. 6 test007 yunchuang 4096 Apr 18 16:57 aaa
权限
d rwx r-x r-x.
代表文件夹 u:当前用户权限 g所属组权限 o:其他用户
D代表文件夹格式 -代表文件格式 r(4)读权限 w(2)写入权限 x(1)可执行权限
所以一个文件的权限可以用数字表示,如:
如果权限为 731则
7代表当前用户权限为 rwx可读可写可执行
3代表所属组的权限为 -wx 可写可执行
1代表其他用户权限为 —x 可执行权限
最高权限为777
**赋权命令为chmod**
Chmod 777 文件名 将文件夹权限改为777
**递归赋权**
Chmod -R 777 文件名 将文件夹及其所有子文件赋权为777
**日志里边一般都会出现什么错误?**
Error 错误(系统不能解决的错误)
Exception (程序异常,但是是程序可以处理的异常)
Connect Timed out 连接超时
Null Pointer Exception 空指针异常
**日志里边一般都会打印什么内容?/日志里边一般都包含什么内容?**
主要是用户的操作记录,以及程序的执行过程,系统的调用过程的记录。
**如何通过日志来定位问题?**
可以在应用运行的时候实时导出应用的运行日志,查看系统日志的报错信息,如果是因为调用其他服务产生的问题,那么就去对应的服务找出问题的根源,因为一个业务可能是因为多个服务互相调用来组成的。