首页 文章 精选 留言 我的

精选列表

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

阿里云APP备案操作相关流程

阿里云APP端申请备案是现在比较流行的备案方法,方便快捷,适合新手使用。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。 要注意的是,目前支持首次备案和新增网站(原备案不在阿里云)两种备案场景。暂时不支持新增网站(原备案在阿里云)、接入备案、变更备案等其他备案场景,其他的备案场景都可在PC端操作。 使用阿里云APP端申请备案时,备案申请操作步骤如下: 1、登录阿里云APP,进入APP备案操作入口。 如果在APP端备案时,系统提示前往PC端进行操作,那么你当前的场景就只能在PC端操作了。 2、填写信息及备案接入产品验证备案类型 填写主办单位信息和网站等信息,根据备案类型上传主办单位的证件材料,并进行真实性核验。 3、选择买好的服务器,进行产品验证。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。 说明:如果无法选择服务器实例,可能是因为无可用备案服务号,建议更换有可用备案服务号的服务器。更多可能无法选择实例的可能原因及 系统会根据填写信息自动判定要办理的备案类型。 4、填写主体信息和网站信息 填写网站信息以及办理备案的个人或者单位的真实信息。上传主体负责人和网站负责人的证件,并进行网站负责人的真实性核验。 5、上传资料 上传证件照片或证件彩色扫描件。 6、信息核验 在提交备案申请订单前,请您在此步骤中仔细确认您的主体、网站、接入等备案信息是否正确,确认无误后提交备案订单。 说明:如果使用PC端进行备案申请,在移动端完成资料上传和真实性核验后,您可在移动端继续信息核验。如果您的登录账号无法登录阿里云APP,就要去PC端继续操作信息核验。 7、备案初审 提交备案申请后,阿里云备案审核专员会对备案信息初步审核。 8、管局审核初审完成后,阿里云备案审核专员会将备案申请转交至对应管局处做最终的管局审核。管局审核通过后您的备案即已完成,审核结果会发送至短信、邮箱。 9、不管阿里审核,还是管局审核期间,在工作时间内都要保持手机有人接听状态,老魏就是因为审核专员多次打电话无人接听,延误了备案时间。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。

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

使用Python获取ECS相关信息2

上一次我们已经知道如何用python获取ECS信息了,不知道的可以点这里 1.返回数据格式 通过上回的代码,我们将会获得如下的数据(json格式) {"PageNumber":1,"TotalCount":1,"PageSize":10,"RequestId":"CF15510B-9510-4E04-939B-F48C453D0E62","Instances":{"Instance":[{"ImageId":"centos_7_04_64_20G_alibase_201701015.vhd","VlanId":"","EipAddress":{"IpAddress":"","AllocationId":"","InternetChargeType":""},"ZoneId":"cn-shanghai-b","IoOptimized":true,"SerialNumber":"41b2b827-014b-4723-bcdf-a5764c9d1c2e","Cpu":1,"Memory":2048,"DeviceAvailable":true,"SecurityGroupIds":{"SecurityGroupId":["sg-uf6fq26zc62t0u0t8ftr"]},"SaleCycle":"","AutoReleaseTime":"","OSType":"linux","ResourceGroupId":"","OSName":"CentOS 7.4 64位","InstanceNetworkType":"vpc","HostName":"aliyun-sh","CreationTime":"2018-12-05T06:51Z","RegionId":"cn-shanghai","DeletionProtection":false,"OperationLocks":{"LockReason":[]},"ExpiredTime":"2019-06-05T16:00Z","InnerIpAddress":{"IpAddress":[]},"InstanceTypeFamily":"ecs.n4","InstanceId":"i-uf6gchn2j65r5scbn6rz","NetworkInterfaces":{"NetworkInterface":[{"MacAddress":"00:16:3e:02:0e:a2","PrimaryIpAddress":"172.19.214.188","NetworkInterfaceId":"eni-uf68mu7aigxbcs3huv90"}]},"InternetMaxBandwidthIn":500,"CreditSpecification":"","InternetChargeType":"PayByBandwidth","SpotStrategy":"NoSpot","StoppedMode":"Not-applicable","InternetMaxBandwidthOut":1,"VpcAttributes":{"NatIpAddress":"","PrivateIpAddress":{"IpAddress":["172.19.214.188"]},"VSwitchId":"vsw-uf6a4tfeug6t05akf9w92","VpcId":"vpc-uf6eyafn4cmj5nol253d4"},"SpotPriceLimit":0.0,"StartTime":"2018-12-14T02:33Z","KeyPairName":"哇咔咔的sh密钥","InstanceName":"哇咔咔的上海ECS","Description":"","PublicIpAddress":{"IpAddress":["47.100.239.99"]},"InstanceType":"ecs.n4.small","Status":"Running","Recyclable":false,"ClusterId":"","GPUSpec":"","GPUAmount":0,"InstanceChargeType":"PrePaid","DedicatedHostAttribute":{"DedicatedHostId":"","DedicatedHostName":""},"DeploymentSetId":""}]}} 稍微排版一下是这样的 { "PageNumber":1, "TotalCount":1, "PageSize":10, "RequestId":"04F89A1C-EC73-4F6C-84EE-F2703732DE09", "Instances": { "Instance": [ { "ImageId":"centos_7_03_64_20G_alibase_20170818.vhd", "VlanId":"", "EipAddress": { "IpAddress":"", "AllocationId":"", "InternetChargeType":"" }, "ZoneId":"cn-shanghai-b", "IoOptimized":true, "SerialNumber":"41b2b827-014b-4723-bcdf-a5764c9d1c2e", "Cpu":1, "Memory":2048, "DeviceAvailable":true, "SecurityGroupIds": { "SecurityGroupId":["sg-uf6fq26zc62t0u0t8ftr"] }, "SaleCycle":"", "AutoReleaseTime":"", "OSType":"linux", "ResourceGroupId":"", "OSName":"CentOS 7.3 64位", "InstanceNetworkType":"vpc", "HostName":"aliyun", "CreationTime":"2018-12-05T06:51Z", "RegionId":"cn-shanghai", "DeletionProtection":false, "OperationLocks":{"LockReason":[]}, "ExpiredTime":"2019-06-05T16:00Z", "InnerIpAddress":{"IpAddress":[]}, "InstanceTypeFamily":"ecs.n4", "InstanceId":"i-uf6gchn2j65r5scbn6rz", "NetworkInterfaces": { NetworkInterface": [ { "MacAddress":"00:16:3e:02:0e:a2", "PrimaryIpAddress":"172.19.214.188", "NetworkInterfaceId":"eni-uf68mu7aigxbcs3huv90" } ] }, "InternetMaxBandwidthIn":500, "CreditSpecification":"", "InternetChargeType":"PayByBandwidth", "SpotStrategy":"NoSpot", "StoppedMode":"Not-applicable", "InternetMaxBandwidthOut":1, "VpcAttributes": { "NatIpAddress":"", "PrivateIpAddress": { "IpAddress":["172.19.214.188"] }, "VSwitchId":"vsw-uf6a4tfeug6t05akf9w92", "VpcId":"vpc-uf6eyafn4cmj5nol253d4" }, "SpotPriceLimit":0.0, "StartTime":"2018-12-05T06:55Z", "KeyPairName":"哇咔咔的密钥", "InstanceName":"哇咔咔", "Description":"", "PublicIpAddress": { "IpAddress"["47.100.239.99"] }, "InstanceType":"ecs.n4.small", "Status":"Running", "Recyclable":false, "ClusterId":"", "GPUSpec":"", "GPUAmount":0, "InstanceChargeType":"PrePaid", "DedicatedHostAttribute": { "DedicatedHostId":"", "DedicatedHostName":"" }, "DeploymentSetId":"" } ] } } 2.数据处理 接下来我们就要用python对这些数据进行处理,恕本人才疏学浅,用了最蠢的方法来处理,直接上代码: 首先用python中的json.loads方法将获取到的json数据转化为字典 dictA=json.loads(response) 之后用for循环将一层一层的字典,列表的嵌套提取出来,并且存储到一个新的字典里面去: dictEnd={} dictB=dictA['Instances'] listA=dictB['Instance'] dictC=listA[0] for i in dictC: if(type(dictC[i])==dict): dictD=dictC[i] if(type(dictD)==dict): for d in dictD: dictE=dictD[d] if(type(dictE)==list): listB=dictE if listB: if(type(listB[0])==dict): dictF=listB[0] for f in dictF: dictEnd[f]=dictF[f] else: dictEnd[d] = dictD[d] elif(type(dictE)==dict): dictG=dictE else: dictEnd[d]=dictD[d] else: dictEnd[i]=dictC[i] 这样的话,我们就已经将这个ECS的信息存储到diceEnd这个字典里面了,由于本人决定只把数据的值的部分输出到表格中,所以使用以下代码把刚刚生成的dict转换为一个list listC=list(dictEnd.values()) 3.输出到表格 这里使用openpyxl这个模块将内容输出到表格 wb = Workbook() ws=wb.active ws.append(listC) wb.save('txt.xlsx') 4.完整代码 from aliyunsdkcore.client import AcsClient from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest from openpyxl import Workbook import json #创建AcsClient实例 client = AcsClient( "你的AccessKey", "你的AccessKey secret", "地域" ); # 创建request,并设置参数 request = DescribeInstancesRequest.DescribeInstancesRequest() request.set_PageSize(10) # 发起API请求并显示返回值 response = client.do_action_with_exception(request) dictA=json.loads(response) dictEnd={} dictB=dictA['Instances'] listA=dictB['Instance'] dictC=listA[0] for i in dictC: if(type(dictC[i])==dict): dictD=dictC[i] if(type(dictD)==dict): for d in dictD: dictE=dictD[d] if(type(dictE)==list): listB=dictE if listB: if(type(listB[0])==dict): dictF=listB[0] for f in dictF: dictEnd[f]=dictF[f] else: dictEnd[d] = dictD[d] elif(type(dictE)==dict): dictG=dictE else: dictEnd[d]=dictD[d] else: dictEnd[i]=dictC[i] #转化为list listC=list(dictEnd.values()) for i in range(len(listC)): if (type(listC[i])==list): listC[i]="" for i in listC: print(i) #excel wb = Workbook() ws=wb.active ws.append(listC) wb.save('txt.xlsx') 以上纯属本人理解,有什么错误的地方还望各位大神指正

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

CoreOS裸机iso安装和相关配置

裸机通过iso安装CoreOS,个人趟了很多坑,以下就是完整的从零开始部署和配置的过程,希望对大家有用。 一、安装CoreOS到硬盘 1. 准备Live iso镜像,制作好usb启动盘 Live iso下载地址 2. 搭建Apache Server服务 配置Apache可以访问静态文件 在访问的根路径(win下为htdocs/)下创建名为1745.7.0的目录 3. 下载安装镜像和sig签名文件 下载地址 coreos_production_image.bin.bz2 coreos_production_image.bin.bz2.sig 将这两个文件放到1745.7.0的目录下 4. 写好cloud-config.yaml 我们简单化,不用配置etcd集群。 #cloud-config hostname: coreos users: - name: core ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwKMzeSX8iavwLGuok..... - groups: - sudo - docker 其中ssh-authorized-keys是无密码登陆必须配置的密钥对,我们可以通过Bitvise SSH Client客户端中的Client Key Manager功能来生成(导出Public Key),然后复制公钥串值到ssh-rsa后面,注意中间有一个空格。 网络我们安装后再配置也行,或者在cloud-config.yaml中配置好也行 #cloud-config hostname: coreos users: - name: core ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwKMzeSX8iavwLGuok..... - groups: - sudo - docker networkd: units: - name: 10-static.network contents: | [Match] Name=enp0s3 [Network] Address=192.168.57.102/24 - name: 20-dhcp.network contents: | [Match] Name=enp0s8 [Network] DHCP=yes 将这个文件放到htdocs目录下 5. 裸机启动CoreOS Live并进行安装 下载自己搭建的Apache服务器(ip:192.168.1.100)上的cloud-config.yaml文件 wget http://192.168.1.100/cloud-config.yaml 执行安装 sudo coreos-install -d /dev/sda -b http://192.168.1.100 -c ./cloud-config.yaml 安装完成后,重启机器,从硬盘启动即可。 二、配置CoreOS 1. SSH密钥登陆 查看IP,然后通过用户名(core)+私钥(之前生成的)进行登陆 2. 设置root密码 登陆后,执行命令修改root密码 sudo passwd root 3. 配置网络 配置文件路径:/etc/systemd/network/ 静态IP配置文件(没有的话,自行创建):10-static.network [Match] Name=en* [Network] DNS=192.168.3.1 Address=192.168.3.200/24 Gateway=192.168.3.1 动态IP配置文件(没有的话,自行创建):20-dhcp.network [Match] Name=en* [Network] DHCP=yes 更新后需要重启网络服务 sudo systemctl restart systemd-networkd 4. 其他一些常用命令 sudo hostnamectl set-hostname coreos1 #修改主机名 setenforce 1/0 #开启关闭SELinux getenforce #查看SELinux状态 timedatectl #查看系统时间 timedatectl list-timezones #查看支持的时区列表 timedatectl set-timezone Asia/Shanghai #设置时区为上海

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

初学Python——字符串相关操作

Pyhton中字符串的格式化输出在前面已经总结了,接下来介绍一些常用的字符串操作 先定义一个字符变量,以下的操作都以此为例: name=" my name is china " #(首尾有空格) 1.首字母大写(整个字符串的首字母) print(name.capitalize()) 运行结果:my name is china并没有变化!是因为第一个字符是空格!如果把第一个空格去掉,结果为:My name is china 2.将所有字母变大写或变小写 print(name.lower()) #把所有字母变成小写 print(name.upper()) #把所有字母变成大写 输出结果分别为: my name is chinaMY NAME IS CHINA 3.首字母大写(每个单词) print(name.title()) 输出结果为:My Name Is China 4.大小写互换 print(name.swapcase()) 输出结果为:MY NAME IS CHINA此方法是:大写变小写,小写变大写 5.统计相同字符的数目 print(name.count("i")) #统计字符串中字符i的个数 6.Center()方法 print(name.center(50,"-")) 运行结果: ---------------- my name is china ---------------- 一共50个字符,字符串以外用指定的“-”来填充,并将字符串变量内容居中 7.判断字符串是否以这个字符结尾 print(name.endswith("ng")) #判断字符串是否以“ng”结尾 运行结果为:False 8.在字符串中寻找某个子字符串的位置 例如:寻找字符串中“name”的位置 print(name.find("name")) 输出结果为4,即“name”首字母的地址“n”的地址 9.去掉字符串两端的空格 有时候为了避免不必要的麻烦,会将用户输入的字符串去掉两端的空格 print(name.strip()) 10.去掉字符串左边或右边的空格 print(name.lstrip()) #去掉左边的空格 print(name.rstrip()) #去掉右边的空格 11.字符串的加密 p=str.maketrans("abcedfghij","9876543210") #编写密码规则 print(name.translate(p)) #按照上述密码转换规则将明文翻译成密文 先上运行结果: my n9m6 1s 721n9 看懂了吗?就是用“9”来替代“a”,“8”来替代“b”,“7”来替代“c”,……,依次类推 12.将字符串中特定字符替换 将字符串中某些旧字符替换成新字符,并返回新的字符串 print(name.replace("m","M",2)) 将字符串中前2个“m”替换成“M” 结果为:My naMe is china 第一个值是被替换字符,第二个值是替换字符,第三个值是被替换的个数(可以省略) 13.字符串切片(截取) 不光列表,字符串也可以切片,而且和列表的操作一样 新定义一个字符串 运行结果: 14.获取字符串的长度 len(a) 获取的是字符串的长度(字符数、字节数)。此方法不是字符串的专属,列表、字典等其他数据类型都可以用。列表获取的是元素的个数,字典获取的是key的数量。 15.split()分割函数 split()通过指定分隔符对字符串进行分割,并返回分割后的字符串列表。如果参数 num 有指定值,则仅分隔 num 个子字符串 split(str,num) 参数: str:分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num:分割次数(可以省略) str = "Line1-abcdef \nLine2-abc \nLine4-abcd" print str.split( ) print str.split(' ', 1 ) #运行结果: ['Line1-abcdef', 'Line2-abc', 'Line4-abcd'] ['Line1-abcdef', '\nLine2-abc \nLine4-abcd'] 16.index() print(str.index("L")),输出第一个L的下标

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

Android 跳转系统页面相关

android.provider.Settings。 ACTION_ACCESSIBILITY_SETTINGS : // 跳转系统的辅助功能界面 Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(intent); ACTION_ADD_ACCOUNT : // 显示添加帐户创建一个新的帐户屏幕。【测试跳转到微信登录界面】 Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); startActivity(intent); ACTION_AIRPLANE_MODE_SETTINGS: // 飞行模式,无线网和网络设置界面 Intent intent = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS); startActivity(intent); 或者: ACTION_WIRELESS_SETTINGS : Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); startActivity(intent); ACTION_APN_SETTINGS: // 跳转 APN设置界面 Intent intent = new Intent(Settings.ACTION_APN_SETTINGS); startActivity(intent); 【需要参数】 ACTION_APPLICATION_DETAILS_SETTINGS: // 根据包名跳转到系统自带的应用程序信息界面 Uri packageURI = Uri.parse("package:" + "com.tencent.WBlog"); Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,packageURI); startActivity(intent); ACTION_APPLICATION_DEVELOPMENT_SETTINGS : // 跳转开发人员选项界面 Intent intent = new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS); startActivity(intent); ACTION_APPLICATION_SETTINGS : // 跳转应用程序列表界面 Intent intent = new Intent(Settings.ACTION_APPLICATION_SETTINGS); startActivity(intent); 或者: ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS // 跳转到应用程序界面【所有的】 Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS); startActivity(intent); 或者: ACTION_MANAGE_APPLICATIONS_SETTINGS :// 跳转 应用程序列表界面【已安装的】 Intent intent = new Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS); startActivity(intent); ACTION_BLUETOOTH_SETTINGS : // 跳转系统的蓝牙设置界面 Intent intent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS); startActivity(intent); ACTION_DATA_ROAMING_SETTINGS : // 跳转到移动网络设置界面 Intent intent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS); startActivity(intent); ACTION_DATE_SETTINGS : // 跳转日期时间设置界面 Intent intent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS); startActivity(intent); ACTION_DEVICE_INFO_SETTINGS : // 跳转手机状态界面 Intent intent = new Intent(Settings.ACTION_DEVICE_INFO_SETTINGS); startActivity(intent); ACTION_DISPLAY_SETTINGS : // 跳转手机显示界面 Intent intent = new Intent(Settings.ACTION_DISPLAY_SETTINGS); startActivity(intent); ACTION_DREAM_SETTINGS 【API 18及以上 没测试】 Intent intent = new Intent(Settings.ACTION_DREAM_SETTINGS); startActivity(intent); ACTION_INPUT_METHOD_SETTINGS : // 跳转语言和输入设备 Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS); startActivity(intent); ACTION_INPUT_METHOD_SUBTYPE_SETTINGS 【API 11及以上】 // 跳转 语言选择界面 【多国语言选择】 Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SUBTYPE_SETTINGS); startActivity(intent); ACTION_INTERNAL_STORAGE_SETTINGS // 跳转存储设置界面【内部存储】 Intent intent = new Intent(Settings.ACTION_INTERNAL_STORAGE_SETTINGS); startActivity(intent); 或者: ACTION_MEMORY_CARD_SETTINGS : // 跳转 存储设置 【记忆卡存储】 Intent intent = new Intent(Settings.ACTION_MEMORY_CARD_SETTINGS); startActivity(intent); ACTION_LOCALE_SETTINGS : // 跳转语言选择界面【仅有English 和 中文两种选择】 Intent intent = new Intent(Settings.ACTION_LOCALE_SETTINGS); startActivity(intent); ACTION_LOCATION_SOURCE_SETTINGS : // 跳转位置服务界面【管理已安装的应用程序。】 Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); ACTION_NETWORK_OPERATOR_SETTINGS : // 跳转到 显示设置选择网络运营商。 Intent intent = new Intent(Settings.ACTION_NETWORK_OPERATOR_SETTINGS); startActivity(intent); ACTION_NFCSHARING_SETTINGS : // 显示NFC共享设置。 【API 14及以上】 Intent intent = new Intent(Settings.ACTION_NFCSHARING_SETTINGS); startActivity(intent); ACTION_NFC_SETTINGS : // 显示NFC设置。这显示了用户界面,允许NFC打开或关闭。 【API 16及以上】 Intent intent = new Intent(Settings.ACTION_NFC_SETTINGS); startActivity(intent); ACTION_PRIVACY_SETTINGS : // 跳转到备份和重置界面 Intent intent = new Intent(Settings.ACTION_PRIVACY_SETTINGS); startActivity(intent); ACTION_QUICK_LAUNCH_SETTINGS : // 跳转快速启动设置界面 Intent intent = new Intent(Settings.ACTION_QUICK_LAUNCH_SETTINGS); startActivity(intent); ACTION_SEARCH_SETTINGS : // 跳转到 搜索设置界面 Intent intent = new Intent(Settings.ACTION_SEARCH_SETTINGS); startActivity(intent); ACTION_SECURITY_SETTINGS : // 跳转到安全设置界面 Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS); startActivity(intent); ACTION_SETTINGS : // 跳转到设置界面 Intent intent = new Intent(Settings.ACTION_SETTINGS); startActivity(intent); ACTION_SOUND_SETTINGS // 跳转到声音设置界面 Intent intent = new Intent(Settings.ACTION_SOUND_SETTINGS); startActivity(intent); ACTION_SYNC_SETTINGS : // 跳转账户同步界面 Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS); startActivity(intent); ACTION_USER_DICTIONARY_SETTINGS : // 跳转用户字典界面 Intent intent = new Intent(Settings.ACTION_USER_DICTIONARY_SETTINGS); startActivity(intent); ACTION_WIFI_IP_SETTINGS : // 跳转到IP设定界面 Intent intent = new Intent(Settings.ACTION_WIFI_IP_SETTINGS); startActivity(intent); ACTION_WIFI_SETTINGS : // 跳转Wifi列表设置 跳转方式 Intent intent = new Intent(Settings.*********); startActivity(intent); 跳转到应用市场 /** * 根据应用包名,跳转到应用市场 * * @param activity 承载跳转的Activity * @param packageName 所需下载(评论)的应用包名 */ public static void shareAppShop(Activity activity, String packageName) { try { Uri uri = Uri.parse("market://details?id="+ packageName); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); activity.startActivity(intent); } catch (Exception e) { Toast.makeText(activity, "您没有安装应用市场", Toast.LENGTH_SHORT).show(); } }

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

GRUB2相关概念

GNU GRUB,简称“GRUB”,是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。 GNU GRUB的前身为Grand Unified Bootloader。它主要用于类Unix系统;同大多Linux发行版一样,GNU系统也采用GNU GRUB作为它的启动器。 目前 GRUB 分成 GRUB legacy 和 GRUB 2。版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称为 GRUB 2。 Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能: 1、模块化设计 不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。 2、支持多体系结构 Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI架构。 3、国际化的支持 Grub 2 可以支持非英语的语言。 4、内存管理 Grub 2 有真正的内存管理系统。 5、脚本语言 Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。 本文转自 拾瓦兴阁 51CTO博客,原文链接:http://blog.51cto.com/ponyjia/1692815

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

Docker 1.13 新特性 —— Docker系统相关

Docker随着1.13版本的发布,Docker对Daemon的API和命令行做了一系列的改造,除了对容器,镜像等命令做了二级的命令(containers,images)的改造完,还增加了很多的系统或集群的管理的接口和命令,包含system,plugin,secret,分别用于管理Docker Daemon的系统状态,Docker插件的管理,以及集群中的敏感信息的管理。 docker system 管理Docker的命令,其中包括 docker system df 显示docker 磁盘使用情况,支持详细信息选项 docker system events 从服务器获取Docker的实时事件信息,支持对事件进行过滤,指定时间戳,格式化等 docker system info 显示系统级别的信息,支持格式化 docker system prune

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册