linux常用命令- 4
1.vi 相关命令
vi README
# 删除当前行
dd
# 删除光标所在行以及以下所有行
dG
# 删除n行,从当前行开始往下,包括当前行
# 删除2行,从当前行开始往下,包括当前行
2dd
# 跳转到第一行第一个字符
gg
# 跳转到最后一行的第一个字符
G
# 跳到行尾
shit+$
# 跳到行首
0
# 当前位置追加,进入编辑模式
shift+a
# 清空文件
# 伪清空,文件为1 byte
echo '' > README
# 真正清空
cat /dev/null > test.log
# vi命令行,组合命令实现,文件很大时,vi加载文件很慢,所以文件很大时,不建议使用
vi test.log
gg
dG
# 显示行号,只是显示不会改变内容
vi README
shit+:
set nu
# 取消显示行号
set nonu
# 搜索,搜索xxx,需要键入/xxx,
# n查找下一个,N查找上一个
vi README
shift+:/mysql
2. 文件权限
# 修改文件拥有者(用户组和用户) chown(change own)
# 修改用户组
chown mysql README
# 修改用户,用户是归属于某个组下面的,要带上用户组
chown mysql:mysql1 README
# 递归修改
chown -R mysql:mysql ./data/*
# 修改文件读写执行权限 chmod (change mode)
# linux的文件权限有rwx三种,r=read,w=writer,x=execute
# 权限可以使用421来表示,r=4,w=2,x=1
# 权限可以针对文件的三个方面进行设置,用户,用户组,其他用户
# example:
# chmod 644 README 即对当前用户开放读写权限,当前用户组下的其他用户以及其他组的所有用户开放读权限
# +就是增,-就是取消
chmod 777 README
chmod -R 460 mysql:mysql ./data/*
# 也可以使用wrx来操作
# 给用户组增加读权限
chmod g+r test.log
# 给用户添加读写权限
chmod u+wr test.log
# 给其他用户增加执行权限
chmod o+x test.log
3.软连接
linux的软连接和windows的快捷链接差不多
# 在根目录下创建一个mysql连接到 /home/mysql/mysql5.7.9
# 以后想跳转mysql,直接cd /mysql,设置环境变量也可以很方便
ln -s /home/mysql/mysql5.7.9 /mysql
软连接主要是针对多版本的问题,比如之前的MYSQL_HOME设置成了5.7.9版本的,如果是真实路径
将会导致更新到8.0.15之类的时候需要手动修改环境变量,但是用软连接,此时只需要修改下软连接的指向
另一个场景
某个路径下的磁盘空间不够了,需要将数据挂载到其他路径
此时,软连接直接指向磁盘空间足够的地方就行了,无需移动软件的安装位置
需要注意软连接前后的权限变化,及时修正
4.系统命令
- 查看磁盘空间占用
df -h
- 查看内存使用情况
# 以m(兆)显示
free -m
# 以g显示
free -g
# top类似windows的任务管理器
top
注意top的load average: 0.17, 0.07, 0.06
load average指标代表了CPU的平均负载 (1min,5min,15min),当然越低越好
记录下大佬的经验值
生产上 <=10 表示 系统还行,>10 系统负载高 就是卡 ,80-200之间 除了排查程序之外,看看内存条是否正常
5.压缩和解压
# 压缩
# 将当前mysql打成zip
zip -r mysql.zip ./mysql-5.7.9
tar -czvf mysql.tar.gz ./mysql-5.7.9
# 解压
unzip mysql.zip
tar -zxvf mysql.tar.gz
tar的几个值的含义
-c, --create create a new archive 创建压缩
-x, --extract, --get extract files from an archive 解压
-v, --verbose verbosely list files processed 显示解压过程
-f, --file=ARCHIVE use archive file or device ARCHIVE 使用的文件,一般是必选的
-C, --directory=DIR change to directory DIR 改变输出目录
6.获取资源
wget https://download.jetbrains.8686c.com/idea/ideaIU-2019.1.3.win.zip
7.定时调度
vi my.sh
#!/bin/bash
nowTime=`date +"%Y-%m-%d %H:%M:%S"`
echo $nowTime >> /mysql/test.log
echo 'end' >> /mysql/test.log
crontab -e
* * * * * /mysql/my.sh;
linux的cron expression和普通的cron稍微有点区别
linux的cron expression没有秒,即表达式分别代表 分 时 日 月 周
后台执行
# 后台执行,将日志输出到nohup.out
nohup ./my.sh &
# 将日志输出到指定文件
nohup ./my.sh >> /date.log 2>&1 &
2>&1 是将标准错误信息转变成标准输出
输出级别:
0 – stdin (standard input)
1 – stdout (standard output)
2 – stderr (standard error)