Linux常用命令

1.docker相关

1.1.docker容器时间慢八小时

1.进入容器

docker exec -it -u root 24795ac94ae7 /bin/sh

2.查看容器时间

date -R

3.在容器中创建文件

mkdir -p /usr/share/zoneinfo/Asia

  1. 回到宿主机 复制宿主机的文件到容器 mynginx为文件名

docker cp /usr/share/zoneinfo/Asia/Shanghai mynginx:/usr/share/zoneinfo/Asia

5.进入容器 复制文件

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

备注:not writing through dangling symlink '/etc/localtime'错误 进到容器的etc文件夹 删除localtime文件 再复制就可以了

1.2.java服务dockerfile指定时区

1.3.docker容器路径

java 复制代码
var/lib/docker/containers 可以删除日志文件 清理磁盘

1.4.docker为启动的容器设置为自动启动

java 复制代码
docker update --restart=always 容器ID(或者容器名) 
docker update --restart=no 容器ID(或者容器名)  #关闭容器自启动

1.5.docker文件复制

java 复制代码
容器id+: 后边,没有空格
复制文件夹
docker cp d65625c68f6b:/home/ /lzp/dockerfile/
复制文件
docker cp d65625c68f6b:/home/a.txt /lzp/dockerfile/b.txt

1.6.docker容器中下载vim

java 复制代码
apt-get install -y vim
下载不成功的话指定源
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list 
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list 
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list 
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
然后执行 apt-get update
然后再  apt-get install -y vim 下载就可以了

1.7 查看docker容器状态 cpu 内存占用等

java 复制代码
docker stats

2.时间相关

2.1.查看linux时间及时区修改

date

修改时间慢八个小时:etc/profile文件加入 export TZ='CST-8' 重启服务器

2.2.java日志时间慢八小时

java 复制代码
timedatectl
java 复制代码
设置系统时区为上海
timedatectl set-timezone Asia/Shanghai
强制将时区写入bios
clock -w

3.磁盘相关

3.1.查看当前目录中磁盘占用空间情况

java 复制代码
du -sh *
查看当前文件下的每个文件夹的大小
java 复制代码
du -sh  /lzp/* 
查看指定文件夹下的磁盘占用

3.2.查看磁盘使用情况

java 复制代码
df -h 

3.3.查看磁盘分区

java 复制代码
lsblk

3.4.新建分区

fdisk /dev/sda

n 新建分区

d 删除分区

p 查看当前分区

w 保存并退出

操作完需要重启虚拟机

3.5.为根目录分区扩容

1.virtualbox修改

从40G调到80G

需要关闭虚拟机

2.改完启动虚拟机

运行lsblk

说明磁盘有80G 但是分区只占用了40G

3.安装growpart扩容工具

java 复制代码
yum -y install cloud-utils-growpart

查看文件系统类型: df -TH

当文件系统为xfs类型时:

java 复制代码
4.growpart [磁盘名称] [分区编号]
growpart  /dev/sda 1  #注意有空格 命令表示扩容磁盘的第1个分区(/dev/sda1)
5.xfs_growfs [分区名称]
xfs_growfs /dev/sda1

当文件系统为ext*类型时:

java 复制代码
resize2fs [分区名称]
例如,对/dev/vda1进行扩容:
resize2fs /dev/vda1

这时再使用 df -h查看 空间会扩大

4.网络相关

4.1.查看端口使用情况

java 复制代码
netstat -nultp

提示命令不存在的话:yum install -y net-tools

4.2.ping端口

java 复制代码
telnet +端口
提示命令不存在
yum install telnet
退出:quit

4.3 访问网站

curl

4.4.修改虚拟机IP

java 复制代码
1.cd /etc/sysconfig/network-scripts 
2.vi ifcfg-eth1
3.systemctl restart network

5.文件操作

5.1.查看和新建文件

java 复制代码
cat 查看 
touch 新建

5.2.删除移动文件夹及文件

java 复制代码
rm -rf * 删除当前文件夹下的所有文件
删除某一个文件夹
rm -rf ./文件夹名称   // ./代表当前路径  最好加 如果不加则表示根目录  /a就代表根路径下a文件夹
删除文件夹所有内容 文件夹保留
rm -rf  ./*   加一个*号
移动文件夹
mv ./test01 ./test02 //test02存在的话 会把test01文件夹整体放到test02下
test02不存在的话 会新建test02文件夹 把test01文件夹中的内容放到test02下,删除test01文件夹
移动文件
mv a.txt /home/b  把当前文件夹的a.txt移动到b文件夹
复制文件夹
cp -r  ./a ./b  如果b文件夹存在 则把a放到b 如果b文件夹不存在 则新建b文件夹 把a文件夹内容放到b内
复制文件
cp a.txt b.log  复制一份a.txt变成b.log

5.3.解压和压缩

java 复制代码
tar -zxvf 压缩文件名.tar.gz  //解压
tar -zxvf +压缩文件名.tar.gz +被压缩文件名 /// 压缩

5.4.查找文件所在位置

java 复制代码
find / -name *.rdb
find /lzp -name *.txt 在/lzp目录下找

5.5.按行查看文件(查日志)

java 复制代码
head -n 5 文件名  //查看前5行
tail -n 5 文件名  //查看结尾5行
tail -f 文件名  //(功能描述:实时追踪该文档的所有更新 查日志)
echo '' >文件名 清空日志文件

5.6.链接文件

java 复制代码
ln -s xiyou/dssz/houge.txt ./houzi //连接文件
cd -P dssz/  //进入实际路径
pwd -P  //显示实际物理路径 而不是链接路径

5.7.linux文件格式问题

1.执行sh脚本报错: invalid option set: -

vim 编辑时 :set ff 可以看到该文件的格式为 fileformat=dos

修改为 :set ff=unix

2.中文乱码

在windows中记事本编辑文件后另存为格式为UTF-8,然后重新打开文件再复制内容到linux即可。

3.检测脚本格式 不执行

5.8.~代表当前用户的路径

java 复制代码
如果当前是root用户  cd ~ 代表进入到/root下
/ 表示根目录
./ 表示当前目录
../ 上一级目录
java 复制代码
【1】使用sh命令

(1)-n 只读取shell脚本,检测语法错误,但不实际执行
(2)-x 进入跟踪方式,显示所执行的每一条命令
(3)-c "string" 从strings中读取命令
(4)-v 读取并打印出整个shell脚本,检测语法错误,但不实际执行

#检测语法,但不实际执行
sh -nv  脚本文件
#边执行,边显示结果,遇到错误就停止脚本
sh -xv  脚本文件  

6.进程相关

6.1.结束进程

kill -9 pid

6.2.查看进程

方式1:ps -ef | grep redis ppid也就是父进程id

方式2:jps -l #查看java进程

结束时直接 kill-9 23570即可

6.3.查看mysql的安装位置

java 复制代码
rpm -qal |grep mysql
rpm -qa |grep mysql

6.4.后台运行jar

java 复制代码
nohup java -jar -Xmx128m -Xms128m  xxx.jar --server.port=9090 &  
使用ctrl+c退出 或者关闭窗口都不会中断程序

6.5. 查看已安装的软件

java 复制代码
rpm -qa

6.6.查看cpu占用

java 复制代码
top 然后大写P
 cpu
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 
内存
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head  

查看java程序内存占用排行

java 复制代码
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t MEM: "$6" \t %CPU: "$9"% \t %MEM: "$10"%"}'
java 复制代码
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t 虚拟内存: "$5" \t 物理内存: "$6" \t 共享内存: "$7" \t CPU使用率: "$9"% \t 内存使用率: "$10"%"}'

7.服务器相关

7.1.查看服务器架构

uname -m

x86_64 又称为amd64 还有一种是arm64

7.2查看内核版本

7.3.查询系统版本

7.4.ssh连接

java 复制代码
ssh -p 2222 root@192.168.0.100

7.5.修改ssh密码

java 复制代码
方式1
passwd root
然后输入密码
方式2
echo root:sbhibsdjkh123\$ | chpasswd
root是用户名
sbhibsdjkh123\$ 是密码  $需要使用反斜杠

7.6查询服务器的CPU型号

java 复制代码
cat /proc/cpuinfo | grep "model name"

7.7.查询服务器的GPU型号

java 复制代码
nvidia-smi

7.8.grep

根据关键词查询

包含my的

不包含my的

docker ps |grep -v my

只打印第一个参数

7.9.修改host文件

java 复制代码
vim /etc/hosts
192.168.56.10 www.aaa.com
wq保存
然后执行systemctl restart network

7.10.快捷清屏

java 复制代码
ctrl+l

7.11.简单压力测试

java 复制代码
ab -n 10 -c 10 请求地址

命令不存在的话 yum -y install httpd

参数说明

java 复制代码
 -A:指定连接服务器的基本的认证凭据;
 -c:指定一次向服务器发出请求数;并发数
 -C:添加cookie;
 -g:将测试结果输出为"gnuolot"文件;
 -h:显示帮助信息;
 -H:为请求追加一个额外的头;
 -i:使用"head"请求方式;
 -k:激活HTTP中的"keepAlive"特性;
 -n:指定测试会话使用的请求数;请求总数
 -p:指定包含数据的文件;
 -q:不显示进度百分比;
 -T:使用POST数据时,设置内容类型头;
 -v:设置详细模式等级;
 -w:以HTML表格方式打印结果;
 -x:以表格方式输出时,设置表格的属性;
 -X:使用指定的代理服务器发送请求;
 -y:以表格方式输出时,设置表格属性。
java 复制代码
#ab命令版本
[root@stache34 ~]# ab -V
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

[root@stache34 ~]# ab -h
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
    -n requests     #在测试会话中所执行的请求总个数,默认仅执行一个请求
    -c concurrency  #每次请求的并发数,相当于同时模拟多少个人访问url,默认是一次一个
    -t timelimit    #测试所进行的最大秒数。其内部隐含值是-n 50000
                    #它可以使对服务器的测试限制在一个固定的总时间以内
    -s timeout      #等待每个响应的最大值,默认为30秒
    -b windowsize   #TCP 发送/接收缓冲区的大小,以字节为单位
    -B address      #进行传出连接时要绑定到的地址
    -p postfile     #包含要 POST 的数据的文件,记得还要设置 -T 参数
    -u putfile      #包含要 PUT 的数据的文件,记得还要设置-T 参数
    -T content-type #POST/PUT 数据所使用的Content-type头信息
                    #例如:application/x-www-form-urlencoded 默认值:text/plain
    -v verbosity    #设置显示信息的详细程度 -4 或更大值会显示头信息
                    #3或更大值可以显示响应代码(404, 200等),2或更大值可以显示警告和其它信息
    -w              #以HTML表的格式输出结果,默认时,它是白色背景的两列宽度的一张表
    -i              #执行HEAD请求,而不是GET
    -x attributes   #以HTML表格格式输出结果时,给 table 标签设置的属性值
                    #如 -x 'sytle="width=500px"' 输出的html中table标签会加上该属性<table sytle="width=500px">
    -y attributes   #以HTML表格格式输出结果时,给 tr 标签设置的属性值
    -z attributes   #以HTML表格格式输出结果时,给 td 标签设置的属性值
    -C attribute    #对请求附加一个Cookie:行,形式为 name=value 的一个参数对,此参数可以重复
    -H attribute    #对请求附加额外的头信息,此参数的典型形式是一个有效的头信息行
                    #其中包含了以冒号分隔的字段和值的对 (如:"Accept-Encoding: zip/zop;8bit")
    -A attribute    #对服务器提供BASIC认证信任,用户名和密码由一个:隔开,并以base64编码形式发送
                    #无论服务器是否需要(即:是否发送了401认证需求代码)此字符串都会被发送
    -P attribute    #对一个中转代理提供BASIC认证信任,用户名和密码由一个:隔开,并以base64编码形式发送
                    #无论服务器是否需要(即:是否发送了401认证需求代码)此字符串都会被发送
    -X proxy:port   #对请求使用代理服务器
    -V              #显示版本号并退出
    -k              #启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求,默认不启用 KeepAlive 功能
    -d              #不显示"XX [ms] 表内提供的百分比"(遗留支持)
    -S              #不显示中值和标准差值,当平均值和中值相差超过标准差的一倍或两倍时,
                    #也不显示警告或错误消息,默认会显示 min/avg/max 值(遗留支持)
    -q              #如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数,此-q标记可以抑制这些信息
    -g filename     #把所有测试结果写入一个'gnuplot'或者TSV (以Tab分隔的)文件,
                    #此文件可以方便地导入到Gnuplot、IDL、Mathematica、Igor甚至Excel中,其中的第一行为标题
    -e filename     #产生一个以逗号分隔的(CSV)文件, 其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间
                    #由于这种格式已经"二进制化",所以比'gnuplot'格式更有用
    -r              #不要在套接字接收错误时退出
    -h              #显示帮助信息
    -Z ciphersuite  指定 SSL/TLS 密码套件(请参阅 openssl 密码)
    -f protocol     指定 SSL/TLS 协议(SSL2、SSL3、TLS1 或 ALL)

结果说明

java 复制代码
[root@localhost ~]# ab -n 10 -c 10 http://192.168.56.10:8030/hello
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.56.10 (be patient).....done


Server Software:
Server Hostname:        192.168.56.10 //服务器主机
Server Port:            8030  //服务器端口

Document Path:          /hello //测试的路径
Document Length:        18 bytes

Concurrency Level:      10  //并发数
Time taken for tests:   0.072 seconds  //测试总时长
Complete requests:      10 //完成请求数量
Failed requests:        0 //失败请求数量
Write errors:           0
Total transferred:      1510 bytes
HTML transferred:       180 bytes
Requests per second:    138.54 [#/sec] (mean) //每秒处理请求数,mean表示这是一个平均值
Time per request:       72.179 [ms] (mean) //平均请求时间,mean表示这是一个平均值
//每个请求的时间 0.489[毫秒],意思为在所有的并发请求每个请求实际运行时间的平均值
//由于对于并发请求 cpu 实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的
//所以基本上第一个 Time per request 时间约等于第二个 Time per request 时间乘以并发请求数                                    
Time per request:       7.218 [ms] (mean, across all concurrent requests) //请求平均响应时间
Transfer rate:          20.43 [Kbytes/sec] received //传输速率

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       1
Processing:    11   43  20.4     61      61
Waiting:       10   31  18.8     41      61
Total:         11   44  20.4     61      61

Percentage of the requests served within a certain time (ms)
  50%     61
  66%     61
  75%     61
  80%     61
  90%     61
  95%     61
  98%     61
  99%     61
 100%     61 (longest request)
相关推荐
kunge201329 分钟前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪54930 分钟前
DVWA中级
linux
m0_7482540941 分钟前
2025最新华为云国际版注册图文流程-不用绑定海外信用卡注册
服务器·数据库·华为云
MUY09901 小时前
应用控制技术、内容审计技术、AAA服务器技术
运维·服务器
楠奕1 小时前
elasticsearch8.12.0安装分词
运维·jenkins
Sadsvit1 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok1 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux
java资料站1 小时前
Jenkins
运维·jenkins
苦学编程的谢2 小时前
Linux
linux·运维·服务器
G_H_S_3_2 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本