Skip to content

Commit

Permalink
add linux
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhanTianYou authored and ZhanTianYou committed Sep 18, 2018
1 parent 2ed3417 commit 909e0b3
Show file tree
Hide file tree
Showing 19 changed files with 2,688 additions and 0 deletions.
149 changes: 149 additions & 0 deletions Linux/001-认识Linux.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
---
## 1 Linux发展

0. Unix宣布私有化
1. Andrew S. Tanenbau教授参考UNIX设计开发了Minix
2. Linus Torvalds 根据Minix开发了Linux根发布
3. 用芬兰吉祥物**企鹅**作为Linux标志

---
## 2 版本

Linux版本分为内核版本和发行版本

- Linux内核版本是Linux的核心版本,是官方的发布的,官网为:`http://www.kernel.org/`
- Linux发行版本是由各个厂商基于内核开发并发布的,主要包括:
- redhat 服务器,没有图形界面
- centOS 和redhat一致,完全免费
- ubuntu 有图形界面,个人版本
- fedora 有redhat公司开发,个人版本

---
## 3 开源软件

开放源代码的软件,比如

- PHP
- python
- apache
- nginx
- MySQL
- Ruby
- MongoDB

---
## 4 Linux的应用领域

### 企业服务器

www.netcraft.com 网站可以查看目前服务器的市场占比

### 嵌入式开发

- Android就是基于Linux
- 机顶盒

---
## 5 Linux与Windows的不同

- Linux严格区分大小写
- Linux中所有内容以文件的形式保存,包括硬件
- Linux不靠扩展名区分文件类型,但是有一些约定俗成的扩展名,可以帮助管理员更好的区分文件类型,让Linux更高效率的处理文件,比如下面扩展名(需要注意的是,这些扩展名不是必须的)
- 压缩包:`*.gz、*.bz2、*.tar.bz2、*.tgz`
- 二进制软件包:`*.rpm`
- 网页文件:`*.html、*.php`
- 脚本文件:`*.sh`
- 配置文件:`*.conf`

---
## 6 字符界面的优势

一般用于企业服务器的Linux版本不会有推行界面,只有字符界面,为什么呢?

1. 字符界面占用系统资源更少
2. 安全性更高,做的事越少,犯错的几率也就越小


---
## 7 使用虚拟机安装Linux

对于初学者推荐优先使用虚拟机模拟Linux系统,因为Linux相对于Windows上手难度较高。

虚拟机推荐:

- VMware
- VirtualBox

**安装时的网卡设置:**

- 桥接网卡 虚拟机与真机通信利用真实的本地网卡,配置简单,虚拟机会占用真实网段的IP
- NAT 虚拟机上网,不能跟其他真机通讯
- HOST-ONLY 不能上网,不能通讯。

**技巧**
- 创建快照,保存状态,方便恢复
- 克隆系统

---
## 8 系统分区

- 主分区:最多四个
- 扩展分区
- 最多只能有一个
- 主分区+扩展分区最多能有4个
- 不能写入数据,只能包含逻辑分区
- 逻辑分区

**格式化:**

- 格式化不是为了清空数据,而是为了写入文件系统。

格式化做的事:

- 把磁盘分成一个一个的数据块(block),默认为`4kb`
- 文件列表



---
## 9 Linux系统各文件夹作用

```
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录(特权阶级)
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 即unix system resource最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
|---/usr/x11r6 存放x window的目录
|---/usr/bin 众多的应用程序
|---/usr/sbin 超级用户的一些管理程序
|---/usr/doc linux文档
|---/usr/include linux下开发和编译应用程序所需要的头文件
|---/usr/lib 常用的动态链接库和软件包的配置文件
|---/usr/man 帮助文档
|---/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
|---/usr/local/bin 本地增加的命令
|---/usr/local/lib 本地增加的库
```
220 changes: 220 additions & 0 deletions Linux/002-ubuntu安装与环境配置.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
## 1 安装 ubuntu(双系统)

预备设置:windiws关闭快速启动,bios关闭安全启动。

1. U盘启动
2. uefi警告时选择`后退`
3. 分区为:
- `/Boot`(引导分区) ,1000M ,主分区
- `/`(根分区) ,30760M ,这里不要设置的太小,毕竟可能安装许多软件
- 交换分区,8000M。
- `/home`(用户目录), 剩余所有容量
4. 安装完毕
5. 进入windows10,使用easyBCD添加引导项:`grub2-自动选择`


---
## 2 ubuntu环境搭建与相关配置

### install unity tools

```
sudo add-apt-repository ppa:freyja-dev/unity-tweak-tool-daily
sudo apt-get update
sudo apt-get install unity-tweak-tool
```

### install aptitude

aptitude工具是基于apt的一款安装工具,优点是可以自动解决安装和卸载时候的依赖关系。

```
sudo apt install aptitude
```

### 安装工具

```
sudo aptitude install shutter//安装截屏软件shutter
sudo apt install docky//docky工具栏:使用 apt/apt-get 可能需要重启才能生效,用aptitude安装后可以直接使用
```

### 安装主题

```
//主题
sudo add-apt-repository ppa:noobslab/themes
sudo apt-get update
sudo apt-get install flatabulous-theme
//配套图标
sudo add-apt-repository ppa:noobslab/icons
sudo apt-get update
sudo apt-get install ultra-flat-icons
```

### install jdk

```
//首先安装软件包管理工具
sudo apt-get install python-software-properties
sudo apt-get install software-properties-common
//Oracle
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
//open jdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk
```

### wiznote

```
sudo add-apt-repository ppa:wiznote-team //添加官方源
sudo apt-get update //更新源
sudo apt-get install wiznote //安装为知笔记
```

### oh-my-zsh

```
sudo apt-get install zsh
```

### vim

```
sudo apt-get install vim-gtk
vim /etc/vim/vimrc #编辑配置文件,加入以下配置
set nu
set tabstop
set cursorline
set ruler
```

### dos2unix

```
sudo apt-get install dos2unix
```

### Tomcat

从官网下载tomcat,然后解压即可,远程连接时要开放对应的端口。

```shell
# 创建tomcat存放目录,比如 /usr/local 目录下
cd /usr/local
mkdir tomcat

# 下载tomcat
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz

# 解压
tar -xvf apache-tomcat-8.5.31.tar.gz

# 启动tomcat(记得开放8080端口)
./startup.sh
./shutdown.sh
```


### MySQL

```
apt-get update
apt-get install mysql-server mysql-client
测试是否安装成功:netstat -tap | grep mysql
启动MySQL服务:service mysql start
停止MySQL服务:service mysql stop
服务状态:service mysql status
修改 MySQL 的管理员密码:mysqladmin -u root password newpassword
正常情况下,mysql占用的3306端口只是在IP 127.0.0.1上监听,拒绝了其他IP的访问(通过netstat可以查看到)取消本地监需要修改 my.cnf 文件:
1 vim /etc/mysql/my.cnf,把 bind-address = 127.0.0.1注释掉,如果配置文件中没有bind-address = 127.0.0.1,则添加下面内容:
[mysqld]
bind-address = 0.0.0.0
2 重启MySQL服务器
3 重新登录 mysql -uroot -p
4 在mysql命令行中运行下面两个命令
grant all privileges on *.* to 'root'@'%' identified by '远程登录的密码';
flush privileges;
5 检查MySQL服务器占用端口 netstat -nlt|grep 3306
数据库存放目录: /var/lib/mysql/
相关配置文件存放目录:/usr/share/mysql
相关命令存放目录:/usr/bin(mysqladmin mysqldump等命令
启动脚步存放目录:/etc/rc.d/init.d/
```

sql授权说明

语法:`grant 权限1,权限2, ... 权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';`

- `权限1,权限2,... 权限n` 代表 `select、insert、update、delete、create、drop、index、alter、grant、references、reload、shutdown、process、file` 等14个权限。
-`权限1,权限2,... 权限n``all privileges` 或者 `all` 代替时,表示赋予用户全部权限。
-`数据库名称.表名称``*.*` 代替时,表示赋予用户操作服务器上所有数据库所有表的权限。
- 用户地址可以是localhost,也可以是IP地址、机器名和域名。也可以用 `'%'` 表示从任何地址连接。
- '连接口令',远程连接时使用的密码,不能为空,否则创建失败。

>privileges 即特权的意思。
### Nginx


```shell
# 先下载安装 nginx 和 nginx-rtmp 编译依赖工具
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

# 下载 nginx 和 nginx-rtmp源码(wget是一个从网络上自动下载文件的自由工具)
wget http://nginx.org/download/nginx-1.7.5.tar.gz

# 解压 nginx
tar -zxvf nginx-1.7.5.tar.gz

# 切换到 nginx-目录
cd nginx-1.7.5

# 编译安装nginx
make
sudo make install

# 安装nginx init脚本
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx

# 开启启动nginx
sudo update-rc.d nginx defaults

# 启动和停止nginx 服务,生成配置文件
sudo service nginx start
sudo service nginx stop
sudo service nginx restart
```


### 开放端口号

```
查看哪些端口被打开 netstat -anp
关闭端口号:iptables -I INPUT -p tcp --drop 端口号 -j DROP
  iptables -I OUTPUT -p tcp --dport 端口号 -j DROP
打开端口号:iptables -I INPUT -ptcp --dport 端口号 -j ACCEPT
将修改永久保存到防火墙中:iptables-save
关闭/打开防火墙(需要重启系统)
开启: chkconfig iptables on
关闭: chkconfig iptables off
```

---
## 引用

- [Ubuntu 16.04安装Java JDK](http://topspeedsnail.com/ubuntu16-install-java-jdk/)
- [Windows10+Ubuntu双系统安装[多图]](http://www.jianshu.com/p/2eebd6ad284d)
- [Ubuntu 16.04主题美化和软件推荐(oh-my-zsh)](http://www.linuxidc.com/Linux/2016-09/135165p2.htm)
- [Ubuntu美化系列文章](http://www.jianshu.com/u/b3288a70ead9)
Loading

0 comments on commit 909e0b3

Please sign in to comment.