## Linux基础
* 计划任务
* 压缩解压缩
* 软件安装
* 环境安装
## 复习
```
useradd 用户名 /etc/passwd
-m
-d
-g
-u
-s
passwd 用户
su
chmod -R 775
g
u
o
a
+x
+r
+w
chown
chattr
cp
vim 命令 ioasl 底部命令模式
:set nu
/
?
chgrp
```
## Linux启动顺序
* 开机bios 加电自检
* 读取硬盘mbr 引导分区
* 加载Linux内核
* 加载 init进程 系统初始化
* init 0 关机
* init 6 重启
* init 1 单用户模式
* init 2 3 4 5 带图形界面的完全多用户模式
* vim /etc/init/rc-sysinit.conf 设置启动级别
* 启动内核
* 执行不同的脚本程序 /etc/rc0~6.d
* 执行 /etc/init.d/rc.local 看看哪些软件开机自动启动
> 面试常问 runlevel 查看当前的运行级别
## Linux计划任务 重点
在指定的时间 做指定的事情 周期性的
> vim /etc/crontab
```
46 9 30 8 4 need888 echo 'kangbazi666' >> /home/need888/test.txt
分 时 日 月 周 用户名 命令
* * * * * 用户名 命令
每分钟 每小时 每天 每月 每周 执行命令
sudo crontab -e 第二种新建计划任务的方法
* * * * * 命令
分 时 日 月 周 命令 没有用户名
0~59 0~23 1~31 1~12 0~6
crontab -e 默认是给 root 用户创建的计划任务
crontab -e -u 用户名 给指定的用户 创建计划任务
crontab -l 列出所有的计划任务 只显示 crontab -e的计划任务 不显示 vim /etc/crontab 配置文件中的
crontab -i 删除之前提示
crontab -r 清空所有的计划任务
如果需要删除 指定的计划任务
需要 先 crontab -e
进去之后删除
service cron start|stop|restart
每天 0点备份数据库
0 0 * * * mysqldump
每个星期二2点数据同步
0 2 * * 2 rsync
每个月15号0点计算工资
0 0 15 * * /home/jd/slaray.py
每隔1小时执行一次脚本
0 */1 * * * shell.py
每周一到周五 每天的八点 12点 14点 18点打卡
0 8,12,14,18 * * 1-5 dakai.py
每天的8点-22点必须在教室
0 8-22 * * * classroom.py
```
## at 用来执行 一次性任务 适用于突发性 和 临时性的任务
```shell
sudo apt-get install at #安装
service atd status #查看服务是否运行 active (running)
service atd restart|start|stop #服务重启开始关闭
at [-ldc]
-l 列出任务列表
-d 任务编号 #取消任务
-c 任务编号 #显示该任务的实际内存
at 时间 #然后回车
输入命令
ctrl+d 即可
need888@need:~$ at 10:25
warning: commands will be executed using /bin/sh
at> echo 6666 >> /home/need888/haha.haha<EOT>
job 2 at Thu Aug 30 10:25:00 2018
need888@need:~$ at -l
2 Thu Aug 30 10:25:00 2018 a need888
at now + 20minutes|days|hours|weeks
at now + 8days 然后回车
输入命令
CTRL+d
```
## 压缩 与解压缩
windows 常见的压缩包 .rar .zip .7zip .iso
linux 常见的压缩包 .gz .bz2 .xz .tar .zip
#### .gz 的压缩 与解压缩
```
sudo apt-get install gzip 没有安装先安装
gzip 文件名1 文件名2 文件名3 支持批量压缩 源文件被替换成 .gz结尾的文件
gzip -d 1.txt.gz 2.mp3.gz 3.avi.gz 4.rmvb.gz
-d 解压缩
gzip 不能压缩目录
```
#### .bz2的压缩与解压缩
```
sudo apt-get install bzip2
bzip2 1.txt 2.mp3 3.avi 4.rmvb 支持批量压缩 源文件被替换掉 替换成 .bz2的文件 也不能压缩目录
bzip2 -z 文件名 强制压缩
bzip2 -d 文件名 解压缩
bzip2 -d 1.txt.bz2 2.mp3.bz2 3.avi.bz2 4.rmvb.bz2 支持批量解压缩
```
#### zip unzip
```
sudo apt-get install zip unzip
zip goods.zip 1.txt 2.mp3 3.avi 4.rmvb study/ 支持批量压缩 还可以压缩目录 源文件还存在
unzip goods.zip 源文件 存在
```
#### tar
```
-c 打包
-x 解包
-v 显示过程
-f 指定文件名
-t 查看包中的内容
tar -cvf kangbazi.tar 1.txt 2.mp3 3.avi 4.rmvb goods.zip study/
生成一个.tar 的文件 源文件还存在 支持打包目录 .tar 仅仅是打包 没有压缩
tar -tf kangbazi.tar #查看包里的内容
tar -xvf 解包
tar -xvf kangbazi.tar
```
### tar 打包并压缩 解包并解压缩 .gz
```
-z
tar -zcvf kangbazi.tar.gz 1.txt 2.mp3 3.avi 4.rmvb goods.zip study/
新名字.tar.gz 文件1 文件2 目录1 目录2 源文件还存在 支持压缩目录
tar -zxvf kangbazi.tar.gz
包名
```
#### tar 打包并压缩 解包并解压缩 .bz2
```
-j
tar -jcvf kangbazi.tar.bz2 1.txt 2.mp3 3.avi 4.rmvb goods.zip study/
新名字.tar.bz2 文件1 文件2 目录1 目录2 源文件还存在 支持压缩目录
tar -jxvf kangbazi.tar.bz2
包名
```
#### tar 打包并压缩 解包并解压缩 .xz
```
-J 大写
tar -Jcvf kangbazi.tar.xz 1.txt 2.mp3 3.avi 4.rmvb goods.zip study
xz 打包并压缩
tar -Jxvf kangbazi.tar.xz
xz 解包并解压缩
```
## 软件安装
* apt-get 安装
* dpkg 安装
* 源码编译安装
1. dpkg 安装 类似于 windows 的 exe安装 只要下载下来 安装即可
有个问题 : 存在依赖关系 你安装 A之前 必须先安装上 B 安装B之前 先安装上 C CBA
2. apt-get 安装 解决了 这个依赖关系 自动下载 依赖包 全程自动安装 但是不能指定安装的位置
好处 自动 快
3. 源码编译安装 Linux下 软件都是 用C 和 C++编写 将代码解析成 机器能够是别的过程 就叫做 编译安装
麻烦 但是 比较符合机器的性能 对于服务器来讲 这个 效果最好 这个可以指定安装在什么位置
#### apt-get 安装
```
sudo apt-get -y install 包名 -y在这里是提示
sudo apt-get -y remove 包名
sudo apt-cache showsrc 包名 查看软件包信息
sudo apt-get source 包名 获取源码信息
sudo apt-get update 获取新的软件包信息
sudo apt-get upgrade 升级可以更新的软件包
```
```
sudo snap install pycharm-professional --classic
```
## dpkg Debian package 的缩写
* wget -c 链接地址
```
sudo apt-get install wget
wget -c http://cdn2.ime.sogou.com/dl/index/1524572264/sogoupinyin_2.2.0.0108_amd64.deb?st=jzvQj9-mYO17oKd-c9Bgsg&e=1535613142&fn=sogoupinyin_2.2.0.0108_amd64.deb
```
* curl -O 链接地址
```
sudo apt-get install curl
curl -O http://cdn2.ime.sogou.com/dl/index/1524572264/sogoupinyin_2.2.0.0108_amd64.deb?st=jzvQj9-mYO17oKd-c9Bgsg&e=1535613142&fn=sogoupinyin_2.2.0.0108_amd64.deb
sudo apt-get -f install
sudo apt-get install fcitx
sudo apt-get install fcitx-config-gtk
sudo apt-get install fcitx-table-all
sudo apt-get install im-switch
sudo dpkg -i sogoupinyin.deb
系统设置->语言支持 键盘输入发 选择 fcitx
```
```
dpkg -i 包名.deb
dpkg -l | grep 报名 查看软件包
dpkg -r
dpkg -P 包名 删除软件的时候 连配置文件一起删除
```
### 源码 编译安装 安装 pycharm 终端下 安装
```
1.先下载 软件包
2. sudo apt-get install man gcc make lsof ssh openssl tree vim dnsutils iputils-ping net-tools psmisc sysstat curl telnet traceroute wget libbz2-dev libpcre3 libpcre3-dev libreadline-dev libsqlite3-dev libssl-dev llvm zlib1g-dev git mysql-server mysql-client zip p7zip 安装上 基础的类库
3.下载 pycharm-professional-2018.2.2.tar.gz 选择专业版 不要社区版
4.cd pycharm-2018.2.2/bin
5.sudo ./pycharm.sh
6.选择do not import settings
7.
激活的时候 选择 license server : http://idea.imsxm.com
```