linux操作汇总

swap操作

1、启用swap 在内存使用超过60的时候
vim /etc/sysctl.conf  修改为vm.swappiness=60 
sysctl -p 
2、生成swap文件
dd if=/dev/zero of=/swap bs=1024 count=8388616
mkswap /swap
3、设置开启启动swap
echo "/swap swap swap defaults    0  0" >> /etc/fstab
4、启动swap
swapon -a
5、查看swap情况
free -m

screen

echo $STY

系统

  • 查看cpu信息
cat /proc/cpuinfo
  • 查看linux版本
cat /etc/redhat-release

输出重定向
在这里插入图片描述

用户和权限相关

  • 添加用户
useradd zhangsan
  • 添加用户密码
passwd zhangsan
  • 添加用户登录权限
vi /etc/passwd 将/sbin/nologin 改为 /bin/bash

r 查看的权限 包括查看文件和文件夹的权限
w 写权限 删除权限
x 打开目录权限 执行文件权限
删除一个文件,必须对所属目录拥有读写执行的权限

u+s 限定文件执行时用户为文件所有者
g+s 限定文件夹内添加的新文件所属者为文件夹所有者
o+t 限定文件删除者必须为文件的所有者或所属组,其它人无权限删除

时间设置

// 设置日期时间
date -s "2022-02-19 00:32:27"
// 设置时区
执行tzselect命令 依次选择asia -> china->beijing 完成配置,并将 TZ="Asia/Shanghai"; export TZ 追加到/etc/profile文件末尾,source /etc/profile生效 
// 时间同步插件nptdate
// 检查有没有安装nptdate
systemctl list-unit-files | grep nptdate
没有安装
yum install nptdate
// 加入系统服务并启动
systemctl enable nptdate&& systemctl start nptdate
//同步时间
ntpdate time.nist.gov 或者ntpdate time.nuri.net

硬件时钟与系统时钟同步(暂时没用到,记录一下):

#hwclock --hctosys hc代表硬件时间,sys代表系统时间,即用硬件时钟同步系统时钟

#hwclock --systohc 即用系统时钟同步硬件时钟 等于hwclock -w 执行这个命令没有任何反馈信息

系统服务

  • /usr/lib/systemd/system 目录下添加脚本zookeeper.service:
[Unit]
Description=zookeeper
[Service]
Type=forking
User=root
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh  -daemon /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
[Install]
WantedBy=multi-user.target
  • 查看启动项
systemctl list-unit-files |   grep enable
  • 添加开机启动
systemctl enable zookeeper
  • 禁用开机启动
systemctl disable zookeeper
  • 备份数据库(带日期)
mysqldump -h 127.0.0.1 -u admin -ppassword  my_db > `date +%Y%m%d`.sql
  • 查看服务日志
journalctl -u 服务名

date相关函数

date -d "10 day ago" "+%Y-%m-%d %H:%M:%S"

参考:
https://www.cnblogs.com/sharpest/p/10390029.html

杂项

1、转义符号: “”
2、脚本执行中,读取shell输入: read 变量名
3、显示换行:echo -e “OK! \n” # -e 开启转义
4、输出命令执行结果:echo date
5、 [ a + b ] 进行对数值进行基本算数运算 6 、 v a l = ‘ e x p r 2 + 2 ‘ 对数值或变量进行基本数学运算,可以用 [a+b] 进行对数值进行基本算数运算 6、val=`expr 2 + 2` 对数值或变量进行基本数学运算,可以用 [a+b]进行对数值进行基本算数运算6val=expr2+2‘对数值或变量进行基本数学运算,可以用(( a + a+ a+b))替换
7、变量名和等号之间不能有空格:a=张三
8、推荐给所有变量加上花括号,这是个好的编程习惯。
9、通过语句赋值:
for file in ls /etc

for file in $(ls /etc)
10、获取命令行参数:$0,$1, 2... 获取命令行参数个数: 2... 获取命令行参数个数: 2...获取命令行参数个数:#
获取字符串长度:KaTeX parse error: Expected '}', got '#' at position 2: {#̲name} 获取数组长度:…{#name[]}" 或 "KaTeX parse error: Expected '}', got '#' at position 2: {#̲name[@]}" 获取数…{name[]}" 或 " n a m e [ @ ] " / / 前者整体输出,后者依次输出获取数组的值: {name[@]}" // 前者整体输出,后者依次输出 获取数组的值: name[@]"//前者整体输出,后者依次输出获取数组的值:{name[0]}
11、let可以用(())替代,let必须是完整的算术表达式,即有等号两边
12、删除当前目录下大于1M的日志文件 ll | egrep '*.log' | awk '{if($5>1024*1024) print $9}' | xargs rm
13、$?返回最后一个命令的执行结果 0成功 非0失败
14、/bin/true 函数返回0 /bin/false 函数返回1 也可以作为 0 / 1的替代写法来使用

字符串截取

1、正则截取

假设:url=http://www.baidu.com/blog
1、#*[char] :从左边开始截,非贪婪,即第一个char前面的所有(含char)被删除
结果:
在这里插入图片描述

2、#[char]: 从左边开始截,贪婪,即最后一个char前面的所有(含char)被删除
在这里插入图片描述
3、%[char]
: 从右边开始截,非贪婪,即第一个char后面的所有(含char)被删除
在这里插入图片描述

4、%%[char]*: 从右边开始截,贪婪,即最前一个char后面的所有(含char)被删除
在这里插入图片描述

2、位置截取

假设 name=123456.789K

1.开始位置2,长度不设置
在这里插入图片描述
2.开始位置不设置,结束位置-3
在这里插入图片描述

3.开始位置1,长度4
在这里插入图片描述
4.开始位置1,结束位置-1
在这里插入图片描述

service(服务)

// 首先编写php脚本test.php

<?php
while (true) {
	echo 'hello world'.PHP_EOL;
	sleep(2);
}

// 在/etc/init.d下 编写service shell

#!/bin/bash
 
SERVERNAME="/root/test.php"
 
start()
{
     echo  "start $SERVERNAME"
     php $SERVERNAME > /root/my-test.log &
	 
     echo  "start $SERVERNAME ok!"
     exit  0;
}
 
stop()
{
     echo  "stop $SERVERNAME"
	 pids=`ps -ef | grep $SERVERNAME | grep -v grep | cut -c 9-15`
	 for pid in ${pids[*]}
	 do
		echo $pid
		kill -15 $pid
	 done    
     exit  0
}

echo '$1='$1
case  $1  in
start)
     start
     ;;
stop)
     stop
     ;;
restart)	
     stop
	 start
     ;;
*)
     echo  "usage: $0 start|stop|restart"
     exit  0;
esac
exit
服务管理的两种方式
1、不通过systemd(不推荐)(因为是centos7,默认使用systemctl管理服务)
systemctl daemon-reload // 刷新一下systemctl配置

systemctl start test // 启动

systemctl stop test // 停止

systemctl restart test // 重启
2、(推荐)通过通过systemd管理服务,可实现服务监控,自动重启的高级功能

注意:不需要编写ExecStop和ExecReload,systemd会帮你监控你正在运行的进程组

[Unit]
Description=my test service

[Service]
Type=forking
ExecStart=/usr/local/bin/my-test.sh start
// ExecStop不是用来停止服务的,停止服务用systemctl stop命令就可以,这个是停止服务的时候附加的操作,所以如果是单纯停止服务,可以不用设置
// ExecStop=/usr/local/bin/my-test.sh stop
// ExecReload不是重启服务的,重启服务用systemctl restart就可以了,ExecReload是用来重新加载服务的配置文件的,比如nginx等,所以如果是单纯重启服务,不需要配置该项
//ExecReload=/usr/local/bin/my-test.sh reload 

Restart=on-failure // 服务失败的时候,自动重启,如果是主动停止,比如systemctl stop/kill 命令停止服务,不会触发重启机制
RestartSec=5 // 服务失败后多久重启

KillMode=control-group // 停止行为默认关闭父子进程组

[Install]
WantedBy=multi-user.target // 运行等级,multi-user.target 是启动级,不进行登录认证
systemctl常用命令
-启动一个服务
$ systemctl start 服务名
-立即停止一个服务
$ systemctl stop 服务
-重启一个服务
$ systemctl restart 服务
-杀死一个服务的所有子进程
$ systemctl kill 服务 // 等同于 systemctl stop 服务名
-重新加载一个服务的配置文件
$ systemctl reload apache.service
-重载所有修改过的配置文件
$ systemctl daemon-reload
-显示某个 Unit 的配置参数
$ systemctl cat httpd.service
-显示某个 Unit 的所有底层参数
$ systemctl show httpd.service
-显示某个 Unit 的指定属性的值
$ systemctl show -p CPUShares httpd.service
-设置某个 Unit 的指定属性
$ systemctl set-property httpd.service CPUShares=500
缓存释放 buff/cache
echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。
less命令
空格 前进1页
b 倒退1页

d前进半页
u倒退半页

enter 前进1行
y 倒退1行
/ 向下查找
: 向上查找
n 重复之前的查找
shift + n 反向重复之前的查找

磁盘相关:

** 命令:**

 df -hT 查看磁盘文件大小和类型
 lsblk 查看磁盘设备
 fdisk 磁盘分区
 

物理卷扩容

yum install cloud-utils-growpart -y //安装growpart工具
 growpart /dev/sda 3 // 对sda磁盘的第三个分区进行扩容
 resize2fs /dev/vda3 // ext{2,3,4}更新文件系统容量
xfs_growfs /dev/vda2 // xfs更新文件系统容量

逻辑卷扩容

参考

增加分区

启动VMware环境下的Linux操作系统,添加新分区,需要root账号身份。

1 【fdisk -l】 最大分区为/dev/sda3,说明新创建的分区将会是sda4

2 输入【fdisk /dev/sda】

3 命令行提示下输入【m】

4 输入命令【n】添加新分区。

5 输入命令【p】创建主分区。

6 输入【回车】,选择默认大小,这样不浪费空间

7 输入【回车】,选择默认的start cylinder。

8 输入【w】,保持修改

9 输入【reboot】 重启linux,必须reboot,否则/dev/sda4无法格式化。

10 这时在/dev/目录下,才能看到了新的分区比如/dev/sda4

11【mkfs.ext2 /dev/sda4】格式化为ext2 /ext3/ext4 xfs等

12 在根目录下创建disk4目录

13 【mount /dev/sda4 /disk4/】将分区mount到根目录的/disk4/上

14 在vim修改/etc/fstab文件,加入【/dev/sda4 /disk4 ext2 defaults 0 0】一行,并保存,实现开机自动mount。

网络监控

1.根据网卡
yum install -y nload

sudo nload -m
sudo nload eth0 -m
2.根据ip
yum -y install iftop
iftop

=>代表发送数据
<=代表接收数据
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

3.根据进程
yum -y install nethogs
nethogs

top
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值