首页 文章 精选 留言 我的

精选列表

搜索[数据库相关],共10023篇文章
优秀的个人博客,低调大师

Docker容器相关的命令

创建容器和启动容器 创建容器命令:dockerrun对应参数说明:-i :表示运行容器-t:表示容器启动后进入该容器执行命令,加入俩个参数后,容器创建就能登录进去,分配一个伪终端-name:为创建的容器命名-v:表示目录映射关系(前面是宿主机目录,后者是容器的目录)可以使用多个-v做多个目录或者文件的映射,注意:最好使用目录映射,在宿主机上修改文件,然后共享到容器中-d :在run后面加-d参数,则会创建一个守护进程在后台运行(这样创建后就不会自动登录容器,如果只加-it就会在创建容器中进入容器)-p :表示端口映射,前者是宿主机端口,后者是容器的银蛇端口,可以使用多个-p做多个端口的映射(1)交互式的创建容器 docker run -it(-i -t) --name=容器名称 镜像名称:标签 /bin/bash 退出当前容器 exit (2) 后台启动容器的进程 docker run -d --name=容器名称 镜像名称:标签 (3) 登录守护进程容器的方式 docker exec -it 容器名称(或者容器ID) /bin/bash案例:docker exec -it mycentos2 /bin/bash 查看容器 查看正在运行的容器 docker ps 查看所有的容器 docker ps -a 查看最后一次运行的容器 docker ps -l 查看停止的容器 docker ps -f status=exited 停止与启动容器 停止容器: docker stop 容器名称(或者容器ID) 启动容器: docker start 容器名称(或者容器ID) 文件拷贝 如果我们需要将文件拷贝容器内可以使用cp命令 docker cp 需要拷贝的文件或者目录 容器名称:容器目录 也可以将文件从容器拷贝出来 docker cp 容器名称:容器目录 需要拷贝的文件或目录 目录挂载 我们可以在创建容器的时候,将宿主机的目录与容器的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而影响容器。创建容器 添加-v参数 宿主机目录:容器目录 docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos 可以共享多个目录,可以出现权限不足。 selinux权限去掉,--privileged=true来解决目录没有权限的问题 查看容器的ip 我们可以通过以下命令查看容器的运行各种参数 docker inspect 容器名称(容器ID) 也可以执行执行命令输出ip docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID) 删除容器 docker rm 容器名称(容器ID) 注意:删除imagedocker rmi imageid 前期是根据这个image的容器要删除docker rm 容器名称 删除容器 要先停止对应的容器

优秀的个人博客,低调大师

CSS相关知识点

1、高和行高也可以撑开盒子,背景图不行。 2、文字若不设置行高,是包含文字的盒子的行高。 4、如果给了定位,但是没有给left,top等值,默认会腾出行内元素、padding的位置,有的时候我们可以使用这些特性,有的时候我们不熟悉的话可能产生bug。 5、较少功能使用较少代码(a代替ui>li>a) 6、如果盒子都是左对齐的话,最后一个盒子在右边的位置不够的话,会掉下来,如果第一个盒子A比第二个盒子B高,那么最后一个盒子C掉下来后跟第二个盒子B左对齐,而不是跟第一个盒子A左对齐。如果最后一个盒子C后面还有一个盒子D的话,D盒子的顶端跟C对齐。(下图 JD logo 是 A 盒子, 搜索框是 B 盒子, 周杰伦的歌是 C 盒子,我的购物车是 D 盒子。) 7、标准流中的文字不会被浮动的盒子盖住。所以一个大盒子中的小盒子要么都浮动要么都不浮动。 8、父盒子高度为0 ,子盒子如果是浮动的话不占位置,下面的标准流盒子将会跑到子盒子下面。 或者使用了定位,父盒子高度为0,然后子绝父相,下面的标准流盒子依然会跑到子盒子下面。 (这个可以做类似京东的侧边栏,如果侧边栏挡住了跑上来的标准流盒子,那么把包含标准流的整个大盒子定位:position: relative ,因为定位的层级高,所以就可以显示标准流的所有内容了。) 9、想要盒子随着界面变大变小,而盒子随着界面的中线能够移动的时候(类似定位/脱标的盒子居中对齐),不要加版心(margin: 0 auto;)。 10、父盒子有高度,但是子盒子太高,父盒子会被撑破;如果父盒子没有高度,那么父盒子会被撑开,是所有子盒子最高的高度。撑开的盒子可能会产生影响。(不要让浮动的盒子超出父盒子) 11、浮动盒子的相互影响,不管是否在一个大盒子里面(蓝盒子是包含在粉红盒子里面的,紫盒子和粉红盒子是并列的)。 12、谷歌浏览器不支持12号以下字体大小。 13、子盒子不占位置,父盒子高度为0,会导致下面的盒子顶上来了。(清除浮动) 14、curser: pointer; 模拟鼠标小手样式。 15、<a href=""></a> 如果 href 值为空,刷新页面。 如果 href 值为#,跳转到页面顶端,不刷新页面。 如果 href 值为javascript:; 或者javascript:void(0) ,不刷新页面,也不跳转。 16、定位的时候,left 的权限比 right 权限高,top 比 bottom 高,提高权限也没用。 17、图片半透明 opacity:0.4; 优点方便。缺点:里面的内容也会半透明。 CSS3的技术来解决半透明: background: rgba(0,0,0,0.3); background: rgba(0,0,0, .3); 18、行高可以继承。 19、如果一个大盒子装的是 li 标签,而且 li 标签是浮动的,如果 li 里面的内容超过了大盒子的话,会有 li 标签掉下来,如何使得所有的 li 标签在一行显示呢?用一个辅助盒子装下所有的 li 标签,然后大盒子只装辅助盒子,这样对于大盒子来说,所有的 li 标签都会在一行显示,即使大盒子很小。而辅助盒子可以使用 ul 来代替,给 ul 一个所有 li 加起来的宽度多一点即可,但是多的一点要少于一个 li 的宽度。 20、行内元素给了定位,不需要转block,只有static, relative定位的时候需要转 block。 21、盒子的border有重叠怎么办,可以往左上移动border的margin来覆盖。 22、background: url("spirit.png") -135px 0; 关于背景の问题: 有时候我发现background后面两个px可以调节位置,有的时候又必须使用left,top等调位置。其实后面的两个px本来就是调位置的,而且调的是整个背景的位置,当背景是整张图片的时候,调节这两个px就可以了,但是精灵图因为需要的只是背景图中的某一个区域,调节这两个px只是将选中的区域移动到定位的原点,然后再使用left,top等将选定的区域调节到定位的具体位置。

优秀的个人博客,低调大师

开源硬件相关平台

可见有如下几种,当然树莓派由于直至再用,这里不做补充: 1.UDOO: 4倍树莓派性能+Android/Linux全兼容+Arduino开发,UDOO打造极客个人电脑DIY新高度,为教育、创新行业提供强大支撑。 今天为大家介绍的新奇玩物名叫UDOO,它是一台与此前鼎鼎大名的树梅派功能相似的迷你电脑。UDOO主板内置i.MX6 Freescale处理器和Arduino开发板,可以运行Android和Linux操作系统,而且价格低廉,非常适合教育、创新、IT行业和各路 Geek使用。 UDOO非常适合软件开发和程序设计,简单易用,不需要非常多的背景知识。UDOO将不同的操作系统融合在一起,每个操作系统自身的优势和劣势都可以被用户极好地把握,更好地发挥不同的操作系统的功能。 UDOO属于开源硬件的一部分,搭载ARM i.MX6 Freescale处理器,主板上同时还带有一颗Arduino DUE出品的ARM SAM3X处理器,能够满足Android和Linux操作系统的性能需求。 其尺寸非常小,只有11cm x 8.5m,功耗也低。 目前UDOO迷你电脑正在Kickstarter上募资,可以为消费者提供两种不同配置的主板。消费者可选双核或四核A9处理器(售价分别为99和 129美元),内置1G RAM,支持WiFi网络连接,HDMI、RJ45网口、Mini USB、USB、SATA、Micro SD等接口齐全,支持触摸屏。UDOO可运行Linux版Ubuntu,提供任何编程所需的环境;UDOO也可运行Android 4.0.4 Ice Cream Sandwich操作系统,功能齐全;UDOO搭载的Arduino开发板同样符合Arduino社区的标准。 UDOO为开发者提供灵活的开发环境,可以提供Android、Linux、ArduinoTM、Google ADK开发平台,同时其强大的性能还能参与最新的“物联网”开发。通过更换Micro SD,用户可以在数秒之内切换Android和Linux,非常便捷。 二.香蕉派Banana PI Banana PI M1是为了配合Elastos.org 开源OS推广而推出开源硬件平台,BananaPI M1是一款比树莓派更强悍的双核Android4.2产品。BananaPI 支持 Android系统,,Debian linux系统,Ubuntulinux系统, Raspberry Pi 系统and cubieboard 系统.可以作为媒体播放器,智能路由交换器,中继器,工控机,机顶盒,网络播放器,开发板,个人娱乐学习编程软件等。将协调多CPU形成基于“软件/硬件服务”的家庭云生态环境。Banana Pi 外型类似树莓派,但它性能却比树莓派更加强焊,并且可以运行树莓派image. Banana PI 硬件:硬件基于ARM架构,1Ghz ARM7双核处理器,1GB DDR3内存,千兆以太网口,SATA Socket,流畅运行Android4.2.2。Banana PI M1体积如信用卡大小,轻松运行《雷神之锤三:竞技场》这样的游戏,支持1080P高清视频输出,GPIO兼容Raspberry Pi并直接运行其ROM Image. 硬件接口说明: 外接设备: 香蕉派的官网:www.banana-pi.comwww.sinovoip.com.cn 三.嵌入式物联网软硬件开发平台 OpenFPGAduino OpenFPGAduino 是开源的基于 nodejs 与 FPGA 的嵌入式物联网软硬件开发平台。与Arduino等快速原型开发平台相类似。 不仅提供了基于nodejs网络交互能力特别是用于开发的网络IDE以及类似树莓派的linux软件开发系统方便安装各种linux通用软件,而且通过FPGA提供了可编程的兼容arduino外围接口用于与丰富的物联网传感器进行连接。 技术亮点 1提供了基于云端web的IDE开发环境,能够在任何可以浏览网页的设备完成软件开发工作, 甚至可以在iphone ipad android上进行OpenFpgaDuino的开发,只需要打开网页浏览器,输入开发板的ip地址,就可以在IDE中编写代码了。 2 基于FPGA进行IO扩展,提供了多达,可以实现任意的通信控制逻辑设计。扩展接口能够适应多种外部IO总线与接口模型。所有io口都能够进行任意配置,如果需要,可以将所有IO都作为I2C总线或者全部作为SPI总线使用。同时,能够提供实时控制逻辑设计,将cpu从繁重的IO任务中解放出来,专注于计算与网络服务。 3 所有扩展接口A与B提供了防静电保护,不用担心在触碰开发平台的过程中烧坏IO引脚。 4 完整的Linux系统支持,包括Linux标准库函数以及文件系统,可以像PC Linux一样使用apt-get安装需要的程序,并提供了对通用外设的良好支持。同时与FPGA相结合,将实时处理任务交由FPGA处理,避免了Linux实时处理能力弱的问题。 视频 http://v.youku.com/v_show/id_XOTQ3MjkxNzU2.html?from=y1.7-1.2 http://v.youku.com/v_show/id_XMTU3MTUzNTM4OA==.html?spm=a2hzp.8253869.0.0 http://v.youku.com/v_show/id_XMTg4MjgyMDU4MA==.html?spm=a2hzp.8253869.0.0 https://www.youtube.com/watch?v=jsjrgsI-3QM https://www.youtube.com/watch?v=g4E1hoc72DY 应用场景 智能家居信号汇总处理 物联网中央节点 机器人运动控制 快速原型开发 准备构建环境: Install the docker: https://docs.docker.com/installation/#installation Download the Build environment: sudo docker pull openfpgaduino/openfpgaduino Run the environment and open the shell: sudo docker run --privileged -i -t openfpgaduino/openfpgaduino Pull the view: git clone --recursive https://github.com/OpenFPGAduino/OpenFPGAduino.git 本文转自 念槐聚 博客园博客,原文链接:http://www.cnblogs.com/haochuang/p/6768349.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android笔记:Fragment相关问题

这两天在使用Fragment做播放器里的播放列表和歌词显示两个界面的替换与更新时发现了很多问题,在此记录下问题及解决方法: 1.多个Fragment在replace后(并且都加入了后退栈ft.addToBackStack(null)),通过点击按钮事件移除顶层的fragment(使用remove方法),返回后的fragment的oncreatview方法有执行,但是页面仍然没法自行更新数据,页面空白,UI控件都消失了。 解决:不用remove方法,改用通过popBackStack()方法直接将栈顶的fragment弹出,然后直接恢复到要返回的那个fragment。 1 getSupportFragmentManager().popBackStack(); 2.使用popBackStack()方法后,页面控件恢复了,但是数据并没有同步更新。 解决:这个问题困扰了很久,后来讲replace方法改成了add方法,并且在add之前将原先的fragment隐藏掉hide。这样在点击按钮收回播放列表的fragment后,返回的歌词fragment的显示进度是同步的了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 // 打开播放列表 private void btnClick_playinglist() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); Fragment fragment = new PlayingListFragment(); if (isOpenPlayingList) //播放类表是否已打开 { getSupportFragmentManager().popBackStack(); mPlaying_img_openlist.setImageResource(R.drawable.icon_playing_img_openlist); isOpenPlayingList = false ; } else { ft.hide(mFragment); ft.add(R.id.playing_fragment_layout, fragment); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack( null ); mFragment = fragment; mPlaying_img_openlist.setImageResource(R.drawable.icon_playing_img_openlist_press); isOpenPlayingList = true ; } ft.commit(); } 3.通过按钮点击可以正常弹出顶层的播放列表fragment了,同时歌词界面的fragment仍然同步更新。但是用按钮点击打开播放列表fragment,然后用back键返回,第一次正常,多次后歌词fragment就开始变成空白。将fragment的背景颜色修改成红色,异常界面就是红色。由此可见,通过back键返回的fragment仍然没有恢复和更新。 解决:这个不清楚具体原因,应该是使用back返回键和通过调用popBackStack()方法来移除fragment的机制不一样所导致的。这个找不到具体的解决办法,只能先采用规避方法,通过重写back监听方法,进而调用popBackStack()解决了这个问题。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //重写监听back键按钮 @Override public void onBackPressed() { getSupportFragmentManager().popBackStack(); if (isOpenPlayingList) //判断播放列表是否打开 { mPlaying_img_openlist.setImageResource(R.drawable.icon_playing_img_openlist); isOpenPlayingList = false ; } else { super .onBackPressed(); } } 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1252393,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android定制相关小技巧

1、开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shine.png ./frameworks/base/core/res/assets/images/android-logo-shine.png 注意:如果源码没有make可以直接更改frameworks里的的图片就可以了 然后直接make否则必须全更改并且不能make只能make firmwar 2、默认开机墙纸的位置: default_wallpaper.jpg ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/res/drawable/default_wallpaper.jpg ./frameworks/base/core/res/res/drawable/default_wallpaper.jpg 注意:这个设置和上面的一样这俩个都不能更改文件名 3、更改PC机器删除硬件的文字kernel中 drivers/usb/gadget/f_mass_storage.c fsg->vendor = "XXXXXXXXXXXXX"; 4、更改卷标: bootable/recovery/etc/init.rc setprop UserVolumeLabel "XXXXXXXXXXXXX" 直接打包 5、修改屏幕锁: (1) frameworks/base/packages/SettingsProvider/res/values/defaults.xml 60000 60000改成想要的时间如果是不锁为-1 (2) frameworks/policies/base/phone/com/android/internal/policy/impl/KeyguardViewMediator.java private boolean mExternallyEnabled = true; 将其修改成false 这样更改就不会再进入休眠状态了 6、初始化语言: out/target/product/sdkDemo/root/default.prop rkdroid2.1/recovery/default.prop ro.product.locale.language = es_ES ro.product.locale.region = es_ES 不能make直接打包 7、设定初始化主页: package/app/Browser/res/values/String.xml 655行 后面的应该是书签里的 8、设定亮度0~255: frameworks/base/packages/SettingsProvider/res/values/defaults.xml def_screen_brightness-->这个值初始化好像是100多 9、音量: frameworks/base/media/java/android/media/AudioManager.java 数组DEFAULT_STREAM_VOLUME第4个值(最大我设置到30但是还是差2格才到最大--默认是11 建议将数组里的所有的数值都设为最大就OK了) mm frameworks/base 10、设置Google帐户,左上角提示“正在设置RK2818SDK”,要求改成“正在设置W9”: out/target/product/sdkDemo/root 中default.prop文件第13行 ro.product.model=rk2818sdk 改为 ro.product.model=W9 11、录音没有小时显示。要求增加: packages/apps/SoundRecorder/src/com/android/soundrecorder (1)SoundRecorder.java中: private void updateTimerView() 把 String timeStr = String.format(mTimerFormat, time/60, time%60); 改为:long hour=time/3600; String timeStr = String.format(mTimerFormat, hour, (time-hour*3600)/60, time%60); (2) /res/values中strings.xml改为: %02d:%02d:%02d 12、去掉Bluetooth: (主界面->添加文件夹->Bluetooth received) ic_launcher_folder_bluetooth.png(72*72): 在/packages/apps/Bluetooth/res/drawable-hdpi 解决方法:删除/out/target/product/sdkDemo/system/app下的Bluetooth.apk 13、充电锁屏时图片: frameworks/base/core/res/res/drawable-hdpi:ic_lock_idle_charging.png 14、去掉锁屏时显示充电百分比在: frameworks/base/core/res/res/values-zh-rCN中strings.xml 的lockscreen_plugged_in 括号中的内容及括号 !! 15、去掉动态桌面背景选项: packages/wallpapers/Basic 中AndroidManifest.xml的这些,如星系注释掉如下这些: <service< p=""> android:label="@string/wallpaper_galaxy" android:name="com.android.wallpaper.galaxy.GalaxyWallpaper" android:permission="android.permission.BIND_WALLPAPER"> 16、更改版本号: build/core/Makefile 79行 RK_VER := xxx 17、更改界面布局 位置:package/app/Launcher2/res/xml/default_workspace.xml 注意:adb shell 里当你点击任意的一个apk的时候,在后台会输出 I/ActivityManager( 728): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.estrongs.android.pop/.view.FileExplorerActivity bnds=[294,373][393,478] } I/WindowManager( 728): Setting rotation to 1, animFlags=0 看蓝色的部分就可以找到/前是包名/后面是类名-->这个是在default_workspace.xml里面需要用到的 launcher:packageName="com.android.browser" launcher:className="com.android.browser.BrowserActivity" 18、如何将pdf类的文件放到桌面上 客户要求将他们自己制作的pdf帮助文档放置到桌面上使客人可以直接点击就浏览 String urlString = "/system/app/Nvsbl P4Dv2 English Manual.pdf"; Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(urlString)),"application/pdf"); startActivity(intent); finish(); 解释下: 首先将pdf文档放到out/target/product/sdkDemo/system/app下 将固定地址给出urlString,使用Intent intent.setAction(android.content.Intent.ACTION_VIEW);启动View intent.setDataAndType(Uri.fromFile(new File(urlString)),"application/pdf"); application/pdf可以指定别的格式包括音频,视频,图片等等但是没有试过有需要可以试试 注意:这个方法很不到如果只放置一些图片还可以但是如果放置文件比较大那么打包出来的 system.img文件会很大也就是占用本身的系统内存----->所以不推荐使用!

优秀的个人博客,低调大师

linux ubuntu/centos相关收藏

linux 自动启动监控 自动监控重启tomcat脚本 - reed的日志 - 网易博客 自动监控apache服务状态并重启的shell脚本_ly_cyz-ChinaUnix博客 关于shell 判断退出 - Linux环境编程 - ChinaUnix.net - windows上用xmanager2.0去管理linux的使用说明 - || Nova's Skill Blog || - CSDN博客 Linux系统远程Xmanager图形化管理 Windows下用xmanager远程桌面控制Linux_服务器频道_计世网 子猴博客 » Linux:使用ulimit设置文件最大打开数 linux操作系统中 拷贝目录的命令是什么_百度知道 Linux之间复制文件和目录_心灵的触动_百度空间 linux下拷贝整个目录 - 欣的日志 - 网易博客 Linux命令:cp (copy)复制文件或目录 - Linux尚观知识库 尚观IT公开课—IT领域分享,学习,交流的平台 http://www.uplook.cn Linux 杀死进程方法大全(kill,killall) - cigogo的专栏 - 博客频道 - CSDN.NET linux定时任务的设置 - 疯狂 --专注java,开源,架构,项目管理 - BlogJava 32位 与64位编译 - xiao__C的专栏 - 博客频道 - CSDN.NET Shell Linux Shell编程基础 - feisky - 博客园 Linux Shell编程入门 - suyang - 博客园 linux下shell,变量,管道,重定向等基础知识及技巧-huhuwang724116-ChinaUnix博客 Linux Shell变量使用_Linux编程_中国网管联盟bitsCN.com 优秀Unix管理员的七个习惯-CSDN.NET 虚拟机 vmware 常用命令 - herb的日志 - 网易博客 权限 Linux下Apache网站目录读写权限的设置_服务器应用_Linux公社-Linux系统门户网站 Linux下SFTP用户权限设置条件及实现命令_Linux/apache_脚本之家 Linux添加FTP用户并设置权限 - Linux操作系统:Ubuntu_Centos_Debian - 红黑联盟 ip RedHat/CentOS Ubuntu下面的iptables的设置-xueliangfei-ChinaUnix博客 防火墙 iptables常用 - 北极 - ITeye技术网站 保护你的Web服务器 iptables防火墙脚本全解读 - 51CTO.COM iptables 使用 - wangkangluo1 - 博客园 Ubuntu13.04下Iptables设置 | hongwei blog 硬盘磁盘 Linux 系统挂载数据盘(阿里云)_孤独浪子_新浪博客 网络共享nfs CentOS 6.5系统下安装和配置NFS服务 - 服务器之家 固定NFS启动端口便于iptables设置 - 海运的博客 CentOS NFS配置 - 月光疾风 - 博客园 Samba配置文件常用参数详解 - 大浪淘沙 - 51CTO技术博客 Samba共享 - 用Ubuntu Server架设基于独立硬盘的Windows文件共享和FTP服务器_服务器应用_Linux公社-Linux系统门户网站 Samba服务vsFTP服务(四) - FTP服务器 - 次元立方网 - 电脑知识与技术互动交流平台 备份还原 Ubuntu服务器的系统备份实战 - 51CTO.COM ubuntu Ubuntu启动时 SMBus base address uninitialized - upgrade bios or use force_addr=0xadd_David Gabriel_百度空间 解决VirtualBox下CentOS启动时MBus base address uninitialized错误 - Linux - 服务器 - 烈火网 解决VirtualBox下CentOS启动时"MBus base address uninitialized"错误 - Slyar Home 备份恢复 Ubuntu如何备份和恢复系统 - 落花往事的日志 - 网易博客 Ubuntu下备份系统的方法_Linux教程_Linux公社-Linux系统门户网站 分区 Ubuntu Server 12.10安装配置 | 系统运维 Ubuntu Server 12.04 安装教程_百度经验 Linux 分区指南《Ubuntu Server 最佳方案》 - Intlgj的专栏 - 博客频道 - CSDN.NET 个人 Macbuntu - 将你的Ubuntu变成华丽丽的Mac风格! | iPc.me centos centos 6 安装virtualbox - sdomain的专栏 - 博客频道 - CSDN.NET CentOS Linux防火墙配置及关闭 - 像块石头 - 博客园 CentOS 6.4 图文安装教程(有些设置大部分教程没出现过)_系统安装_操作系统_脚本之家 CentOS 6.3 下安装VirtualBox 流程指导 - 资料库 - 存储虚拟化论坛 - Watchstor存储论坛 - 中文企业级存储技术论坛 CentOS 6.5(6.4)安装过程图文教程 - 服务器之家

优秀的个人博客,低调大师

Java NIO文件操作--相关

Buffer类 CharBuffer charBuffer = CharBuffer.allocate(8); charBuffer.capacity(); charBuffer.limit(); charBuffer.position(); 通过allocate()方法创建的Buffer对象是普通Buffer,ByteBuffer还提供了一个allocateDirect()方法类创建直接Buffer。直接Buffer的创建成本比普通Buffer的创建成本高,但直接Buffer的读取效率高! 也就是说直接Buffer适用于长期生存期的Buffer,而不适用于短生存期的Buffer.并且只有ByteBuffer才提供了allocateDirect()方法。 FileChannel类 FileChannel fileChannelIn = fileInputStream.getChannel(); FileChannel fileChannelOut = fileOutputStream.getChannel(); MappedByteBuffer mappedByteBuffer = fileChannelIn.map(MapMode.READ_ONLY, 0, filein.length()); fileChannelOut.write(mappedByteBuffer); 文件锁FileLock fileChannel = new FileOutputStream("a.txt").getChannel(); FileLock fileLock = fileChannel.tryLock(); Thread.sleep(10000);//文件处理 fileLock.release(); 文件锁:可以有效的阻止多个进程并发修改同一个文件。 lock()试图锁定某个文件,如果无法得到文件锁,程序一直阻塞。 tryLock()尝试锁定某个文件,它将直接返回而不是阻塞,如果获得了文件锁,该方法则返回该文件锁,否则返回null。 lock(long postion, long size, boolean shared)对文件从postion开始,长度为size的内容加锁,该方法是阻塞式的。 tryLock(long postion, long size,boolean shared) 非阻塞式的加锁方法,参数同上。 当参数shared为true时,寿命该锁是一个共享锁,他将允许多个进程来读取文件,但阻止其他进程获得对该文件的排他锁。 当参数为false时,表明该锁是一个排他锁,他将锁住对该文件的读写。程序可以调用FileLock的isShared来判断它获得的锁是否是共享锁。 FileVisitor public static void main(String[] args) throws IOException { Files.walkFileTree(Paths.get("D:\\"),new SimpleFileVisitor<Path>(){ @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { System.out.println("正在访问的路径="+dir); return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (file.endsWith("FileVisitorTest.java")) { System.out.println("找到目标文件"); return FileVisitResult.TERMINATE; } return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException { return super.visitFileFailed(file, exc); } @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { System.out.println("访问结束"); return super.postVisitDirectory(dir, exc); } }); } 如示例,可以使用FileVisitor 进行磁盘文件查找。 WatchService public static void main(String[] args) { try { WatchService watchService = FileSystems.getDefault().newWatchService(); Paths.get("D:\\").register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE,StandardWatchEventKinds.ENTRY_MODIFY); while(true){ WatchKey key = watchService.take(); for (WatchEvent<?> event : key.pollEvents()) { System.out.println(event.context()+ "发生了"+event.kind()+"事件"); } boolean vaild = key.reset();//重设WatchKey if (!vaild) {//如果重设失败,退出监听 break; } } } catch (IOException | InterruptedException e) { e.printStackTrace(); } } 使用的是D盘目录进行监听,这个监控文件变化的监听器可以做到对D盘和它的第一级子目录的变化进行监听,对它的子目录内部的变化无法做到监听。 WatchService有3个方法来获取舰艇目录的文件变化事件。 poll():获取下一个WatchKey,如果没有WatchKey发生就立即返回null。 poll(long timeout, TimeUnit unit):尝试等待timeout时间去获取下一个WatchKey。 take() : 获取下一个WatchKey,如果没有WatchKey发生就移植等待。 如果程序需要一直监控,则选择take()方法。如果程序需要监听指定时间,使用poll()方法。 访问文件属性BasicFileAttributeView public static void main(String[] args) { Path testPath = Paths.get(".\\src\\com\\yin\\nio\\AttributeViewTest.java"); BasicFileAttributeView basicView = Files.getFileAttributeView(testPath, BasicFileAttributeView.class); try { BasicFileAttributes basicFileAttributes = basicView.readAttributes(); PrintStr("创建时间:"+new Date(basicFileAttributes.creationTime().toMillis()).toLocaleString()); PrintStr("最后访问时间:"+new Date(basicFileAttributes.lastAccessTime().toMillis()).toLocaleString()); PrintStr("最后修改时间:"+new Date(basicFileAttributes.lastModifiedTime().toMillis()).toLocaleString()); PrintStr("文件大小:"+basicFileAttributes.size()); } catch (IOException e) { e.printStackTrace(); } } private static void PrintStr(String str){ System.out.println(str); } Java NIO2(AIO) JDK1.7 NIO2主要改进了Classic I/O中java.io.File类对文件操作的局限性 NIO2还带来了真正意义上的Asynchronous I/O(异步I/O),具体实现分为文件Asynchronous I/O与网络传输Asynchronous I/O。因此NIO2也称为AIO。 NIO2 在 File 操作方面的升级 Path介绍:URI,FileSystems Paths、Files工具类介绍 WatchService接口:提供了通过应用程序监听操作系统文件变更事件的能力 文件读写 Asynchronous I/O NIO2通过AsynchronousFileChannel提供了异步读写文件的功能。通过AsynchronousFileChannel异步读写文件有CompletionHandler与Future两种方式。 Java 异步 I/O 网络通信实现 NIO2通过引入AsynchronousSocketChannel与AsynchronousServerSocketChannel实现了异步I/O网络通信模型。

优秀的个人博客,低调大师

linux系统相关命令行

一、linux系统简介以及基本概念及操作 (1)ctrl+alt+F1~F6:进行切换 ctrl+alt+F7:返回图形界面 (2)使用Tab键进行:命令补全、补全目录、补全命令参数都是可以的。(当你忘记某些命令的全称时,可以只输入开头的一部分,然后按下Tab键就会补全) (3) ctrl+c:立即停止并恢复到你可控的状态,强行终止当前程序(并不会使终端退出) ctrl+d:键盘输入结束或退出终端 ctrl+s:暂停当前程序,暂停后按下任意键恢复运行 ctrl+a:将光标移至输入行头,相当于Home键 ctrl+e:将光标移至输入行末,相当于End键 ctrl+k:删除从光标所在位置到行末 shift+pgup:将终端显示向上滚动 shift+pgdn:将终端显示向下滚动 (4)恢复之前输入过的命令:↑ (5)你可以使用如下方式来获得某个命令的说明和使用方式的详细介绍: $ man <command_name> 例如:man man;manual pages的缩写:man 二、linux目录结构及文件基本操作 (1)返回上级目录:cd .. 进入你的home目录:cd ~ 使用pwd获取当前路径:pwd (2)linux文件的基本操作: ①新建空白文件eg:touch test 前提是切换到自己的目录下面 ②新建目录:mkdir mydir ③使用cp命令复制一个文件到指定目录:cp test father/son/grandson,复制目录也需要加上-r或者-R ④删除文件eg:rm test,若想删除一些只有读的权限文件,rm会报错,可以使用-f参数强制删除eg:rm -f test ⑤删除目录:也需要加上-r或者-R,eg:rm -r family ⑥移动文件:mv,eg:mv 原目录 目的目录 ⑦重命名文件:mv 旧的文件名 新的文件名 三、文件打包与压缩 (1)tar ①打包:tar -zcvf something.tar something ②解包:tar -zxvf something.tar ③指定路径:-C 参数 (2)zip ①打包:zip something.zip something (目录请加 -r 参数) ②解包:unzip something.zip ③指定路径:-d 参数

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册