linux ubuntu16 命令及知识更新补充
linux命令
netstat -apn|grep 3306
查询3306端口的占用情况
a代表列出所有,包括监听的和未监听的
p查询端口
n禁用域名解析,加快查询速度
其中grep
是一个强大的文本查找命令,grep 3306
会返回包括3306的文本行, |
代表或
,注意和||
区分,||
具有短路
功能
netstat
其他常用参数
- -t 筛选出tcp协议
- -u 筛选出udp协议
- -c持续输出信息
find . -name ‘www’
查找本目录下文件名包括
www
的文件或目录
find
其他常用的信息
- -iname 和
-name
效果一致,不过会忽略大小写
whereis yarn
查找
yarn
命令位置
whereis
同样是搜索文件,但和find
比起来,恩恩,快了许多。这是因为whereis
不是漫无目的的查找,而是在一个数据库中(/var/lib/mlocal)查询,so,同样也是这个原因,精确度不是实时的。
source /etc/profile
立即执行etc/profile
shell脚本。
主要用在修改配置文件时,使配置文件立刻生效而不用重新登录或注销
linux 文件系统
linux一切皆文件
linux重要文件举例
/etc/profile
linux是一款多用户操作系统,这里的profile文件定义的是所有
用户所有
shell都可一使用的环境变量.
比如: 为yarn全局获取的包制定系统变量.
首先执行yarn global bin
获取yarn的全局安装路径
然后 sudo gedit /etc/profile
,再path中加入上面获得的路径,用:
分冒号隔开
/username/bashrc
上面说过linux是一款多用户操作系统,每个用户也可以配置属于自己的变量,同上。只不过,变量只能再指定user中生效
解压命令
经常会用到,在此总结
zip类
unzip XXX.zip 路径
zip -r XXX 路径
tar类
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
tar -zxvf /opt/soft/test/log.tar.gz 解压
xz类
xz -d xxxx.xz
小结
-r 参数一般表示递归处理,如cp复制,rm删除,zip,tar等
MySql
登录数据库
mysql -h IP-address -Pport -uroot -p
创建数据库和表
drop database if exists testmy;
create database if not exists testmy;
use testmy;
create table if not exists tb_user(
uuid varchar(20) not null primary key, # uuid
nickname varchar(20) not null, #昵称姓名
sex int, #性别<1 男 2女>
birth date,#出生日期
email varchar(20),#邮箱
mobile varchar(20),#手机
address varchar(20),#所在地址
truename varchar(20),#真实姓名
);
新增约束
主键约束
alter table tb_users add primary key(primary_key_id);
外键约束
alter tables tb_user add foreign key (promary_table_id) references foreign_table (foreign_table_primary_id);
或者
alter tables tb_user add foreign key promary_table_id(name) references foreign_table (foreign_table_primary_id);
外键约束尽量使用第二种,因为如果需要删除外键,则需要外键约束名。如果新建时没有声明外键名,则会MySQL会为该外键约束命名为table_name_ibfk_n,其中table_name为子表的名字, n为整数,没有显示声明外键名,其阻力未知
外键约束删除语句
alter table table_name drop foreign key foreign_key_name;
查询表,数据库,字段
所有的SQL语句都需要分号结尾,没有分号,MYSQL则视为语句并未结束
查询所有的数据库
show databases;
查询当前数据库下的所有表
use db_shop; #先切换到db_shop数据库
show tables;
显示表结构信息
desc tb_users;
显示注释信息
# 可以发现此为一条查询语句,如果是查询当前数据库下面的表注释,可以去掉table_name筛选条件
select column_name, column_comment from information_schema.columns where table_schema = 'db' and table_name = 'tb_name';
查询当前正在使用的数据库
select database();
#或者使用
status;
关闭MYSQL
使用ctrl+c
是无法关闭的,再mysql shell中使用exit
命令即可
错误及解决办法
4200 错误代码
使用了mysql预留的关键字作为了字段名或者表名
解决办法 :
- 最好替换掉和mysql预留的关键字,谁知道以后会发生什么
- 使用反引号区分