Linux开发常用命令
总结开发中比较常用的命令,包括, linux, java, docker, nginx等,持续总结更新
基础命令
Llinux简单基础命令
文件相关
- pwd 当前路径
- cd 切换路径
- ~ 切换到用户目录
- ls 列出当前路径下文件名与文件夹名
- -a 包括隐藏文件
- -l 包括属性
- mkdir 创建文件夹
- touch 修改文件或目录时间属性
- ln 建立文件硬链接
- -s 软链接
- cp 复制文件或目录
- -r 包括目录下所有文件和目录
- mv 移动或改名,文件或目录
- -f 覆盖旧文件
- rm 删除文件或目录
- -rf 强行删除目录与其下所有文件
- rmdir 删除空目录
- chmod 修改文件或目录权限
- +x 当前用户可执行
- 777 全部权限
- umask 设置权限掩码
- chgrp 改变文件或目录所属组
- chown 改变文件或目录所有者
- gzip 压缩文件为.gz
- -r 压缩目录
- -d 解压
- xz 压缩文件为.xz,具有高压缩率
- -r 压缩目录
- -d 解压
- tar 备份
- -zcvf x.tar x 把x备份压缩(gzip)打包为x.tar
- -zxvf x.tar 备份解压
文件内容相关
- cat 输出文件内容
- more 以页的方式显示,空格下一页,b上一页
- less 可滚动浏览,不会一次性全部加载
- head 查看文件开头10行
- -n 指定行数
- tail 查看文件最后10行
- -n 指定行数
- -f 实时更新
- grep 查找文件包含字符串的行
- sort 以行为单位字典序升序
- uniq 删除重复且相邻的行,可与sort联合使用
- -d 仅显示不删除
- -c 显示重复次数
- wc 统计文件行数,单词数,字节数
- diff 以行为单位比较文件差异
vim
具有命令行模式,文本输入模式,编辑模式三种模式
模式切换
- 1.不管处于何种模式,按esc进入命令行模式
- 2.在命令模式下,插入i、附加a、打开o、修改c、取代r、替换s都可以进入文本输入模式
- 3.在命令模式下,按:键即可进入编辑模式
光标移动
命令行模式
按键 | 描述 |
---|---|
i | 左移一位 |
l | 右移一位 |
k | 上移一行 |
j | 下移一行 |
0或^ | 移动到行首 |
$ | 移动到行尾 |
gg | 移动到文件一第一行行首 |
G | 移动到文件最后一行行首 |
文本操作
命令行模式
按键 | 描述 |
---|---|
x | 删除当前 |
dd | 删除一行 |
D | 删除当前+全部右边 |
yy | 复制当前行 |
nyy | 当前往下复制n行 |
p | 粘贴到当前行下方 |
P | 粘贴到当前行上方 |
J | +空格后与下一行合并 |
C | 删除当前至行末进入编辑模式 |
cc | 删除当前行进入编辑模式 |
r | 只替换当前字符 |
R | 从当前字符开始替换 |
s | 删除当前字符,从当前位置插入 |
S | 与cc相同 |
/str | 从当前光标往下查找str |
?str | 从当前光标往上查找str |
n | next往下查找 |
N | 往上查找 |
: s/key/value | 将当前行key替换为value |
:g/str1/s//str2/g | 将全文str1替换为str2 |
网络相关
远程登录:
ssh username@xxx.xxx.xxx.xxx -p
文件传输:
scp /home/filename username@xxx.xxx.xxx.xxx:/home/filename
# 传过去必须指定文件名
环境安装
此处为Ubuntu 18
安装java8
apt update
apt install openjdk-8-jdk
安装maven
1.maven官网下载文件,这里下的是3.6.3
wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
2.解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
3.配置环境变量
vim /etc/profile
在后面加上
M2_HOME=/home/env/apache-maven-3.6.3
PATH=$PATH:$M2_HOME/bin
export PATH M2_HOME
4.更新环境变量
source /etc/profile
5.修改maven仓库地址
文件在M2_HOME/conf/setting.xml
给mirrors标签中加入
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
Docker
Linux Docker安装
apt install docker.io
或
curl -s https://get.docker.com | sh
Docker基本操作
容器id都可以用容器名代替
- 删除镜像 docker rmi imageId
- 删除容器 docker rm containerId
- 查看容器日志 docker logs containerId
- 进入容器内部 docker exec -it containerId bash
- 退出容器 exit
- 复制容器内文件(将容器内aof文件复制到当前路径) docekr cp containerId:/data/appendonly.aof .
DB相关
启动Mysql
这里使用的mysql5.7
docker pull mysql:5.7
启动
docker run -p 3306:3306 --name mysql_docker -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
启动Redis
启动redis并指定配置文件,方便进行RDB和AOF
docker run
-d
-p 6379:6379
-v /home/redis/conf:/usr/local/etc/redis
--name redis_fehead
redis
redis-server /usr/local/etc/redis/redis.conf #启动参数指定启用该配置文件
上面的直接复制版
docker run -d -p 6379:6379 -v /home/redis/conf:/usr/local/etc/redis --name redis_fehead redis redis-server /usr/local/etc/redis/redis.conf
redis.conf
该文件中不能写注释
#
save 900 1
save 300 10
save 60 10000
requirepass xxx #密码
appendonly yes #启用AOF
appendfsync everysec #每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐
# appendfsync no #完全依赖os,性能最好,持久化没保证(操作系统自身的同步)
no-appendfsync-on-rewrite yes #正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写
Java开发相关
制作springbootjar包镜像
1.Dockerfile
# 定义基础镜像
FROM java:8
# 定义维护者信息
MAINTAINER lmwis <lmwis2000ygn@gmail.com>
# 添加宿主机的jdk 到容器中的指定目录 第一个参数为jar包对于Dockerfile文件相对位置
ADD target/fehead-common-service-1.0-SNAPSHOT.jar /home/java/app.jar
# 设置容器启动时执行的操作
ENTRYPOINT ["nohup","java","-jar","/home/java/app.jar","&"]
2.docker build
docker build -t imageName:TAG . # 最后这个点表示当前目录下的dockerfile
3.发布到docker hub
docker push lmwis/fehead:tagname
启动后台服务
docker run
-d
-p 8888:8888 #端口映射
--name project_name_java_${version} #容器名
lmwis/project_name #镜像名(不加tag默认为lastest)
运行nginx
启动命令
docker run
-d
-p 8082:80 #端口映射
-v /home/nginx_client/project_name/${version}/conf/nginx.conf:/etc/nginx/nginx.conf #全局配置文件(后者为容器内nginx路径,同下)
-v /home/nginx_client/project_name/${version}/html:/usr/share/nginx/html #资源文件
-v /home/nginx_client/project_name/${version}/logs:/var/log/nginx #日志文件
-v /home/nginx_client/project_name/${version}/conf.d:/etc/nginx/conf.d #项目配置文件
--name project_name_nginx_${version} #容器名
nginx #镜像名(不加tag默认为最新版)