Docker学习系列(一):windows下安装docker - tina的博客 - 博客频道 - CSDN.NET

mikel阅读(1101)

本文目录如下:


windows下安装docker的方法应该参考Docker官网,之前参考的是网上其他人翻译的博客,出了一些问题,后来发现,是由于docker更新速度较快,安装官网的方法最为妥当!

下面引用Docker 中文指南中的几个提示:

提示1:Docker 已经在windows7.1和windows 8上通过测试,当然它也可以在低版本的windows上使用。但是你的处理器必须支持硬件虚拟化。

提示2:Docker 引擎使用的是Linux内核特性,所以我们需要在 Windows 上使用一个轻量级的虚拟机 (VM) 来运行 Docker。我们使用 Windows的Docker客户端来控制 Docker 虚拟化引擎的构建、运行和管理 。

提示3:为了简化这个过程,我们设计了一个叫 Boot2Docker 的应用程序,你可以通过它来安装虚拟机和运行 Docker。

提示4:虽然你使用的是 Windows 的 Docker 客户端,但是 docker 引擎容器依然是运行在 Linux 宿主主机上(现在是通过Virtual box)。直到我们开发了 windows 版本的 Docker 引擎,你只需要在你的 Windows 主机上启动一个 Linux 容器。


参考Install Docker for Windows,即按照该网站的步骤一步步按照即可,该网站的教程非常详细

1.windows按照docker的基本要求

(1)64为操作系统,win7或者更高
(2)支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用

2.具体安装步骤

即安装Docker Toolbox,同时还附加安装

  • Docker Client for Windows
  • Docker Toolbox management tool and ISO
  • Oracle VM VirtualBox
  • Git MSYS-git UNIX tools
    不用担心,下载的Docker Toolbox已经完全包含了这几个软件,直接安装就可以了

1.进入Docker Toolbox的下载网页,选择windows版本下载
这里写图片描述
2. 下载完成后,双击安装文件
3. 一路Next,接受所有默认安装
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

注意:在安装过程中,会出现几个其他的安装过程,如Ocracle Corporation等系列软件,全部选择安装即可,下面是几个小例子:
这里写图片描述
这里写图片描述
另外,如果你安装了360,它可能会阻止程序的安装,应该注意允许程序安装
这里写图片描述
4. 最后Finish
这里写图片描述
5. 整个安装过程非常简单,安装完成后,可以在桌面得到如下的三个图标:
这里写图片描述

3.开始使用

1.点击Docker Quickstart Terminal图标,从而打开一个Docker Toolbox terminal
这里写图片描述
– 打开terminal后,terminal会自动进行一些设置,需要点时间,全部完成后,会出现如下的结果
这里写图片描述
3.在$后输入各种docker命令就可以使用docker了
注:不需要像ubuntu中那样使用sudo!
例如:
(1)查看docker的版本信息

docker info
  • 1
  • 1

这里写图片描述
(2)登陆docker Hub的账号

docker login
  • 1
  • 1

然后,输入用户名和密码,例如
这里写图片描述
个人觉得:在使用docker时,是否登陆没有特别大的影响,只不过是,如果登陆了,就可以向docker hub上push自己的镜像了

4.安装远程连接工具连接docker

按照上面方法打开Docker Toolbox terminal后,发现在该终端中,无法进行复制、粘贴等操作,使用起来非常不方便,所以,这里参考zistxym的博文,安装远程连接工具SecureCRT

  • 下载SecureCRT
    地址:绿盟SecureCRT绿色版免安装,不知道为什么,有时这两个链接提示有病毒,所以,再提供一个百度云盘的链接,提取码:rm3g
  • 运行SecureCRT
    这里写图片描述
  • 连接docker
    这里写图片描述
    这里写图片描述
    注:默认的用户名和密码是: docker/tcuser
  • 使用SecureCRT即与使用Docker Quickstart Terminal的作用相同
    这里写图片描述
    这里写图片描述

    • 再使用SecureCRT连接docker时,必须要先启动Docker Quickstart Terminal
  • 关于SecureCRT的几点设置
    (1)使用中发现,secureCRT的鼠标右键功能默认是粘贴的功能,用起来和windows系统的风格不一致,如果要改为右键为弹出文本操作菜单功能,方便对选择的内容做拷贝编辑操作,可以在options菜单—-》global options——》terminal——-》mouse功能块处将paste on处改为:right button
    这里写图片描述
    此时,再鼠标右键时,弹出了文本操作功能的菜单,如下:
    这里写图片描述
    (2)更改secureCRT的字体和背景
    这里写图片描述
    这里写图片描述
    仅是更改当前section的字体
    这里写图片描述

5.安装中遇到的问题

全部安装完成后,打开Docker Quickstart Terminal,可能会出现如下错误:
这里写图片描述
这是因为电脑没有开启支持VT-X/AMD-v功能,即没有开启虚拟化技术,需要重启电脑,去BIOS里开启该功能

在利用image生成镜像时,发生了如下错误

flag provided but not defined:

以为是因为docekr service和client的版本不同,各种查询折腾,也没有成功,最后发现,居然是命令中-v和路径之间少了空格!都怪自己没有仔细查看错误提醒
这里写图片描述
~~~~~~~~~~
这里写图片描述

6.Docker的更新

如果本机安装的docker过期了,也就是有新版本的docker发布时,应该对本机的docker进行更新,否则很可能会影响它的继续使用,那么,对本机的docker进行更新可以安装下述方式:
(1)打开Docker Quickstart Terminal终端
(2)输入命令:docker-machine upgrade default
会开始自动更新本机的docker,如下图所示
这里写图片描述
(3)查看docker版本

docker version
  • 1
  • 1

这里写图片描述

这里写图片描述

7.Docker中的jupyter

我使用的image中带有jupyter,但发现按照ubuntu下的使用方法,即进入容器后,打开http://0.0.0.0:8888/无法打开Jupyter,经过一番查询才终于找到正解,原来jupyter的image中就有明确说明,但没有想到去那里查询!

具体方法:
(1)打开boot2docker,输入docker-machine ip,会返回一个IP地址,例如

$ docker-machine ip myjupytermachine
192.168.99.104

(2)在浏览器中打开http://192.168.99.104:8888,即可打开jupyter
而不是与ubuntu中一样的http://localhost:8888 (http://0.0.0.0:8888/)

8.windows下使用docker的常用命令

详细内容与ubuntu下的使用方法类似,见Docker学习系列(三):Ubuntu下使用Docker的基本指令记录及一些注意事项,但为了查阅方便,这里再单独列举

  • 查看本机images
docker images
  • 1
  • 1
  • 查看本机运行的container
docker ps
  • 1
  • 1
  • 从dockerhub上pull 镜像
docker pull 镜像名称
  • 1
  • 1
  • 利用image运行container:
docker run -it --rm -p 8888:8888 -v /c/Users/tingting/dropbox/code:/root/opt/workspace -v /c/Users/tingting/dropbox/data:/root/data tingtinglu/caffe_mxnet
  • 1
  • 1

(1)利用参数 -v
(2)冒号前为宿主机目录,必须为绝对路径
/c/Users/tingting/dropbox/code:
本机的C:\Users\tingting\dropbox\code文件夹
/c/Users/tingting/dropbox/data
本机的C:\Users\tingting\dropbox\data文件夹
(3)冒号后为镜像内挂载的路径
/root/opt/workspace
docker中的文件夹/root/opt/workspace
/root/data
docker中的文件夹/root/data
(4)这里的本机文件夹为c盘,那么,能否为d盘呢?
测试:

docker run -it --rm -p 8888:8888 -v /d/Dropbox/code:/root /opt/workspace -v /d/Dropbox/data:/root/data tingtinglu/caffe_mxnet
  • 1
  • 1

发现并不可行!这是因为目前,windows下只支持c盘下的文件夹映射

关于网狐棋牌的数据库 - 帘卷西风的专栏 - 博客频道 - CSDN.NET

mikel阅读(1026)

前不久放出了我自己

来源: 关于网狐棋牌的数据库 – 帘卷西风的专栏 – 博客频道 – CSDN.NET

前不久放出了我自己整理的网狐棋牌的源码,下载的网友反应都不错,只是不少同学都找我要数据库,最近一直没时间,今天趁放假的时间把数据库放出来,分享给大家。

关于网狐棋牌6603源码的整理、编译和搭建

数据库是我从网上下载,然后自己整理的,网狐的数据库存储过程原来是加密了的,我解密之后把数据库导出成了SQL文件,大家下载之后直接导入SQL文件即可。

数据库我使用使用SQL SERVER2005和2008都能架设成功。

关于数据库内容,我大致说一下,GameUserDB、ServerInfoDB、ServerInfoDataDB、ThreasureDB是框架级别的数据库,GameDataDB是游戏数据库,每个游戏的数据库结构是一样的,大家创建一个游戏,就导入一个该数据库即可。

大家在架设的过程中如果有问题可以咨询我。最后给出数据库文件的下载地址。

网狐棋牌数据库整理文件

关于网狐棋牌6603源码的整理、编译和搭建 - mergerly的专栏 - 博客频道 - CSDN.NET

mikel阅读(1656)

最近换工作,趁着有一段清闲时间,整理了一下网狐棋牌的源码,这份源码下载很久了,一直呆在硬盘。这次正好好好看看。       网狐的代码质量很高,流露出来的代码也比较完整,基本上都能编译通过。但是要真的搭建起来,还是需要额外花一些功夫的。       我下载的是6603版本,经过分析和研究,服务器这边主要是缺少KernelEngine的源码,客户端这边主要是缺少NetworkServ

来源: 关于网狐棋牌6603源码的整理、编译和搭建 – mergerly的专栏 – 博客频道 – CSDN.NET

最近换工作,趁着有一段清闲时间,整理了一下网狐棋牌的源码,这份源码下载很久了,一直呆在硬盘。这次正好好好看看。

网狐的代码质量很高,流露出来的代码也比较完整,基本上都能编译通过。但是要真的搭建起来,还是需要额外花一些功夫的。

我下载的是6603版本,经过分析和研究,服务器这边主要是缺少KernelEngine的源码,客户端这边主要是缺少NetworkService的源码。都是核心的网络库和基础库呀,还好在网上其他地方找到了这2个工程的源码,整理编译之后发现和主体版本还是能够对上。

由于流出来的版本是VS2003的工程,我顺手就把网狐的代码移植到VS2012了,顺便把服务器移植的过程中有以下问题,第一个问题是for循环的变量在循环体外还有使用,VC工程升级过的同学应该都能解决。第二个问题是stdafx.h的内容比较老了,找一个新过程的拷贝过去。第三个问题是客户端大厅和游戏客户端启动后崩溃,研究了一段时间,后来发现只要有RichEdit的界面加载就崩溃,到网上查了一下,发现是没加载richedit的dll。需要在程序启动的时候加上这么一句,LoadLibrary(TEXT( “riched20.dll”)); 就可以了。

到此为止,所有的程序都能跑了,要搭建私服还不行,还缺数据库,还好在网上还是能找到流出来的数据库,我在SQL2005和SQL2008都能运行,不过存储过程是加密的,看不到,对于我这样控制欲很强,后期可能定制游戏服务器的人来说,这是不可接受的,在网上查了许多破解的方案,试过都不太完美,最后找到了一个工具,能够完美的破解SQL Server的加密存储过程。工具名字是DMT SQL Decryptor。

然后又整理和分析了一下数据库,很快就把服务器运行起来了。比较开心,后期计划把网狐的客户端游戏移植到Android

 

把整理后的源码上传,分享给大家吧,使用VS2012的环境。大家遇到什么问题可以咨询我!

资源要10分,算我的辛苦费吧,大家自愿下载!大笑

网狐棋牌整理版代码

有同学找我要数据库文件,前段时间没空,这两天我补了一篇说明文档,并分享了数据库文件。

关于网狐棋牌的数据库

网狐棋牌数据库整理文件

最后上图得瑟一下,大笑

 

——————————————————————————————

前不久放出了我自己整理的网狐棋牌的源码,下载的网友反应都不错,只是不少同学都找我要数据库,最近一直没时间,今天趁放假的时间把数据库放出来,分享给大家。

关于网狐棋牌6603源码的整理、编译和搭建

数据库是我从网上下载,然后自己整理的,网狐的数据库存储过程原来是加密了的,我解密之后把数据库导出成了sql文件,大家下载之后直接导入sql文件即可。

数据库我使用使用SQL SERVER2005和2008都能架设成功。

关于数据库内容,我大致说一下,GameUserDB、ServerInfoDB、ServerInfoDataDB、ThreasureDB是框架级别的数据库,GameDataDB是游戏数据库,每个游戏的数据库结构是一样的,大家创建一个游戏,就导入一个该数据库即可。

大家在架设的过程中如果有问题可以咨询我。最后给出数据库文件的下载地址。

网狐棋牌数据库整理文件

微赞平台拼团插件的支付流程

mikel阅读(1668)

最终支付的是页面是
vzan/payment/wechat/pay.php第73行
$wOpt = wechat_build($params, $wechat);构造向腾讯发送的参数,并在本地页面调用支付的JS

参数的传递是由url(‘mc/cash/wechat’);这个地址传送过来的,传递的规则是ps中放的是订单的参数
$sl = base64_encode(json_encode($ps));
$auth = sha1($sl . $_W[‘uniacid’] . $_W[‘config’][‘setting’][‘authkey’]);
header(“location: ../payment/wechat/pay.php?i={$_W[‘uniacid’]}&auth={$auth}&ps={$sl}”);
url(‘mc/cash/wechat’)起的是支付中转的作用,将不同的支付方式转到相应的.php中,进行处理,对应的文件就是
vzan/app/source/mc/cash.ctrl.php
微信的支付大约是在第150行左右

那么如何进行跳转呢,具体的实现是在paycenter这个文件中,执行文件site.php,大约是在第111行中protected function pay

{if !empty($pay[‘wechat’][‘switch’])}

<div class=”pay-btn” id=”wechat-panel”>
<form action=”{php echo url(‘mc/cash/wechat’);}” method=”post”>
<input type=”hidden” name=”params” value=”{php echo base64_encode(json_encode($params));}” />
<input type=”hidden” name=”encrypt_code” value=”” />
<input type=”hidden” name=”card_id” value=”{php echo base64_encode($card_id);}” />
<input type=”hidden” name=”coupon_id” value=”” />
<button class=”btn btn-success btn-block col-sm-12″ disabled=”disabled” type=”submit” id=”wBtn” value=”wechat” style=”height: 42px; font-size: 18px;”>微信支付(必须使用微信内置浏览器)</button>
</form>
</div>
<script type=”text/JavaScript”>
document.addEventListener(‘WeixinJSBridgeReady’, function onBridgeReady() {
$(‘#wBtn’).removeAttr(‘disabled’);
$(‘#wBtn’).html(‘微信支付’);
});
</script>
{/if}

由谁来引导到支付中心的页面的呢?是由订单确认来引导向这个页面的,具体的实现原理是这样的
执行文件:orderconfirm.php,
模板文件:include $this->template(‘confirm’);
页面提交到site.php后,检查是否是提交信息,如果是提交信息,
转到下面的url:header(“location: ” .  $this->createMobileUrl(‘pay’, array(‘orderid’ => $orderid)));
之前的页面由order.php来完成

git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地 - jtracydy的博客 - 博客频道 - CSDN.NET

mikel阅读(1500)

git拉取远程分支并创建本地分支一、查看远程分支使用如下Git命令查看所有远程分支:git branch -r11二、拉取远程分支并创建本地分支方法一使用如下命令:git checkout -b 本地分支名x origin/远程分支名x11使用该方式会在本地新建分支x,并自动切换到该本地分支x。方式二使用如下命令:gi

来源: git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地 – jtracydy的博客 – 博客频道 – CSDN.NET

git拉取远程分支并创建本地分支

一、查看远程分支

使用如下Git命令查看所有远程分支:

git branch -r
  • 1
  • 1

二、拉取远程分支并创建本地分支

方法一

使用如下命令:

git checkout -b 本地分支名x origin/远程分支名x
  • 1
  • 1

使用该方式会在本地新建分支x,并自动切换到该本地分支x。

方式二

使用如下命令:

git fetch origin 远程分支名x:本地分支名x
  • 1
  • 1

使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。

转自:http://blog.csdn.NET/tterminator/article/details/52225720

Git中从远程的分支获取最新的版本到本地

Git中从远程的分支获取最新的版本到本地有这样2个命令:

1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并

上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp
git diff tmp
git merge tmp

从远程获取最新的版本到本地的test分支上
之后再进行比较合并

2. git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

 

git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支 - arkblue的专栏 - 博客频道 - CSDN.NET

mikel阅读(1100)

$ git branch -a* br-2.1.2.2 master remotes/origin/HEAD -> origin/master remotes/origin/br-2.1.2.1 remotes/origin/br-2.1.2.2 remotes/origin/br-2.1.3 remotes/origin/master

来源: git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支 – arkblue的专栏 – 博客频道 – CSDN.NET

1 查看远程分支

  1. $ git branch -a
  2. * br-2.1.2.2
  3.   master
  4.   remotes/origin/HEAD -> origin/master
  5.   remotes/origin/br-2.1.2.1
  6.   remotes/origin/br-2.1.2.2
  7.   remotes/origin/br-2.1.3
  8.   remotes/origin/master

 

2 查看本地分支

  1. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  2. $ git branch
  3. * br-2.1.2.2
  4.   master

 

3 创建分支

  1. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  2. $ git branch test
  3. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  4. $ git branch
  5. * br-2.1.2.2
  6.   master
  7.   test

线面是把分支推到远程分支

  1. $ git push origin test

4 切换分支到test

  1. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  2. $ git branch
  3. * br-2.1.2.2
  4.   master
  5.   test
  6. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  7. $ git checkout test
  8. M       jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java
  9. M       jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java
  10. Switched to branch ‘test’
  11. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)
  12. $ git branch
  13.   br-2.1.2.2
  14.   master
  15. * test

M 表示cong 原来分支(上一次修改没有提交br-2.1.2.2)带过来的修改

5 删除本地分支   Git branch -d xxxxx

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)

  1. $ git checkout br-2.1.2.2
  2. M       jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java
  3. M       jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java
  4. Switched to branch ‘br-2.1.2.2’
  5. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  6. $ git br
  7. * br-2.1.2.2
  8.   master
  9.   test
  10. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  11. $ git br -d test
  12. Deleted branch test (was 17d28d9).
  13. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
  14. $ git br
  15. * br-2.1.2.2
  16.   master

 

6 查看本地和远程分支  -a。前面带*号的代表你当前工作目录所处的分支

  1. remotes/origin/HEAD -> origin/master #啥意思呢?

”在clone完成之后,Git 会自动为你将此远程仓库命名为origin(origin只相当于一个别名,运行git remote –v或者查看.git/config可以看到origin的含义),并下载其中所有的数据,建立一个指向它的master 分支的指针,我们用(远程仓库名)/(分支名) 这样的形式表示远程分支,所以origin/master指向的是一个remote branch(从那个branch我们clone数据到本地)“

这个是执行 git remote -v 的结果,看出来origin其实就是远程的git地址的一个别名。

  1. $ git remote  -v
  2. origin  git@xxxx/jingwei.git (fetch)
  3. origin  git@xxxx/jingwei.git (push)

 

  1. shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)
  2. $ git branch -a
  3.   br-2.1.2.2
  4.   master
  5. * test
  6.   remotes/origin/HEAD -> origin/master
  7.   remotes/origin/br-2.1.2.1
  8.   remotes/origin/br-2.1.2.2
  9.   remotes/origin/br-2.1.3
  10.   remotes/origin/master

 

7 删除远程版本

  1. git push origin :br-1.0.0

 

  1. 删除远程分支
  2. git branch -r -d origin/branch-name
  3. git push origin :branch-name

mesmotronic/cordova-plugin-fullscreen: Plugin for Cordova (PhoneGap) to enable Android's various full screen modes

mikel阅读(1101)

来源: mesmotronic/cordova-plugin-fullscreen: Plugin for Cordova (PhoneGap) to enable Android’s various full screen modes

Full Screen Plugin for Cordova

Plugin for Cordova (or PhoneGap) 3.0+ to enable true full screen on Android devices using lean and immersive modes, ported from our popular ANE for Adobe AIR.

Released under BSD license; see LICENSE for details.

How does it work?

This plugin enables developers to offer users a true full screen experience in their Cordova and PhoneGap apps for Android.

Using Android 4.0+, you can use true full screen in “lean mode”, the way you see in apps like YouTube, expanding the app right to the edges of the screen, hiding the status and navigation bars until the user next interacts. This is ideally suited to video or cut-scene content.

In Android 4.4+, however, you can now enter true full screen, fully interactive immersive mode. In this mode, your app will remain in true full screen until you choose otherwise; users can swipe down from the top of the screen to temporarily display the system UI.

If you find that the plugin doesn’t work as you might like on a specific device or Android configuration you’re using, don’t forget that this project is open source, so feel free to fork the project and adapt it to work in any way you like!

Installation

Cordova

cordova plugin add cordova-plugin-fullscreen

PhoneGap

phonegap local plugin add cordova-plugin-fullscreen

Notes

From version 1.0.2, the plugin ID has changed to cordova-plugin-fullscreen in line with the official Cordova plugin naming coventions following the switch to NPM. We therefore recommend that any previous version be uninstalled before upgrading to this release.

Since the release of android@5.0.0, setting <preference name="Fullscreen" value="true" /> in config.xml will use immersive mode, where available, even without this plugin.

Code example

Using the plugin in your app couldn’t be easier:

function successFunction()
{
    console.info("It worked!");
}

function errorFunction(error)
{
    console.error(error);
}

function trace(value)
{
	console.log(value);
}

// Is this plugin supported?
AndroidFullScreen.isSupported(supportedFunction, errorFunction);

// Is immersive mode supported?
AndroidFullScreen.isImmersiveModeSupported(successFunction, errorFunction);

// The width of the screen in immersive mode
AndroidFullScreen.immersiveWidth(trace, errorFunction);

// The height of the screen in immersive mode
AndroidFullScreen.immersiveHeight(trace, errorFunction);

// Hide system UI until user interacts
AndroidFullScreen.leanMode(successFunction, errorFunction);

// Show system UI
AndroidFullScreen.showSystemUI(successFunction, errorFunction);

// Extend your app underneath the status bar (Android 4.4+ only)
AndroidFullScreen.showUnderStatusBar(successFunction, errorFunction);

// Extend your app underneath the system UI (Android 4.4+ only)
AndroidFullScreen.showUnderSystemUI(successFunction, errorFunction);

// Hide system UI and keep it hidden (Android 4.4+ only)
AndroidFullScreen.immersiveMode(successFunction, errorFunction);

All methods will call the successFunction callback if the action was successful and the errorFunction if it wasn’t (or isn’t supported); if you’re using the plugin in an app for a platform other than Android, all methods will fail.

The immersiveWidth and immersiveHeight properties return the screen width and height available in immersive mode (or with the system UI hidden), where supported.

Getting the immersive screen size

You can use the immersiveWidth and immersiveHeight methods to find out the dimensions of the screen with the system UI hidden, regardless of the current screen state.

linux 查找目录或文件 - 相信自己能行,那就一定能行 - 博客频道 - CSDN.NET

mikel阅读(1094)

 查找目录:find /(查找范围) -name 查找关键字 -type d查找文件:find /(查找范围) -name 查找关键字 -print  如果需要更进一步的了解,可以参看Linux的命令详解。这里摘抄如下: ·find path -option [ -print ] [ -exec -ok command ] {} /;#-print 将查找到的文件输

来源: linux 查找目录或文件 – 相信自己能行,那就一定能行 – 博客频道 – CSDN.NET

查找目录:find /(查找范围) -name ‘查找关键字’ -type d
查找文件:find /(查找范围) -name 查找关键字 -print

 

 

如果需要更进一步的了解,可以参看Linux的命令详解。

这里摘抄如下:

 

·find path -option [ -print ] [ -exec -ok command ] {} /;
#-print 将查找到的文件输出到标准输出
#-exec command {} /;     —–将查到的文件执行command操作,{} 和 /;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户

====================================================

-name filename             #查找名为filename的文件
-perm                       #按执行权限来查找
-user   username            #按文件属主来查找
-group groupname            #按组来查找
-mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime   -n +n              #按文件访问时间来查
-perm                        #按执行权限来查找
-user   username            #按文件属主来查找
-group groupname            #按组来查找
-mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime   -n +n              #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2              找文件,-n指n天以内,+n指n天以前
-ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2              #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size     n              #查长度为n块[或n字节]的文件
-depth                      #使查找在进入子目录前先行查找完本目录
-fstype                     #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size     n              #查长度为n块[或n字节]的文件
-depth                      #使查找在进入子目录前先行查找完本目录
-fstype                     #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                      #查文件时不跨越文件系统mount点
-follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                   #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                      #查文件时不跨越文件系统mount点
-follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                       #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune                      #忽略某个目录

====================================================
$find ~ -name “*.txt” -print    #在$HOME中查.txt文件并显示
$find .   -name “*.txt” -print
$find .   -name “[A-Z]*” -pri26nbsp;   #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune                              #忽略某个目录

=====================================================
$find ~ -name “*.txt” -print    #在$HOME中查.txt文件并显示
$find .   -name “*.txt” -print
$find .   -name “[A-Z]*” -print #查以大写字母开头的文件
$find /etc -name “host*” -print #查以host开头的文件
$find . -name “[a-z][a-z][0–9][0–9].txt”   -print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} /; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print

$find . -size +1000000c -print       #查长度大于1Mb的文件
$find . -size 100c        -print      # 查长度为100c的文件
$find . -size +10 -print             #查长度超过期作废10块的文件(1块=512字节)

$cd /
$find etc home apps   -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name “passwd*” -exec grep “cnscn” {} /; #看是否存在cnscn用户
$find . -name “yao*” | xargs file
$find . -name “yao*” | xargs echo   “” > /tmp/core.log
$find . -name “yao*” | xargs chmod o-w

======================================================

find -name april*                      在当前目录下查找以april开始的文件
find -name april* fprint file        在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l           在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2                 在/home下查最近两天内改动过的文件
find /home   -atime -1                  查1天之内被存取过的文件
find /home -mmin   +60                  在/home下查60分钟前改动过的文件
find /home -amin +30                  查最近30分钟前被存取过的文件
find /home -newer tmp.txt             在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt            在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2                  列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn                列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501                 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn              列出/home内组为cnscn的文件或目录
find /home -gid 501                   列出/home内组id为501的文件或目录
find /home -nouser                    列出/home内不属于本地用户的文件或目录
find /home -nogroup                   列出/home内不属于本地组的文件或目录
find /home   -name tmp.txt   -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty                     查找大小为0的文件或空目录
find /home -size +512k               查大于512k的文件
find /home -size -512k               查小于512k的文件
find /home -links +2                 查硬连接数大于2的文件或目录
find /home -perm 0700                查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} /;
find /tmp -name tmp.txt -ok rm {} /;

find   / -amin   -10       # 查找在系统中最后10分钟访问的文件
find   / -atime -2         # 查找在系统中最后48小时访问的文件
find   / -empty              # 查找在系统中为空的文件或者文件夹
find   / -group cat        # 查找在系统中属于 groupcat的文件
find   / -mmin -5         # 查找在系统中最后5分钟里修改过的文件
find   / -mtime -1        #查找在系统中最后24小时里修改过的文件
find   / -nouser             #查找在系统中属于作废用户的文件
find   / -user   fred       #查找在系统中属于FRED这个用户的文件

查当前目录下的所有普通文件
——————————————————————————–

# find . -type f -exec ls -l {} /;
-rw-r–r–    1 root     root        34928 2003-02-25 ./conf/httpd.conf
-rw-r–r–    1 root     root        12959 2003-02-25 ./conf/magic
-rw-r–r–    1 root     root          180 2003-02-25 ./conf.d/README
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出
=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} /;
=================================================
查询当天修改过的文件
[root@book class]# find ./ -mtime -1 -type f -exec ls -l {} /;
=================================================
查询文件并询问是否要显示
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
< ls … ./classDB.inc.PHP > ? y
-rw-r–r–    1 cnscn    cnscn       13709 1月 12 12:22 ./classDB.inc.php
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
< ls … ./classDB.inc.php > ? n
[root@book class]#

=================================================
查询并交给awk去处理
[root@book class]# who | awk ‘{print $1″/t”$2}’
cnscn   pts/0

=================================================
awk—grep—sed

[root@book class]# df -k | awk ‘{print $1}’ | grep -v ‘none’ | sed s”///dev////g”
文件系统
sda2
sda1
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ‘none’
文件系统
/dev/sda2
/dev/sda1

1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR”,最后打印出所有包含”SYSCALL_VECTOR”的文件名

A) find /tmp -name “*.h” | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut   -d’:’ -f1| uniq > filename
C) find /tmp -name “*.h” -exec grep “SYSCALL_VECTOR” {} /; -print
2)find / -name filename -exec rm -rf {} /;
find / -name filename -ok rm -rf {} /;
3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;
4)将find出来的东西拷到另一个地方
find *.c -exec cp ‘{}’ /tmp ‘;’

如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir
6)查找2004-11-30 16:36:37时更改过的文件
# A=`find ./ -name “*php”` | ls -l –full-time $A 2>/dev/null | grep “2004-11-30 16:36:37”

Linux下查看文件内容的命令

mikel阅读(1145)

来源: Linux下查看文件内容的命令 – 梨璐2012 – 博客园

查看文件内容的命令:

cat     由第一行开始显示内容,并将所有内容输出

tac     从最后一行倒序显示内容,并将所有内容输出

more    根据窗口大小,一页一页的现实文件内容

less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head    只显示头几行

tail    只显示最后几行

nl      类似于cat -n,显示时输出行号

tailf   类似于tail -f

1.cat 与 tac

cat的功能是将文件从第一行开始连续的将内容输出在屏幕上。但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只能看到一部分内容。

cat语法:cat [-n]  文件名 (-n : 显示时,连行号一起输出)

 

tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。我们可以发现,tac实际上是cat反过来写。这个命令也不常用。

tac语法:tac 文件名。

 

2.more和less(常用)

more的功能是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more

more的语法:more 文件名

Enter 向下n行,需要定义,默认为1行;

Ctrl f 向下滚动一屏;

空格键 向下滚动一屏;

Ctrl b 返回上一屏;

= 输出当前行的行号;

:f 输出文件名和当前行的行号;

v 调用vi编辑器;

! 命令 调用Shell,并执行命令;

q 退出more

 

less的功能和more相似,但是使用more无法向前翻页,只能向后翻。

less可以使用【pageup】和【pagedown】键进行前翻页和后翻页,这样看起来更方便。

less的语法:less 文件名

less还有一个功能,可以在文件中进行搜索你想找的内容,假设你想在passwd文件中查找有没有weblogic字符串,那么你可以这样来做:

[root@redhat etc]# less passwd

然后输入:

/weblogic

回车

此时如果有weblogic字符串,linux会把该字符已高亮方式显示。

退出查看页面,请按“q”键。

 

3.head和tail

head和tail通常使用在只需要读取文件的前几行或者后几行的情况下使用。head的功能是显示文件的前几行内容

head的语法:head [n number] 文件名 (number 显示行数)

 

tail的功能恰好和head相反,只显示最后几行内容

tail的语法:tail [-n number] 文件名

 

4.nl

nl的功能和cat -n一样,同样是从第一行输出全部内容,并且把行号显示出来

nl的语法:nl 文件名

 

5.tailf

 

tailf命令几乎等同于tail -f,严格说来应该与tail –follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件(It is similar to tail -f but does not access the file when it is not growing.  This has the side effect of not updating the access  time for the file, so a filesystem flush does not occur periodically when no log activity is happening.)。tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问嘛(tailf  is extremely useful for monitoring log files on a laptop when logging is infrequent and the user desires that the hard disk spin down to conserve battery life.)。tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令,本文提供了怎么编译安装tailf命令的方法。

面就谈谈二者的区别:

1. tailf 总是从文件开头一点一点的读, 而tail -f 则是从文件尾部开始读

2. tailf check文件增长时,使用的是文件名, 用stat系统调用;而tail -f 则使用的是已打开的文件描述符; 注:tail 也可以做到类似跟踪文件名的效果; 但是tail总是使用fstat系统调用,而不是stat系统调用;结果就是:默认情况下,当tail的文件被偷偷删除时,tail是不知道的,而tailf是知道的。

 

常用参数

 

格式:tailf logfile

 

动态跟踪日志文件logfile,最初的时候打印文件的最后10行内容。

docker进入后台运行的容器 - 朱小杰 - 博客园

mikel阅读(1047)

来源: docker进入后台运行的容器 – 朱小杰 – 博客园

我们运行docker容器的时候,使用了-d参数,把容器在后台运行后。
这个时候,我们使用docker ps命令,我们就可以知道哪些程序在后台运行。
  

我们要怎么进入到docker容器呢?
1:使用docker attach命令
我们使用
docker attach db3 或者 docker attach d48b21a7e439

 

db3是后台容器的NAMES,d48b21a7e439是容器的进程ID  CONTAINER ID
然后就进去了这个容器的ssh界面。
但是它有一个缺点,只要这个连接终止,或者使用了exit命令,容器就会退出后台运行
 
 
2:使用docker exec命令
这个命令使用exit命令后,不会退出后台,一般使用这个命令,使用方法如下
docker exec -it db3 /bin/sh 或者 docker exec -it d48b21a7e439 /bin/sh

 

db3是后台容器的NAMES,d48b21a7e439是容器的进程ID  CONTAINER ID
 /bin/sh 是固定写法
它也能进入这个容器