linux tar cfv,Linux学习

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

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

一、 目录的常用命令:

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

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

7547e9a39f3a307335a3f44c4357d0a9.png

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

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

3a972a52339513936a2ef480cacd80f1.png

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

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

c9bef205361904a2b438d1228cf7e370.png

2. cd进入/退出目录

3.mkdir 建立新的文件夹

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

07bb526e1dbbff445d3f36f0d56a263e.png

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

8024b828a640876c0b71078ead383a05.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差不多,常用于备份

cb32d16a13a4dce9e56f492fee79dc14.png

c408b26398750c22e5858aac57b30420.png

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

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

249bb51d811853a44b89b14cb7d64040.png

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

20ba1b661e2fef3c4c55e458d50c7c38.png

9c1f6fdbbce7e54798ae3cbf0173bc85.png

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

1a1f2e535a21fe803853132a739ef1ac.png

6. rm 文件   删除文件

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

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

df43dd80b8be063ccf76e390b696ee1d.png

二、文件的常用命令

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

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

0290fc18c94f7b021f9b5a4b3fabb22b.png

2.  查看文本内容

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

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

9ece12f73ad836496d052ac6f49f60d4.png

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

head -x filename

tail -x filename

3e103f3fea5894170d3cefdf69dd80da.png

4.多个文件一起查看

cat file1 file2 ....

5c801529ff75bea0d5220571611cf4a9.png

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

8b1bf6f653455fd1258452996be5753c.png

b6c5d0d0c0b241fe481b373b8da10cef.png

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

3018a8869a73dfc542ca3eb069605f9c.png

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

m

e0ad6b5c0195985cecd719bef05e70c6.png

三、文件的压缩和打包

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

1. 打包和解包

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

解包:tar xfv xxx.tar

4e38aee146300fa3f14701b28a40ade3.png

2.打包+压缩,解压+解包

一般都一起用

984fe2e3083b60e7614bb7ec68b35858.png

c2c5f363883eadc7778521213f03a727.png

四、文件的查找

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

5b6876a806d677b5da3962603d5ffc42.png

2.

88f44f261c48453910639e13bb6f9a7d.png

4dcc5e589032fe892b408c8d7043dfe9.png

五、Liunx系统命令

多用户多任务

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

2. su - 用户名      切换用户

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

3. free查看内存

4. top查看资源管理器

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

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

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

六、文件的挂载

23cd60eedd0af8a38f47df997fafc651.png

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

8afd07b95992da32e3fc010fe5e2f246.png

dfb5003d7d699831dae2407aeaca6eff.png

0a6c2647c145527c53d2db8811c05b02.png(行数从上往下数)

八、Linux的用户管理

1.添加组

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

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

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

bda9ee5c1899f6def8d967a247b9561d.png

more /ect/group进行查看

2.修改组

groupmod -g  新id  原组名

groupmod -n   新组名  原组名

3.删除组

groupdel  组名

fe2457939df19ab9326ea3093f5038e2.png

4. 添加一个用户

useradd  用户名

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

8c160c1ca68c1b743b282edcfa7bd75a.png

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

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

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

7306f7f4a984a09f7412a53a6e3ecac3.png

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

5.修改用户

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

0a3ae4b34e2f9472ad686843a4787a87.png

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

ad1b4c581072e0ad2e2095ea021ef838.png

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

ba29aabaca70e38529c81060020bbec5.png

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

ffc20478315eea03db02c128b31d3fe6.png

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

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

chown 新用户 文件

ba0e2f117601f73f7fcab78b17644957.png

61bfc4ddb21ab341063eb3ec1721cfa8.png

chgrp 新组名 文件

766427a5892fe6b8f294cacdaa98febc.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写成

5f7545e2ac141f7501924efa54c6c432.png

十一、安装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 //列出目录下的内容

4c87b4c8dd4dfa0c9c6d56375185b75a.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写入时间

0e1a0538171783134d3a13cdeeea5edf.png

a8d5d9f0ec34384ae70105ec7118b37f.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

标签:bin,文件,tar,mysql,学习,sh,Linux,目录

来源: https://blog.csdn.net/bulbboy/article/details/88055421

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值