shell 登录mysql 然后quit_Linux学习

前提:首先安装虚拟机以及Ubuntu系统,其中遇到 主机支持Inter VT-X但禁用 的提示需要进入bios将visual设置打开

接着根据需要来安装需要的软件,这里先安装vim以及gcc

一、 目录的常用命令:

1. ls 查看当前目录下的内容

ls -l列出长数据串,包含文件的权限和属性

155512522_1_20190303035034629

ls -a(all)  列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来

ls -d  仅列出目录本身,不列出目录内容

155512522_2_20190303035035504.png

ls -R 连同子目录的内容一起递归列出(改目录下的内容全都会显示出来)

ls file1 file2   列出f1和f2两个目录文件中所包含的目录项,并隐含指出按英文字母顺序列表

155512522_3_20190303035035988

2. cd进入/退出目录

3.mkdir 建立新的文件夹

mkdir dir{1,2,3}   mkdir dir1 dir2 dir3 创建多个目录

155512522_4_20190303035036723

mkdir -p mp1/mp2/mp3创建联级目录

155512522_5_20190303035037269.png

4. cp file1 目标目录  -r  递归持续复制,用于目录的复制

cp  file1(原文件) file2(复制后的文件)  用于文件的复制

cp -i file1 file2 若目标文件已经存在时,在覆盖时会先询问

cp -u file1 file2 目标文件与源文件有差异时才会复制

cp -a file1 file2 将文件的特性一块复制

cp -p file1 file2  和-a差不多,常用于备份

155512522_6_20190303035037785.png

155512522_7_20190303035038332.png

5. mv file 目标目录     移动文件至目标目录

也可以移动很多文件,只要最后是目标文件夹,中途不出现目录就行

155512522_8_20190303035038816.png

而且linux没有改名命令,需要在移动的时候改名

155512522_9_20190303035039394.png

155512522_10_20190303035039988.png

如果只想单单改名的话就只在当前目录mv file1 file2

155512522_11_20190303035040379

6. rm 文件   删除文件

rmdir 目标空文件夹     只能删除空的文件夹

rm -r 目标文件夹        (递归)删除非空文件夹

155512522_12_20190303035040941

二、文件的常用命令

1.  echo xxx 重定向 > 覆盖原文件

echo xxx 重定向 >> 追加原文件

155512522_13_20190303035041394

2.  查看文本内容

more filename  查看文件内容   ctrl b前翻  ctrl f 后翻

less filename   和more用法相同,但是看完最后一行内容不自动退出(more自动退出),需要按q才会退出

155512522_14_20190303035042160

3.查看很长文件的前x行和后x行

head -x filename

tail -x filename

155512522_15_20190303035042894.png

4.多个文件一起查看

cat file1 file2 ....

155512522_16_20190303035043379

cat file1 file2 file3... >(>>) file4   把n个文件连到一块成为file4

155512522_17_20190303035043957.png

155512522_18_20190303035044441.png

5.  grep 关键字 目标文件/目录文件  匹配文件中的行

155512522_19_20190303035044910

6.   more file | grep 关键字          将要输出的内容交给grep先匹配再输出

m

155512522_20_20190303035045488

三、文件的压缩和打包

打包和压缩是不一样的,打包(tar)是把很多小文件放在一起,容量不变,压缩是用算法将文件大小容量变小

1. 打包和解包

打包:tar cfv xxx.tar 目标文件  (其中cfv分别指create/file/view? 能看到过程 不想看到过程就把v去掉)

解包:tar xfv xxx.tar

155512522_21_20190303035045988

2.打包 压缩,解压 解包

一般都一起用

155512522_22_20190303035046566.png

155512522_23_201903030350474

四、文件的查找

1.根据文件后缀名找  find 目标目录/*.后缀

155512522_24_20190303035047504

2.

155512522_25_20190303035047926.png

155512522_26_20190303035048363

五、Liunx系统命令

多用户多任务

1. whoami显示当前的用户         who 显示谁在线

2. su - 用户名      切换用户

su后加-的话不仅账户切换过去了,环境变量什么的也都切换过去了,不加-的话,仅仅使用这个用户的权限,不使用其他

3. free查看内存

4. top查看资源管理器

5. ps -aux  查看进程          ps -aux | grep 关键字    查看关键字的进程

6. kill  进程号     杀掉进程,root身份运行

pkill 进程名 通过进程名杀进程,注意杀掉的是 *进程名*  的进程

六、文件的挂载

155512522_27_20190303035048801

七、命令模式下的光标移动快捷键

155512522_28_20190303035049285.png

155512522_29_20190303035049785

155512522_30_20190303035050301(行数从上往下数)

八、Linux的用户管理

1.添加组

sudo -s 将用户身份提升为管理员

groupadd  组名      添加组(系统自动分配id)

groupadd  -g  id   组名  添加组(自己指定id)

155512522_31_20190303035050769.png

more /ect/group进行查看

2.修改组

groupmod -g  新id  原组名

groupmod -n   新组名  原组名

3.删除组

groupdel  组名

155512522_32_2019030303505135

4. 添加一个用户

useradd  用户名

添加一个用户会自动添加一个与用户同名的组

155512522_33_20190303035051379.png

所以我们添加用户的时候指定组

useradd  用户名 -g 原先存在的组名

useradd  用户名 -d 家目录     修改家目录

155512522_34_20190303035051660.png

新建的poly也属于1002组  所以显示组的时候不会显示poly

5.修改用户

usermod -g 要移动到的组名 要移动的组名  移动用户去别的组

155512522_35_20190303035051973

6.删除用户

userdel 用户名

九、权限管理

1.读(read 4)、写(write  2)、执行权限(excute 1)

rwx 7          -wx 3

rw- 6          -w- 2

r-x 5           --x

r-- 4

2.用户的三种身份

主人user 同组group  不认识other  (u 7  g 5  o 5)

3.修改权限的办法(两种)

相对法和绝对法

相对法:在原有权限基础上,对不同的角色进行权限的加/减

1. chmod u /- r/w/x  文件名

先写一个小脚本test.sh

155512522_36_20190303035052316.png

ll 查看文件权限,这里可以看到test.sh的user权限是rw 不可执行

155512522_37_20190303035052723

此时修改权限 chmod u x test.sh 此时文件就有了执行的权限    ./test.sh 执行一下

155512522_38_20190303035053207

如果将此文件的权限变成 ---- -wx --x,需执行chmod u-rwx test.sh   / chmod g-r wx test.sh  /  chmod o-r x test.sh

2.修改一个文件的主人和组

chown 新用户 文件

155512522_39_20190303035053723.png

155512522_40_201903030350544.png

chgrp 新组名 文件

155512522_41_20190303035054332.png

绝对法:不需要考虑之前的角色以及对应的权限,直接指定最终的各角色权限

比如上面的例子,如果将test.sh修改回原来的权限,只需要

chmod 744(自己计算)  test.sh

适合改动比较大的

十、rpm软件管理包

三种安装软件方法 rpm/yum/软件编译

rpm

red hat package manager是一个开放的软件包管理系统

RPM有五大功能:安装卸载升级查询验证

RPM包名称有其特有的格式 name-version.type.rpm

rpm -i      安装特定的软件

rpm -e     卸载软件

rpm -q     查询特定的软件包是否在系统里被安装

rpm -U  升级

yum

管理rpm包的后台程序,用python写成

155512522_42_20190303035054582

十一、安装mysql

sudo apt-get install mysql-server mysql-client

安装完成过后需要切换到root用户下才能登录,而且默认安装后mysql是没有密码的,此时需要进入mysql里修改密码

1.update mysql.user set authentication_string=PASSWORD(“8888″) where User=’root’ and Host ='localhost';

2.update mysql.user set plugin=”mysql_native_password”;

3.flush privileges;

4.quit;

然后再重启mysql服务 sudo /etc/init.d/mysql stop/start

此时就能用密码登录mysql了

****MySQL安装后的目录结构分析(此结构只针对于使用apt-get install 在线安装情况):

数据库存放目录: /var/lib/mysql/

相关配置文件存放目录: /usr/share/mysql

相关命令存放目录: /usr/bin(mysqladmin mysqldump等命令)

启动脚步存放目录: /etc/rc.d/init.d/

十二、shell入门

首先打开一个终端,在终端里能做的操作,以及在终端里执行的命令,都能同样的写到.sh脚本里去(参照windows下的.bat文件来理解)

1.现在来写一个最简单的脚本文件

#!/bin/bash //将调用bin下的bash解释

echo first shell

cd save //进入主目录下的文件夹

ls //列出目录下的内容

155512522_43_20190303035055113.png

2.自定义变量/系统变量/命令值返回变量

#!/bin/bash

age=19

name=lx

echo $name is $age years old

#!/bin/bash

echo $HOME

echo $USER

#!/bin/bash

var1=`date %y%m%d`

echo $var1

date %y%m%d

3. 命令表达式/文件判断表达式

格式[-d ./filename]

-d 判断文件是否存在且是目录

-f 文件是否存在且是文件

-e 是否存在  -r是否可读  -w是否可写  -x是否可执行

#!/bin/bash

if mkdir test

then

echo yes

else

echo fail

fi

#!/bin/bash

if [ -d ./test ]

then

echo dir exists

elif mkdir test

then

echo ok

else

echo fail

fi

十三、定时任务

crontab -e进入任务编辑状态

格式:*****(分时日月周) 命令

例如: 21*** aaa # 每天1:02执行aaa命令      */2**** bbb #代表每两分钟执行bbb命令

01 14 * * * date >> save/c.txt //14:01分向c.txt写入时间

*/1 14 * * * date >> save/c.txt //在14时每一分钟都向txt写入时间

155512522_44_20190303035055504.png

155512522_45_20190303035056129.png

执行结果会被发送到root邮箱里,如果不想收到定时任务的信息,可以把输出重定向

21*** aaa >/dev/null 2>&1

十四、数据库的定期备份

目标:每天三点,导出sql,压缩,并按日期存储在/data 下

知识:crontab定时任务 mysqldump导出 tar压缩 按日期创建文件

1.按日期创建文件

date %Y%m%d%H%M

date -d "-3 minutes" %Y%m%d%H%M

2.mysqldump导出

注意mysqldump的命令所在文件夹 (我这里是/usr/bin)

执行: /usr/bin/mysqldump -uroot -p(密码)  -B(数据库名) > /data/filename.sql

3.tar压缩

tar cfvz /data/文件名.tar.gz  /data/filename.sql

4.定时任务

*/1 **** /bin/bash /data/bak.sh

#bak.sh

#!/bin/bash

#格式化时间

tod=`date %Y%m%d%H%M`

old=`date -d "-3minutes" %Y%m%d%H%M`

#压缩

/usr/bin/mysqldump -uroot -p8888 -B sys > /data/sys.sql

tar cfvz /data/$tod.tar.gz /data/sys.sql

#把老的文件删除

rm -rf sys.sql

#将三分钟之前的文件删除

if [ -d /data/$old.tar.gz ]

then

rm -rf /data/$old.tar.gz

fi

#定时任务 每一分钟执行一下bak.sh文件

*/1**** /bin/bash /data/bak.sh

来源:http://www.icode9.com/content-3-129201.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值