目录
0 概念
Linux系统
Liunx目录结构
- bin(binaries)存放二进制可执行文件
- sbin(super user binaries)存放二进制可执行文件,只有root才能访问
- etc(etcetera)存放系统配置文件
- usr(unix shared resources)用于存放共享的系统资源
- home存放用户文件的根目录
- root超级用户目录
- dev(devices)用于存放设备文件
- lib(library)存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt(mount)系统管理员安装临时文件系统的安装点
- boot存放用于系统引导时使用的各种文件
- tmp(tmporary)用于存放各种临时文件
- var(variable)用于存放运行时需要改变数据的文件
1 服务端口
Windows查看开启的服务 net start
Windwos 查看端口为服务占用
- netstat -ano|findstr "3306"
- tasklist | findstr "5336"
其中3306为端口号,5336为进程ID
Linux查看服务和端口 netstat -anotp
Linux可搭配grep进行筛选
Linux若无netstat工具,安装netstat命令 yum install net-tools
Local :访问端口的方式,0.0.0.0 是对外开放端口;127.0.0.1 说明只能对本机访问,外面访问不了此端口;
Address:端口
Foregin Address:对外开放,一般都为0.0.0.0:*
Program name:此端口是那个程序在用,程序挂载此端口
重点说明
0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口
127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性
::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符
2 虚拟机和本机互传文件
假设虚拟机里装的是Centos Linux 系统,主机是Windows系统
1.在Centos Linux 系统里开启ssh服务
systemctl stop firewalld.service
systemctl status firewalld.service
systemctl start sshd.service
systemctl status sshd.service
2.测试虚拟机和本机互通性
(1) 若不互通,且虚拟机是NAT模式,尝试网卡VMnet8禁用再开启
(2) 若不互通,且虚拟机是桥接模式,可尝试重新分配IP地址
桥接模式/NAT模式获取IP地址(CentOS配置网卡开机自动获取IP地址)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
将 ONBOOT="no" 改为 ONBOOT="yes"
BOOTPROTO=static 表示静态地址
ONBOOT=yes 表示启动开启网卡
主要在下面添加以下
//自己指定地址
IPADDR=192.168.253.11
//网络掩码
NETMASK=255.255.255.0
//网关地址
GATEWAY=192.168.253.2
//设置和网关地址一样即可
DNS1=192.168.253.2
3.本机可采用远程连接xshell工具,ssh链接Centos后
远程ssh连接某主机命令 ssh 用户@ip地址
4.远程文件下载到本地用sz命令:sz 文件名称,回车后自动选择下载路径
5.本地文件上传到远程用rz命令,回车后自动选择上传文件
若无sz和rz命令,须在Centos Linux安装插件
xshell上传文件(rz)和下载文件(sz)
若远程机器无rz和sz命令,可使用命令安装
yum install lrzsz
rz 上传到linux上
sz 下载到windows上(例如sz file1)
3 Navicat通过SSH连接Mysql
对Mysql仅开启本地连接的情况下,Navicat要连接Mysql,则需要通过SSH来连接
1、首先配置ssh连接
2、其次配置mysql连接,注意使用127.0.0.1
4 Docker命令
查看开启的服务
docker ps -a
开启服务
docker start 容器ID或容器名称
实时查看日志(查看容器ID为ebfe5eb00e93的实时日志200条)
docker logs -f --tail=200 ebfe5eb00e93
进入到容器里
docker exec -it 容器ID或容器名称 bash
例如进入到mysql容器里,在进入到数据库里(exit退出)
docker exec -it mysql bash
mysql -u root -p
5 查看Centos版本
查看centos 版本信息
rpm -q centos-release
uname -a
cat /proc/version
查看是否是centos
cat /etc/redhat-release
6 查看网关
route -n
7 查看账户和密码
cat /etc/passwd
cat /etc/shadow
8 yum下载安装
yum源在 /etc/yum.repos.d 目录下
linux设置镜像源
阿里云镜像源(可访问 http://mirrors.aliyun.com/repo/Centos-7.repo 下载该镜像源,通过FileZilla Client工具或其他方式上传到Linux里)
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup
mv Centos-7.repo CentOS-Base.repo
查看可下载安装的包
rpm -qa | grep
yum list | grep
去yum锁 rm -f /var/run/yum.pid
9 实时查看日志
实时查看日志
tail -f /var/log/messages
watch -d -n 1 cat /var/log/messages
10 设置时间
date -s "20210421 17:15:50"
11 进程命令
ps -ef 或 ps aux 查看linux下所有进程
ps -ef 是用标准的格式(System V风格)显示进程的,其格式如下
- 其中各列的内容意思如下
- UID //用户ID、但输出的是用户名
- PID //进程的ID
- PPID //父进程ID
- C //进程占用CPU的百分比
- STIME //进程启动到现在的时间
- TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
- CMD //命令的名称和参数
ps aux 是用BSD的格式来显示、其格式如下
- 同ps -ef 不同的有列有
- USER //用户名
- %CPU //进程占用的CPU百分比
- %MEM //占用内存的百分比
- VSZ //该进程使用的虚拟內存量(KB)
- RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
- STAT //进程的状态
- START //该进程被触发启动时间
- TIME //该进程实际使用CPU运行的时间
- 其中STAT状态位常见的状态字符有
- D //无法中断的休眠状态(通常 IO 的进程);
- R //正在运行可中在队列中可过行的;
- S //处于休眠状态;
- T //停止或被追踪;
- W //进入内存交换 (从内核2.6开始无效);
- X //死掉的进程 (基本很少见);
- Z //僵尸进程;
- < //优先级高的进程
- N //优先级较低的进程
- L //有些页被锁进内存;
- s //进程的领导者(在它之下有子进程);
- l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
- + //位于后台的进程组;
kill -9 进程号 杀死对应的进程
kill -15 进程号 等进程运行完就关闭该进程
查看对应端口对应进程 netstat -atunp
附录1 基础命令
文件和目录相关
1、进入目录——cd <path>
cd /usr/local //进入/usr/local这个目录
2、查看当前目录下所有的文件和目录——ls
ls -al //显示当前目录下所有的文件和目录,包含隐藏文件
ls -F //显示当前目录下所有的文件和目录,并且显示文件的类型
3、获取当前目录的路径——pwd
pwd
4、创建一个目录——mkdir
mkdir testFolder //创建testFolder目录
5、删除一个目录——rmdir/rm -rf(使用前请确认非重要目录!)
rmdir testFolder //删除testFolder目录
rm -rf testFolder //递归删除testFolder目录下所有的内容
6、创建一个空文件——touch
touch test.log //创建一个test.log文件
7、复制文件——cp/scp
cp testFile1 testFile2 //复制一个testFile1文件,并且命名为testFile2
cp -r sourceFolder targetFolder //递归复制整个source文件夹到target文件夹
scp sourecFile root@172.20.1.11:remoteAddr //将本地source文件复制到远程172的服务器的remote目录下
8、移动文件/重名名文件——mv
mv testfile /targetFolder //移动当前目录下的testfile到targetFolder这个目录
mv oldTestFile newTestFile //将当前目录下的oldTestFile重命名成newTestFile
9、查看一个文件所有内容——cat/more/less
cat testfile1 testfile2 //查看testfile1和testfile2的内容,优先打印testfile1的内容
cat -n testfile1 //查看testfile1的内容,并且显示每行行号
more testfile1 //一页一页查看testfile1的内容
less testfile1 //一页一页查看testfile1的内容,还支持往前翻查看
10、删除文件——rm
rm testfile1 //删除testfile1这个文件
rm -i *.txt //删除所有txt文件,并逐一确认
11、查找文件——find
find / -name filename.txt //在/目录下查找filename.txt这个文件
find . -name "*.xml" //在当前目录下递归查找所有的xml文件
find ./ -size 0 //查找大小为零的文件
find . -name "*.txt" |xargs grep "hello" //在当前目录下递归查找所有文件内容中包含hello的txt文件
12、查看文件头几行——head
head -n 20 test.txt //查看test.txt的前20行的文件
13、查看文件最后几行——tail -n
tail -n 20 test.txt //查看test.txt的最后20行的文件
14、查看实时日志类文件——tail -f
tail -f test.log //实时打印最新的日志
15、把内容重定向到指定的文件中——echo
echo "hello world" > test.log //将hello world写入test.log
编辑文件vi
1、进入vi模式
vi testfile1 //打开或新建testfile1,并将光标置于第一行首
vi +5 testfile1 //打开testfile1文件,并将光标置于第5行首
vi + testfile1 //打开testfile1文件,并将光标置于最后一行首
vi testfile1....testfilen //打开多个文件,依次进行编辑
2、设置vi环境
:set autoindent //缩进,常用于程序的编写
:set noautoindent //取消缩进
:set number //在编辑文件时显示行号
:set nonumber //不显示行号
:set //显示设置的所有选项
:set all //显示所有可以设置的选项
3、移动光标
h或Backspace //光标左移一个字符
l或space //光标右移一个字符
k或Ctrl+p //光标上移一行
j或Ctrl+n或Enter //光标下移一行
) //光标移至句尾
( //光标移至句首
nG //光标移至第n行首
n+ //光标下移n行
n- //光标上移n行
H //光标移至屏幕顶行
M //光标移至屏幕中间行
L //光标移至屏幕最后行
0 //光标移至当前行首
$ //光标移至当前行尾
4、插入模式
i //在光标前插入
I //在当前行首插入
a //在光标后插入
5、命令行模式
用户按冒号:即可进入 Command 模式,此时 vim 会在显示窗口的最后一行 (屏幕的最后一行) 显示一个 “:” 作为 Command 模式的提示符,等待输入命令。
:w //保存当前编辑文件,但并不退出
:w testfile //存为另外一个名为 “testfile” 的文件
:wq //用于存盘退出Vi
:q! //用于不存盘退出Vi
:q //用于直接退出Vi (未做修改)
其他很有用命令
1、grep
grep -i "hello" test.txt //在test.txt文件中查找"hello"(不区分大小写)
grep -A 5 -i "hello" test.txt //输出在test.txt文件中匹配了"hello"的后5行
2、ssh
ssh root@172.20.1.1 //使用root用户登录到172.20.1.1这台远程服务器
3、diff
diff -w test1.txt test2.txt //比较test1.txt和test2.txt的差异,忽略空白字符
4、sort
sort test.txt //以升序排序test.txt的文件内容
sort -r test.txt //以降序排序test.txt的文件内容
5、gzip zip unzip 压缩解压命令
gzip test.txt //将test.txt压缩成test.txt.gz
gzip -d test.txt.gz //解压test.txt.gz为test.txt
6、shutdown
shutdown -h now //关闭系统并立即关机
shutdown -h +5 //5分钟后关机
shutdown -h now //重启
7、ps
ps -ef | more //查看当前正在运行的所有进程
ps -ef |grep "tomcat" //查看当前运行的tomcat进程
8、free
free //显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况
9、top
top //top命令会显示当前系统中占用资源最多的一些进程(默认以CPU占用率排序)如果你想改变排序方式,可以在结果列表中点击O(大写字母O)会显示所有可用于排序的列
10、kill
kill -9 111 //杀掉pid为11的进程
11、ifconfig
ifconfig //查看和配置Linux系统网络接口
详细参数
top
======================================
主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出to
显示参数
PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。
free
======================================
1.作用
free 命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
uptime
======================================
18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。
资源
======================================
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区
======================================
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
======================================
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
lscpu 查看配置信息(cpu数量)
tree -d -L 4 从当前目录下,列出最多四层的目录
free -h 查看内存
df -h 查看内存