Mysql常用命令

create Database database_name 创建数据库
create database migu_plus_dev1 default character set utf8;
SHOW DATABASES; 查看数据库
use database_name; 使用数据库
DROP DATABASE database_name; 删除数据库
SHOW ENGINES \G 查看当前Mysql数据库支持的存储引擎;查看当前Mysql数据库支持的存储引擎
在执行SQL语句过程中,可以用; 、\g、\G符号表示语句结束
CREATE TABLE table_name( //创建表
属性名 数据类型,
属性名 数据类型,
,
,
属性名 数据类型,
);
DESCRIBE table_name; 查看表的定义
SHOW CREATE TABLE table_name; 查看表结构的详细定义
DROP TABLE table_name;删除表
ALTER TABLE old_table_name RENAME new_table_name; 修改表名
ALTER TABLE table_name ADD 属性名 属性类型; 表末尾添加字段
ALTER TABLE table_name ADD 属性名 属性类型 FIRST;在表头添加字段
ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名;在指定字段后添加字段
ALTER TABLE table_name DROP 属性名; 删除字段
ALTER TABLE table_name MODIFY 属性名 数据类型; 修改字段的数据类型
ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧数据类型; 修改字段的名字
ALTER TABLE table_name CHANGE 旧属性名 新属性名 新数据类型;同时修改

完整性约束:
NOT NULL 字段不能为空
DEFAULT 设置默认字段
UNIQUE KEY 约束字段的值是唯一的
PRIMARY KEY 约束字段为表的主键,可以作为该表记录的唯一标识
AUTO_INCREMENT 约束字段值为自动增加
FOREIGN KEY 约束字段为表的外键
普通索引:
CREATE INDEX <索引名> ON table_name(列的列表); 创建索引
ALTER TABLE table_name ADD INDEX [索引名](列的列表);
CREATE TABLE table_name([…],INDEX [索引名] (列的列表));
唯一性索引(索引列的所有值都只能出现一次):
CREATE UNIQUE INDEX <索引名> ON table_name(列的列表);
ALTER TABLE table_name ADD UNIQUE [索引名](列的列表);
CREATE TABLE table_name([…],UNIQUE [索引名] (列的列表));
———————————————————————————–
Mysql用户与权限:
create user ‘baozq’@’localhost’ identified by ‘baozq123’;
GRANT ALL PRIVILEGES ON *.* TO ‘bzq’@’192.168.0.254’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
ALL PRIVILEGES:表示所有权限
ON:将这些权限应用于哪些库和表,*.*表示所有库和表
TO:将这些权限给哪个用户。bzq表示用户名,@后面表示只允许通过192.168.0.254这个IP访问
IDENTIFIED BY:设定用户密码
WITH GRANT OPTION:允许bzq这个用户将自己拥有的权限再赋予给其他用户

DROP USER bzq@192.168.0.254;删除bzq这个用户
REVOKE SELECT,INSERT ON mysql.* FROM bzq@192.168.0.254;收回权限

source /home/secuser/index_all(2).sql //导入表
LOAD DATA LOCAL INFILE ‘/path/pet.txt’ INTO TABLE pet;
status //查看当前的数据库 select database();
create database usertest_music1 default character set utf8;
SELECT name, birth FROM pet ORDER BY birth DESC;//降序排序 ASC
SELECT name, birth, CURDATE(),TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age FROM pet ORDER BY name;
SELECT name, birth FROM pet WHERE MONTH(birth) = 5;
_ 匹配任何单个字符并%匹配任意数量的字符(包括零个字符)
REGEXP_LIKE()函数:
. 匹配任何单个字符。
字符类[…]匹配括号内的任何字符。例如, [abc]匹配a, b或c。要命名一系列字符,请使用短划线。[a-z] 匹配任何字母,而[0-9] 匹配任何数字。
*匹配前面的事物的零个或多个实例。例如,x* 匹配任意数量的x字符, [0-9]*匹配任意数量的数字,并.*匹配任意数量的任何数字。
如果模式匹配正在测试的值中的任何位置,则正则表达式模式匹配成功。(这与LIKE模式匹配不同,模式匹配仅在模式匹配整个值时才会成功。)
锚定的图案,使得它必须在值的开头或结尾匹配正在测试中,使用^在一开始或$在图案的端部。
SELECT * FROM pet WHERE REGEXP_LIKE(name, ‘^b’);
—————————————————————————————————————————————————————————————-
#从文件读取sql语句
$mysql < file_name
#列的最大值
$select MAX(line_name) from table_name;
数据备份:
mysqldump –all-databases –master-data –single-transaction > back_date.sql
#转储特定的数据库
$mysqldump –databases db1 db2 db3 > dump.sql –databases 使命令行上所有名称被视为数据库名。如果没有此选项,mysqldump将会将第一个视为数据库名,其余视为表名

DDL(Data definition Language) –数据定义语言(CREATE,ALTER,DROP), 管理基础数据,
例如: 库,表
DCL(Data Contol Language) –数据控制语言(GRANT,REVOKE,COMMIT, ROLLBACK),
用户授权,权限回收,数据提交, 回滚等
DML(Data Manipulation Language) –数据操作语言(SELECT,INSERT,DELETE,UPDATE),
针对数据库里的表,记录命令语法: create database <数据库名>
——————————————————————————————————————————————–
增删改查:
INSERT INTO table_name(field1,field2,..fieldN)
VALUES(value1,value2,…valueN);
DELETE FROM table_name [WHERE 表达式]

DDL:
create database xxx charset # 创建数据库 设置字符集
create table xxx (id int,xxxxxx) # 创建表
drop table # 删除表
drop database # 参数数据库
alter table add/drop/modify/change # 表内容修改
create user # 创建用户
drop user #删除用户
DCL:
grant:用户授权
GRANT ALL ON *.* TO ‘clsn’@’localhost’;
SHOW GRANTS FOR ‘clsn’@’localhost’\G
创建用户的同时进行授权
grant select,create,insert,update on clsn.* to ‘clsn’@’10.0.0.%’ identified by ‘123’;
revoke:回收权限
REVOKE INSERT ON *.* FROM clsn@localhost;
收回权限示例:
revoke drop,delete on *.* from sys@localhost;
DML:
insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
update test2 set name=’haha’ where name=’youggilr’;
delete from test; #逻辑删除,一行一行删。
truncate table test; #物理删除,pages(block),效率高。

#查看是否有表被锁
$show open tables where in_use>0;
#锁表
$LOCK TABLES table_name [READ | WRITE]
#解锁
$UNLOCK TABLES;

学习笔记之文件处理命令

文件管理:
   ls:查看目录
   cd:切换目录
   pwd:打印目录
   mkdir:创建空目录   mkdir -pv /mnt/x/{m,n}
      -p:递归创建目录     mkdir -p /x/y/z
      -v:显示创建过程的详细信息
   tree:查看目录树
   rmdir:删除空目录 -p
   touch:创建文件
      -m:修改modify time
      -a:修改access time
      -c:修改change time
      -t:指定时间
   rm:删除文件  –>\rm 使用rm本身,忽略别名
      -i:删除前询问
      -f:force,强行删除
     -r:递归删除
cp:copy 复制文件–>cp src dest   cp file1 file2 目录
    -r/-R:复制目录
    -f:force,强制执行
    -i:复制前询问
    -p:保留文件原有的属组、权限等
    -a:保留文件原有所有属性
mv:move,移动文件  mv src dest
cut:
   -d:指定分隔符,默认是空格
   -f:指定显示的字段 -f 1,3   -f 1-3
sort(排序):
   -n:数值排序
   -r:降序排序
   -t:指定字段分隔符
   -k:以哪个字段为关键字排序
   -u:排序后相同的行只显示一次
   -f:排序是忽略字符大小写
uniq:
   -d:只显示重复的行
   -c:显示重复的个数
wc(文本统计):
  -l:line,显示文本行数
  -w:word,只显示单词数
  -c:只显示字符数
  -L:显示最长的一行包含多少字符

Linux文件系统

文件系统:
      根文件系统:rootfs
     /boot:系统启动相关的文件,如内核、initrd以及grub(bootleader)
    /dev:设备文件
   块设备:随机访问
  字符设备:线性访问,按字符为单位
   /etc: 配置文件
   /home:用户的家目录,默认为/home/username
   /root:root的家目录
   /lib:库文件和内核模块文件(/lib/modules)
   /media:挂载点目录:移动设备
   /mnt:挂载点目录:额外的临时设备
   /opt:可选目录
  /sys:伪文件系统,跟硬件设备相关的属性映射文件
   /tmp:临时文件,一个月自动删除
   /var:可变化文件
   /bin:可执行文件,用户命令
   /sbin:管理命令

Linux之命令在线帮助

命令使用帮助:
      内部命令:help COMMAND
     外部命令:COMMAND –help
     命令手册:man COMMAND
     man命令分章节:
          1:用户命令
          2:系统调用
          3:库调用
          4:特殊文件(设备文件)
          5:文件格式(配置文件的语法)
          6:游戏
          7:杂项
          8:管理命令(/sbin、/usr/sbin、/usr/local/sbin)
    查看命令有哪些章节:whatis COMMAND
   []可选项   <>必选项  …可以出现多次 {}分组
   NAME:命令名称和功能简要说明
   SYNOSIS:用法说明
   DESCRIPTION:命令功能的详尽说明,可能包括一个选项的详细说明
   OPTIONS:说明每一个选项的意义
  FILES:此命令相关的配置文件
  EXAMPLES:使用示例
 SEE ALSO:另外参照
翻屏:
     向后翻一屏:SPACE
     向前翻一屏:b
     向后翻一行:ENTER
     向前翻一行:k
查找:
      /KEYWORD 向后  n:下一个  N:前一个
     ?KEYWORD 向前
退出:q

DNS解析——www.baidu.com解析过程

当访问www.baidu.com这个网站时,客户端会先到本地的DNS服务器上查找是否有www.baidu.com的缓存,如果有直接返回IP地址给客户端。如果没有,本地的DNS服务器就会向根服务器发起请求,根服务器收到这个请求后,知道它是com.这个顶级域下的,所有会返回com的主机名和IP地址,然后本地服务器再向com这个域名服务器发起请求,com域知道这个请求是baidu.com这个域,就返回baidu.com的ip地址。最后本地DNS服务器向baidu.com这个域发起请求,baidu.com收到后,查了发现有www.baidu.com这台主机,就把他的IP地址返回。这样就能访问www.baidu.com这个网站了。

在DNS解析过程中涉及两个过程:递归和迭代。所谓递归就是客户端向本地DNS服务器发起请求,本地DNS服务器将一个准备的IP返回。而迭代是指本地DNS服务器向根域、com域发起请求,而这些服务器并不直接返回准备的IP地址,而是告诉你另一台DNS服务器的地址。

Linux常用命令——useradd

[root@linux ~]# useradd [-u UID] [-g initial_group] [-G other_group] \
> -[Mm] [-c 说明栏] [-d home] [-s shell] username
参数:
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个群组名称,该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。
-G :后面接的群组名称则是这个账号还可以支持的群组。这个参数会修改 /etc/group 内的相关资料喔!
-M :强制!不要建立使用者家目录
-m :强制!要建立使用者家目录!
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~
-d :指定某个目录成为家目录,而不要使用默认值;
-r :建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs)
-s :后面接一个 shell ,预设是 /bin/bash 的啦~

例1:创建一个用户,用户名bzq1,所属组bzq
[root@localhost ~]# useradd -u 888 -g bzq bzq1
[root@localhost ~]# ls -l /home
总用量 8
drwx——. 26 bzq bzq 4096 1月 26 19:49 bzq
drwx——. 4 bzq1 bzq 4096 2月 7 20:21 bzq1
例2:创建用户nologin,设置shell为/sbin/nologin,并指定家目录
[root@localhost ~]# useradd -s /sbin/nologin -d /home-nologin nologin
[root@localhost ~]# tail -1 /etc/passwd
nologin:x:889:889::/home-nologin:/sbin/nologin

grep练习

1.显示/etc/passwd文件中以bash结尾的行
[root@localhost ~]# grep “bash$” /etc/passwd

2.显示/etc/passwd文件中的两位数或三位数
[root@localhost ~]# grep -o “\<[[:digit:]]\{2,3\}\>” /etc/passwd

3.显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
[root@localhost ~]# netstat -tan |grep “LISTEN.*$”

4.添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
[root@localhost ~]# useradd bash
[root@localhost ~]# useradd basher
[root@localhost ~]# useradd -s /sbin/nologin nologin
[root@localhost ~]# grep “^\(\<[[:alnum:]]\+\>\).*\1$” /etc/passwd

5.显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
[root@localhost ~]# useradd centos
[root@localhost ~]# useradd user1
[root@localhost ~]# cat /etc/passwd |cut -d: -f1,3,7 |egrep “^root|centos|user1”

6.找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
[root@localhost ~]# egrep “\<[[:alpha:]_]+\>\(\)” /etc/rc.d/init.d/functions

7.使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
[root@localhost ~]# echo /etc/rc.d/init.d/functions |egrep “([^/][[:alnum:]]+)$” 取出路径基名

[root@localhost ~]# echo /etc/rc.d/init.d/functions |egrep “.*/” 取出目录名

8.找出ifconfig命令执行结果中1-255之间的数字
[root@localhost ~]# ifconfig |egrep “\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]\>)”

世界,你好!

自从进入IT行业,就想搭建一个属于自己的网站,准备了很久,终于在今天搭建好了。

既然搭建的是一个博客,我将在这上面分享一些我自己的学习笔记和学习经验。

同样我会将我自己的搭站经验分享出来,帮助大家搭建自己的博客。

希望未来和大家一起成长。