Linux练习

1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b)
A.NID B.PID C.UID C.CID

2.下面那个用户存放用户密码信息(b)
A./boot B./etc C./var D./dev

/etc/passwd

3.用于自动补全功能时,输入命令或文件的前1个或后几个字母按什么键(b)
A.ctrl B.tab C.alt D.esc

4.vim退出不保存的命令是(d)
A.:q B.q C.:wq D.:q!

5.文件权限读、写、执行三种符号的标志依次是(a)
A.rwx B.xrw C.rdx D.rws

6.某文件的组外成员的权限是只读、属主是全部权限、组内权限是可读可写、该文件权限为(d)
A.467 B.674 C.476 D.764

7.改变文件的属主的命令是(c)
A.chmod (改权限)B.touch C.chown D.cat

8.解压缩文件mydjango.tar.gz,我们可以用(a)
A.tar -zxvf mydjango.tar.gz
B.tar -xvz mydjango.tar.gz
C.tar -czf mydjango.tar.gz
D.tar - xvf mydjango.tar.gz


9.检查linux是否(通过yum 安装软件)安装了,可用哪些命令(b) #注意rpm -qi只能查询用yum安装的软件,编译的查不到
A.rpm -ivh nginx 安装
B.rpm -q nginx 查询
C.rpm -U nginx 更新
D.rpm -x nginx

10.Linux配置文件一般放在什么目录(a)
A.etc B.bin C.lib D.dev
/etc/nginx.conf

11.linux中查看内存,交换内存的情况命令是(c) #free -m
A.top B.last c.free D.lastcomm

12.观察系统动态进程的命令是(b)
A.free B.top C.lastcomm D.df

13.如果执行命令,chmod 746 file.txt ,那么该文件的权限是(a)
A.rwxr—rw-
B.rw-r—r—
C.—xr—rwx
D.rwxr—r—

14.找出当前目录以及其子目录所有扩展名为”.txt”的文件,那么命令是(d)
A.ls .txt
B.find /opt -name “.txt”
C.ls -d .txt
d.find -name “*.txt”


15.什么命令常用于检测网络主机是否可达? c
A.ssh (远程连接)B.netstat (查看端口状态)C.ping D.exit

16.退出交互式shell,应该输入什么? d
A:q! B.quit C.; D.exit

17.在父目录不存在的时候,添加的参数是? d
A.-P B.-d C.-f D.-p

18.下列文件中,包含了主机名到IP地址映射关系的文件是? b
A./etc/hostname
B./etc/hosts
C./etc/resolv.conf dns 的域名服务器配置文件
D./etc/networks


19.请问你使用的linux发行版是什么?如何查看linux发行版信息?
centos7
cat /etc/os-release


20.请问你公司的服务器环境是物理机还是虚拟化?

1)实体服务器 + 虚拟化
个人虚拟化 是 vmware workstation
企业版 vmware vsphere

2)阿里云服务器 8台

500人企:
26台dell power r720服务器,托管在世纪互联
通过vmware esxi虚拟化的280+linux服务器,有100+centos 100+redhat
分为三个环境
测试服务器、预生产服务器、生产服务器
技术栈:
svn 、java、apache、tomcat、oracle、nagios、redhat、centos、weblogic
初创企业:
5台阿里云

21.vim有几种工作模式
命令模式
编辑模式
底线命令模式

22.nginx的主配置文件是?如何实现多虚拟主机?nginx反向代理参数是?
nginx.conf
多个server{}
proxy_pass http://ip

23.如何解压缩后缀是.gz文件?
gipz -d *.gz


24.如何解压缩后缀是.tar文件?
tar -xf .tar

25.如何解压缩后缀是.xz文件?
xz -d .xz

26.www服务在internet最为广泛,采用的结构是?
Browser/Server

27.如何给linux添加dns服务器记录?
/etc/resolv.conf
添加2条主备dns记录
nameserver dns服务器ip


28.每月的5,15,25的晚上5点50重启nginx
ctontab -e
50 17 5,15,25 * * /usr/bin/systemctl restart nginx
50 17 5,15,25 /opt/nginx112/sbin/nginx -s reload

29.每分钟清空/tmp/内容
* * * * * /usr/bin/rm -rf /tmp/*

30.每天早上6.30清空/tmp/的内容
30 6 * * * /usr/bin/rm -rf /tmp/*

31.每个星期三的下午6点和8点的第5到15分钟之间备份mysql数据到/opt/
5-15 18,20 * * 3 /usr/bin/cp -r /var/lib/mysql /opt/

32.某文件权限是drw-r—rw-,请解读该权限?
d:目录文件
rw- 属主:可读可写
r— 属组:可读
rw- other:可读可写


33.centos版本系统服务管理命令是?
service nginx stop /start /restart centos6
systemctl stop /start /restart nginx centos7


34.如何远程登录阿里云123.206.16.61?
ssh root@123.206.16.61



35.备份mariadb的命令是?
mysqldump -uroot -p
 --all-databases > /opt/db.sql

36.简述特殊符号的含义?
root用户的身份提示符
重启定向覆盖写
重定向追加写
$PATH 取值符
. 当前目录
.. 上级目录


37.如果你发现在公司无法使用rm,使用提示’禁止你使用rm’,是为什么?
别名alias


38.如何修改test.py属组为alex?
chgrp alex test.py


39.如何在windows和linux传输文件?有哪些方法?
xftp 第三方工具
lrzsz 第三方工具

scp linux 命令 Windows没有


40.如何杀死mariad进程?
pkill mariadb
ps -ef|grep mysql
kill pid
killall mariadb


41.简述dns解析流程?访问www.pythonav.cn的解析流程
自上而下的顺序
1.查找本地/etc/hosts文件,是否有强制解析
2.查找本地dns缓存
3.如果没有去/etc/resolv.conf指定的dns服务器中查找记录(需联网
4.在dns服务器中找到解析记录后,在本地dns中添加缓存
5.完成一次dns解析


42.linux如何安装软件?有几种方式?
yum
rpm
源码包



43.出于安全角度,简述如何安装启动redis服务端?
更改端口
开启protomode yes安全模式
设置redis密码

redis-server redis.conf


44.如何保证本地测试环境和线上开发环境一致性?思路?
1.docker打包镜像,通过dockerfile 进行打包

2.手动解决环境问题 pip3 freeze导出依赖


45.virtualenv是什么?简述如何使用
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。
如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
1.安装 pip3 install virtualenv
2.创建虚拟环境 virtualenv —no-site-packages —python=python3 env1
3.激活虚拟环境 sourcce /opt/MyVirtualenv/venvDjango1/bin/activate
4.测试 python3 或者 pip3 list


46.virtulevnwrapper是什么?简述使用
virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环
1.安装虚拟环境 pip3 install virtualenvwrapper
2.创建并进入虚拟环境 mkvirtualenv env1
3.切换虚拟环境 workon 虚拟环境名


redis是什么?
Redis是一个开源的基于内存的,key-value数据结构的缓存数据库,支持数据持久化,m-s复制,常用数据类型有string set hash list,
最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
例如:股票价格、数据分析、实时数据搜集、实时通讯。
Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)
其他nosql数据库?
Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。
只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。
无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失。
MongoDB
更高的写负载,MongoDB拥有更高的插入速度,支持高可用性,支持索引高速查询,占用磁盘空间较大,支持持久化


47.redis哨兵是什么?作用是
Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案
redis哨兵是监控redis主从服务,不存储数据的,作用是用于自动切换reidis服务主从关系,即当主库服务停止后,会将其中一个从库变为主库

48.redis-cluster是什么?
即使使用哨兵,redis每个实例也是全量数据存储,每个redis存储的内容都是完整的数据。
为了最大化利用内存,可以采用cluster群集,就是分布式存储。即每台redis存储不同的内容。
采用redis-cluster架构正是满足这种分布式存储要求的集群的一种体现。redis-cluster架构中,被设计成共有16384个hash slot。每个master分得一部分slot,其算法为:hash_slot = crc16(key) mod 16384 ,这就找到对应slot。采用hash slot的算法,实际上是解决了redis-cluster架构下,有多个master节点的时候,数据如何分布到这些节点上去。key是可用key,如果有{}则取{}内的作为可用key,否则整个可以是可用key。群集至少需要3主3从,且每个实例使用不同的配置文件。


49.什么是静态资源,什么是动态资源?
静态资源指定的是网站的CSS/JS/HTML/JPG等文件
动态资源一般指的是数据,即后端给前端提供的数据


50.配置linux软连接的命令?
ln -s 目标文件名 软连接名

51.如何永久添加/opt/python36/的环境变量?

获取python3解释器的bin目录 绝对路径
vim /etc/profile
添加PATH = /opt/python36/bin:
读取文件变量 source /etc/profile


52.给如下代码添加注释

server{ # 一个虚拟主机
listen 80; # 监听的端口,访问的端口80
server_name 192.168.11.11; # 访问的域名192.168.11.11
location / { # 访问的路径 /
root html; # 指定页面的目录,访问/会找到html目录
index index.html # 指定网页,访问/就是访问index.html
}
}

server{ #虚拟主机
listen 8080; #nginx监听端口
server_name 192.168.11.11; #nginx访问域名
location / { #location匹配url
include uwsgi_params; #将uwsgi参数添加进nginx
uwsgi_pass 0.0.0.0:8000; #反向代理转发请求给uwsgi
}
}

53.supervisor是什么?如何使用?
进程管理工具

使用:
1.安装 easy_install supervisor
2.生成配置文件 echo_supervisord_conf > /etc/supervisor.conf
3.写入自定义的配置
[program:crm] ; 项目名称
command=/root/Envs/knight/bin/uwsgi —ini /opt/knight/uwsgi.ini ;启动项目的命令
stopasgroup=true ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true ;默认为false,向进程组发送kill信号,包括子进程
4.启动supervisor服务
supervisord -c /etc/supervisor.conf
5.启动所有项目
supervisorctl -c /etc/supervisor.conf start all


54.简述项目部署流程?如何部署路飞,uwsgi+nginx+supervisor+nginx
部署路飞:
1.安装python3 环境
2.安装 mysql,redis,nginx
3.部署前端
1.安装node.js的环境
2.安装依赖包
3.修改axios的发送的端口接口
4.打包
4.部署后端
1.安装virtualenv
2.创建虚拟环境
3.安装django和uwsgi,以及项目的依赖包
4.修改uwsgi的配置文件
5.通过uwsgi -ini 配置文件启动django项目
5.配置nginx
1.创建两个虚拟主机,分别监听80和8000端口
2.访问80端口是访问呢vue
3.访问8000端口是vue发起的8000端口请求,反向代理到9000的uwsgi
6.启动nginx,mysql,redis
7.通过supervisor来管理


55.docker是什么?简述docker优势
linux容器软件
docker应用于快速构建应用


56.你常用的docker常用命令有哪些?操作镜像、容器、仓库的命令
docker images # 查看本地镜像
docker serach 镜像 # 通过docker hub搜索镜像
docker rmi 镜像 # 删除镜像
docker save 镜像 > 路径 # 导出镜像
docker load < 路径 # 导入镜像
docker build -t . # 打包生成镜像

操作容器命令:
docker run -d 镜像 解释器 # 根据镜像生成容器,后台允许
docker run -it 镜像 解释器 # 根据镜像生成并进入容器
docker start/stop 容器id # 启动/停止容器
docker ps # 查看当前运行的容器
docker rm 容器id # 删除容器
docker exec 容器id # 进入当前正在运行的容器
docker commit 容器id 镜像名 # 将容器提交为镜像
docker contain ls # 查看当前运行的容器
docker tag 当前的镜像名 要改后的名字

操作仓库的命令:
docker pull 镜像 # 下载镜像
docker push 镜像 # 推送镜像


57.哪个命令无法查看linux文件内容? d
A.tac B.more C.head D.man

man 帮助手册

58.使用rm -i 系统会提示什么信息? b
A.命令所有参数
B.是否真的删除
C.是否有写的权限
D.文件的路径

59.为何说rm -rf 慎用?
-r递归删除 -f强制删除

60.python操作linux的模块是?
os subprocess

61.如果端口8080被占用,如何查看是什么进程?
netstat -tunlp | grep 8080


62.redis是如何做持久化的?
rdb
Redis会定期保存数据快照至一个rdb文件中,并在启动时自动加载rdb文件,恢复之前保存的数据,通过save指令触发持久化,redis单独开启一个子进程进行数据持久化。
rdb缺点,定期执行,可能会丢失数据,并且数据量特别大时候,如果服务器cpu性能较低,rdb开启子进程持久化性能影响很大,影响redis对外提供服务的能力。

aof
Redis会把每一个写请求都记录在一个日志文件里。在Redis重启时,会把AOF文件中记录的所有写操作顺序执行一遍,确保数据恢复到最新。
随着AOF不断地记录写操作日志,因为所有的操作都会记录,所以必定会出现一些无用的日志。大量无用的日志会让AOF文件过大,也会让数据恢复的时间过长。
优先:数据安全,不怕数据损坏,如断电灯问题,还可以用redis-check-aof修复数据,AOF文件人为可读
缺点:占磁盘,性能损耗高,数据恢复慢
怎么用rdb和aof
如果既配置了RDB,又配置了AOF,则在进行数据持久化的时候,都会进行,但是在根据文件恢复数据的时候,以AOF文件为准,RDB文件作废



63.简述mysql主从复制原理?
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,将改变反映它自己的数据。


64.创建mysql用户alex,并且授予权限select权限,命令是什么?
grant select on *.* to alex@’%’;


65.nginx如何实现负载均衡?
upstream {}
定义服务器地址池





66.nginx的负载均衡调度算法有几种?是什么?
调度算法    概述
轮询     按时间顺序逐一分配到不同的后端服务器(默认)
weight    加权轮询,weight值越大,分配到的访问几率越高
ip_hash    每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash   按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发


67.linux下载软件包的方法有?
wget curl


68.windows和linux常用远程连接工具有哪些?
xshell
putty
securecrt


69.如何给与一个脚本可执行权限
chmod u+x file


70.过滤出settings.py中所有的空白和注释行
grep -v “^#” file |grep -v “^$”


71.过滤出file1中以abc结尾的行
grep “abc$” file1


72.容器退出后,通过docker ps查看不到,数据会丢吗?
不会丢,因为容器停止了,并没有被删除 docker ps -a可以看到


73.如何批量清理后台停止的容器
docker rm `docker ps -aq`

74.如何查看容器日志?
docker logs -f


75.wsgi是什么?
WSGI是Web服务器网关接口。它是一个协议,描述了Web服务器如何与Web应用程序通信。


76.Django中使用的是?
答:Django中实现wsgi的是:wsgiref和uwsgi,wsgiref是开发测试用的,uwsgi是线上用的。
Flask中实现wsgi的是:werkzurg
Tornado中实现wsgi的是:tornado和gevent


77.消息队列的作用?
1)程序解耦
2)数据冗余,例如rabbitmq的ack机制,消息确认机制
3)削峰能力
4)可恢复性,就算系统中部分组件挂掉,消息在队列也不丢失,待组件恢复后继续处理消息。
5)异步通信,如发红包,短信等流程丢入队列,可以优先级很低的去处理。


78.服务器被攻击,吃光了所有的CPU资源,怎么办?禁止重装系统

1找到吃资源的进程信息
2强制kill -9 杀死进程
3检查定时任务
4全局搜索病毒文件 find / -name 病毒文件名
5 强制删除病毒文件

76.绘制下python web部署图


77.在centos7.2中用一句话杀死所有的test.py进程
pkill -9 test.py

78.在centos7.2中如何查看程序执行所消耗的cpu,内存等硬件信息
top

79.unix查询环境变量的命令是
echo $PATH

cat /etc/profile


80.查询脚本定时任务的命令是
crontab
crontab -e #编辑定时任务的文件

crontab -l #列出定时任务的规则


81.saltstack、ansible、fabric、puppt工具的作用
远程执行命令 批量管理工具

SaltStack(或Salt)是一个基于命令行的工具,可以设置一个主客户端模式还是非集中模式。 Salt基于Python,提供了一种推送方法和一种与客户端通信的SSH方法。
Salt允许对客户端和配置模板进行分组,以简化对环境的控制。


Ansible是用于在可重复的方式将应用程序部署到远程节点和配置服务器的开源工具。
它为您提供了使用推送模型设置推送多层应用程序和应用程序工件的通用框架,

Chef是配置管理的开源工具,专注于开发方为它的用户群。

Fabric是在应用程序部署精简SSH一个基于Python的工具。 它主要用于跨多个远程系统运行任务,但也可以使用插件扩展以提供更高级的功能。
Fabric将配置您的系统,执行系统/服务器管理,并自动部署您的应用程序。

Puppet是在全面配置管理空间长期工具之一。 它是一个开源工具,但考虑到它已经存在多久,它已经被良好的审查和部署在一些最大和最苛刻的环境中。 Puppet基于Ruby,但是使用更接近JSON的定制的域脚本语言(DSL)来在其中工作。 它作为主客户端设置运行,并使用模型驱动方法。
Puppet代码设计作为依赖关系列表,这可以使事情更容易或更混乱,这取决于您的设置。



82.uwsgi、wsgi是什么?
wsgi是一种通用的接口标准或者接口协议,实现了python web程序与服务器之间交互的通用性。

uwsgi:同WSGI一样是一种通信协议
uwsgi协议是一个‘uWSGI服务器‘自有的协议,它用于定义传输信息的类型,
‘uWSGI‘是实现了uwsgi和WSGI两种协议的Web服务器,负责响应python的web请求。


83.supervisor是什么?
# Supervisor:
是一款基于Python的进程管理工具,可以很方便的管理服务器上部署的应用程序。
是C/S模型的程序,其服务端是supervisord服务,客户端是supervisorctl命令

# 主要功能:
1 启动、重启、关闭包括但不限于python进程。
2 查看进程的运行状态。
3 批量维护多个进程。



84.解释PV,UV的含义?
PV访问量(Page View),即页面访问量,每打开一次页面PV计数+1,刷新页面也是。
UV访问数(Unique Visitor)指独立访客访问数,一台电脑终端为一个访客。



85.解释QPS是什么?
‘QPS(Query Per Second)‘
每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准


86.什么是静态资源?什么是动态资源?
静态资源指定的是网站的CSS/JS/HTML文件
动态资源一般指的是数据,即后端给前端提供的数据

nginx实现动静分离,静态请求nginx直接返回
动态请求
uwsgi_pass 后端uwsgi的地址

87.saltstack如何采集服务器静态数据?

salt采用 granis组件 采集


88.请用yaml语法表示如下python数据结构
{
“老男孩”:[{“老师”:[“太白”,”女神”,”吴老板”]},{“学生”:[“20期佳增同学”]}]
}
"老男孩":
"老师":
- "丽华"
- "小黑"
- "老徐"
"学生":
- "大宝"
- "b哥"
- "超弟"




89.消息队列作用?
当程序系统发现某些任务耗费时间且优先级较低,迟点完成也不影响整个任务,就把这个任务丢给消息队列。



90.什么是docker生命周期?
镜像 容器 仓库 三大生命周期


91.docker容器有哪些状态?

容器可以被创建、启动、停止、删除、暂停



92.dockerfile常用指令?
FROM cento
LABLE 作者信息
RUN
WORKDIR
ADD
COPY
CMD
ENV
EXPOSE


ADD除了有添加的作用,还有解压缩的作用
WORKDIR /root 切换路径
copy就是把本地的文件,拷贝到容器空间内,没有解压作用
ENV #环境变量,尽可能使用ENV增加可维护性
RUN



93.dockerfile中copy和add的区别
ADD与COPY
COPY拷贝宿主机的文件 放到 容器中
- 优先使用COPY命令
-ADD除了COPY功能还有解压功能
添加远程文件/目录使用curl或wget




94.常用docker命令?

你常用的docker常用命令有哪些?操作镜像、容器、仓库的命令
docker images # 查看本地镜像
docker serach 镜像 # 通过docker hub搜索镜像
docker rmi 镜像 # 删除镜像
docker save 镜像 > 路径 # 导出镜像
docker load < 路径 # 导入镜像
docker build -t . # 打包生成镜像


```
操作容器命令:
docker run -d 镜像 解释器 # 根据镜像生成容器,后台允许
docker run -it 镜像 解释器 # 根据镜像生成并进入容器
docker start/stop 容器id # 启动/停止容器
docker ps # 查看当前运行的容器
docker rm 容器id # 删除容器
docker exec 容器id # 进入当前正在运行的容器
docker commit 容器id 镜像名 # 将容器提交为镜像
docker contain ls # 查看当前运行的容器

操作仓库的命令:
docker pull 镜像 # 下载镜像
docker push 镜像 # 推送镜像
```


95.如何退出一个交互式的容器终端,而不终止它?
exit

开启
docker exec -it 容器id


96.容器如何端口映射?数据卷映射?
-p 端口映射
-v 数据卷映射

Docker 端口映射即映射容器内应用的服务端口到本机宿主机器。
docker port 容器id

97.redis如何实现队列?

利用list 数据类型的特性 ,它是一个双向队列
可以用 lpush 往左边插入数据
再利用 rpop从右边取出数据



98.redis可以生产一次,消费多次吗?
可以 发布订阅的特性


99.nginx的access.log能够统计哪些信息?
IP相关统计
页面访问统计
每秒请求量统计
性能分析
TCP连接统计


100.rabbitmq如何实现队列,消息持久化?

# 声明一个队列(创建一个队列)
channel.queue_declare(queue=‘西游记‘)


# 声明一个队列(创建一个队列)
# 默认此队列不支持持久化,如果服务挂掉,数据丢失
# durable=True 开启持久化,必须新开启一个队列,原本的队列已经不支持持久化了
‘‘‘
实现rabbitmq持久化条件
delivery_mode=2
使用durable=True声明queue是持久化

‘‘‘

1、创建队列和发送消息时将设置durable=Ture,如果在接收到消息还没有存储时,消息也有可能丢失,就必须配置publisher confirm
channel.queue_declare(queue=‘task_queue‘, durable=True)

2、返回一个ack,进程收到消息并处理完任务后,发给rabbitmq一个ack表示任务已经完成,可以删除该任务

3、镜像队列:将queue镜像到cluster中其他的节点之上。
在该实现下,如果集群中的一个节点失效了,queue能自动地切换到镜像中的另一个节点以保证服务的可用性


git常用命令
1:git init—————————初始化
2:git add .————————-从工作区,添加到版本库
3:git commit -m”xxx”————从暂存区,添加到分支
4:git status————————查看状态
5:git log —————————查看版本库的日志
6:git reflog————————查看所有日志
7:git reset —head 版本号—-切换
8:git stash————————-保存
9:git stash————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash list——————————————————————————查看“某个地方”存储的所有记录
git stash clear—————————————————————————-清空“某个地方”
git stash pop——————————————————————————-将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply —————————————————————————编号,将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop —————————————————————————编号 ,删除指定编号的记录
10:git branch dev—————创建分支
11:git branch -d dev———-删除分支
12:git checkout dev————切换分支
13:git merge dev—————-合并分支
14:git branch———————查看所有分支
15:git clone https:xxx——-克隆
16:git add origin https:xxx-起个别名
17:git push origin dev ——添加到dev分支
18:git pull origin master—拉代码
19:git fetch origin master-去仓库获取
20:git merge origin/master-和网上下的master分支合并
协同开发:
默认是master分支——————————master
开发的分支—————————————dev
做代码review————————————reciew
程序员自己的分支——————————…….
1:每个员工创建自己的分支
2:将自己的代码提交的到自己的分支—————xxx,sss,wwww…….
3:由组长或老大做代码的review,——————-代码提交的review分支
4:再提交到dev.
5: 再合并到master分支
熟悉 Linux常用操作。
1:man rm———————————————查看命令帮助
2:mkdir———————————————-创建目录
3:touch———————————————-创建文件
4:cd—————————————————切换。
5:ls—————————————————查看目录
6:ls -lh————————————————查看目录详细
7:pwd————————————————-查看当前目录
8:vim————————————————-添加内容
9:echo————————————————追加内容
10:cat————————————————查看文件内容
11:mv————————————————-移动
12:cp————————————————-拷贝
13:mv————————————————重命名
15:find———————————————-搜索
16:rm————————————————-删除数据
17:ping———————————————-查看能不能上网
19:tar cf ————————————————打压缩
20:tar xf——————————————-解压缩
安装:
yum install
rpm包安装
编译安装
快捷键:
1:Tab键—————————————-自动补全命令或路劲。
2:ctrl+l—————————————清屏
3: ctrl+c—————————————取消当前操作
4:vi/vim 快捷键:
复制当前行 ——————————yy
粘贴—————————————-p
剪切—————————————-dd
撤销—————————————-u
恢复—————————————-ctrl + r

posted @ 2020-02-21 10:36  时光哥哥  阅读(1327)  评论(0编辑  收藏  举报