1.防火墙设置相关
2.查询Linux使用的版本(32位还是64位)
3.用户权限相关
4.查询内存中所有的进程PS
5.查询处于监听状态的程序信息
6.软连接概念以及/bin/sh与/bin/bash
7./bin/sh或是/bin/bash
8.查询内存命令
9.复制命令
10.远程连接telnet 与发送请求数据指令(以window为例说明)
11.按照文件名进行查询内容
12.查询磁盘文件夹文件大小
13.删除docker中的镜像与容器,以删除docker安装的gitlab为例
14.统计指定端口的连接数
15.终端在线查询日志信息
16.Linux中nohup文件压缩传递到window进行解压处理方案
以下命令无特殊说明即为根目录
1.查看Linux使用哪个发行版本
hostnamectl
Linux常见发行版:redhat centos
2.查看Linux中centOS版本(使用最多的还是7版本,以下命令无特殊说明均是centos7):
cat /etc/redhat-release
3.centos7查看防火墙状态:
systemctl status firewalld
4.查看防火墙开放端口:
firewall-cmd --list-ports
5.防火墙开放以及关闭指定端口:
firewall-cmd --permanent --zone=public --add-port=8091/tcp
firewall-cmd --permanent --zone=public --remove-port=8091/tcp
6.设置后重启防火墙:
firewall-cmd --reload
7.查看防火墙指定端口是否开启:
firewall-cmd --zone=public --query-port=8091/tcp
iptables与firewalld区别:
firewall是centos7里面的新的防火墙命令,它底层还是使用 iptables 对内核命令动态通信包过滤的,简单理解就是firewall是centos7下管理iptables的新命令;建议iptables进行操作,有时设置firewall不如iptables管用.通过iptables设置防火墙方式自行百度;
uname -a
命令执行后内容:
Linux localhost.localdomain 2.6.18-92.1.6.el5xen #1 SMP Wed Jun 25 12:56:52 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
X86示意为64位系统,i386等位32位系统
同一服务器,不同的用户可以访问不同的目录;场景说明:用户A访问权限:/ftp/fanadmin/fan/aaa;用户B访问权限:/ftp/fanadmin/fan/bbb,A用户sftp登录成功之后根目录为/ftp/fanadmin/fan/aaa,图形化工具根目录直接显示该目录(/ftp/fanadmin/fan/aaa)下面的内容:
ps命令:process status缩写
ps -ef 或是ps aux,两者区别可以理解成是显示的是所有进程是不同信息,官方一点的说法是两种不同的显示风格
查询某个服务的进程信息
ps -ef | grep redis
根据进程号查询进程信息
ps -q 12840(进程号)
按照进程名查询进程的具体信息
ps -ef | grep 'java -jar admin_manage_dev-0.0.1-SNAPSHOT.jar'
杀死进程:
kill -9 pid号
netstat -ntpl
netstat(network statistic)
-a可以理解成是查询所有
-n 可以理解成为直接显示ip不是显示域名
-t 可以理解成是tcp连接
-p 可以理解成是程序名称
-l 可以理解成是listening
根据端口查询进程:
netstat -anpl | grep 端口号
根据进程查询端口:
netstat -anpl | grep 进程号
说明:以上各字段含义分别表示:proto(连接方式)、local address(本地连接地址)、foreign address(和本地建立连接的地址)、state(当前端口状态);其中172.19.245.254表示服务器本身的内网ip地址,后面的表示的是建立连接的ip地址与端口(此ip为公网ip)
可以理解成不同的目录需要引用同一个文件夹,为了保证不重复占用空间,就可以使用软连接;具体用法:
ln -s 源文件 目标文件
可以理解成是为一个符号连接;区别:/bin/sh相当于是/bin/bash的软连接.
进入到docker部署的容器内部(根目录下面执行):
docker exec -it 27af16ab9718 /bin/sh
注意使用/bin/sh,ll就不会识别,需要使用ls使用.
free – 动态显示内存使用情况,退出使用q
参数说明:
第一列
Mem 内存的使用信息
Swap 交换空间的使用信息
第一行
total 系统总的可用物理内存大小(单位:kb)
used 已被使用的物理内存大小
free 还有多少物理内存可用
shared 被共享使用的物理内存大小
buff/cache 被 buffer 和 cache 使用的物理内存大小
available 还可以被 应用程序 使用的物理内存大小
两者可以理解为约等于:
free(可用物理内存)+buffer/cache(可以理解成硬盘缓存占用物理内存)=avaliable(应用程序可以使用的内存)
默认按照kb显示,可以按照单位进行指定:free -g 以G为单位进行展示;
top – 显示总共内存使用情况
指定10秒时间显示:
top -d 10
按照进程名称查询内存使用情况(默认按照5秒刷新显示):
top -c
按照内存使用量从大到小进行排序:
输入top进入top页面,大写M即可进行排序
退出top页面,直接输入:q或是CTRL+c
按照cpu占用率从大到小进行排序:
输入top进入top页面,大写P即可进行排序
如果想按照进程名显示并按照内存使用大小进行排序:
top -c 进入top页面之后按M进行显示;
将/program/two_admin_program_dev下面的nohup.out 复制到/program/two_admin_program_dev下面的log_record下并进行重命名为nohup202104161746-202104180936.out
/kawa_program/kawa_two_admin_program_dev/下执行
cp /program/two_admin_program_dev/nohup.out /program/two_admin_program_dev/log_record/nohup202104161746-202104180936.out
本地创建一个serverSocket,并不断进行监听,示例代码:
public static void main(String[] args) throws IOException {
/*1.创建线程池
* 2.如果有多个客户端建立连接就创建一个线程与之通信*/
ExecutorService executorService = Executors.newCachedThreadPool();
// 创建服务端socket
ServerSocket serverSocket = new ServerSocket(5263);
while (true){
// 获取连接服务端的客户端连接
Socket clientSocket = serverSocket.accept();
// 获取客户端连接发送的流信息
InputStream inputStream = clientSocket.getInputStream();
byte[] bytes = new byte[1024];
while (inputStream.read(bytes) != -1){
System.out.println("客户端连接获取的信息:"+new String(bytes));
}
}
}
telnet ip 端口 -- 远程连接
Ctrl+]进入客户端输入模式;
send 信息内容 -- 发送信息
win10总cmd进入黑窗口:
telnet 127.0.0.1 5266 然后Ctrl+],send发送信息
find / -name file名
find / -name 101020354773.html
查询磁盘文件夹文件大小(根目录执行,df:diskFile)
df -lh
查询服务器每个文件夹占用空间大小(根目录下执行,du:disk usage)
du -sh *
只查看大文件(根目录下执行)
du -sh * | grep G
按照文件目录查询,比如查usr目录下哪些文件占空间大(根目录下执行)
du -sh /usr/* | grep G
查询gitlab的容器id(根目录):
docker ps -a
关闭gitlab服务(如果服务正在运行,根目录):
docker kill 容器名或是容器id
删除gitlab容器(根目录):
docker rm 容器id
查询gitlab镜像(根目录):
docker images
删除gitlab镜像(根目录):
docker rmi 镜像id
以上只是删除docker中部署的gitlab信息,需要将gitlab中存储数据删除的话执行以下命令将和gitlab存储的数据内容进行删除(根目录执行).
find / -name gitlab | xargs rm -rf
netstat -an | grep -i '8090' | wc -l
wc -l 表示统计行数
一个APP去连接服务端,多个请求会创建多个连接.上图中是测试环境下一个APP中创建的多个连接.
将指定时间日志信息以文件形式进行输出,然后使用less命令进行打开.
进入到项目目录,将2022-01-10 14:00-14:09的文件内容输出到项目所在目录文件夹下,文件名可以按照习惯自定义命名.
grep -A100 '2022-01-10 14:0[0-9]' nohup.out > /temproject/1400.txt
执行使用less命令进行打开文件(项目所在目录下执行,-N表示将文件添加行号)
less -N 0815.txt
翻页操作:
pageUp上一页;pageDown下一页;
关键字查找(正向或反向查找):
终端输入:/字符串,整个文件会将搜索关键词进行高亮显示,可以通过上下页进行查找关键字.或是键盘上敲N表示按照关键字向上查找,n表示按照关键词向下查找.
退出分页查询页面:
q用于退出less分页查找页面.
为何不直接使用less命令将查询出的文件进行分页的原因是less分页仅支持在文件中生效.
最新记录的查看也是将查询内容输出到文件中使用less命令即可.
tail -800f nohup.out > /temproject/0830.txt
Linux服务器应用中的nohup文件过大,使用三方工具传递到本地需要很长时间.可以考虑将nohup文件进行压缩,然后从window中进行解压.下面讲一下具体过程:
Linux压缩文件:
-- 将nohup.out压缩成nohup.tar.gz
tar zcvf nohup.tar.gz nohup.out
三方文件上传工具传递到本地,window中解压文件:
win10中win+r搜索powershell,进入到编辑区,进入到nohup.tar.gz所在目录,执行命令:
tar -zxvf nohup.tar.gz
解压完成: