mirror of
https://github.com/dunwu/linux-tutorial.git
synced 2024-04-15 19:55:24 +08:00
📝 Writing docs.
This commit is contained in:
parent
ef59980501
commit
df3f204076
78
README.md
78
README.md
@ -1,16 +1,54 @@
|
|||||||
# OS
|
# OS
|
||||||
|
|
||||||
## [linux 教程](docs/linux/README.md)
|
## 内容
|
||||||
|
|
||||||
## [shell 教程](docs/shell.md)
|
### [Linux](docs/linux/README.md)
|
||||||
|
|
||||||
## [python 教程](docs/python.md)
|
- [查看 Linux 命令帮助信息](docs/linux/01.查看Linux命令帮助信息.md) - 关键词:`help`, `whatis`, `info`, `which`, `whereis`, `man`
|
||||||
|
- [Linux 文件目录管理](docs/linux/02.Linux文件目录管理.md) - 关键词:`cd`, `ls`, `pwd`, `mkdir`, `rmdir`, `tree`, `touch`, `ln`, `rename`, `stat`, `file`, `chmod`, `chown`, `locate`, `find`, `cp`, `mv`, `rm`
|
||||||
|
- [Linux 文件内容查看命令](docs/linux/03.Linux文件内容查看编辑.md) - 关键词:`cat`, `head`, `tail`, `more`, `less`
|
||||||
|
- [Linux 文件压缩与解压命令](docs/linux/Linux文件压缩与解压命令.md) - 关键词:`tar`, `gzip`, `zip`, `unzip`
|
||||||
|
- [Linux 用户管理命令](docs/linux/Linux用户管理命令.md) - 关键词:`groupadd`, `groupdel`, `groupmod`, `useradd`, `userdel`, `usermod`, `passwd`, `su`, `sudo`
|
||||||
|
- [Linux 系统管理命令](docs/linux/Linux系统管理命令.md) - 关键词:`reboot`, `exit`, `shutdown`, `date`, `mount`, `umount`
|
||||||
|
- [Linux 性能管理命令](docs/linux/Linux性能管理命令.md) - 关键词:`df`, `du`, `top`, `free`, `iotop`
|
||||||
|
- [Linux 进程管理命令](docs/linux/Linux进程管理命令.md) - 关键词:`ps`, `kill`, `systemctl`, `service`, `crontab`
|
||||||
|
- [Linux 网络应用命令](docs/linux/Linux网络应用命令.md) - 关键词:`curl`, `wget`, `telnet`, `ip`, `hostname`, `ifconfig`, `route`, `ssh`, `ssh-keygen`, `iptables`
|
||||||
|
- [Linux 网络测试命令](docs/linux/Linux网络测试命令.md) - 关键词:`host`, `nslookup`, `nc`/`netcat`, `dig`, `ping`, `traceroute`, `netstat`
|
||||||
|
- [yum 命令](docs/linux/yum.md)
|
||||||
|
- [linux 监控](docs/linux/linux监控.md)
|
||||||
|
- [samba 使用详解](docs/linux/samba使用详解.md)
|
||||||
|
- [命令行的艺术(转载)](docs/linux/命令行的艺术.md)
|
||||||
|
|
||||||
## [vim 教程](docs/vim/README.md)
|
### [Shell](docs/shell.md)
|
||||||
|
|
||||||
## [git 教程](docs/git/README.md)
|
### [Python](docs/python.md)
|
||||||
|
|
||||||
## [docker 教程](docs/docker/README.md)
|
### [Vim](docs/vim/README.md)
|
||||||
|
|
||||||
|
### [Git](docs/git/README.md)
|
||||||
|
|
||||||
|
- [快速指南(quickstart)](docs/git/git-quickstart.md)
|
||||||
|
|
||||||
|
#### git 基础篇(basics)
|
||||||
|
|
||||||
|
- [安装(installation)](docs/git/basics/git-installation.md)
|
||||||
|
- [配置(configuration)](docs/git/basics/git-configuration.md)
|
||||||
|
|
||||||
|
#### git 进阶篇(advanced)
|
||||||
|
|
||||||
|
- [git-flow 工作流](docs/git/advanced/git-flow.md)
|
||||||
|
|
||||||
|
#### git 附录(appendix)
|
||||||
|
|
||||||
|
- [常见问题(faq)](docs/git/appendix/git-faq.md)
|
||||||
|
- [命令(command)](docs/git/appendix/git-command.md)
|
||||||
|
- [资源(resource)](docs/git/appendix/git-resource.md)
|
||||||
|
|
||||||
|
### [Docker](docs/docker/README.md)
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
- [Windows 工具](docs/windows/Windows工具.md)
|
||||||
|
|
||||||
## 部署
|
## 部署
|
||||||
|
|
||||||
@ -20,19 +58,19 @@
|
|||||||
|
|
||||||
### 常见软件安装配置详述
|
### 常见软件安装配置详述
|
||||||
|
|
||||||
> *`CODES`:安装配置脚本,按照说明安装使用即可。*
|
> _`CODES`:安装配置脚本,按照说明安装使用即可。_
|
||||||
>
|
>
|
||||||
> *`DOCS`: 安装配置文档,说明安装的方法以及一些注意事项。*
|
> _`DOCS`: 安装配置文档,说明安装的方法以及一些注意事项。_
|
||||||
|
|
||||||
* JDK 安装和配置:| [CODES](codes/deploy/tool/jdk) | [DOCS](docs/deploy/tool/jdk/install-jdk.md) |
|
- JDK 安装和配置:| [CODES](codes/deploy/tool/jdk) | [DOCS](docs/deploy/tool/jdk/install-jdk.md) |
|
||||||
* Jenkins 安装和配置:| [CODES](codes/deploy/tool/jenkins) | [DOCS](docs/deploy/tool/mongodb/install-jenkins.md) |
|
- Jenkins 安装和配置:| [CODES](codes/deploy/tool/jenkins) | [DOCS](docs/deploy/tool/mongodb/install-jenkins.md) |
|
||||||
* Kafka 安装和配置:| [CODES](codes/deploy/tool/kafka) | [DOCS](docs/deploy/tool/kafka/install-kafka.md) |
|
- Kafka 安装和配置:| [CODES](codes/deploy/tool/kafka) | [DOCS](docs/deploy/tool/kafka/install-kafka.md) |
|
||||||
* Maven 安装和配置:| [CODES](codes/deploy/tool/maven) | [DOCS](docs/deploy/tool/maven/install-maven.md) |
|
- Maven 安装和配置:| [CODES](codes/deploy/tool/maven) | [DOCS](docs/deploy/tool/maven/install-maven.md) |
|
||||||
* Mongodb 安装和配置:| [CODES](codes/deploy/tool/mongodb) | [DOCS](docs/deploy/tool/mongodb/install-mongodb.md) |
|
- Mongodb 安装和配置:| [CODES](codes/deploy/tool/mongodb) | [DOCS](docs/deploy/tool/mongodb/install-mongodb.md) |
|
||||||
* Nginx 安装和配置:| [CODES](codes/deploy/tool/nginx) | [DOCS](docs/deploy/tool/nginx/install-nginx.md) |
|
- Nginx 安装和配置:| [CODES](codes/deploy/tool/nginx) | [DOCS](docs/deploy/tool/nginx/install-nginx.md) |
|
||||||
* Nodejs 安装和配置:| [CODES](codes/deploy/tool/nodejs) | [DOCS](docs/deploy/tool/nodejs/install-nodejs.md) |
|
- Nodejs 安装和配置:| [CODES](codes/deploy/tool/nodejs) | [DOCS](docs/deploy/tool/nodejs/install-nodejs.md) |
|
||||||
* Redis 安装和配置:| [CODES](codes/deploy/tool/redis) | [DOCS](docs/deploy/tool/redis/install-redis.md) |
|
- Redis 安装和配置:| [CODES](codes/deploy/tool/redis) | [DOCS](docs/deploy/tool/redis/install-redis.md) |
|
||||||
* RocketMQ 安装和配置:| [CODES](codes/deploy/tool/rocketmq) | [DOCS](docs/deploy/tool/rocketmq/install-rocketmq.md) |
|
- RocketMQ 安装和配置:| [CODES](codes/deploy/tool/rocketmq) | [DOCS](docs/deploy/tool/rocketmq/install-rocketmq.md) |
|
||||||
* Tomcat 安装和配置:| [CODES](codes/deploy/tool/tomcat) | [DOCS](docs/deploy/tool/tomcat/install-tomcat.md) |
|
- Tomcat 安装和配置:| [CODES](codes/deploy/tool/tomcat) | [DOCS](docs/deploy/tool/tomcat/install-tomcat.md) |
|
||||||
* Zookeeper 安装和配置:| [CODES](codes/deploy/tool/zookeeper) | [DOCS](docs/deploy/tool/zookeeper/install-zookeeper.md) |
|
- Zookeeper 安装和配置:| [CODES](codes/deploy/tool/zookeeper) | [DOCS](docs/deploy/tool/zookeeper/install-zookeeper.md) |
|
||||||
* Svn 安装和配置:| [DOCS](docs/deploy/tool/svn/install-svn.md) |
|
- Svn 安装和配置:| [DOCS](docs/deploy/tool/svn/install-svn.md) |
|
||||||
|
16
docs/deploy/linux基本配置.md
Normal file
16
docs/deploy/linux基本配置.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
### 设置 Linux 启动模式
|
||||||
|
|
||||||
|
1. 停机(记得不要把 initdefault 配置为 0,因为这样会使 Linux 不能启动)
|
||||||
|
2. 单用户模式,就像 Win9X 下的安全模式
|
||||||
|
3. 多用户,但是没有 NFS
|
||||||
|
4. 完全多用户模式,准则的运行级
|
||||||
|
5. 通常不用,在一些特殊情况下可以用它来做一些事情
|
||||||
|
6. X11,即进到 X-Window 系统
|
||||||
|
7. 重新启动 (记得不要把 initdefault 配置为 6,因为这样会使 Linux 不断地重新启动)
|
||||||
|
|
||||||
|
设置方法:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ sed -i 's/id:5:initdefault:/id:3:initdefault:/' /etc/inittab
|
||||||
|
```
|
121
docs/deploy/tool/mysql/install-mysql.md
Normal file
121
docs/deploy/tool/mysql/install-mysql.md
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
# Mysql 安装
|
||||||
|
|
||||||
|
系统环境:Centos7
|
||||||
|
|
||||||
|
## 安装配置
|
||||||
|
|
||||||
|
通过 rpm 包安装
|
||||||
|
|
||||||
|
centos 的 yum 源中默认是没有 mysql 的,所以我们需要先去官网下载 mysql 的 repo 源并安装。
|
||||||
|
|
||||||
|
### 安装 mysql yum 源
|
||||||
|
|
||||||
|
官方下载地址:https://dev.mysql.com/downloads/repo/yum/
|
||||||
|
|
||||||
|
(1)下载 yum 源
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
(2)安装 yum repo 文件并更新 yum 缓存
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ rpm -ivh mysql80-community-release-el7-1.noarch.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
执行结果:
|
||||||
|
|
||||||
|
会在 /etc/yum.repos.d/ 目录下生成两个 repo 文件
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ls | grep mysql
|
||||||
|
mysql-community.repo
|
||||||
|
mysql-community-source.repo
|
||||||
|
```
|
||||||
|
|
||||||
|
更新 yum:
|
||||||
|
|
||||||
|
```
|
||||||
|
yum clean all
|
||||||
|
yum makecache
|
||||||
|
```
|
||||||
|
|
||||||
|
(3)查看 rpm 安装状态
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ yum repolist enabled | grep mysql.*
|
||||||
|
mysql-connectors-community/x86_64 MySQL Connectors Community 65
|
||||||
|
mysql-tools-community/x86_64 MySQL Tools Community 69
|
||||||
|
mysql80-community/x86_64 MySQL 8.0 Community Server 33
|
||||||
|
```
|
||||||
|
|
||||||
|
### 安装 mysql 服务器
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ yum install mysql-community-server
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动 mysql 服务
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# 启动 mysql 服务
|
||||||
|
$ systemctl start mysqld.service
|
||||||
|
|
||||||
|
# 查看运行状态
|
||||||
|
$ systemctl status mysqld.service
|
||||||
|
|
||||||
|
# 开机启动
|
||||||
|
$ systemctl enable mysqld
|
||||||
|
$ systemctl daemon-reload
|
||||||
|
```
|
||||||
|
|
||||||
|
### 初始化数据库密码
|
||||||
|
|
||||||
|
查看一下初始密码
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ grep "password" /var/log/mysqld.log
|
||||||
|
2018-09-30T03:13:41.727736Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: %:lt+srWu4k1
|
||||||
|
```
|
||||||
|
|
||||||
|
执行命令:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mysql -uroot -p
|
||||||
|
```
|
||||||
|
|
||||||
|
输入临时密码,进入 mysql
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ALTER user 'root'@'localhost' IDENTIFIED BY 'Tw#123456';
|
||||||
|
```
|
||||||
|
|
||||||
|
注:密码强度默认为中等,大小写字母、数字、特殊符号,只有修改成功后才能修改配置再设置更简单的密码
|
||||||
|
|
||||||
|
### 配置远程访问
|
||||||
|
|
||||||
|
```
|
||||||
|
GRANT ALL ON *.* TO 'root'@'localhost';
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 跳过登录认证
|
||||||
|
|
||||||
|
```
|
||||||
|
vim /etc/my.cnf
|
||||||
|
```
|
||||||
|
|
||||||
|
在 [mysqld] 下面加上 skip-grant-tables
|
||||||
|
|
||||||
|
作用是登录时跳过登录认证,换句话说就是 root 什么密码都可以登录进去。
|
||||||
|
|
||||||
|
执行 `service mysqld restart`,重启 mysql
|
||||||
|
|
||||||
|
## 参考资料
|
||||||
|
|
||||||
|
https://www.cnblogs.com/xiaopotian/p/8196464.html
|
||||||
|
https://www.cnblogs.com/bigbrotherer/p/7241845.html
|
||||||
|
https://blog.csdn.net/managementandjava/article/details/80039650
|
||||||
|
http://www.manongjc.com/article/6996.html
|
||||||
|
https://www.cnblogs.com/xyabk/p/8967990.html
|
@ -1,29 +1,74 @@
|
|||||||
# Docker 安装
|
# Docker 安装
|
||||||
|
|
||||||
本教程基于 `Docker 1.13.1`。
|
> 本教程基于 `Docker 1.37`。
|
||||||
|
>
|
||||||
|
> Docker 有两种可安装版本:
|
||||||
|
>
|
||||||
|
> - [Community Edition (CE)](https://www.docker.com/community-edition/),即 Docker 社区版,适合学习。
|
||||||
|
> - [Enterprise Edition (EE)](https://www.docker.com/enterprise-edition),即 Docker 企业版,适合企业级开发使用。
|
||||||
|
|
||||||
Docker 有两种可安装版本:
|
<!-- TOC depthFrom:2 depthTo:2 -->
|
||||||
|
|
||||||
* [Community Edition (CE)](https://www.docker.com/community-edition/),即 Docker 社区版,适合学习。
|
- [Windows 下安装 Docker](#windows-下安装-docker)
|
||||||
* [Enterprise Edition (EE)](https://www.docker.com/enterprise-edition),即 Docker 企业版,适合企业级开发使用。
|
- [安装参考](#安装参考)
|
||||||
|
|
||||||
|
<!-- /TOC -->
|
||||||
|
|
||||||
|
## Windows 下安装 Docker
|
||||||
|
|
||||||
|
安装 Docker Toolbox 步骤:
|
||||||
|
|
||||||
|
(1)双击运行安装包
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180926103056.png)
|
||||||
|
|
||||||
|
(2)点击需要安装的程序,建议全安装
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180926103147.png)
|
||||||
|
|
||||||
|
(3)安装附加选项,建议选择前三个
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180926103213.png)
|
||||||
|
|
||||||
|
(4)安装结果
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180926102959.png)
|
||||||
|
|
||||||
|
### 可能遇到的问题
|
||||||
|
|
||||||
|
问题 1 - bash.exe 找不到
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180926104526.png)
|
||||||
|
|
||||||
|
打开快捷方式的属性窗口,在目标栏设置如下:
|
||||||
|
|
||||||
|
```
|
||||||
|
"C:\Program Files\Git\bin\bash.exe" --login -i "D:\Tools\DockerToolbox\start.sh"
|
||||||
|
```
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180926105007.png)
|
||||||
|
|
||||||
|
问题 2 - Hyper-V 冲突
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180926105357.png)
|
||||||
|
|
||||||
## 安装参考
|
## 安装参考
|
||||||
|
|
||||||
**Enterprise Edition (EE)**
|
**Enterprise Edition (EE)**
|
||||||
|
|
||||||
* https://docs.docker.com/install/windows/docker-ee/
|
- https://docs.docker.com/install/windows/docker-ee/
|
||||||
* https://docs.docker.com/install/linux/docker-ee/ubuntu/
|
- https://docs.docker.com/install/linux/docker-ee/ubuntu/
|
||||||
* https://docs.docker.com/install/linux/docker-ee/rhel/
|
- https://docs.docker.com/install/linux/docker-ee/rhel/
|
||||||
* https://docs.docker.com/install/linux/docker-ee/centos/
|
- https://docs.docker.com/install/linux/docker-ee/centos/
|
||||||
* https://docs.docker.com/install/linux/docker-ee/oracle/
|
- https://docs.docker.com/install/linux/docker-ee/oracle/
|
||||||
* https://docs.docker.com/install/linux/docker-ee/suse/
|
- https://docs.docker.com/install/linux/docker-ee/suse/
|
||||||
|
|
||||||
**Community Edition (CE)**
|
**Community Edition (CE)**
|
||||||
|
|
||||||
* https://docs.docker.com/docker-for-mac/install/
|
- https://docs.docker.com/docker-for-mac/install/
|
||||||
* https://docs.docker.com/docker-for-windows/install/
|
- https://docs.docker.com/docker-for-windows/install/
|
||||||
* https://docs.docker.com/install/linux/docker-ce/ubuntu/
|
- https://docs.docker.com/install/linux/docker-ce/ubuntu/
|
||||||
* https://docs.docker.com/install/linux/docker-ce/debian/
|
- https://docs.docker.com/install/linux/docker-ce/debian/
|
||||||
* https://docs.docker.com/install/linux/docker-ce/centos/
|
- https://docs.docker.com/install/linux/docker-ce/centos/
|
||||||
* https://docs.docker.com/install/linux/docker-ce/fedora/
|
- https://docs.docker.com/install/linux/docker-ce/fedora/
|
||||||
* https://docs.docker.com/install/linux/docker-ce/binaries/
|
- https://docs.docker.com/install/linux/docker-ce/binaries/
|
||||||
|
@ -1,243 +1,124 @@
|
|||||||
<!-- TOC -->
|
# Docker
|
||||||
|
|
||||||
- [Docker 快速指南](#docker-%E5%BF%AB%E9%80%9F%E6%8C%87%E5%8D%97)
|
<!-- TOC depthFrom:2 depthTo:2 -->
|
||||||
- [Orientation](#orientation)
|
|
||||||
- [概念](#%E6%A6%82%E5%BF%B5)
|
- [镜像(Images)](#镜像images)
|
||||||
- [Docker 的优点](#docker-%E7%9A%84%E4%BC%98%E7%82%B9)
|
- [容器(Container)](#容器container)
|
||||||
- [容器和镜像](#%E5%AE%B9%E5%99%A8%E5%92%8C%E9%95%9C%E5%83%8F)
|
- [网络(Networks)](#网络networks)
|
||||||
- [容器和虚拟机](#%E5%AE%B9%E5%99%A8%E5%92%8C%E8%99%9A%E6%8B%9F%E6%9C%BA)
|
- [仓管中心和仓库(Registry & Repository)](#仓管中心和仓库registry--repository)
|
||||||
- [Containers](#containers)
|
|
||||||
- [Dockerfile](#dockerfile)
|
- [Dockerfile](#dockerfile)
|
||||||
- [创建并运行一个镜像](#%E5%88%9B%E5%BB%BA%E5%B9%B6%E8%BF%90%E8%A1%8C%E4%B8%80%E4%B8%AA%E9%95%9C%E5%83%8F)
|
- [卷标(Volumes)](#卷标volumes)
|
||||||
- [共享镜像](#%E5%85%B1%E4%BA%AB%E9%95%9C%E5%83%8F)
|
|
||||||
- [Services](#services)
|
|
||||||
- [Swarms](#swarms)
|
|
||||||
- [Stacks](#stacks)
|
|
||||||
- [Deploy](#deploy)
|
|
||||||
- [常用命令行](#%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C)
|
|
||||||
- [资料](#%E8%B5%84%E6%96%99)
|
|
||||||
|
|
||||||
<!-- /TOC -->
|
<!-- /TOC -->
|
||||||
|
|
||||||
# Docker 快速指南
|
## 镜像(Images)
|
||||||
|
|
||||||
## Orientation
|
- [`docker image ls`](https://github.com/yeasy/docker_practice/blob/master/image/list.md) - 查看所有镜像。
|
||||||
|
- [`docker image rm`](https://github.com/yeasy/docker_practice/blob/master/image/rm.md) - 删除本地镜像。
|
||||||
|
- `docker import` - 从压缩文件中创建镜像。
|
||||||
|
- `docker export` - 导出既有容器。
|
||||||
|
- `docker build` - 从 Dockerfile 创建镜像。
|
||||||
|
- `docker commit` - 为容器创建镜像,如果容器正在运行则会临时暂停。
|
||||||
|
- `docker rmi` - 删除镜像。
|
||||||
|
- `docker load` - 通过 STDIN 从压缩包加载镜像,包括镜像和标签(images and tags) (0.7 起).
|
||||||
|
- `docker save` - 通过 STDOUT 保存镜像到压缩包,包括所有的父层,标签和版本(parent layers, tags & versions) (0.7 起).
|
||||||
|
- `docker history` - 查看镜像历史记录。
|
||||||
|
- `docker tag` - 给镜像命名打标(tags) (本地或者仓库)。
|
||||||
|
|
||||||
### 概念
|
## 容器(Container)
|
||||||
|
|
||||||
Docker 是一个让开发者或系统管理员使用容器来**开发**、**部署**和**运行**应用的平台。
|
### 生命周期
|
||||||
|
|
||||||
#### 容器和镜像
|
- `docker create` - 创建一个容器但是不启动。
|
||||||
|
- `docker rename` - 允许重命名容器。
|
||||||
|
- `docker run` - 在同一个操作中创建并启动一个容器。
|
||||||
|
- `docker rm` - 删除容器。
|
||||||
|
- `docker update` - 更新容器的资源限制。
|
||||||
|
|
||||||
镜像是一个可执行的包,这个包中含有运行一个应用所需要的一切:代码、运行环境、库、环境变量、配置文件。
|
### 启动和停止
|
||||||
|
|
||||||
容器是一个镜像的实例。镜像和容器的关系就好像面向对象语言中类和对象的关系。
|
- `docker start` - 启动容器。
|
||||||
|
- `docker stop` - 停止运行中的容器。
|
||||||
|
- `docker restart` - 停止之后再启动容器。
|
||||||
|
- `docker pause` - 暂停运行中的容器,将其 "冻结" 在当前状态。
|
||||||
|
- `docker unpause` - 结束容器暂停状态。
|
||||||
|
- `docker wait` - 阻塞,到运行中的容器停止为止。
|
||||||
|
- `docker kill` - 向运行中容器发送 SIGKILL 指令。
|
||||||
|
- `docker attach` - 链接到运行中容器。
|
||||||
|
|
||||||
### 容器和虚拟机
|
### 信息
|
||||||
|
|
||||||
一个容器在Linux上本地运行,并与其他容器共享主机的内核。它运行一个独立的进程,不占用任何其他可执行文件的内存,使其轻量化。
|
- `docker ps` - 查看运行中的所有容器。
|
||||||
|
- `docker logs` - 从容器中获取日志。(你也可以使用自定义日志驱动,不过在 1.10 中,它只支持 json-file 和 journald)
|
||||||
|
- `docker inspect` - 查看某个容器的所有信息(包括 IP 地址)。
|
||||||
|
- `docker events` - 从容器中获取事件(events)。
|
||||||
|
- `docker port` - 查看容器的公开端口。
|
||||||
|
- `docker top` - 查看容器中活动进程。
|
||||||
|
- `docker stats` - 查看容器的资源使用情况统计信息。
|
||||||
|
- `docker diff` - 查看容器的 FS 中有变化文件信息。
|
||||||
|
|
||||||
相比之下,虚拟机(VM)运行一个完整的“客户”操作系统,通过虚拟机管理程序虚拟访问主机资源。一般来说,虚拟机提供的环境比大多数应用程序需要的资源更多。
|
### 导入 / 导出
|
||||||
|
|
||||||
![containers-and-vm.png](containers-and-vm.png)
|
docker cp 在容器和本地文件系统之间复制文件或文件夹。
|
||||||
|
docker export 将容器的文件系统切换为压缩包(tarball archive stream)输出到 STDOUT。
|
||||||
|
|
||||||
## Containers
|
### 执行命令
|
||||||
|
|
||||||
在以往的开发中,运行一个应用,首先需要准备好它的运行环境。
|
docker exec 在容器中执行命令。
|
||||||
|
|
||||||
使用 Docker,可以将应用的运行环境(如 JDK、Maven等)打包为一个可移植的镜像。然后,运行应用的同时,运行基础运行环境镜像。
|
## 网络(Networks)
|
||||||
|
|
||||||
这种可移植的镜像定义在一个叫做 `Dockerfile` 的文件。
|
### 生命周期
|
||||||
|
|
||||||
### Dockerfile
|
- `docker network create`
|
||||||
|
- `docker network rm`
|
||||||
|
|
||||||
Dockerfile定义了容器内环境中发生的事情。访问网络接口和磁盘驱动器等资源是在此环境中虚拟化的,与系统的其余部分隔离,因此您需要将端口映射到外部世界,并明确要将哪些文件“复制”到那个环境。但是,在完成这些之后,您可以预期,在此Dockerfile中定义的应用程序构建在运行时的行为完全相同。
|
### 信息
|
||||||
|
|
||||||
### 创建并运行一个镜像
|
- `docker network ls`
|
||||||
|
- `docker network inspect`
|
||||||
|
|
||||||
(1)创建一个目录
|
### 链接
|
||||||
|
|
||||||
```sh
|
- `docker network connect`
|
||||||
mkdir -p /home/zp/dockerdemo
|
- `docker network disconnect`
|
||||||
cd /home/zp/dockerdemo
|
|
||||||
```
|
|
||||||
|
|
||||||
(2)定义一个 Dockerfile
|
## 仓管中心和仓库(Registry & Repository)
|
||||||
|
|
||||||
```docker
|
- `docker login` - 登入仓管中心。
|
||||||
# Use an official Python runtime as a parent image
|
- `docker logout` - 登出仓管中心。
|
||||||
FROM python:2.7-slim
|
- `docker search` - 从仓管中心检索镜像。
|
||||||
|
- `docker pull` - 从仓管中心拉去镜像到本地。
|
||||||
|
- `docker push` - 从本地推送镜像到仓管中心。
|
||||||
|
|
||||||
# Set the working directory to /app
|
## Dockerfile
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy the current directory contents into the container at /app
|
- .dockerignore
|
||||||
ADD . /app
|
- FROM 为其他指令设置基础镜像(Base Image)。
|
||||||
|
- MAINTAINER 为生成的镜像设置作者字段。
|
||||||
|
- RUN 在当前镜像的基础上生成一个新层并执行命令。
|
||||||
|
- CMD 设置容器默认执行命令。
|
||||||
|
- EXPOSE 告知 Docker 容器在运行时所要监听的网络端口。注意:并没有实际上将端口设置为可访问。
|
||||||
|
- ENV 设置环境变量。
|
||||||
|
- ADD 将文件,文件夹或者远程文件复制到容器中。缓存无效。尽量用 COPY 代替 ADD。
|
||||||
|
- COPY 将文件或文件夹复制到容器中。
|
||||||
|
- ENTRYPOINT 将一个容器设置为可执行。
|
||||||
|
- VOLUME 为外部挂载卷标或其他容器设置挂载点(mount point)。
|
||||||
|
- USER 设置执行 RUN / CMD / ENTRYPOINT 命令的用户名。
|
||||||
|
- WORKDIR 设置工作目录。
|
||||||
|
- ARG 定义编译时(build-time)变量。
|
||||||
|
- ONBUILD 添加触发指令,当该镜像被作为其他镜像的基础镜像时该指令会被触发。
|
||||||
|
- STOPSIGNAL 设置通过系统向容器发出退出指令。
|
||||||
|
- LABEL 将键值对元数据(key/value metadata)应用到你的镜像,容器,或者守护进程。
|
||||||
|
|
||||||
# Install any needed packages specified in requirements.txt
|
## 卷标(Volumes)
|
||||||
RUN pip install --trusted-host pypi.python.org -r requirements.txt
|
|
||||||
|
|
||||||
# Make port 80 available to the world outside this container
|
### 生命周期
|
||||||
EXPOSE 80
|
|
||||||
|
|
||||||
# Define environment variable
|
- `docker volume create`
|
||||||
ENV NAME World
|
- `docker volume rm`
|
||||||
|
|
||||||
# Run app.py when the container launches
|
### 信息
|
||||||
CMD ["python", "app.py"]
|
|
||||||
```
|
|
||||||
|
|
||||||
> 代理服务器在启动并运行后可以阻止与您的网络应用程序的连接。如果您位于代理服务器的后面,请使用 `ENV` 命令为您的代理服务器指定主机和端口,将以下行添加到 Dockerfile 中:
|
- `docker volume ls`
|
||||||
>
|
- `docker volume inspect`
|
||||||
> ```docker
|
|
||||||
> # Set proxy server, replace host:port with values for your servers
|
|
||||||
> ENV http_proxy host:port
|
|
||||||
> ENV https_proxy host:port
|
|
||||||
> ```
|
|
||||||
|
|
||||||
(3)创建一个 app
|
|
||||||
|
|
||||||
这里以创建一个 python 应用为例。
|
|
||||||
|
|
||||||
在 Dockerfile 同目录下新建 `requirements.txt` 文件和 `app.py` 文件。
|
|
||||||
|
|
||||||
创建一个 `requirements.txt` 文件
|
|
||||||
|
|
||||||
```
|
|
||||||
Flask
|
|
||||||
Redis
|
|
||||||
```
|
|
||||||
|
|
||||||
创建一个 `app.py` 文件
|
|
||||||
|
|
||||||
```py
|
|
||||||
from flask import Flask
|
|
||||||
from redis import Redis, RedisError
|
|
||||||
import os
|
|
||||||
import socket
|
|
||||||
|
|
||||||
# Connect to Redis
|
|
||||||
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
|
||||||
|
|
||||||
@app.route("/")
|
|
||||||
def hello():
|
|
||||||
try:
|
|
||||||
visits = redis.incr("counter")
|
|
||||||
except RedisError:
|
|
||||||
visits = "<i>cannot connect to Redis, counter disabled</i>"
|
|
||||||
|
|
||||||
html = "<h3>Hello {name}!</h3>" \
|
|
||||||
"<b>Hostname:</b> {hostname}<br/>" \
|
|
||||||
"<b>Visits:</b> {visits}"
|
|
||||||
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
app.run(host='0.0.0.0', port=80)
|
|
||||||
```
|
|
||||||
|
|
||||||
(4)构建应用
|
|
||||||
|
|
||||||
创建一个 Docker 镜像,执行命令:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
docker build -t friendlyhello .
|
|
||||||
```
|
|
||||||
|
|
||||||
查看 Docker 镜像,执行命令:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ docker image ls
|
|
||||||
|
|
||||||
REPOSITORY TAG IMAGE ID
|
|
||||||
friendlyhello latest 326387cea398
|
|
||||||
```
|
|
||||||
|
|
||||||
(5)运行 app
|
|
||||||
|
|
||||||
使用 `-p` 将您的机器的端口4000映射到容器的已发布端口80
|
|
||||||
|
|
||||||
```sh
|
|
||||||
docker run -d -p 4000:80 friendlyhello
|
|
||||||
```
|
|
||||||
|
|
||||||
然后,可以访问 http://localhost:4000
|
|
||||||
|
|
||||||
### 共享镜像
|
|
||||||
|
|
||||||
(1)注册登录
|
|
||||||
|
|
||||||
在 [cloud.docker.com](https://cloud.docker.com/) 注册账户,然后使用 Docker ID 登录。
|
|
||||||
|
|
||||||
```sh
|
|
||||||
docker login
|
|
||||||
```
|
|
||||||
|
|
||||||
> 注册 Docker ID ,要访问 google ,国内无法访问。要命。
|
|
||||||
|
|
||||||
(2)给镜像打标签
|
|
||||||
|
|
||||||
```
|
|
||||||
docker tag image username/repository:tag
|
|
||||||
```
|
|
||||||
|
|
||||||
例:
|
|
||||||
|
|
||||||
```
|
|
||||||
docker tag friendlyhello john/get-started:part2
|
|
||||||
```
|
|
||||||
|
|
||||||
(3)发布镜像
|
|
||||||
|
|
||||||
```
|
|
||||||
docker push username/repository:tag
|
|
||||||
```
|
|
||||||
|
|
||||||
(4)从远程仓库拉取并运行镜像
|
|
||||||
|
|
||||||
```
|
|
||||||
docker run -p 4000:80 username/repository:tag
|
|
||||||
```
|
|
||||||
|
|
||||||
## Services
|
|
||||||
|
|
||||||
## Swarms
|
|
||||||
|
|
||||||
## Stacks
|
|
||||||
|
|
||||||
## Deploy
|
|
||||||
|
|
||||||
## 常用命令行
|
|
||||||
|
|
||||||
```sh
|
|
||||||
docker # 列出所有 Docker 命令
|
|
||||||
|
|
||||||
docker version # 显示 docker 版本
|
|
||||||
docker info # 显示 docker 信息
|
|
||||||
|
|
||||||
docker build -t friendlyhello . # 使用当前目录下的 Dockerfile 创建 Docker 镜像
|
|
||||||
docker run -p 4000:80 friendlyhello # 运行 "friendlyname" ,并映射端口 4000 到 80
|
|
||||||
docker run -d -p 4000:80 friendlyhello # 同样的事,但是使用分离的模式
|
|
||||||
|
|
||||||
docker container --help # 列出 docker container 相关命令
|
|
||||||
docker container ls # 列出所有运行的容器
|
|
||||||
docker container ls -a # 列出所有的容器
|
|
||||||
docker container stop <hash> # 优雅的停止所有指定的容器
|
|
||||||
docker container kill <hash> # 强制停止所有指定的容器
|
|
||||||
docker container rm <hash> # 从本机中溢出指定的容器
|
|
||||||
docker container rm $(docker container ls -a -q) # 移除所有容器
|
|
||||||
|
|
||||||
docker image --help # 列出 docker image 相关命令
|
|
||||||
docker image ls -a # 列出本机中所有的镜像
|
|
||||||
docker image rm <image id> # 从本机中溢出指定的镜像
|
|
||||||
docker image rm $(docker image ls -a -q) # 移除本机中所有镜像
|
|
||||||
docker login # 使用您的 Docker ID 登录以从 Docker Hub push 和 pull 图像。
|
|
||||||
docker tag <image> username/repository:tag # 标记 <image> 以上传到注册中心
|
|
||||||
docker push username/repository:tag # 上传标记过的镜像到注册中心
|
|
||||||
docker run username/repository:tag # 运行一个注册中心上的镜像
|
|
||||||
```
|
|
||||||
|
|
||||||
## 资料
|
|
||||||
|
|
||||||
* https://docs.docker.com/get-started/
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
# Jenkins
|
|
||||||
|
|
||||||
> Jenkins 全部整理归纳在 [**jenkins**](https://github.com/dunwu/jenkins) 项目中。
|
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Linux 文件编辑命令
|
title: Linux 文件内容查看编辑
|
||||||
date: 2018/02/27
|
date: 2018/02/27
|
||||||
categories:
|
categories:
|
||||||
- linux
|
- linux
|
||||||
@ -8,16 +8,109 @@ tags:
|
|||||||
- command
|
- command
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- TOC depthFrom:2 depthTo:2 -->
|
# Linux 文件内容查看编辑
|
||||||
|
|
||||||
- [流编辑器 - sed](#流编辑器---sed)
|
> 关键词:`cat`, `head`, `tail`, `more`, `less`
|
||||||
- [文本编辑器 - vi](#文本编辑器---vi)
|
|
||||||
|
<!-- TOC depthFrom:2 depthTo:3 -->
|
||||||
|
|
||||||
|
- [Linux 文件内容查看编辑要点](#linux-文件内容查看编辑要点)
|
||||||
|
- [命令常见用法](#命令常见用法)
|
||||||
|
- [cat](#cat)
|
||||||
|
- [head](#head)
|
||||||
|
- [tail](#tail)
|
||||||
|
- [more](#more)
|
||||||
|
- [less](#less)
|
||||||
|
- [sed](#sed)
|
||||||
|
- [vi](#vi)
|
||||||
|
- [grep](#grep)
|
||||||
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
<!-- /TOC -->
|
<!-- /TOC -->
|
||||||
|
|
||||||
# Linux 文件编辑命令
|
## Linux 文件内容查看编辑要点
|
||||||
|
|
||||||
## 流编辑器 - sed
|
- 连接文件并打印到标准输出设备 - 使用 [cat](#cat)
|
||||||
|
- 显示指定文件的开头若干行 - 使用 [head](#head)
|
||||||
|
- 显示指定文件的末尾若干行,常用于实时打印日志文件内容 - 使用 [tail](#tail)
|
||||||
|
- 显示文件内容,每次显示一屏 - 使用 [more](#more)
|
||||||
|
- 显示文件内容,每次显示一屏 - 使用 [less](#less)
|
||||||
|
- 自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等 - 使用 [sed](#sed)
|
||||||
|
- 文本编辑器 - 使用 [vi](#vi)
|
||||||
|
- 使用正则表达式搜索文本,并把匹配的行打印出来 - 使用 [grep](#grep)
|
||||||
|
|
||||||
|
## 命令常见用法
|
||||||
|
|
||||||
|
### cat
|
||||||
|
|
||||||
|
> cat 命令用于连接文件并打印到标准输出设备上。
|
||||||
|
>
|
||||||
|
> 参考:http://man.linuxde.net/cat
|
||||||
|
|
||||||
|
示例:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cat m1 # 在屏幕上显示文件 ml 的内容
|
||||||
|
cat m1 m2 # 同时显示文件 ml 和 m2 的内容
|
||||||
|
cat m1 m2 > file # 将文件 ml 和 m2 合并后放入文件 file 中
|
||||||
|
```
|
||||||
|
|
||||||
|
### head
|
||||||
|
|
||||||
|
> head 命令用于显示文件的开头内容。在默认情况下,head 命令显示文件的头部 10 行内容。
|
||||||
|
>
|
||||||
|
> 参考:http://man.linuxde.net/head
|
||||||
|
|
||||||
|
### tail
|
||||||
|
|
||||||
|
> tail 命令用于显示文件的尾部内容。在默认情况下,tail 命令显示文件的尾部 10 行内容。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
|
||||||
|
>
|
||||||
|
> 参考:http://man.linuxde.net/tail
|
||||||
|
|
||||||
|
示例:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
tail file # 显示文件file的最后10行
|
||||||
|
tail -n +20 file # 显示文件file的内容,从第20行至文件末尾
|
||||||
|
tail -c 10 file # 显示文件file的最后10个字符
|
||||||
|
```
|
||||||
|
|
||||||
|
### more
|
||||||
|
|
||||||
|
> more 命令是一个基于 vi 编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持 vi 中的关键字定位操作。more 名单中内置了若干快捷键,常用的有 H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
|
||||||
|
>
|
||||||
|
> 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答:
|
||||||
|
>
|
||||||
|
> - 按 Space 键:显示文本的下一屏内容。
|
||||||
|
> - 按 Enier 键:只显示文本的下一行内容。
|
||||||
|
> - 按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
|
||||||
|
> - 按 H 键:显示帮助屏,该屏上有相关的帮助信息。
|
||||||
|
> - 按 B 键:显示上一屏内容。
|
||||||
|
> - 按 Q 键:退出 rnore 命令。
|
||||||
|
>
|
||||||
|
> 参考:http://man.linuxde.net/more
|
||||||
|
|
||||||
|
示例:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# 显示文件 file 的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比。
|
||||||
|
more -dc file
|
||||||
|
|
||||||
|
# 显示文件 file 的内容,每 10 行显示一次,而且在显示之前先清屏。
|
||||||
|
more -c -10 file
|
||||||
|
```
|
||||||
|
|
||||||
|
### less
|
||||||
|
|
||||||
|
less 命令的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 命令允许用户向前或向后浏览文件,而 more 命令只能向前浏览。用 less 命令显示文件时,用 PageUp 键向上翻页,用 PageDown 键向下翻页。要退出 less 程序,应按 Q 键。
|
||||||
|
|
||||||
|
示例:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
less /var/log/shadowsocks.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### sed
|
||||||
|
|
||||||
> sed 是一种流编辑器,它是文本处理工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed 主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
|
> sed 是一种流编辑器,它是文本处理工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed 主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
|
||||||
>
|
>
|
||||||
@ -54,13 +147,13 @@ sed '$d' file
|
|||||||
sed '/^test/'d file
|
sed '/^test/'d file
|
||||||
```
|
```
|
||||||
|
|
||||||
## 文本编辑器 - vi
|
### vi
|
||||||
|
|
||||||
> vi 命令是 UNIX 操作系统和类 UNIX 操作系统中最通用的全屏幕纯文本编辑器。Linux 中的 vi 编辑器叫 vim,它是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。
|
> vi 命令是 UNIX 操作系统和类 UNIX 操作系统中最通用的全屏幕纯文本编辑器。Linux 中的 vi 编辑器叫 vim,它是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。
|
||||||
>
|
>
|
||||||
> 参考:http://man.linuxde.net/vi
|
> 参考:http://man.linuxde.net/vi
|
||||||
|
|
||||||
### 补充说明
|
#### 补充说明
|
||||||
|
|
||||||
**vi 命令** 是 UNIX 操作系统和类 UNIX 操作系统中最通用的全屏幕纯文本编辑器。Linux 中的 vi 编辑器叫 vim,它是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。
|
**vi 命令** 是 UNIX 操作系统和类 UNIX 操作系统中最通用的全屏幕纯文本编辑器。Linux 中的 vi 编辑器叫 vim,它是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。
|
||||||
|
|
||||||
@ -105,13 +198,13 @@ O:在当前行前面插入一空行;
|
|||||||
:set nonumber:在命令模式下,用于在最左端不显示行号;
|
:set nonumber:在命令模式下,用于在最左端不显示行号;
|
||||||
```
|
```
|
||||||
|
|
||||||
### 语法
|
#### 语法
|
||||||
|
|
||||||
```
|
```
|
||||||
vi(选项)(参数)
|
vi(选项)(参数)
|
||||||
```
|
```
|
||||||
|
|
||||||
### 选项
|
#### 选项
|
||||||
|
|
||||||
```
|
```
|
||||||
+<行号>:从指定行号的行开始先是文本内容;
|
+<行号>:从指定行号的行开始先是文本内容;
|
||||||
@ -127,11 +220,11 @@ vi(选项)(参数)
|
|||||||
-s:安静模式,不现实指令的任何错误信息。
|
-s:安静模式,不现实指令的任何错误信息。
|
||||||
```
|
```
|
||||||
|
|
||||||
### 参数
|
#### 参数
|
||||||
|
|
||||||
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
|
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
|
||||||
|
|
||||||
### 知识扩展
|
#### 知识扩展
|
||||||
|
|
||||||
vi 编辑器有三种工作方式:命令方式、输入方式和 ex 转义方式。通过相应的命令或操作,在这三种工作方式之间可以进行转换。
|
vi 编辑器有三种工作方式:命令方式、输入方式和 ex 转义方式。通过相应的命令或操作,在这三种工作方式之间可以进行转换。
|
||||||
|
|
||||||
@ -157,6 +250,18 @@ vi 和 ex 编辑器的功能是相同的,二者的主要区别是用户界面
|
|||||||
|
|
||||||
![vi.jpg](http://man.linuxde.net/wp-content/uploads/2013/11/vi.jpg)
|
![vi.jpg](http://man.linuxde.net/wp-content/uploads/2013/11/vi.jpg)
|
||||||
|
|
||||||
|
### grep
|
||||||
|
|
||||||
|
> grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
|
||||||
|
>
|
||||||
|
> 参考:http://man.linuxde.net/grep
|
||||||
|
|
||||||
|
示例:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 参考资料
|
||||||
|
|
||||||
|
- [Linux 命令大全](http://man.linuxde.net/)
|
@ -1,92 +0,0 @@
|
|||||||
---
|
|
||||||
title: Linux 文件内容查看命令
|
|
||||||
date: 2018/02/27
|
|
||||||
categories:
|
|
||||||
- linux
|
|
||||||
tags:
|
|
||||||
- linux
|
|
||||||
- command
|
|
||||||
---
|
|
||||||
|
|
||||||
# Linux 文件内容查看命令
|
|
||||||
|
|
||||||
> 关键词:`cat`, `head`, `tail`, `more`, `less`
|
|
||||||
|
|
||||||
<!-- TOC depthFrom:2 depthTo:2 -->
|
|
||||||
|
|
||||||
- [连接文件并打印到标准输出设备 - cat](#连接文件并打印到标准输出设备---cat)
|
|
||||||
- [显示指定文件的开头若干行 - head](#显示指定文件的开头若干行---head)
|
|
||||||
- [显示指定文件的末尾若干行 - tail](#显示指定文件的末尾若干行---tail)
|
|
||||||
- [显示文件内容,每次显示一屏 - more](#显示文件内容每次显示一屏---more)
|
|
||||||
- [显示文件内容,每次显示一屏 - less](#显示文件内容每次显示一屏---less)
|
|
||||||
|
|
||||||
<!-- /TOC -->
|
|
||||||
|
|
||||||
## 连接文件并打印到标准输出设备 - cat
|
|
||||||
|
|
||||||
> cat 命令用于连接文件并打印到标准输出设备上。
|
|
||||||
>
|
|
||||||
> 参考:http://man.linuxde.net/cat
|
|
||||||
|
|
||||||
示例:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cat m1 # 在屏幕上显示文件 ml 的内容
|
|
||||||
cat m1 m2 # 同时显示文件 ml 和 m2 的内容
|
|
||||||
cat m1 m2 > file # 将文件 ml 和 m2 合并后放入文件 file 中
|
|
||||||
```
|
|
||||||
|
|
||||||
## 显示指定文件的开头若干行 - head
|
|
||||||
|
|
||||||
> head 命令用于显示文件的开头内容。在默认情况下,head 命令显示文件的头部 10 行内容。
|
|
||||||
>
|
|
||||||
> 参考:http://man.linuxde.net/head
|
|
||||||
|
|
||||||
## 显示指定文件的末尾若干行 - tail
|
|
||||||
|
|
||||||
> tail 命令用于显示文件的尾部内容。在默认情况下,tail 命令显示文件的尾部 10 行内容。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
|
|
||||||
>
|
|
||||||
> 参考:http://man.linuxde.net/tail
|
|
||||||
|
|
||||||
示例:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
tail file # 显示文件file的最后10行
|
|
||||||
tail -n +20 file # 显示文件file的内容,从第20行至文件末尾
|
|
||||||
tail -c 10 file # 显示文件file的最后10个字符
|
|
||||||
```
|
|
||||||
|
|
||||||
## 显示文件内容,每次显示一屏 - more
|
|
||||||
|
|
||||||
> more 命令是一个基于 vi 编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持 vi 中的关键字定位操作。more 名单中内置了若干快捷键,常用的有 H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
|
|
||||||
>
|
|
||||||
> 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答:
|
|
||||||
>
|
|
||||||
> - 按 Space 键:显示文本的下一屏内容。
|
|
||||||
> - 按 Enier 键:只显示文本的下一行内容。
|
|
||||||
> - 按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
|
|
||||||
> - 按 H 键:显示帮助屏,该屏上有相关的帮助信息。
|
|
||||||
> - 按 B 键:显示上一屏内容。
|
|
||||||
> - 按 Q 键:退出 rnore 命令。
|
|
||||||
>
|
|
||||||
> 参考:http://man.linuxde.net/more
|
|
||||||
|
|
||||||
示例:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# 显示文件 file 的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比。
|
|
||||||
more -dc file
|
|
||||||
|
|
||||||
# 显示文件 file 的内容,每 10 行显示一次,而且在显示之前先清屏。
|
|
||||||
more -c -10 file
|
|
||||||
```
|
|
||||||
|
|
||||||
## 显示文件内容,每次显示一屏 - less
|
|
||||||
|
|
||||||
less 命令的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 命令允许用户向前或向后浏览文件,而 more 命令只能向前浏览。用 less 命令显示文件时,用 PageUp 键向上翻页,用 PageDown 键向下翻页。要退出 less 程序,应按 Q 键。
|
|
||||||
|
|
||||||
示例:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
less /var/log/shadowsocks.log
|
|
||||||
```
|
|
@ -156,6 +156,7 @@ echo $difference seconds.
|
|||||||
> mount 命令用于挂载文件系统到指定的挂载点。此命令的最常用于挂载 cdrom,使我们可以访问 cdrom 中的数据,因为你将光盘插入 cdrom 中,Linux 并不会自动挂载,必须使用 Linux mount 命令来手动完成挂载。
|
> mount 命令用于挂载文件系统到指定的挂载点。此命令的最常用于挂载 cdrom,使我们可以访问 cdrom 中的数据,因为你将光盘插入 cdrom 中,Linux 并不会自动挂载,必须使用 Linux mount 命令来手动完成挂载。
|
||||||
>
|
>
|
||||||
> 参考:http://man.linuxde.net/mount
|
> 参考:http://man.linuxde.net/mount
|
||||||
|
> https://blog.csdn.net/weishujie000/article/details/76531924
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
|
@ -4,8 +4,7 @@
|
|||||||
|
|
||||||
- [查看 Linux 命令帮助信息](01.查看Linux命令帮助信息.md) - 关键词:`help`, `whatis`, `info`, `which`, `whereis`, `man`
|
- [查看 Linux 命令帮助信息](01.查看Linux命令帮助信息.md) - 关键词:`help`, `whatis`, `info`, `which`, `whereis`, `man`
|
||||||
- [Linux 文件目录管理](02.Linux文件目录管理.md) - 关键词:`cd`, `ls`, `pwd`, `mkdir`, `rmdir`, `tree`, `touch`, `ln`, `rename`, `stat`, `file`, `chmod`, `chown`, `locate`, `find`, `cp`, `mv`, `rm`
|
- [Linux 文件目录管理](02.Linux文件目录管理.md) - 关键词:`cd`, `ls`, `pwd`, `mkdir`, `rmdir`, `tree`, `touch`, `ln`, `rename`, `stat`, `file`, `chmod`, `chown`, `locate`, `find`, `cp`, `mv`, `rm`
|
||||||
- [Linux 文件内容查看命令](Linux文件内容查看命令.md) - 关键词:`cat`, `head`, `tail`, `more`, `less`
|
- [Linux 文件内容查看命令](03.Linux文件内容查看编辑.md) - 关键词:`cat`, `head`, `tail`, `more`, `less`
|
||||||
- [Linux 文件编辑命令](Linux文件编辑命令.md) - 关键词:`sed`, `vi`
|
|
||||||
- [Linux 文件压缩与解压命令](Linux文件压缩与解压命令.md) - 关键词:`tar`, `gzip`, `zip`, `unzip`
|
- [Linux 文件压缩与解压命令](Linux文件压缩与解压命令.md) - 关键词:`tar`, `gzip`, `zip`, `unzip`
|
||||||
- [Linux 用户管理命令](Linux用户管理命令.md) - 关键词:`groupadd`, `groupdel`, `groupmod`, `useradd`, `userdel`, `usermod`, `passwd`, `su`, `sudo`
|
- [Linux 用户管理命令](Linux用户管理命令.md) - 关键词:`groupadd`, `groupdel`, `groupmod`, `useradd`, `userdel`, `usermod`, `passwd`, `su`, `sudo`
|
||||||
- [Linux 系统管理命令](Linux系统管理命令.md) - 关键词:`reboot`, `exit`, `shutdown`, `date`, `mount`, `umount`
|
- [Linux 系统管理命令](Linux系统管理命令.md) - 关键词:`reboot`, `exit`, `shutdown`, `date`, `mount`, `umount`
|
||||||
|
50
docs/windows/Windows工具.md
Normal file
50
docs/windows/Windows工具.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Windows 工具
|
||||||
|
|
||||||
|
> 所谓,工欲善其事,必先利其器。使用好工具常常能给办公效率带来飞跃式的提升。这里整理总结了,我在工作学习中接触过的好工具。
|
||||||
|
>
|
||||||
|
> 关键词:tool, 工具, 效率
|
||||||
|
|
||||||
|
<!-- TOC depthFrom:2 depthTo:3 -->
|
||||||
|
|
||||||
|
- [1. 文件管理工具](#1-文件管理工具)
|
||||||
|
- [1.1. Clover](#11-clover)
|
||||||
|
- [1.2. Everything](#12-everything)
|
||||||
|
- [1.3. Wox](#13-wox)
|
||||||
|
- [1.4. Q-dir](#14-q-dir)
|
||||||
|
- [1.5. Fences](#15-fences)
|
||||||
|
|
||||||
|
<!-- /TOC -->
|
||||||
|
|
||||||
|
## 1. 文件管理工具
|
||||||
|
|
||||||
|
### 1.1. Clover
|
||||||
|
|
||||||
|
> [Clover](http://cn.ejie.me/) 是 Windows Explorer 资源管理器的一个扩展,为其增加类似谷歌 Chrome 浏览器的多标签页功能。
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<img src="http://cn.ejie.me/images/clover.jpg" width="640" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### 1.2. Everything
|
||||||
|
|
||||||
|
> [Everything](http://www.voidtools.com/) 可以立即在 windows 系统中找到制定名称的文件和文件夹。
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180930174548.png)
|
||||||
|
|
||||||
|
### 1.3. Wox
|
||||||
|
|
||||||
|
> [Wox](https://github.com/Wox-launcher/Wox) 是一款简单易用的 Windows 启动器。可以把它视为 windows 版的 Alfred。
|
||||||
|
|
||||||
|
![](https://camo.githubusercontent.com/9db33546d3a905a9ad915e0948d3ba3f47f57b64/687474703a2f2f692e696d6775722e636f6d2f4474784e424a692e676966)
|
||||||
|
|
||||||
|
### 1.4. Q-dir
|
||||||
|
|
||||||
|
> [Q-dir](http://www.softpedia.com/get/File-managers/Q-Dir.shtml) 是轻量的文件管理器,特点鲜明,各种布局视图切换灵活,默认四个小窗口组成一个大窗口,操作快捷。
|
||||||
|
|
||||||
|
![](http://oyz7npk35.bkt.clouddn.com/images/20180920180930174437.png)
|
||||||
|
|
||||||
|
### 1.5. Fences
|
||||||
|
|
||||||
|
> [Fences](https://www.stardock.com/products/fences/) 也被称为栅栏桌面,是著名的 Stardock 公司推出的一款软件,用来分类和组织桌面上的图标一款软件。
|
||||||
|
|
||||||
|
![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1538311775699&di=70a9d04f067844d1881031761b6ca67c&imgtype=0&src=http%3A%2F%2Fgss0.baidu.com%2F-vo3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F962bd40735fae6cd16fbebdb0eb30f2442a70f38.jpg)
|
Loading…
Reference in New Issue
Block a user