我的常用命令
------------------------------docker相关-----------------------------------
1、版本 \ 信息
docker version
docker info
2、启动docker服务 (启动 、停止)
systemctl start docker
systemctl stop docker
3、查看image文件
docker images
docker image ls
4、删除 image 文件
docker image rm [imagename]
docker rmi [imagename]
5、从仓库抓取image到本地
docker image pull library/hello-world
docker image pull hello-world
6、运行image 文件
docker container run hello-world
7、终止容器
docker container kill [containID]
8、停用全部运行中的容器
docker stop $(docker ps -q)
9、列出容器
列出本机正在运行的容器
docker container ls
列出本机所有容器,包括终止运行的容器
docker container ls --all
10、删除容器文件
docker container rm [containerID]
删除全部容器
docker rm $(docker ps -aq)
11、docker 获取镜像
docker pull mysql:5.7
12、docker 启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m : 设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷
docker run -p 39100:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
docker run -p 9527:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
-p 3306:3306: 将容器的3306端口映射到主机的3306端口
-v $PWD/conf/my.cnf:/etc/mysql/my.cnf: 将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
-v $PWD/logs:/logs: 将主机当前目录下的logs目录挂载到容器的/logs
-v $PWD/data:/mysql_data: 将主机当前目录下的data目录挂载到容器的/mysql_data
-e MYSQL_ROOT_PASSWORD=123456: 初始化root用户的密码
13、进入容器
docker exec -it mysql bash
mysql -uroot -proot
show databases;
14 拷贝文件到docker容器的命令
docker cp /xxxxx.sql mysqldb1:/root/
-------------------------linux相关-------------------------------
1、linux 查看可疑IP登陆
last -f /var/log/wtmp
2、linux 清除记录
echo > /var/log/wtmp //清除用户登录记录
echo > /var/log/lastlog //清除最近登录信息
echo > /var/log/secure //登录信息
echo > .bash_history //清除保存的用户操作历史记录
history -cw //清除所有历史
echo > /var/log/wtmp \
echo > /var/log/lastlog \
echo > /var/log/secure \
echo > .bash_history
history -cw //清除所有历史
3 查看占用端口
lsof -i
lsof -i:9002
4 tar zip 压缩解压缩
压缩:
tar -zcvf 压缩文件名.tar.gz ./需要压缩的文件夹/
tar -cvf 压缩文件名.tar ./需要压缩的文件夹/
解压:
tar -xzvf 压缩文件名.tar.gz ./解压到的文件夹
tar -xvf 压缩文件名.tar ./解压到的文件夹
zip 压缩
zip file1.zip file1 创建一个zip格式的压缩包
zip 解压
unzip file1.zip 解压一个zip格式压缩包
5、创建目录
mkdir dir1 创建一个叫做 'dir1' 的目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
6、删除
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
7、移动
mv dir1 new_dir 重命名/移动 一个目录
8、复制
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
9 显示系统当前时间
date
10 显示日历
cal
11 目录相关
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示当前工作路径
12 显示目录文件信息
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构
13、创建目录
mkdir dir1 创建一个叫做 'dir1' 的目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
14 删除
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
15 重命名
mv dir1 new_dir 重命名/移动 一个目录
16 复制
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
17 创建软链接
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
18 以太网和WIFI无线相关命令
ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 'eth0' 网络设备
ifdown eth0 禁用一个 'eth0' 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0 以dhcp模式启用 'eth0'
route -n show routing table
route add -net 0/0 gw IP_Gateway configura default gateway
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'
19 磁盘空间
df -h 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)
20 文件权限
ls -lh 显示权限
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位
21 文件搜索相关
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
locate \*.ps 寻找以'.ps'结尾的文件
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
22、 系统重启及关机
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销
23、防火墙
systemctl start firewalld 启动防火墙
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld 停止防火墙
systemctl disable firewalld 禁用、
systemctl restart firewalld 重启
systemctl enable firewalld 开机启动
systemctl disable firewalld 开机不启动
systemctl is-enabled firewalld 查看开机启动状态
systemctl list-unit-files|grep enabled 查看开机启动项
systemctl --failed 查看启动失败的项
firewall-cmd --version 查看版本
firewall-cmd --help 查看帮助
firewall-cmd --state 显示状态
firewall-cmd --get-active-zones 查看区域信息
firewall-cmd --get-zone-of-interface=eth0 查看指定接口所属区域
firewall-cmd --panic-on 拒绝所有包
firewall-cmd --panic-off 取消拒绝状态
firewall-cmd --query-panic 查看是否拒绝
firewall-cmd --zone=public --list-ports 查看所有打开的端口
firewall-cmd --reload 更新防火墙规则
firewall-cmd --zone=public --add-port=80/tcp --permanent 添加端口(--permanent永久生效)
firewall-cmd --zone= public --remove-port=80/tcp --permanent 删除端口
---------------------数据库 mysql----------------------
1、Mysql 连接
mysql -u【用户名】 -p 【密码】 -P 【端口】 -h 【主机】
mysql -uroot -proot -P3306
2、退出
exit
3、MySQL 创建数据库
create database 【数据库名】
4、删除数据库
drop database 【数据库名】
5、选择数据库
use 【数据库名】
6、创建表
CREATE TABLE table_name (column_name column_type);
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL COMMENT '用户账号',
`nickname` varchar(255) DEFAULT NULL COMMENT '用户昵称',
`realname` varchar(255) DEFAULT NULL COMMENT '真实姓名',
`avatar` varchar(30) DEFAULT '' COMMENT '用户头像',
`password` varchar(255) DEFAULT NULL COMMENT '账户密码',
`ori_password` varchar(255) DEFAULT NULL COMMENT '初始密码',
`mobile` varchar(255) DEFAULT NULL COMMENT '手机号码',
`headimg` varchar(255) DEFAULT NULL COMMENT '用户头像',
`login_date` datetime DEFAULT NULL COMMENT '登录时间',
`login_ip` varchar(255) DEFAULT NULL COMMENT '登录IP',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`status` int(11) DEFAULT '1' COMMENT '状态(0-禁用 1-启用)',
`id_card_top` varchar(255) DEFAULT NULL COMMENT '身份证正面',
`id_card_back` varchar(255) DEFAULT NULL COMMENT '身份证背面',
`mail` varchar(255) DEFAULT NULL COMMENT '邮箱',
`cloud_id` varchar(32) DEFAULT NULL COMMENT 'timid',
`role_id` smallint(1) DEFAULT NULL COMMENT '角色id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
create table 新表 like 旧表
create table 新表 as select 列,列,。。。from 旧表
7 mysql 创建管理用户 yonghu
create user 用户 identified by '密码';
create user yonghu identified by 'mima';
8 赋予 yonghu 数据库权限
grant all privileges on 数据库.* to '用户'@'%';
grant all privileges on www_lyjblog_com.* to 'yonghu'@'%';
-- 刷新数据库
flush privileges;
9 查看用户权限
show grants for 'yonghu';
10 再次验证 需要root用户
select User,Db,host,Select_priv,Insert_priv,Update_priv,Delete_priv from mysql.db where User='yonghu';
11 导出数据
mysqldump -h主机名 -P端口 -u用户名 -p密码 参数1,参数2.... > 备份文件.sql
-- 导出全部数据库
mysqldump -uroot -p1234 --all-databases > /root/db_back/all.sql
mysqldump -uroot -p1234 -A > /root/db_back/all.sql
mysqldump -P33061 -uroot -p -A > E:/资料下载/all_datebase_33061.sql
12 删除表
drop table 表名
13 显示表的属性信息
desc 表名
14 增加列
alter table 表名 add 列名 类型
15 删除列
alter table 表名 drop 列名
16 修改一个列名
alter table 表名 change 列名 新列名 类型
17 修改类型
alter table 表名 modify 列名 新类型
18 增加、删除主键
alter table 表名 add primary key 列名
alter table 表名 drop primary key 列名
19 查询语句
关键字:
1.or: 或
2.and: 和
3.having: 分组后的附加条件
4.group by:分组
5.order by:排序:asc:正序,desc:倒序
6.in: 存在于某个值中
7.not in: 不存在与某个值中
8.inner join … on: 链接多表
9.left join … on: 左外连接
10.right join … on:右外连接
11.left(right,inner) out join … on: 去重
12.count: 计数
13.AVG: 平均值
14.sum: 求和
15.max: 最大值
16.min: 最小值
17.like ‘关键字%’: 取含有关键字的值
18.distinct: 去重
19.round: 四舍五入
20.where 1=1: 全选
21.where 1=2: 全不选
22.limit 1,5: 从第二行开始显示5条数据
23.top 10:select top 10 * from 表名:显示前十条数据
24.newid(): 随机
1.选择查询:
select * from 表名 where 范围
2.完全查询:
select * from 表名
3.模糊查询:
select * from 表名 where 列名 like ‘%value%’(查询包含value的值)
4.排序查询(倒序,默认为正序):
select * from 表名 order by 列名 desc
5.计数查询:
select count as 别名 from 表名
6.求和查询:
select sum(field) as 别名 from 表名
7.平均值查询:
select avg(filed) as 别名 from 表名
8.最大值查询:
select max(filed) as 别名 from 表名
9.最小值查询:
select min(filed) as 别名 from 表名
10.四舍五入查询:
select round(min(filed),要保留的小数位数) as 别名 from 表名
11.去重查询:
select distinct 列名 from 表名
12.分组查询:
select * from 表名 group by 列名
13.多条件查询:
select * from 表名 where 列名=‘范围’ and 列名=‘范围’
14.不确定条件查询:
select * from 表名 where 列名=‘范围’ or 列名=‘范围’
15.多条件分组求值查询:
select 列名,min(filed)from 表名 where 列名=‘范围’ group by 列名 having sum(列名)
16.子查询(子查询的结果作为主查询的条件):
select * from 表名 where=(select id from 表名 where 列名=‘范围’)
17.连表查询(内连接):
select * from 表名 inner join 表名 on 主键=外键(必须有主外键)
18.连表查询(内连接)(去重):
select * from 表名 inner out join 表名 on 主键=外键(必须有主外键)
注:内连接只显示相关联的数据
19.连表查询(左外连接)(显示左表的全部信息和右表相关联的信息):
select * from 表名 left join 表名 on 主键=外键(必须有主外键)
20.连表查询(右外连接)(显示右表的全部信息和左表相关联的信息):
select * from 表名 right join 表名 on 主键=外键(必须有主外键)
21.连表查询(全外连接)(显示两个表中的所有记录):
select * from 表名 full/cross join 表名 on 主键=外键(必须有主外键)
22.说明:几个高级查询运算词
A:union(结合两个结果表并消除其中的重复行而派生出另一个表)
例:select name from 表名1 union select name from 表名2(去除name的重复行)
B:except(通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表)
C:intersect(通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表)
注:当这三个运算符与all一起使用时不消除重复行
20 数据操作语句:插入、修改、删除
1.数据插入
完全插入:insert into 表名 values(值1,值2,值3,…)
选择插入:insert into 表名(列名1,列名2,列名,3…) values(值1,值2,值3,…)
批量插入:insert into 表名 values(值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…)…
注1:完全插入可以省略列名,但是值必须包含所有字段,批量插入类同
注2:选择插入必须选择需要插入的字段,选择对应字段的值,批量插入类同
2.修改语句
update 表名 set 列名=‘值’ where 列名=‘范围’
where 1=1(全选)
where 1=2(全不选)
注:不加where条件为修改所有指定列的值
3.删除语句
delete from 表名 where 列名=‘范围’
注:不加where条件为删除所有的值
网友评论